mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-05-17 18:25:26 +00:00
Merge pull request #583 from monopole/fix560
Ignore empty fields targeted by transformations.
This commit is contained in:
@@ -18,6 +18,8 @@ package transformers
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type mutateFunc func(interface{}) (interface{}, error)
|
||||
@@ -53,6 +55,11 @@ func mutateField(
|
||||
v := m[pathToField[0]]
|
||||
newPathToField := pathToField[1:]
|
||||
switch typedV := v.(type) {
|
||||
case nil:
|
||||
log.Printf(
|
||||
"nil value at `%s` ignored in mutation attempt",
|
||||
strings.Join(pathToField, "."))
|
||||
return nil
|
||||
case map[string]interface{}:
|
||||
return mutateField(typedV, newPathToField, createIfNotPresent, fns...)
|
||||
case []interface{}:
|
||||
|
||||
@@ -162,10 +162,7 @@ func TestWithNil(t *testing.T) {
|
||||
m := &noopMutator{}
|
||||
err := mutateField(
|
||||
obj.Map(), []string{"spec", "template", "metadata", "labels", "vegetable"}, false, m.mutate)
|
||||
if err == nil {
|
||||
t.Fatalf("Expected error due to nil field.")
|
||||
}
|
||||
if err.Error() != "<nil> is not expected to be a primitive type" {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
if err != nil {
|
||||
t.Fatalf("Unexpected error: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user