187 Commits

Author SHA1 Message Date
Erin Call
6d28b7b28a Return an error on unknown commands [#15]
I'm probably overthinking this--explicitly calling help is a strange and
unusual case--but it doesn't really hurt, so I'm going for it.
2019-12-26 11:29:33 -08:00
Joachim Hill-Grannec
81c4877a92 Merge branch 'master' into noncompulsory-certificate 2019-12-26 11:27:43 -08:00
Joachim Hill-Grannec
fbfb69f063 Merge pull request #27 from pelotech/useful-readme
Put some useful information in the README
2019-12-26 11:26:59 -08:00
Erin Call
34b9ec1c4c Run the Help step by default [#15] 2019-12-26 10:47:42 -08:00
Erin Call
568f613401 Associate lines of text with their yaml blocks [#8]
As I skimmed through that section I noticed it wasn't immediately clear
whether a line of text was referring to the example above it or the one
below it.
2019-12-26 09:44:46 -08:00
Erin Call
dc05855aa5 Mention the settings/environment equivalency [#8]
It seems like this needs more information, like why you'd want to put
something in one stanza or the other, but I don't really know enough
about drone to give useful advice.
2019-12-26 09:41:10 -08:00
Erin Call
a71bba71fd Give contributors some maybe-adequate information [#12]
I honestly have no idea how useful this document is, but it's probably
better than nothing?
2019-12-25 16:08:29 -08:00
Erin Call
f00f6a6329 Encourage good issues with issue templates [#12]
I've never used github's new multiple-option issue templates before!
I'm excited to see them in action :)
2019-12-25 12:03:36 -08:00
Erin Call
1a70a626ea Use the Contributor Covenant code of conduct [#12] 2019-12-25 11:47:41 -08:00
Erin Call
4f549ddf2a Pre-populate pull request bodies with a template [#12]
Note that as of this writing, docs/parameter_reference.md (and required-
params documentation in README.md) doesn't actually exist; I created it
in ef66bc0 but that commit hasn't been merged yet.
2019-12-25 11:21:33 -08:00
Erin Call
4cd369b051 Auto-assign rewiewers with a CODEOWNERS [#12] 2019-12-25 10:50:20 -08:00
Erin Call
6b331fdf03 Check the validity of the kubeconfig template [#13]
It's a little tricky to find a balance between "brittle" and "thorough"
in this test--I'd like to verify that e.g. the certificate is in
clusters[0].cluster.certificate-authority-data, not at the root. On the
other hand, we can't actually show that it's a valid kubeconfig file
without actually *using* it, so there's a hard upper limit on the
strength of the assertions. I've settled on verifying that all the
settings make it into the file and the file is syntactically-valid yaml.
2019-12-25 10:11:14 -08:00
Erin Call
801598e1c5 Use a clearer filepath for the kubeconfig template [#13] 2019-12-24 16:16:22 -08:00
Erin Call
cb58b5a021 Phrase errors in Execute the same as in Prepare [#33] 2019-12-24 15:49:47 -08:00
Erin Call
d86ac72529 Test Plan.Execute [#33] 2019-12-24 15:47:26 -08:00
Erin Call
52c9fb552c Ensure the plan test mocks' expectations are met [#33] 2019-12-24 15:33:50 -08:00
Erin Call
d4506608d7 Note a backwards-incompatibility in the README [#8]
This probably isn't going to bite anyone, but it's technically possible,
and it doesn't hurt to mention it.
2019-12-24 15:25:44 -08:00
Erin Call
ff8e988122 Use "installation" rather than "deployment" [#8]
"deploy" matches my mental model of what helm does, but "install"
matches helm's own terminology more closely.
2019-12-24 15:22:25 -08:00
Erin Call
ef66bc0f92 Document parameters in a single markdown file [#8]
I was unhappy with the comments-in-yaml approach; it required
duplicating a lot of information and it was hard to find a balance
between "usefully thorough" and "readably concise.""
2019-12-24 14:36:39 -08:00
Erin Call
08ddf5e27a Log debug output in helm.Config [#9]
Redacting KubeToken may not be sufficient, since it's possible that
someone would put secrets in Values or StringValues. Unilaterally
redacting those seems unhelpful, though, since they may be the very
thing the user is trying to debug. I've settled on redacting the obvious
field without trying to promise that all sensitive data will be hidden.
2019-12-24 11:08:09 -08:00
Erin Call
4ba1e694d9 Use a go-idiomatic constructor for helm.Config [#9] 2019-12-24 10:41:01 -08:00
Erin Call
10e7e7fee5 Document the Config struct's behavior correctly [#19] [#9] 2019-12-23 16:45:09 -08:00
Erin Call
285e9d98a4 Allow a configurable env var prefix [#19]
I'd like to keep Prefix's scope fairly limited, because it has potential
to spiral into something magnificently complex. You get one prefix
setting, it goes in `settings` not `environment`, end of feature.
2019-12-23 16:36:37 -08:00
Erin Call
db87bd0507 Require no-error in config tests [#9] 2019-12-23 15:52:01 -08:00
Erin Call
e2f53f3b08 Process non-prefixed forms of all config settings [#9]
Trying to guess in advance which part of the config a user will put in
the `settings` section and which they'll put in `environment` is a
fool's errand. Just let everything go in either place.

The ServiceAccount field only had an `envconfig` tag (as opposed to
`split_words`) because that triggered envconfig to look for the non-
prefixed form. Now that we're finding non-prefixed forms of everything,
we can use the clearer/more concise tag.

Note that TestPopulateWithConflictingVariables isn't meant to say
"here's what behavior we *want*" so much as "here's what the behavior
*is*." I don't think one thing is any better than the other, but we
should know which one we're getting.
2019-12-23 15:34:08 -08:00
Erin Call
c4c136b021 Do envconfig-loading in config.go (and test it!) [#9] 2019-12-23 15:10:00 -08:00
Erin Call
ef4db923cd Use a plain string for helm.Config.Command [#9]
I'm leaving the no-op test file in place because my next step is to add
new behavior that will require testing.
2019-12-23 14:06:05 -08:00
Erin Call
ae9cb59a1f No typo inthe helm.Config docs [#9] 2019-12-23 14:03:51 -08:00
Erin Call
ad5baea3e6 Document helm.Config's struct fields more clearly [#9] 2019-12-23 14:02:46 -08:00
Erin Call
4755f502b5 Always use the default kubeconfig file path [#20] 2019-12-23 12:47:16 -08:00
Erin Call
59a591eda5 Recommend removing tiller when upgrading [#8] 2019-12-23 09:57:05 -08:00
Erin Call
3d1c849e75 Don't document the kube_config setting [#8]
See #30--there's no known use-case and no drone-helm users are using the
setting, so it's on the chopping block.
2019-12-23 09:49:29 -08:00
Erin Call
3eb90651d1 Rough-draft upgrade settings documentation [#8] 2019-12-23 09:49:01 -08:00
Erin Call
044caebafd Omit empty CA data from the kubeconfig [#29] 2019-12-20 16:14:17 -08:00
Erin Call
dc4ecb6b91 Allow an empty Certificate setting [#29]
I just plain misunderstood how kubernetes CAs worked!
2019-12-20 16:11:20 -08:00
Erin Call
cab3a8ae95 Advise that some settings aren't yet functional [#8] 2019-12-20 10:37:32 -08:00
Erin Call
197a377a82 Prod maintainers to keep the docs and code in sync [#8]
Offhand I don't see a way to ensure it programmatically, but I feel like
I should at least make an attempt.
2019-12-20 10:05:50 -08:00
Erin Call
aed59c251e Namespace is relevant in helm lint [#8]
...Or at least, the namespace is passed around in helm's linting code. I
haven't proven that there's a case where omitting the namespace can
cause a linting problem, but I've seen enough to go ahead and document
the setting.
2019-12-20 09:56:51 -08:00
Erin Call
2d4688f99b Merge branch 'master' into useful-readme 2019-12-20 09:42:28 -08:00
Erin Call
420014f9e5 Rename the setting description files to _settings [#8] 2019-12-20 09:41:36 -08:00
Erin Call
285af8a317 Rough draft of an example lint stanza [#8] 2019-12-19 16:37:04 -08:00
Erin Call
485eb4375c Rename "delete" to "uninstall" [#8]
Helm 3 renamed the command, and I didn't realize it until just now.

See also 161960e, where it was renamed in the code.
2019-12-19 15:24:11 -08:00
Erin Call
80b26434f5 Merge pull request #21 from pelotech/helm-delete
Run the `helm delete` command when HELM_COMMAND or DRONE_EVENT is "delete"
v0.4.0
2019-12-19 15:19:44 -08:00
Erin Call
161960e55e Rename Delete to Uninstall [#4]
Helm3 renamed its delete command to uninstall. We should still accept
helm_command=delete for drone-helm compatibility, but the internals
should use Helm's preferred name.
2019-12-19 15:04:33 -08:00
Erin Call
5e2f2f3dc6 First draft of a useful README [#8] 2019-12-19 14:53:53 -08:00
Erin Call
f373004bd2 Merge branch 'master' into helm-delete 2019-12-19 14:49:55 -08:00
Joachim Hill-Grannec
0c5576164d Merge pull request #22 from pelotech/no-license
Remove LICENSE
2019-12-19 13:45:33 -08:00
Erin Call
f4ce27f40e Merge branch 'master' into no-license 2019-12-19 13:43:47 -08:00
Joachim Hill-Grannec
6452a01c82 update drone.yml to publish to docker hub 2019-12-19 13:38:04 -08:00
Erin Call
b091bc2a95 No license until there's consensus on which to use 2019-12-19 13:35:09 -08:00