* Change templater image tag from dev to latest * Change replacement-transformer image tag from dev to latest * Change Makefile to build images with tag latest Change-Id: Iff074d6fe771cce48dae7190fbc69cc437138817 Signed-off-by: Sreejith Punnapuzha <sreejith.punnapuzha@outlook.com>
Templater function
This plugin is an implementation of a templater function written using go and uses the kyaml
and airshipctl libraries for parsing the input and writing the output.
Function implementation
The function is implemented as an image, and built using make image.
Function invocation
The function is invoked by authoring a Local Resource
with metadata.annotations.[config.kubernetes.io/function] and running:
kustomize fn run local-resource/
This exits non-zero if there is an error.
Running the Example
Run the function with:
kustomize fn run local-resource/
The generated resources will appear in local-resource/
$ cat local-resource/*
apiVersion: metal3.io/v1alpha1
kind: BareMetalHost
metadata:
name: node-1
spec:
bootMACAddress: 00:aa:bb:cc:dd
apiVersion: metal3.io/v1alpha1
kind: BareMetalHost
metadata:
name: node-2
spec:
bootMACAddress: 00:aa:bb:cc:ee
...
Configuration file format
Templater configuration resource is represented as a standard
k8s resource with Group, Version, Kind and Metadata header. Templater
configuration is defined using template and values fields with
following structure.
values:
hosts:
- macAddress: 00:aa:bb:cc:dd
name: node-1
- macAddress: 00:aa:bb:cc:ee
name: node-2
template: |
{{ range .hosts -}}
---
apiVersion: metal3.io/v1alpha1
kind: BareMetalHost
metadata:
name: {{ .name }}
spec:
bootMACAddress: {{ .macAddress }}
{{ end -}}
values defines the substituion value as Map.
template defines the template with placeholders to substitue the value from the
values Map