From 99f97565e47978af193b7020569fbf5b1757ba69 Mon Sep 17 00:00:00 2001 From: Dayuan Date: Tue, 11 Jun 2024 23:37:36 +0800 Subject: [PATCH] fix: the former module patchers are override by the latter one --- .../app_configurations_generator.go | 32 +++++++++++-------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/pkg/modules/generators/app_configurations_generator.go b/pkg/modules/generators/app_configurations_generator.go index a03c1363..126c8dcb 100644 --- a/pkg/modules/generators/app_configurations_generator.go +++ b/pkg/modules/generators/app_configurations_generator.go @@ -141,7 +141,7 @@ func (g *appConfigurationGenerator) Generate(spec *v1.Spec) error { wl := spec.Resources[1] // call modules to generate customized resources - resources, patcher, err := g.callModules(projectModuleConfigs) + resources, patchers, err := g.callModules(projectModuleConfigs) if err != nil { return err } @@ -149,13 +149,15 @@ func (g *appConfigurationGenerator) Generate(spec *v1.Spec) error { // append the generated resources to the spec spec.Resources = append(spec.Resources, resources...) - // patch workload with resource patcher - if patcher != nil { - if err = PatchWorkload(&wl, patcher); err != nil { - return err - } - if err = JSONPatch(spec.Resources, patcher); err != nil { - return err + // patch workload with resource patchers + if patchers != nil { + for _, patcher := range patchers { + if err = PatchWorkload(&wl, &patcher); err != nil { + return err + } + if err = JSONPatch(spec.Resources, &patcher); err != nil { + return err + } } } @@ -341,7 +343,7 @@ type moduleConfig struct { ctx v1.GenericConfig } -func (g *appConfigurationGenerator) callModules(projectModuleConfigs map[string]v1.GenericConfig) (resources []v1.Resource, patcher *v1.Patcher, err error) { +func (g *appConfigurationGenerator) callModules(projectModuleConfigs map[string]v1.GenericConfig) (resources []v1.Resource, patchers []v1.Patcher, err error) { pluginMap := make(map[string]*modules.Plugin) defer func() { if e := recover(); e != nil { @@ -421,13 +423,17 @@ func (g *appConfigurationGenerator) callModules(projectModuleConfigs map[string] } // parse patcher - err = yaml.Unmarshal(response.Patcher, &patcher) - if err != nil { - return nil, nil, err + temp := &v1.Patcher{} + if response.Patcher != nil { + err = yaml.Unmarshal(response.Patcher, temp) + if err != nil { + return nil, nil, err + } + patchers = append(patchers, *temp) } } - return resources, patcher, nil + return resources, patchers, nil } func (g *appConfigurationGenerator) buildModuleConfigIndex(platformModuleConfigs map[string]v1.GenericConfig) (map[string]moduleConfig, error) {