mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-07-01 18:30:15 +00:00
Localize configMapGenerator, secretGenerator fields (#4894)
* Localize configMapGenerator, secretGenerator fields * Improve readability * Expose kv parseFileSource * Add localizeGenerator to Localizer * Improve and test ParseFileSource error messages
This commit is contained in:
@@ -8,6 +8,7 @@ import (
|
||||
"path/filepath"
|
||||
|
||||
"sigs.k8s.io/kustomize/api/ifc"
|
||||
"sigs.k8s.io/kustomize/api/internal/generators"
|
||||
pLdr "sigs.k8s.io/kustomize/api/internal/plugins/loader"
|
||||
"sigs.k8s.io/kustomize/api/internal/target"
|
||||
"sigs.k8s.io/kustomize/api/konfig"
|
||||
@@ -128,8 +129,50 @@ func (lc *localizer) localizeNativeFields(kust *types.Kustomization) error {
|
||||
kust.Patches[i].Path = newPath
|
||||
}
|
||||
}
|
||||
|
||||
for i := range kust.ConfigMapGenerator {
|
||||
if err := lc.localizeGenerator(&kust.ConfigMapGenerator[i].GeneratorArgs); err != nil {
|
||||
return errors.WrapPrefixf(err, "unable to localize configMapGenerator")
|
||||
}
|
||||
}
|
||||
for i := range kust.SecretGenerator {
|
||||
if err := lc.localizeGenerator(&kust.SecretGenerator[i].GeneratorArgs); err != nil {
|
||||
return errors.WrapPrefixf(err, "unable to localize secretGenerator")
|
||||
}
|
||||
}
|
||||
|
||||
// TODO(annasong): localize all other kustomization fields: resources, bases, crds, configurations,
|
||||
// openapi, patchesJson6902, patchesStrategicMerge, replacements, configMapGenerators, secretGenerators
|
||||
// openapi, patchesJson6902, patchesStrategicMerge, replacements
|
||||
return nil
|
||||
}
|
||||
|
||||
// localizeGenerator localizes the file paths on generator.
|
||||
func (lc *localizer) localizeGenerator(generator *types.GeneratorArgs) error {
|
||||
locEnvs := make([]string, len(generator.EnvSources))
|
||||
for i, env := range generator.EnvSources {
|
||||
newPath, err := lc.localizeFile(env)
|
||||
if err != nil {
|
||||
return errors.WrapPrefixf(err, "unable to localize generator envs file")
|
||||
}
|
||||
locEnvs[i] = newPath
|
||||
}
|
||||
locFiles := make([]string, len(generator.FileSources))
|
||||
for i, file := range generator.FileSources {
|
||||
k, f, err := generators.ParseFileSource(file)
|
||||
if err != nil {
|
||||
return errors.WrapPrefixf(err, "unable to parse generator files entry %q", file)
|
||||
}
|
||||
newFile, err := lc.localizeFile(f)
|
||||
if err != nil {
|
||||
return errors.WrapPrefixf(err, "unable to localize generator files path in entry %q", file)
|
||||
}
|
||||
if f != file {
|
||||
newFile = k + "=" + newFile
|
||||
}
|
||||
locFiles[i] = newFile
|
||||
}
|
||||
generator.EnvSources = locEnvs
|
||||
generator.FileSources = locFiles
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user