Skip to content

Commit

Permalink
Skip adding nameprefix for CRD
Browse files Browse the repository at this point in the history
  • Loading branch information
Liujingfang1 committed Jun 11, 2018
1 parent 6b5569d commit 5f75564
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 4 deletions.
1 change: 1 addition & 0 deletions pkg/transformers/labelsandannotations_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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{
Expand Down
29 changes: 25 additions & 4 deletions pkg/transformers/prefixname.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,16 @@ 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
// the name prefix will be applied.
type namePrefixTransformer struct {
prefix string
pathConfigs []PathConfig
prefix string
pathConfigs []PathConfig
skipPathConfigs []PathConfig
}

var _ Transformer = &namePrefixTransformer{}
Expand All @@ -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)
Expand All @@ -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
Expand Down
16 changes: 16 additions & 0 deletions pkg/transformers/prefixname_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand All @@ -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-")
Expand Down

0 comments on commit 5f75564

Please sign in to comment.