Skip to content

Commit

Permalink
improve code
Browse files Browse the repository at this point in the history
Signed-off-by: Patrick Zhao <[email protected]>
  • Loading branch information
PetrusZ committed Jan 21, 2025
1 parent 3a59cdb commit 72517d9
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 41 deletions.
59 changes: 29 additions & 30 deletions pkg/microservice/aslan/core/common/util/helm.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ import (

"github.com/koderover/zadig/v2/pkg/microservice/aslan/config"
commonmodels "github.com/koderover/zadig/v2/pkg/microservice/aslan/core/common/repository/models"
templatemodels "github.com/koderover/zadig/v2/pkg/microservice/aslan/core/common/repository/models/template"
commonrepo "github.com/koderover/zadig/v2/pkg/microservice/aslan/core/common/repository/mongodb"
"github.com/koderover/zadig/v2/pkg/microservice/aslan/core/common/service/command"
fsservice "github.com/koderover/zadig/v2/pkg/microservice/aslan/core/common/service/fs"
Expand Down Expand Up @@ -348,35 +347,35 @@ func GetValidMatchData(spec *commonmodels.ImagePathSpec) map[string]string {

// @note can be deprecated or not?
// may duplicate with kube.GeneMergedValues
func GeneHelmMergedValues(productSvc *commonmodels.ProductService, defaultValues string, renderChart *templatemodels.ServiceRender) (string, error) {
imageKVS := make([]*helmtool.KV, 0)
if productSvc != nil {
targetContainers := productSvc.Containers
replaceValuesMaps := make([]map[string]interface{}, 0)
for _, targetContainer := range targetContainers {
replaceValuesMap, err := AssignImageData(targetContainer.Image, GetValidMatchData(targetContainer.ImagePath))
if err != nil {
return "", fmt.Errorf("failed to pase image uri %s/%s, err %s", productSvc.ProductName, productSvc.ServiceName, err.Error())
}
replaceValuesMaps = append(replaceValuesMaps, replaceValuesMap)
}

for _, imageSecs := range replaceValuesMaps {
for key, value := range imageSecs {
imageKVS = append(imageKVS, &helmtool.KV{
Key: key,
Value: value,
})
}
}
}

mergedValues, err := helmtool.MergeOverrideValues("", defaultValues, renderChart.GetOverrideYaml(), renderChart.OverrideValues, imageKVS)
if err != nil {
return "", fmt.Errorf("failed to merge override yaml %s and values %s, err: %s", renderChart.GetOverrideYaml(), renderChart.OverrideValues, err)
}
return mergedValues, nil
}
// func GeneHelmMergedValues(productSvc *commonmodels.ProductService, defaultValues string, renderChart *templatemodels.ServiceRender) (string, error) {
// imageKVS := make([]*helmtool.KV, 0)
// if productSvc != nil {
// targetContainers := productSvc.Containers
// replaceValuesMaps := make([]map[string]interface{}, 0)
// for _, targetContainer := range targetContainers {
// replaceValuesMap, err := AssignImageData(targetContainer.Image, GetValidMatchData(targetContainer.ImagePath))
// if err != nil {
// return "", fmt.Errorf("failed to pase image uri %s/%s, err %s", productSvc.ProductName, productSvc.ServiceName, err.Error())
// }
// replaceValuesMaps = append(replaceValuesMaps, replaceValuesMap)
// }

// for _, imageSecs := range replaceValuesMaps {
// for key, value := range imageSecs {
// imageKVS = append(imageKVS, &helmtool.KV{
// Key: key,
// Value: value,
// })
// }
// }
// }

// mergedValues, err := helmtool.MergeOverrideValues("", defaultValues, renderChart.GetOverrideYaml(), renderChart.OverrideValues, imageKVS)
// if err != nil {
// return "", fmt.Errorf("failed to merge override yaml %s and values %s, err: %s", renderChart.GetOverrideYaml(), renderChart.OverrideValues, err)
// }
// return mergedValues, nil
// }

func NewHelmClient(chartRepo *commonmodels.HelmRepo) (*helmtool.HelmClient, error) {
client, err := helmtool.NewClient()
Expand Down
2 changes: 1 addition & 1 deletion pkg/microservice/aslan/core/environment/service/version.go
Original file line number Diff line number Diff line change
Expand Up @@ -335,7 +335,7 @@ func RollbackEnvServiceVersion(ctx *internalhandler.Context, projectName, envNam
}
}

finalValuesYaml, err := helmservice.NewHelmDeployService().NewGeneMergedValues(preProdSvc, envSvcVersion.DefaultValues, nil)
finalValuesYaml, err := helmservice.NewHelmDeployService().NewGeneMergedValues(envSvcVersion.Service, envSvcVersion.DefaultValues, nil)
if err != nil {
return e.ErrRollbackEnvServiceVersion.AddErr(fmt.Errorf("failed to generate merged values yaml, err: %s", err))
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -158,12 +158,13 @@ type ZadigScanningJobSpec struct {
}

type ZadigDeployJobPreviewSpec struct {
Env string `bson:"env" json:"env"`
Env string `bson:"env" json:"env"`
EnvAlias string `bson:"-" json:"env_alias"`
Production bool `bson:"-" json:"production"`
SkipCheckRunStatus bool `bson:"skip_check_run_status" json:"skip_check_run_status"`
ServiceAndImages []*ServiceAndImage `bson:"service_and_images" json:"service_and_images"`
YamlContent string `bson:"yaml_content" json:"yaml_content"`
Production bool `bson:"-" json:"production"`
DeployContents []config.DeployContent `bson:"deploy_contents" json:"deploy_contents"`
SkipCheckRunStatus bool `bson:"skip_check_run_status" json:"skip_check_run_status"`
ServiceAndImages []*ServiceAndImage `bson:"service_and_images" json:"service_and_images"`
YamlContent string `bson:"yaml_content" json:"yaml_content"`
// UserSuppliedValue added since 1.18, the values that users gives.
UserSuppliedValue string `bson:"user_supplied_value" json:"user_supplied_value" yaml:"user_supplied_value"`
// VariableConfigs new since 1.18, only used for k8s
Expand Down Expand Up @@ -1731,6 +1732,7 @@ func jobsToJobPreviews(jobs []*commonmodels.JobTask, context map[string]string,
spec.Env = taskJobSpec.Env
spec.Production = getEnvProduction(getEnv(taskJobSpec.Env))
spec.EnvAlias = getEnvAlias(getEnv(taskJobSpec.Env))
spec.DeployContents = taskJobSpec.DeployContents
spec.VariableConfigs = taskJobSpec.VariableConfigs
spec.VariableKVs = taskJobSpec.VariableKVs
spec.YamlContent = taskJobSpec.YamlContent
Expand Down Expand Up @@ -1763,6 +1765,7 @@ func jobsToJobPreviews(jobs []*commonmodels.JobTask, context map[string]string,
spec.Env = taskJobSpec.Env
spec.Production = getEnvProduction(getEnv(taskJobSpec.Env))
spec.EnvAlias = getEnvAlias(getEnv(taskJobSpec.Env))
spec.DeployContents = taskJobSpec.DeployContents
spec.YamlContent = taskJobSpec.YamlContent
spec.UserSuppliedValue = taskJobSpec.UserSuppliedValue
spec.SkipCheckRunStatus = taskJobSpec.SkipCheckRunStatus
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,6 @@ import (
"github.com/koderover/zadig/v2/pkg/shared/client/user"
internalhandler "github.com/koderover/zadig/v2/pkg/shared/handler"
e "github.com/koderover/zadig/v2/pkg/tool/errors"
helmtool "github.com/koderover/zadig/v2/pkg/tool/helmclient"
"github.com/koderover/zadig/v2/pkg/tool/jenkins"
"github.com/koderover/zadig/v2/pkg/tool/kube/getter"
"github.com/koderover/zadig/v2/pkg/tool/kube/serializer"
Expand Down Expand Up @@ -2340,14 +2339,16 @@ func CompareHelmServiceYamlInEnv(serviceName, variableYaml, envName, projectName
if isHelmChartDeploy {
currentYaml := ""
latestYaml := ""
chartInfo := prod.GetChartDeployRenderMap()[serviceName]
if chartInfo != nil {
currentYaml, err = helmtool.MergeOverrideValues("", "", chartInfo.GetOverrideYaml(), chartInfo.OverrideValues, nil)
prodSvc := prod.GetChartServiceMap()[serviceName]
if prodSvc != nil {
helmDeploySvc := helmservice.NewHelmDeployService()
currentYaml, err = helmDeploySvc.NewGeneMergedValues(prodSvc, prod.DefaultValues, nil)
if err != nil {
return nil, fmt.Errorf("failed to merge override values, err: %s", err)
}

latestYaml, err = helmtool.MergeOverrideValues("", "", variableYaml, chartInfo.OverrideValues, nil)
prodSvc.GetServiceRender().SetOverrideYaml(variableYaml)
latestYaml, err = helmDeploySvc.NewGeneMergedValues(prodSvc, prod.DefaultValues, nil)
if err != nil {
return nil, fmt.Errorf("failed to merge override values, err: %s", err)
}
Expand Down

0 comments on commit 72517d9

Please sign in to comment.