# Validation This is an example of implementing a validation function against [kubeval](https://github.com/instrumenta/kubeval). ## Function implementation The function is implemented as an [image](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. ### Function configuration A number of settings can be modified for `kubeval` in the function `spec`. See the `API` struct definition in [main.go](image/main.go) for documentation. ## Function invocation The function is invoked by authoring a [local Resource](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. ## Running the Example 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](local-resource/example-use.yaml) and run: kustomize fn run local-resource/ This will return success (no output).