After the change from #84 default variable files with the '.yml'
extension got templated as resource set templates accidentally.
This resolves the issue by moving the list reserved default file names
to a common place and reusing it in both the templater and context pkg.
This fixes#85
In other places in Kontemplate that deal with YAML files, both the
".yaml" and ".yml" extension are supported.
This fixes context loading code to support that for resource set
variables, too.
This fixes#83
This release comes with some new features, usability improvements and
a better build & release process.
Features:
* Documentation has been improved significantly, check out the new
[README][] and follow the links within!
* Extra variables can now be loaded from files on disk. Simply specify
a list of YAML/JSON files under the 'import' key in your cluster
context file. Check out #66 for details!
* Resource set paths can now be overridden by users. By default it is
assumed that the path to a resource set is the same as its name,
however this is now user-controllable.
This means the same resource set can be included multiple times
under different names, for easier including/excluding. See #71 for
details!
* Kontemplate is currently getting a website that is under construction
at [kontemplate.works][] - feel free to check it out and
[give feedback][]!
Fixes:
* Windows release binaries now have the correct filename
* Several potential warning and error messages have been improved
Release binaries are signed with GPG key `66F505681DB8F43B` which is
verified on my Github profile.
[README]: https://github.com/tazjin/kontemplate/blob/master/README.md
[kontemplate.works]: http://kontemplate.works/
[give feedback]: https://github.com/tazjin/kontemplate-website/issues
Instead of signing the binary and adding the signature in the release
tarball, keep the GPG-signatures *outside* of the tarball.
This makes it easier to use the built-in GPG-signature verification
features of package managers such as pacman.
Documents the structure of resource sets and the fields necessary for including
them in cluster configurations.
Also adds some words about nested resource sets and the like.
Adds documentation for `if` and `range` statements in Go templates
and also more explicitly points people at the Go documentation for
more information.
Instead of always inferring the path at which files in a resource set
are located, let users override the path by specifying a `path` field.
This makes it possible to add the same resource set multiple times
with different values while still keeping distinct names for
addressability (for example when using include/exclude).
This fixes#70
Kontemplate context specifications can now load extra variables from YAML
or JSON files by specifying a list of files (relative to the context file)
under the `import` key.
This release features some cleanup and under-the-hood changes, as well
as "ecosystem-features" that don't directly affect the way Kontemplate
itself functions.
* Resource-sets are now passed on to kubectl in individual
invocations. This means that kubectl errors can be scoped to
individual resource set files and issues such as #51 are less of a
problem.
* A Dockerfile is provided and published at `tazjin:kontemplate` on
Docker Hub. This image contains `kontemplate`, `kubectl` and `pass`
and can be used - for example - as an image for a step in a CI
system.
* Kontemplate is now available on Homebrew, check the README for
installation instructions.
* If different resource sets don't contain `---` separators in YAML,
`kubectl` calls will no longer fail. (#51)
* Autocompleted trailing slashes in shells are now filtered from
include & exclude lists to enhance the CLI experience slightly.
To prevent situations where a shell auto-appends a slash to an
include/exclude specification on the CLI, trailing slashes in those
string lists are now trimmed.
This fixes#54
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