mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-05-17 18:25:26 +00:00
Improve error message when namespace transformer is given invalid fieldspecs
Also remove invalid+ignored fieldspecs from the defaults
This commit is contained in:
@@ -7,6 +7,7 @@ import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest"
|
||||
)
|
||||
|
||||
@@ -20,12 +21,6 @@ fieldSpecs:
|
||||
- path: subjects/namespace
|
||||
kind: ClusterRoleBinding
|
||||
group: rbac.authorization.k8s.io
|
||||
- path: subjects
|
||||
kind: RoleBinding
|
||||
group: rbac.authorization.k8s.io
|
||||
- path: subjects
|
||||
kind: ClusterRoleBinding
|
||||
group: rbac.authorization.k8s.io
|
||||
`
|
||||
|
||||
func TestNamespaceTransformer1(t *testing.T) {
|
||||
@@ -700,3 +695,70 @@ subjects:
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestNamespaceTransformer_InvalidFieldSpecs(t *testing.T) {
|
||||
th := kusttest_test.MakeEnhancedHarness(t).
|
||||
PrepBuiltin("NamespaceTransformer")
|
||||
defer th.Reset()
|
||||
th.RunTransformerAndCheckError(`
|
||||
apiVersion: builtin
|
||||
kind: NamespaceTransformer
|
||||
metadata:
|
||||
name: notImportantHere
|
||||
namespace: test
|
||||
unsetOnly: true
|
||||
fieldSpecs:
|
||||
- path: subjects
|
||||
kind: RoleBinding
|
||||
group: rbac.authorization.k8s.io
|
||||
- path: subjects
|
||||
kind: ClusterRoleBinding
|
||||
group: rbac.authorization.k8s.io
|
||||
`, `
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: manager-rolebinding
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: default
|
||||
namespace: other
|
||||
- kind: ServiceAccount
|
||||
name: default
|
||||
namespace: ""
|
||||
- kind: ServiceAccount
|
||||
name: default
|
||||
- kind: ServiceAccount
|
||||
name: another
|
||||
namespace: random
|
||||
---
|
||||
apiVersion: example.com/v1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
namespace: bar
|
||||
name: rolebinding
|
||||
subjects:
|
||||
- name: default
|
||||
namespace: bar
|
||||
`,
|
||||
func(t *testing.T, err error) {
|
||||
t.Helper()
|
||||
assert.EqualError(t, err, `namespace field specs must target scalar nodes: `+
|
||||
`considering field 'subjects' of object ClusterRoleBinding.v1.rbac.authorization.k8s.io/manager-rolebinding.[noNs]: `+
|
||||
`wrong node kind: expected ScalarNode but got SequenceNode: node contents:
|
||||
- kind: ServiceAccount
|
||||
name: default
|
||||
namespace: other
|
||||
- kind: ServiceAccount
|
||||
name: default
|
||||
namespace: "test"
|
||||
- kind: ServiceAccount
|
||||
name: default
|
||||
namespace: test
|
||||
- kind: ServiceAccount
|
||||
name: another
|
||||
namespace: random
|
||||
`)
|
||||
})
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ module sigs.k8s.io/kustomize/plugin/builtin/namespacetransformer
|
||||
go 1.18
|
||||
|
||||
require (
|
||||
github.com/stretchr/testify v1.7.0
|
||||
sigs.k8s.io/kustomize/api v0.11.5
|
||||
sigs.k8s.io/kustomize/kyaml v0.13.7
|
||||
sigs.k8s.io/yaml v1.2.0
|
||||
@@ -25,6 +26,7 @@ require (
|
||||
github.com/mailru/easyjson v0.7.6 // indirect
|
||||
github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 // indirect
|
||||
github.com/pkg/errors v0.9.1 // indirect
|
||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||
github.com/xlab/treeprint v1.1.0 // indirect
|
||||
go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 // indirect
|
||||
golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd // indirect
|
||||
|
||||
Reference in New Issue
Block a user