Resource templating¶
Experimental status
This is an experimental feature, and implementation could change slightly in the next versions.
Info
Templating was disabled by default in v0.1.*
but is now enabled by default since v0.2.1
.
Chainsaw can apply transformations to the resources before they are processed by the operation.
This is useful when a resource needs some runtime configuration.
Templating must be enabled at the configuration, test, step, or operation level for the templating process to kick in. Alternatively, templating can be enabled using the --template
flag when invoking chainsaw from the command line.
Note
Unlike assertion trees, templating can only be specified in leave nodes of the YAML tree.
Example¶
The test below will create, assert, and delete a ConfigMap
with a dynamic name
configured at runtime using the $namespace
binding.
apiVersion: chainsaw.kyverno.io/v1alpha1
kind: Test
metadata:
name: values
spec:
steps:
- try:
- apply:
resource:
apiVersion: v1
kind: ConfigMap
metadata:
name: ($namespace)
- assert:
resource:
apiVersion: v1
kind: ConfigMap
metadata:
name: ($namespace)
- delete:
ref:
apiVersion: v1
kind: ConfigMap
name: ($namespace)