This is an example of implementing a validation function against kubeval.
The function is implemented as an image, and built using make image.
The function is implemented as a go program, which reads a collection of input Resource configuration, passing each to kubeval.
A number of settings can be modified for kubeval in the function spec. See
the API struct definition in main.go for documentation.
The function is invoked by authoring a local Resource
with metadata.annotations.[config.kubernetes.io/function] and running:
kustomize fn run local-resource/
This exists non-zero if kubeval detects an invalid Resource.
Run the validator with:
kustomize fn run local-resource/
This will return an error:
Resource invalid: (Kind: Service, Name: svc)
prots: Additional property prots is not allowed
Error: exit status 1
Now fix the typo in example-use.yaml and run:
kustomize fn run local-resource/
This will return success (no output).