cmd/config: Add examples and tutorials for config functions

- Add examples under `functions`
- Add built-in tutorial for functions
This commit is contained in:
Phillip Wittrock
2019-11-26 20:08:23 -08:00
parent 5876a8cce0
commit dc66de6bf3
34 changed files with 1524 additions and 2 deletions

View File

@@ -0,0 +1,50 @@
# Template HereDoc
This is an example of implementing a template function using a heredoc.
This example uses the simplest approach for building abstractions.
## Function implementation
The function is implemented as an [image](image), and built using `make image`.
The template is implemented as a heredoc, which substitutes environment variables
into a static string.
This simple implementation uses `kustomize config run-fns wrap --` to perform the
heavy lifting of implementing the function interface.
- parse functionConfig from stdin into environment variables
- merge script output with items from stdin
## Function invocation
The function is invoked by authoring a [local Resource](local-resource)
with `metadata.configFn` and running:
kustomize config run-fns local-resources/
This generates the `local-resources/config` directory containing the template output.
- the template output may be modified by adding fields -- such as initContainers,
sidecarConatiners, cpu resource limits, etc -- and these fields will be retained
when re-running `run-fns`
- the function input `example-use.yaml` may be changed and rerunning `run-fns` will update
only the parts changed in the template output.
## Running the Example
Run the config with:
kustomize config run-fns local-resource/
This will create the directory
local-resource/config
Add an annotation to the StatefulSet Resource and change the replica count of the
`kind: CockroachDB` Resource in `example-use.yaml`. Rerun the template:
kustomize config run-fns local-resource/
The replica count should be updated, but your annotation should remain.