diff --git a/api/internal/plugins/builtinconfig/transformerconfig.go b/api/internal/plugins/builtinconfig/transformerconfig.go index c539c290d5..82883e8e09 100644 --- a/api/internal/plugins/builtinconfig/transformerconfig.go +++ b/api/internal/plugins/builtinconfig/transformerconfig.go @@ -6,6 +6,7 @@ package builtinconfig import ( "log" "sort" + "strings" "sync" "sigs.k8s.io/kustomize/api/ifc" @@ -78,8 +79,26 @@ func MakeDefaultConfig() *TransformerConfig { // MakeTransformerConfig returns a merger of custom config, // if any, with default config. func MakeTransformerConfig( - ldr ifc.Loader, paths []string) (*TransformerConfig, error) { + ldr ifc.Loader, configurations []string) (*TransformerConfig, error) { t1 := MakeDefaultConfig() + if len(configurations) == 0 { + return t1, nil + } + var paths []string + for _, configuration := range configurations { + if !strings.Contains(configuration, "\n") && !strings.Contains(configuration, "\r") { + paths = append(paths, configuration) + continue + } + config, err := makeTransformerConfigFromBytes([]byte(configuration)) + if err != nil { + return nil, err + } + t1, err = t1.Merge(config) + if err != nil { + return nil, err + } + } if len(paths) == 0 { return t1, nil } diff --git a/api/krusty/customconfig_test.go b/api/krusty/customconfig_test.go index a3d5253626..08002b92c4 100644 --- a/api/krusty/customconfig_test.go +++ b/api/krusty/customconfig_test.go @@ -336,6 +336,45 @@ spec: `) } +func TestInlineConfig(t *testing.T) { + th := kusttest_test.MakeEnhancedHarness(t) + defer th.Reset() + + th.WriteF("/app/resource.yaml", ` +apiVersion: config/v1 +kind: MyKind +metadata: + name: testSvc +spec: + container: + image: crd-image +`) + th.WriteK("/app", ` +resources: +- resource.yaml +images: +- name: crd-image + newName: new-crd-image + newTag: new-v1-tag +configurations: +- |- + images: + - kind: MyKind + path: spec/container/image +`) + + m := th.Run("/app", th.MakeDefaultOptions()) + th.AssertActualEqualsExpected(m, ` +apiVersion: config/v1 +kind: MyKind +metadata: + name: testSvc +spec: + container: + image: new-crd-image:new-v1-tag +`) +} + func TestLabelTransformerConfig(t *testing.T) { testCases := []struct { name string