Commit graph

45 commits

Author SHA1 Message Date
Steve Wilkerson
79a3db0a63 feat(helm): add support for required properties
Adds the `required` function in enginge.go to support required
properties in values.yml. When a chart developer wishes to specify
intent in requiring a value, they can use this function to declare
an error message that gets returned when chart rendering fails
when a required value is not present in values.yml.

Closes #1580
2017-03-08 12:49:23 -06:00
Fabian Ruff
43a6bcff40 Add .Template.BasePath to template system 2017-03-06 23:19:49 +01:00
Jack Zampolin
fc60d51be9 Add toToml function 2017-03-01 10:19:21 -08:00
YuviPanda
5c52fe6ad6 Add ToJson and FromJson template functions 2017-02-21 00:34:17 -08:00
Matt Butcher
cb0a6c7e07
feat(tiller): add {{.Capabilities}} object
This adds the {{.Capabilities}} object to the template variables so that
chart authors can write charts that are aware of teh Kubernetes
capabilities of the current cluster.

Closes #1608
2017-01-09 18:09:20 -07:00
Matt Butcher
d8540d78f1
feat(tiller): add fromYaml to template functions
This adds a fromYaml template function.

Closes #1604
2016-12-14 16:47:25 -07:00
Andrew Stuart
6760aa1588
Add Lines method, remove path utils (Sprig pr) 2016-12-12 17:19:47 -07:00
Andrew Stuart
5d58b7792c
Fix erroneous import 2016-12-09 14:06:56 -07:00
Andrew Stuart
9771973888
Add AsSecrets, AsConfig methods for Files object. Move ToYaml to chartutil 2016-12-09 12:53:53 -07:00
Adnan Abdulhussein
f97dbe33da fix(tests): prefix template names with "templates/" 2016-10-21 16:12:41 -07:00
Matt Butcher
36f7eb0b2a fix(linter): add engine.FuncMap so linter can use real function list
This adds a function engine.FuncMap that returns a function mapping that
better represents the functions passed to a template. The linting logic
is reconfigured to use this function instead of the sprig.FuncMap
function.

Closes #1366
2016-10-14 16:28:43 -06:00
Matt Butcher
431cc46cad feat(tiller): add toYaml template function
This adds the function toYaml to the Engine template functions.

Closes #1225
2016-09-26 14:33:54 -06:00
joe2far
72e7b22999 minor engine unit test fix 2016-08-30 17:13:34 +01:00
vaikas-google
492dbb3791 Add support for NOTES.txt file 2016-08-29 13:11:16 -07:00
Matt Butcher
84761a559a fix(helm): remove extra linter output
Closes #1076
2016-08-23 11:01:18 -06:00
Matt Butcher
b7945d05c4 ref(templates): change GetString to Get
This changes "pkg/chartutil".Files.Get to return a string, removes
"pkg/chartutil".Files.GetString, and adds
"pkg/chartutil".Files.GetBytes.

Closes #1020
2016-08-03 13:01:13 -06:00
Matt Butcher
9718c9e7c8 feat(engine): add 'partial' function
This adds a context-aware template function called 'partial' that will
allow rendering other templates in a chart into a string value, which
can then be piped to other functions. Usage is something like
'{{partial 'path/to/template.yaml' | indent 2}}'

This might be a bad idea.

Closes #1005
2016-08-01 16:30:34 -06:00
Matt Butcher
033dbfe75e feat(tiller): add Files map to templates
Templates can now access the non-template files in a chart by using
the '{{.Files}}' map inside of a template.

Relates to #950
2016-07-29 16:04:48 -06:00
Matt Butcher
95eeba3805 fix(tiller): merge -f values correctly
This fixes a bug in which passed-in values files were not correctly
merged into the chart's default values YAML data. I believe it also
fixes some other prioritization bugs in values merging.

The existing unit test was wrong (see TestCoalesceValues). It is
fixed now. Also added more tests to simulate issue #971.

In the course of writing this, I removed some vestigial code as
mentioned in #920.

Closes #971
Closes #920
2016-07-21 16:00:57 -06:00
Adam Reese
a14e76a65c chore(*): add canonical import path annotation
https://golang.org/doc/go1.4#canonicalimports
2016-07-11 22:59:55 -06:00
Matt Butcher
73a2890277 fix(engine): change template naming
Template paths were relative to the chart that contained them, which
meant that all templates were named 'template/SOMETHING'. This made it
trivially easy to hit namespace collisions as in #933.

Template path names are essentially opaque strings so this patch simply
changes them to be qualified by parent chart.
2016-07-07 11:39:47 -06:00
Matt Butcher
532f03ec78 feat(tiller): add .Template object in templates
This allows templates to access information about the template file.
Right now, the template can only access the .Template.Name, which is the
chart-relative path to the current template.

Closes #894
2016-06-28 16:18:08 -06:00
Matt Butcher
ab4e20c278 Merge pull request #888 from technosophos/fix/887-no-value-fix
fix(tiller): stop printing <no value> when var is missing
2016-06-27 14:07:45 -06:00
Matt Butcher
96ac6ebc6c fix(tiller): stop printing <no value> when var is missing
Instead of printing "no value", this prints an empty string by
default, but adds a Strict flag on the engine, which (if true)
will cause a template render to error out if a value is not supplied.

Strict is set to false so that developers can instead use `default` to
set default values.
2016-06-24 16:25:43 -06:00
Miguel Martinez
2eff17cb6d Removing debugging line 2016-06-24 12:11:12 -07:00
Matt Butcher
225d3a8adc test(engine): add test case for deep release passing 2016-06-24 12:06:52 -06:00
Matt Butcher
e00f774a5d fix(engine): remove debugging output 2016-06-24 12:06:52 -06:00
Matt Butcher
22ac61469f feat(*): add Values namespace to templates
This adds the .Values namespace qualifier to all values
2016-06-24 12:06:52 -06:00
Matt Butcher
e757b24aed fix(*): add license header 2016-06-22 12:28:45 -06:00
Matt Butcher
60f5341b91 feat(chartutil): support global variables
This provides support for "global" variables. It does this by
declaring "global" to be a special namespace. It then copies this
namespace into every subchart, coalescing it into any "global"
namespace found there.

The net result is that if "global.foo" is set in the YAML file, it
will be available to every chart/subchart as ".global.foo" regardless of
where that chart is in the subchart tree.
2016-06-14 11:24:09 -06:00
Matt Butcher
490cef784c fix(tiller): refactor template render to use chartutil. 2016-06-13 13:11:39 -06:00
Matt Butcher
e8109048a9 fix(chartutil): move values coalescing into chartutil 2016-06-09 14:10:12 -06:00
Adam Reese
d95a144563 fix(chartutil): fix nil error on values
Fixes: https://github.com/kubernetes/helm/issues/803
2016-06-09 11:09:00 -07:00
Matt Butcher
9ca8c27e16 fix(*): change TOML to YAML 2016-06-06 21:12:36 -06:00
Adam Reese
818c878700 chore(*): use k8s.io as the import path 2016-06-06 17:17:04 -07:00
Matt Butcher
6db7c39b84 feat(helm, tiller): implement k8s portion of install
This commit finally ties `helm install` together with the Kubernetes
client library to make an end-to-end trip.

There were several small fixes to go on both client and server side,
along with some changes to proto to support better error reporting.

The alpine chart has been updated to exhibit how the new Helm works.
2016-05-04 17:27:00 -06:00
Matt Butcher
f098cb6fb6 fix(*): rewrite import paths 2016-04-27 21:50:15 -06:00
Matt Butcher
ba22a18fad fix(engine): coalesce values in templates 2016-04-22 15:19:29 -06:00
Matt Butcher
07312c68e9 fix(engine): support chart template recursion 2016-04-21 15:52:16 -06:00
Matt Butcher
6077968341 feat(engine): add recursive template resolution 2016-04-21 14:50:16 -06:00
Matt Butcher
50f4349512 feat(tiller): add template and release to install 2016-04-18 17:28:04 -06:00
Matt Butcher
fa6a33c349 feat(storage): add basic implementation of storage
This is an in-memory storage layer for storing releases. This will be
superseded by the Kubernetes ConfigMap implementtion.
2016-04-13 15:53:51 -06:00
Matt Butcher
b04a1cc7d4 fix(tiller): set up Tiller environment correctly
And structure the tests better.
2016-04-13 11:55:27 -06:00
Matt Butcher
913905a54f fix(tiller): change environment.Engine signature 2016-04-12 17:04:49 -06:00
Matt Butcher
fa387494fb feat(engine): add template engine 2016-04-12 17:04:49 -06:00