Instead of passing the rendered output of all resource sets to kubectl
simultaneously, build upon the previous commit and pass resource sets
individually to new instances of kubectl.
This resolves#51
Adds a simple Docker image that can be used in CI pipelines to deploy
`kontemplate`-based environments.
This image contains kontemplate and all of its dependencies (including
pass as an optional dependency).
Adds a Homebrew formula that downloads and installs the 1.0.2 binary release.
Users should be able to "tap" this formula from OS X, the README will be updated in a separate commit.
This fixes#41
Replace urfave/cli with the kingpin[1] library.
It has slightly more sensible argument validation than the other Go libraries.
Additionally I've opted for removing the '-f / --file' flag in favour of positional arguments to commands.
A previous command like `kontemplate template -f somefile.yml` is now just `kontemplate template somefile.yml`. All other arguments remain the same.
[1]: https://github.com/alecthomas/kingpin
After filtering resource sets, check whether any resource sets "survived".
Otherwise it can be assumed that the user specified invalid exclude/include
combinations and should be warned about that.
Fixes#35
This adds functionality to specify default values directly in resource sets.
The idea is that users can create a file called `values.yaml` or `values.json`
in a resource set's folder and have all variables specified in that file be
automatically merged into the resource set variables with the lowest priority.
This fixes#25
This fixes#30 (to a degree)
Golang's template package now has an option for failing if template variables
are missing: https://golang.org/pkg/text/template/#Template.Option
This updates the templater code to make use of that option and return the
errors encountered during templating.
This fixes#1
Users of kontemplate may expect variables defined on the parent resource to be
inherited by children.
This implements that functionality. Values defined twice are overwritten by the
child's definition.
Fixes#20
For usernames and passwords containing special characters the URL parameters
must be escaped.
Because the entire URI is just query parameters I've opted for using net/url.Values
for the entire URI.
Fixes#1