mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-30 01:46:23 +00:00
Localize ConfigMapGenerator, SecretGenerator
This commit is contained in:
@@ -32,6 +32,22 @@ func (lbp *localizeBuiltinPlugins) Filter(plugins []*yaml.RNode) ([]*yaml.RNode,
|
||||
for _, singlePlugin := range plugins {
|
||||
err := singlePlugin.PipeE(fsslice.Filter{
|
||||
FsSlice: types.FsSlice{
|
||||
types.FieldSpec{
|
||||
Gvk: resid.Gvk{Version: konfig.BuiltinPluginApiVersion, Kind: builtinhelpers.ConfigMapGenerator.String()},
|
||||
Path: "env",
|
||||
},
|
||||
types.FieldSpec{
|
||||
Gvk: resid.Gvk{Version: konfig.BuiltinPluginApiVersion, Kind: builtinhelpers.ConfigMapGenerator.String()},
|
||||
Path: "envs",
|
||||
},
|
||||
types.FieldSpec{
|
||||
Gvk: resid.Gvk{Version: konfig.BuiltinPluginApiVersion, Kind: builtinhelpers.SecretGenerator.String()},
|
||||
Path: "env",
|
||||
},
|
||||
types.FieldSpec{
|
||||
Gvk: resid.Gvk{Version: konfig.BuiltinPluginApiVersion, Kind: builtinhelpers.SecretGenerator.String()},
|
||||
Path: "envs",
|
||||
},
|
||||
types.FieldSpec{
|
||||
Gvk: resid.Gvk{Version: konfig.BuiltinPluginApiVersion, Kind: builtinhelpers.PatchTransformer.String()},
|
||||
Path: "path",
|
||||
@@ -47,20 +63,36 @@ func (lbp *localizeBuiltinPlugins) Filter(plugins []*yaml.RNode) ([]*yaml.RNode,
|
||||
},
|
||||
SetValue: func(node *yaml.RNode) error {
|
||||
lbp.locPathFn = lbp.lc.localizeFile
|
||||
return lbp.localizeNode(node)
|
||||
return lbp.localizeAll(node)
|
||||
},
|
||||
}, fieldspec.Filter{
|
||||
FieldSpec: types.FieldSpec{
|
||||
Gvk: resid.Gvk{Version: konfig.BuiltinPluginApiVersion, Kind: builtinhelpers.PatchStrategicMergeTransformer.String()},
|
||||
Path: "paths",
|
||||
},
|
||||
fsslice.Filter{
|
||||
FsSlice: types.FsSlice{
|
||||
types.FieldSpec{
|
||||
Gvk: resid.Gvk{Version: konfig.BuiltinPluginApiVersion, Kind: builtinhelpers.ConfigMapGenerator.String()},
|
||||
Path: "files",
|
||||
},
|
||||
types.FieldSpec{
|
||||
Gvk: resid.Gvk{Version: konfig.BuiltinPluginApiVersion, Kind: builtinhelpers.SecretGenerator.String()},
|
||||
Path: "files",
|
||||
},
|
||||
},
|
||||
SetValue: func(node *yaml.RNode) error {
|
||||
lbp.locPathFn = lbp.lc.localizeFileSource
|
||||
return lbp.localizeAll(node)
|
||||
},
|
||||
},
|
||||
SetValue: func(node *yaml.RNode) error {
|
||||
lbp.locPathFn = lbp.lc.localizeK8sResource
|
||||
return errors.Wrap(node.VisitElements(lbp.localizeNode))
|
||||
},
|
||||
})
|
||||
// TODO(annasong): localize ConfigMapGenerator, SecretGenerator,
|
||||
// HelmChartInflationGenerator
|
||||
fieldspec.Filter{
|
||||
FieldSpec: types.FieldSpec{
|
||||
Gvk: resid.Gvk{Version: konfig.BuiltinPluginApiVersion, Kind: builtinhelpers.PatchStrategicMergeTransformer.String()},
|
||||
Path: "paths",
|
||||
},
|
||||
SetValue: func(node *yaml.RNode) error {
|
||||
lbp.locPathFn = lbp.lc.localizeK8sResource
|
||||
return lbp.localizeAll(node)
|
||||
},
|
||||
})
|
||||
// TODO(annasong): localize HelmChartInflationGenerator
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err)
|
||||
}
|
||||
@@ -68,14 +100,27 @@ func (lbp *localizeBuiltinPlugins) Filter(plugins []*yaml.RNode) ([]*yaml.RNode,
|
||||
return plugins, nil
|
||||
}
|
||||
|
||||
// localizeNode sets the scalar node to its value localized by locPathFn.
|
||||
func (lbp *localizeBuiltinPlugins) localizeNode(node *yaml.RNode) error {
|
||||
// localizeAll sets each entry in node to its value localized by locPathFn.
|
||||
// Node is a sequence or scalar value.
|
||||
func (lbp *localizeBuiltinPlugins) localizeAll(node *yaml.RNode) error {
|
||||
// We rely on the build command to throw errors for nodes in
|
||||
// built-in plugins that are sequences when expected to be scalar,
|
||||
// and vice versa.
|
||||
switch node.YNode().Kind {
|
||||
case yaml.SequenceNode:
|
||||
return errors.Wrap(node.VisitElements(lbp.localizeScalar))
|
||||
case yaml.ScalarNode:
|
||||
return lbp.localizeScalar(node)
|
||||
default:
|
||||
return errors.Errorf("expected sequence or scalar node")
|
||||
}
|
||||
}
|
||||
|
||||
// localizeScalar sets the scalar node to its value localized by locPathFn.
|
||||
func (lbp *localizeBuiltinPlugins) localizeScalar(node *yaml.RNode) error {
|
||||
localizedPath, err := lbp.locPathFn(node.YNode().Value)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if localizedPath != "" {
|
||||
err = filtersutil.SetScalar(localizedPath)(node)
|
||||
}
|
||||
return err
|
||||
return filtersutil.SetScalar(localizedPath)(node)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user