Releases: tazjin/kontemplate
Version 1.8.0
This release of Kontemplate comes with the following improvements:
-
Add an
insertTemplate
function that works similarly toinsertFile
, but applies templating against the file before inserting it.Thanks to @judev for contributing this feature.
-
Ensure
insertFile
andinsertTemplate
act relative to resource set locations.Previously these functions acted relative to the working directory, which broke the ability to call kontemplate on a cluster file independent of the location.
-
Dependencies have been updated
This includes sprig and any new functions that might have been added in it, as well as the base tooling for the publicly available container image.
Release binaries are signed with GPG key 66F505681DB8F43B
which is verified on my Github profile. They are built repeatably and reproducibly using Nix.
Version 1.7.0
This release of Kontemplate comes with the following improvements:
-
Value merging logic has been rewritten to be more explicit. This fixes a regression (#142 and #153) that occured in version 1.6.0.
Please see #147 for implementation details.
From now on the precedence of variable overrides will follow this precedence hierarchy (in ascending order):
- Default values in resource sets.
- Values imported from files (via
import:
) - Global values in a cluster configuration
- Values set in a resource set's
include
-section - Explicit values set on the CLI (
--var
)
Thanks to @tommyJimmy87, @merlineus and @Artii for providing feedback on this change!
-
The template function
default
has been replaced with a new implementation that actually works in the absence of values, which previously caused an error in the templating engine due to the way it is configured. (#148)Thanks to @phillipj for contributing this change!
-
A new
--kubectl
command-line flag can be used to specify whichkubectl
executable should be invoked by Kontemplate (#145) -
An issue preventing variables specified on the CLI from containing a
=
-character has been fixed. (#144) -
Dependencies have been updated, which means that new template functions from sprig are now available. Please consult their changelog and function overview for more information.
Release binaries are signed with GPG key 66F505681DB8F43B
which is verified on my Github profile. They are built repeatably and reproducibly using Nix.
Version 1.6.0
This release of Kontemplate comes with the following improvements:
-
Variables can now be specified explicitly on the command line using one or more
--var foo=bar
flags. Variables specified in this way have the highest precedence and will override values set in other places.Thanks to @phillipj for contributing this feature; and to @n0madic for originally suggesting it!
-
File paths for additional variable imports can now point at absolute files.
This change lets users specify absolute file paths in the
import
directive of a cluster configuration.In addition to referencing files in other locations on a disk this also gives users the ability to specify "special" paths such as, for example,
/dev/stdin
to load additional variables (in JSON or YAML format) from kontemplate's standard input.Thanks to @cellofellow for nudging me in the right direction to get this implemented!
-
Resource sets can now have their
path
set to point at a single template file.Instead of having to create a hierarchy of directories just to template a single file, users can now include a single template file by setting the
path
value appropriately:Example:
context: some-context include: - name: some-resource path: some-resource.yaml
This will template the file
some-resource.yaml
from the same folder as the context configuration itself. -
Some code has been refactored to make the hierarchy of variable merges more explicit.
Release binaries are signed with GPG key 66F505681DB8F43B
which is verified on my Github profile. They are built repeatably and reproducibly using Nix.
In other notes I would like to mention that I am not currently using Kubernetes in any of my own projects as I find that the complexity of the project has tipped in a direction that I am not comfortable with.
This does not mean that kontemplate
is unmaintained in any way as the tool is generally applicable for use-cases other than Kubernetes resource templating, too.
Future versions of the project may brand it slightly more in the direction of a general-purpose templater, however Kubernetes-specific functionality will not be removed.
Please keep the issues & pull requests coming & thanks for using Kontemplate!
Version 1.5.0
This release of Kontemplate features two new features contributed by
users:
-
A new template function called
gitHEAD
has been added to
Kontemplate. This function inserts the git hash of, you guessed it,
theHEAD
of the git repository containing the template files.
Thanks to @noqcks for contributing this feature! -
The
kontemplate template
subcommand now supports a new flag
called--output
(-o
for short) which lets the user determine a
directory in which templated files should be placed. This feature
is potentially useful for multi-step templating or use-cases not
related to Kubernetes at all. Thanks to @salkin for contributing
this feature!
Release binaries are signed with GPG key 66F505681DB8F43B
which is
verified on my Github profile.
Version 1.4.0
This release comes with some operational project changes, fixes and
new features:
-
A new
fileContent
template function can be used to insert the
literal contents of a file in the resource set folder into a
template.This is useful to, for example, include literal config files in a
KubernetesConfigMap
. -
Kontemplate releases are now built using Nix.
This makes it trivial for Linux users with a Nix installation to
reproduce the release binaries. -
The project has been relicensed under the GPLv3. This change has no
effect for most users.
In addition to these changes some documentation has been fixed up and
a (WIP) example project for a Kontemplate deployment pipeline using
Gitlab CI is available on gitlab.com.
Release binaries are signed with GPG key 66F505681DB8F43B
which is
verified on my Github profile.
A personal note: There wasn't supposed to be another release of the
Go-version of this project, but some plans had to be pushed back due
to personal issues. Some related emotional baggage has also been
removed from this project.
Version 1.3.0
This release comes with minor usability improvements and features.
-
A new 'lookupIPAddr' template function is available for resolving DNS A records in templates. Thanks to @landro for the pull request!
-
Handling of "non-standard" resource set structures has been improved to result in better error messages and behaviour in several places.
Release binaries are signed with GPG key 66F505681DB8F43B
which is
verified on my Github profile.
Note: This is the last Kontemplate release that will be written in Go.
Rob Pike's art project has proven its point but I believe it is ethically questionable to continue on this path.
You can track #72 for the Rust-rewrite of Kontemplate.
Version 1.2.0
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.
Release version 1.1.0
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 containskontemplate
,kubectl
andpass
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.
Release binaries are signed with GPG key 66F505681DB8F43B
which is verified on my Github profile.
Release v1.0.2
This release contains no functional changes, but the attached build binaries are built repeatably as per #48.
This fixes an issue in which differing versions of the sprig templating library would cause different behaviours.
Release binaries are signed with GPG key 66F505681DB8F43B
which is verified on my Github profile.
Release v1.0.1
As is - of course! - tradition a small problem (#43) came up shortly after the
v1.0 release.
Fixes & features included in v1.0.1:
- a brand-new
PKGBUILD
for Arch Linux (it builds from git) - fixed an issue where kontemplate would not fail if kubectl failed.
Signed binaries are attached for Linux, OS X, Windows and FreeBSD.