Files
kustomize/functions/examples/validator-kubeval
Davanum Srinivas 9a61304919 bump k8s.io/kube-openapi, drop github.com/mailru/easyjson
Updates k8s.io/kube-openapi from v0.0.0-20241212222426-2c72e554b1e7 to
v0.0.0-20260502001324-b7f5293f4787 across api, kyaml, and kustomize modules,
then propagates the change across all workspace modules via make workspace-sync.

The new kube-openapi release switched from the monolithic go-openapi/swag
(v0.23.0) to the refactored split sub-modules (go-openapi/swag/* v0.25.4).
The old swag carried github.com/mailru/easyjson as a dependency; the new
sub-modules do not. After go mod tidy, easyjson and josharian/intern are
fully removed from all three module graphs.

Also upgraded: github.com/google/gnostic-models v0.6.9 → v0.7.0 (pulled
in by the same kube-openapi update).

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-05-02 10:47:24 -04:00
..

Validation

This is an example of implementing a validation function against kubeval.

Function implementation

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.

Function configuration

A number of settings can be modified for kubeval in the function spec. See the API struct definition in main.go for documentation.

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 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 and run:

kustomize fn run local-resource/

This will return success (no output).