From e2e9181bed207b65e88ef3b72d05640d19cae61c Mon Sep 17 00:00:00 2001 From: yugo kobayashi Date: Thu, 11 Aug 2022 19:41:44 +0000 Subject: [PATCH] add a warning to missing field in FunctionSpec --- kyaml/fn/runtime/runtimeutil/functiontypes.go | 5 +++-- kyaml/fn/runtime/runtimeutil/runtimeutil_test.go | 16 +++++++++++++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/kyaml/fn/runtime/runtimeutil/functiontypes.go b/kyaml/fn/runtime/runtimeutil/functiontypes.go index 39cb24195..edadff204 100644 --- a/kyaml/fn/runtime/runtimeutil/functiontypes.go +++ b/kyaml/fn/runtime/runtimeutil/functiontypes.go @@ -10,6 +10,7 @@ import ( "strings" "sigs.k8s.io/kustomize/kyaml/yaml" + k8syaml "sigs.k8s.io/yaml" ) const ( @@ -224,7 +225,7 @@ func getFunctionSpecFromAnnotation(n *yaml.RNode, meta yaml.ResourceMeta) *Funct for _, s := range functionAnnotationKeys { fn := meta.Annotations[s] if fn != "" { - err := yaml.Unmarshal([]byte(fn), &fs) + err := k8syaml.UnmarshalStrict([]byte(fn), &fs) if err != nil { fmt.Fprintf(os.Stderr, "%v\n", err) } @@ -239,7 +240,7 @@ func getFunctionSpecFromAnnotation(n *yaml.RNode, meta yaml.ResourceMeta) *Funct if err != nil { fmt.Fprintf(os.Stderr, "%v\n", err) } - err = yaml.Unmarshal([]byte(s), &fs) + err = k8syaml.UnmarshalStrict([]byte(s), &fs) if err != nil { fmt.Fprintf(os.Stderr, "%v\n", err) } diff --git a/kyaml/fn/runtime/runtimeutil/runtimeutil_test.go b/kyaml/fn/runtime/runtimeutil/runtimeutil_test.go index aff7c6239..8fe8ac53b 100644 --- a/kyaml/fn/runtime/runtimeutil/runtimeutil_test.go +++ b/kyaml/fn/runtime/runtimeutil/runtimeutil_test.go @@ -1278,9 +1278,23 @@ container: image: foo:v1.0.0 `, }, + { + name: "fn missing spell", + resource: ` +apiVersion: v1beta1 +kind: Example +metadata: + annotations: + config.kubernetes.io/function: |- + containeer: + image: foo:v1.0.0 +`, + expectedFn: `{}`, + }, // legacy fn style - {name: "legacy fn meta", + { + name: "legacy fn meta", resource: ` apiVersion: v1beta1 kind: Example