Commit graph

252 commits

Author SHA1 Message Date
Erin Call 9f9e83da99
Merge pull request #35 from pelotech/testplan
Add omitted plan tests
2019-12-26 12:59:54 -08:00
Erin Call 39aea4c8dd
Merge branch 'master' into testplan 2019-12-26 12:58:46 -08:00
Erin Call 7e25218945
Merge pull request #36 from pelotech/kubeconfig-tests
Validation tests for the kubeconfig template
2019-12-26 12:58:27 -08:00
Erin Call 3b85c38714
Test yaml validity without a new dependency [#15]
It turns out testify already depends on yaml, so we aren't adding
anything new by using it here.
2019-12-26 12:53:36 -08:00
Erin Call 1422ec77a4
Merge branch 'master' into kubeconfig-tests 2019-12-26 12:50:00 -08:00
Erin Call 2a13fff548
Don't check the generated config's yaml syntax [#13]
See discussion on https://github.com/pelotech/drone-helm3/pull/36 --it
doesn't really make sense to add a dependency on yaml just for testing.
2019-12-26 12:39:02 -08:00
Erin Call d53a1ed942
Merge branch 'master' into testplan 2019-12-26 12:26:07 -08:00
Erin Call 167b53691b
Put HelmCommand in Help, not run.Config [#15] 2019-12-26 12:23:56 -08:00
Erin Call b1899dee56
Merge remote-tracking branch 'origin/master' into help-by-default 2019-12-26 12:23:14 -08:00
Erin Call fc3bfc466a
Merge pull request #32 from pelotech/config-fixup
Clarify and improve internal/helm.Config
2019-12-26 12:23:00 -08:00
Erin Call 8f2d4bec49
Merge branch 'master' into testplan 2019-12-26 12:08:30 -08:00
Erin Call b2066961e1
Merge branch 'master' into kubeconfig-tests 2019-12-26 11:55:32 -08:00
Joachim Hill-Grannec 253a4465f8
Merge branch 'master' into config-fixup 2019-12-26 11:36:55 -08:00
Joachim Hill-Grannec 8857782826
Merge pull request #30 from pelotech/noncompulsory-certificate
Make the Certificate setting optional
2019-12-26 11:36:38 -08:00
Erin Call 41e9e42239
Emit a trailing newline on execution error [#15]
Just something I noticed while testing the help command's error case.
2019-12-26 11:34:07 -08:00
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