Add builtin namespace transformer plugin

This commit is contained in:
Jeffrey Regan
2019-05-21 12:36:39 -07:00
parent d4e3cd31a4
commit 79906d73d0
6 changed files with 264 additions and 4 deletions

View File

@@ -265,8 +265,6 @@ func (kt *KustTarget) runTransformers(ra *accumulator.ResAccumulator) error {
}
r = append(r, t)
tConfig := ra.GetTransformerConfig()
r = append(r, transformers.NewNamespaceTransformer(
string(kt.kustomization.Namespace), tConfig.NameSpace))
lts, err := kt.configureBuiltinTransformers(tConfig)
if err != nil {
return err

View File

@@ -63,8 +63,8 @@ func (kt *KustTarget) configureBuiltinTransformers(
// TODO: Convert remaining legacy transformers to plugins
// with tests:
// - patch SMP
// - namespace
configurators := []transformerConfigurator{
kt.configureBuiltinNamespaceTransformer,
kt.configureBuiltinNameTransformer,
kt.configureBuiltinImageTagTransformer,
kt.configureBuiltinLabelTransformer,
@@ -124,6 +124,24 @@ func (kt *KustTarget) configureBuiltinConfigMapGenerator() (
return
}
func (kt *KustTarget) configureBuiltinNamespaceTransformer(
tConfig *config.TransformerConfig) (
result []transformers.Transformer, err error) {
var c struct {
Namespace string
FieldSpecs []config.FieldSpec
}
c.Namespace = kt.kustomization.Namespace
c.FieldSpecs = tConfig.NameSpace
p := builtin.NewNamespaceTransformerPlugin()
err = kt.configureBuiltinPlugin(p, c, "namespace")
if err != nil {
return nil, err
}
result = append(result, p)
return
}
func (kt *KustTarget) configureBuiltinPatchJson6902Transformer(
tConfig *config.TransformerConfig) (
result []transformers.Transformer, err error) {

View File

@@ -130,7 +130,10 @@ func (o *namespaceTransformer) updateClusterRoleBinding(m resmap.ResMap) {
continue
}
objMap := m[id].Map()
subjects := objMap["subjects"].([]interface{})
subjects, ok := objMap["subjects"].([]interface{})
if subjects == nil || !ok {
continue
}
for i := range subjects {
subject := subjects[i].(map[string]interface{})
kind, foundk := subject["kind"]