about summary refs log tree commit diff
path: root/templater (follow)
AgeCommit message (Collapse)AuthorFilesLines
2019-09-04 chore: Update copyright headers to 2019Vincent Ambo4-4/+4
2019-09-04 fix(context): Ensure resource set paths are made absoluteVincent Ambo1-5/+4
Resolving of files (for `insertFile` and `insertTemplate`) should always be relative to the resource set location, the previous behaviour was considered a bug. This is fixed by ensuring that resource set paths are absolute at context loading time.
2019-05-01 test(templater): Add a test for the `insertTemplate` functionJude Venn2-0/+25
2019-05-01 feat(templater): Add insertTemplate functionJude Venn1-0/+8
Similar to insertFile, but runs the templating against the file before inserting. This is useful for sharing common config between yaml files, e.g. volume mounts in a deployment.yaml and cronjob.yaml, and it's useful to be able to use the `configHash` annotation pattern with a templated configmap.yaml
2018-12-11 feat(main): Support specifying kubectl args in ResourceSetsMartin Lehmann1-0/+2
2018-07-14 test(templater): Add a test for the `default` template functionVincent Ambo2-0/+18
2018-07-14 feat(templater): override sprig default function with guarded alternativePhillip Johnsen1-0/+6
These changes overrides the `default` function provided by sprig with an alternative to retrieve variable values from variables that might not have been declared at all. Referencing a variable in a template that is not declared, will lead to the underlying templating functionality raising an error, causing kontemplate to exit. The override alternative to `default` accepts a second string argument with the variable name. If the variable in question has not been declared the first argument's value would be returned, just as the original `default` function does.
2018-06-09 feat(templater): Support single-template resource setsVincent Ambo1-23/+41
Supports resource sets in which the `path` is pointed at a single template file. The example has been updated with ... an example of this. This closes #81.
2018-06-09 refactor(context): Implement more explicit merging of variablesVincent Ambo1-2/+0
The hierarchy for loading variables was previously not expressed explicitly. This commit refactors the logic for merging variables to explicitly set the different layers of variables as values on the context object and merge them for each resource set in `mergeContextValues`.
2018-05-05 fix(templater): add baseDir to gitHead cmd so that directory is overwrittennoqcks1-8/+8
This makes it so that when gitHead is called in a template the git hash that is returned is the hash of the folder containing the template, not the hash of the folder where kontemplate is called.
2018-03-29 refactor(templater) Refactor templator to use exec.Command directly instead ↵noqcks1-1/+1
of executing in sh
2018-03-29 feat(templater) Add a template function to insert surrounding repo's Git hashnoqcks1-0/+9
A template function has been added that allows one to template the Git hash of the surrounding repo. This is useful to be able to inspect the deployment revision of an object in Kubernetes.
2018-03-09 refactor: Remove old error handling libraryVincent Ambo3-49/+5
Removes the old error handling library and switches to plain fmt.Errorf calls. There are several reasons for this: * There are no useful types or handling here anyways, so output format is the only priority. * Users don't care about getting stacktraces. * My emotional wellbeing. Fin de siècle.
2018-03-09 refactor(templater): Pass resource set path to insertFile functionVincent Ambo2-27/+10
This is actually several refactors in one: * rename "fileContent" function to "insertFile" * pass the resource set path to the "insetFile" function * update docs and example with a pipeline including indentation adjustments for the inserted file
2018-03-09 feat(templater): Added support for file includeNiklas Wik2-0/+25
Adds a 'fileContent' template function to insert the literal contents of a file specified in the template. Signed-off-by: Niklas Wik <niklas.wik@nokia.com>
2017-11-21 feat(license): Relicense under GPLv3Vincent Ambo4-3/+42
All further kontemplate source code changes and releases will happen under the GPLv3. Previous releases are still available under the MIT license.
2017-10-27 refactor templater: Add explicit note about empty-rs warningsVincent Ambo1-1/+4
Due to an interesting combination of an error not being handled and Go initialising everything with what it thinks should be the default, non-existent resource sets have been gracefully handled already. This makes this accidental fix explicit. Fixes #90
2017-10-20 feat templater: Add IP lookup functionStefan Magnus Landrø2-0/+35
This introduces support for looking up IP addresses using local DNS resolver. Function will return a list of all IP addresses associated with hostname. Further processing can be achieved using supported list template functions.
2017-08-31 fix templater: Don't template default.yml filesVincent Ambo1-2/+4
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
2017-07-13 refactor templater: Use resource set 'path' field when loading filesVincent Ambo1-2/+3
2017-06-11 fix templater: Ignore slash-suffixes on includes/excludesVincent Ambo1-0/+1
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
2017-06-11 fix main: Fix 'kontemplate template' outputVincent Ambo1-2/+2
2017-06-11 refactor templater: Add intermediate type to represent rendered RSesVincent Ambo1-14/+35
As a first step in resolving #51 this refactors the `templater` package to return rendered resource sets as a distinct type. This also fixes #56
2017-05-04 feat templater: Warn if no valid resource sets are includedVincent Ambo1-0/+5
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
2017-04-04 fix templater: Don't try to template default value filesVincent Ambo1-1/+5
2017-04-04 feat templater: Fail if values are missingVincent Ambo3-1/+21
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
2017-02-20 fix pass: Trim leading & trailing whitespaceVincent Ambo1-1/+4
2017-02-14 chore templater: Use new util.Merge funcVincent Ambo1-11/+2
2017-02-09 feat templater: Add 'pass' lookup functionVincent Ambo2-0/+33
This introduces support for looking up secret values in the 'pass' command line tool (https://www.passwordstore.org/). Values like passwords can be interpolated from pass and even more complex structures like certificates for Kubernetes Secrets can be retrieved and base64- encoded as necessary. Fixes #2
2017-02-09 fix templater: Don't fail with two identical stack tracesVincent Ambo1-1/+2
2017-02-08 feat templater: Add applyLimits testsVincent Ambo1-0/+138
2017-02-08 fix templater & ctx: Correctly check resource set parentVincent Ambo1-1/+1
2017-02-08 fix templater: Guard against empty parent referenceVincent Ambo1-1/+1
2017-02-08 feat context: Add support for resource set collectionsVincent Ambo1-5/+5
A resource set collection is a resource set with an addition 'include' array configured. It is a short-hand for importing multiple resource sets from the same folder and for excluding/including them as a group. See https://github.com/tazjin/kontemplate/issues/9 for more information. Closes #9
2017-02-08 feat templater: Add ability to exclude resource setsVincent Ambo1-21/+47
* renamed --limit to --include (-i) * added --exclude (-e) Kontemplate users can now explicitly include and exclude certain resource sets. Excludes always override includes. Closes #11
2017-02-08 feat template: Add additional template functionsVincent Ambo1-1/+13
This adds the Go template functions from [sprig][] as well as a custom `json` function that can interpolate any data as a JSON object - very useful for adding arrays of data in JSON format into a variable: ``` certificateDomains: - oslo.pub - tazj.in annotations: acme/certificate: {{ .certificateDomains | json }} annotations: acme/certificate: ["oslo.pub", "tazj.in"] ``` [sprig]: https://godoc.org/github.com/Masterminds/sprig
2017-02-08 fix templater: Guard against empty values mapVincent Ambo1-0/+5
2017-02-08 feat main: Add proper CLI supportVincent Ambo1-20/+50
Adds a basic CLI structure with a single "run" command that takes a --file (-f) and --limit (-l) flag. --limit can be used to only output certain resource sets. Closes #4
2017-02-08 chore: Better example & gofmtVincent Ambo1-5/+4
2017-02-08 feat templater: Add initial templating supportVincent Ambo1-0/+97