7697d7561d
Recently, Docker.io imposed container registry pull limits, and we have exceeded them. This has impacted continuous-integration testing in this repository. This change updates our base Go images from those hosted on docker.io to gcr.io in order to circumnavigate pull restrictions. Change-Id: I2a990846b1a49010ff2a403d99413d8162322804 Signed-off-by: Drew Walters <andrew.walters@att.com> |
||
---|---|---|
.. | ||
image | ||
local-resource | ||
Dockerfile.sample | ||
main.go | ||
Makefile | ||
README.md |
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