mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-12 17:34:21 +00:00
Skip adding nameprefix for CRD
This commit is contained in:
@@ -31,6 +31,7 @@ var cmap = schema.GroupVersionKind{Version: "v1", Kind: "ConfigMap"}
|
||||
var deploy = schema.GroupVersionKind{Group: "apps", Version: "v1", Kind: "Deployment"}
|
||||
var statefulset = schema.GroupVersionKind{Group: "apps", Version: "v1", Kind: "StatefulSet"}
|
||||
var foo = schema.GroupVersionKind{Group: "example.com", Version: "v1", Kind: "Foo"}
|
||||
var crd = schema.GroupVersionKind{Group: "apiwctensions.k8s.io", Version: "v1beta1", Kind: "CustomResourceDefinition"}
|
||||
|
||||
func TestLabelsRun(t *testing.T) {
|
||||
m := resmap.ResMap{
|
||||
|
||||
@@ -21,6 +21,8 @@ import (
|
||||
"fmt"
|
||||
|
||||
"github.com/kubernetes-sigs/kustomize/pkg/resmap"
|
||||
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
)
|
||||
|
||||
// namePrefixTransformer contains the prefix and the path config for each field that
|
||||
@@ -28,6 +30,7 @@ import (
|
||||
type namePrefixTransformer struct {
|
||||
prefix string
|
||||
pathConfigs []PathConfig
|
||||
skipPathConfigs []PathConfig
|
||||
}
|
||||
|
||||
var _ Transformer = &namePrefixTransformer{}
|
||||
@@ -39,6 +42,12 @@ var defaultNamePrefixPathConfigs = []PathConfig{
|
||||
},
|
||||
}
|
||||
|
||||
var skipNamePrefixPathConfigs = []PathConfig{
|
||||
{
|
||||
GroupVersionKind: &schema.GroupVersionKind{Kind: "CustomResourceDefinition"},
|
||||
},
|
||||
}
|
||||
|
||||
// NewDefaultingNamePrefixTransformer construct a namePrefixTransformer with defaultNamePrefixPathConfigs.
|
||||
func NewDefaultingNamePrefixTransformer(nameprefix string) (Transformer, error) {
|
||||
return NewNamePrefixTransformer(defaultNamePrefixPathConfigs, nameprefix)
|
||||
@@ -52,13 +61,25 @@ func NewNamePrefixTransformer(pc []PathConfig, np string) (Transformer, error) {
|
||||
if pc == nil {
|
||||
return nil, errors.New("pathConfigs is not expected to be nil")
|
||||
}
|
||||
return &namePrefixTransformer{pathConfigs: pc, prefix: np}, nil
|
||||
return &namePrefixTransformer{pathConfigs: pc, prefix: np, skipPathConfigs: skipNamePrefixPathConfigs}, nil
|
||||
}
|
||||
|
||||
// Transform prepends the name prefix.
|
||||
func (o *namePrefixTransformer) Transform(m resmap.ResMap) error {
|
||||
mf := resmap.ResMap{}
|
||||
|
||||
for id := range m {
|
||||
objMap := m[id].UnstructuredContent()
|
||||
mf[id] = m[id]
|
||||
for _, path := range o.skipPathConfigs {
|
||||
if selectByGVK(id.Gvk(), path.GroupVersionKind) {
|
||||
delete(mf, id)
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for id := range mf {
|
||||
objMap := mf[id].UnstructuredContent()
|
||||
for _, path := range o.pathConfigs {
|
||||
if !selectByGVK(id.Gvk(), path.GroupVersionKind) {
|
||||
continue
|
||||
|
||||
@@ -42,6 +42,14 @@ func TestPrefixNameRun(t *testing.T) {
|
||||
"name": "cm2",
|
||||
},
|
||||
}),
|
||||
resource.NewResId(crd, "crd"): resource.NewResourceFromMap(
|
||||
map[string]interface{}{
|
||||
"apiVersion": "apiextensions.k8s.io/v1beta1",
|
||||
"kind": "CustomResourceDefinition",
|
||||
"metadata": map[string]interface{}{
|
||||
"name": "crd",
|
||||
},
|
||||
}),
|
||||
}
|
||||
expected := resmap.ResMap{
|
||||
resource.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
|
||||
@@ -60,6 +68,14 @@ func TestPrefixNameRun(t *testing.T) {
|
||||
"name": "someprefix-cm2",
|
||||
},
|
||||
}),
|
||||
resource.NewResId(crd, "crd"): resource.NewResourceFromMap(
|
||||
map[string]interface{}{
|
||||
"apiVersion": "apiextensions.k8s.io/v1beta1",
|
||||
"kind": "CustomResourceDefinition",
|
||||
"metadata": map[string]interface{}{
|
||||
"name": "crd",
|
||||
},
|
||||
}),
|
||||
}
|
||||
|
||||
npt, err := NewDefaultingNamePrefixTransformer("someprefix-")
|
||||
|
||||
Reference in New Issue
Block a user