update checker code in patchStrategicMerge

This commit is contained in:
yugo kobayashi
2022-08-28 16:53:36 +00:00
parent b4d25b1b26
commit 032bf3338e
3 changed files with 68 additions and 6 deletions

View File

@@ -7,8 +7,8 @@ import (
"bytes"
"encoding/json"
"fmt"
"strings"
"sigs.k8s.io/kustomize/kyaml/filesys"
"sigs.k8s.io/yaml"
)
@@ -218,7 +218,7 @@ func (k *Kustomization) FixKustomizationPostUnmarshalling() {
// FixKustomizationPreMarshalling fixes things
// that should occur after the kustomization file
// has been processed.
func (k *Kustomization) FixKustomizationPreMarshalling() error {
func (k *Kustomization) FixKustomizationPreMarshalling(fSys filesys.FileSystem) error {
// PatchesJson6902 should be under the Patches field.
k.Patches = append(k.Patches, k.PatchesJson6902...)
k.PatchesJson6902 = nil
@@ -226,8 +226,7 @@ func (k *Kustomization) FixKustomizationPreMarshalling() error {
if k.PatchesStrategicMerge != nil {
for _, patchStrategicMerge := range k.PatchesStrategicMerge {
// check this patch is file path select.
if strings.Count(string(patchStrategicMerge), "\n") < 1 &&
(patchStrategicMerge[len(patchStrategicMerge)-5:] == ".yaml" || patchStrategicMerge[len(patchStrategicMerge)-4:] == ".yml") {
if _, err := fSys.ReadFile(string(patchStrategicMerge)); err == nil {
// path patch
k.Patches = append(k.Patches, Patch{Path: string(patchStrategicMerge)})
} else {

View File

@@ -55,8 +55,7 @@ func RunFix(fSys filesys.FileSystem, w io.Writer) error {
return err
}
err = m.FixKustomizationPreMarshalling()
if err != nil {
if err := m.FixKustomizationPreMarshalling(fSys); err != nil {
return err
}

View File

@@ -32,6 +32,7 @@ func TestFixCommand(t *testing.T) {
tests := []struct {
name string
input string
files map[string]string
expected string
}{
{
@@ -170,6 +171,21 @@ kind: Kustomization
patchesStrategicMerge:
- deploy.yaml
`,
files: map[string]string{
"deploy.yaml": `
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
spec:
template:
spec:
containers:
- name: nginx
env:
- name: CONFIG_FILE_PATH
value: home.yaml`,
},
expected: `
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
@@ -183,6 +199,21 @@ patches:
patchesStrategicMerge:
- deploy.yml
`,
files: map[string]string{
"deploy.yml": `
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
spec:
template:
spec:
containers:
- name: nginx
env:
- name: CONFIG_FILE_PATH
value: home.yaml`,
},
expected: `
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
@@ -209,6 +240,21 @@ patchesStrategicMerge:
- name: CONFIG_FILE_PATH
value: home.yaml
`,
files: map[string]string{
"deploy.yaml": `
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
spec:
template:
spec:
containers:
- name: nginx
env:
- name: CONFIG_FILE_PATH
value: home.yaml`,
},
expected: `
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
@@ -239,6 +285,21 @@ patchesJson6902:
target:
kind: Deployment
`,
files: map[string]string{
"deploy.yaml": `
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
spec:
template:
spec:
containers:
- name: nginx
env:
- name: CONFIG_FILE_PATH
value: home.yaml`,
},
expected: `
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
@@ -310,6 +371,9 @@ kind: Kustomization
for _, test := range tests {
fSys := filesys.MakeFsInMemory()
testutils_test.WriteTestKustomizationWith(fSys, []byte(test.input))
for filename, content := range test.files {
require.NoError(t, fSys.WriteFile(filename, []byte(content)))
}
cmd := NewCmdFix(fSys, os.Stdout)
require.NoError(t, cmd.RunE(cmd, nil))