Skip to content

Commit

Permalink
debug
Browse files Browse the repository at this point in the history
Signed-off-by: Min Min <[email protected]>
  • Loading branch information
jamsman94 committed Apr 1, 2024
1 parent 7f21ee8 commit 983190b
Show file tree
Hide file tree
Showing 3 changed files with 85 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -312,11 +312,11 @@ type ZadigVMDeployJobSpec struct {
}

type ZadigHelmChartDeployJobSpec struct {
Env string `bson:"env" yaml:"env" json:"env"`
EnvOptions []string `bson:"-" yaml:"env_options" json:"env_options"`
EnvSource string `bson:"env_source" yaml:"env_source" json:"env_source"`
SkipCheckRunStatus bool `bson:"skip_check_run_status" yaml:"skip_check_run_status" json:"skip_check_run_status"`
DeployHelmCharts []*DeployHelmChart `bson:"deploy_helm_charts" yaml:"deploy_helm_charts" json:"deploy_helm_charts"`
Env string `bson:"env" yaml:"env" json:"env"`
EnvOptions []*ZadigHelmDeployEnvInformation `bson:"-" yaml:"env_options" json:"env_options"`
EnvSource string `bson:"env_source" yaml:"env_source" json:"env_source"`
SkipCheckRunStatus bool `bson:"skip_check_run_status" yaml:"skip_check_run_status" json:"skip_check_run_status"`
DeployHelmCharts []*DeployHelmChart `bson:"deploy_helm_charts" yaml:"deploy_helm_charts" json:"deploy_helm_charts"`
}

type DeployHelmChart struct {
Expand Down Expand Up @@ -573,6 +573,11 @@ type ZadigDeployEnvInformation struct {
Services []*DeployServiceInfo `json:"services" yaml:"services"`
}

type ZadigHelmDeployEnvInformation struct {
Env string `json:"env" yaml:"env"`
Services []*DeployHelmChart `json:"services" yaml:"services"`
}

type ClusterBrief struct {
ClusterID string `json:"cluster_id" yaml:"cluster_id"`
ClusterName string `json:"cluster_name" yaml:"cluster_name"`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ func (j *DeployJob) setDefaultDeployContent() {
}
}

func (j *DeployJob) getOriginReferedJobTargets(jobName string) ([]*commonmodels.ServiceAndImage, error) {
func (j *DeployJob) getOriginReferredJobTargets(jobName string) ([]*commonmodels.ServiceAndImage, error) {
serviceAndImages := []*commonmodels.ServiceAndImage{}
for _, stage := range j.workflow.Stages {
for _, job := range stage.Jobs {
Expand All @@ -83,7 +83,7 @@ func (j *DeployJob) getOriginReferedJobTargets(jobName string) ([]*commonmodels.
ServiceModule: build.ServiceModule,
Image: build.Image,
})
log.Infof("DeployJob ToJobs getOriginReferedJobTargets: workflow %s service %s, module %s, image %s",
log.Infof("DeployJob ToJobs getOriginReferredJobTargets: workflow %s service %s, module %s, image %s",
j.workflow.Name, build.ServiceName, build.ServiceModule, build.Image)
}
return serviceAndImages, nil
Expand Down Expand Up @@ -388,7 +388,7 @@ func (j *DeployJob) ToJobs(taskID int64) ([]*commonmodels.JobTask, error) {
j.spec.JobName = j.spec.OriginJobName
}
j.spec.JobName = getOriginJobName(j.workflow, j.spec.JobName)
targets, err := j.getOriginReferedJobTargets(j.spec.JobName)
targets, err := j.getOriginReferredJobTargets(j.spec.JobName)
if err != nil {
return resp, fmt.Errorf("get origin refered job: %s targets failed, err: %v", j.spec.JobName, err)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import (
"github.com/koderover/zadig/v2/pkg/microservice/aslan/core/common/util"
"github.com/koderover/zadig/v2/pkg/setting"
e "github.com/koderover/zadig/v2/pkg/tool/errors"
"github.com/koderover/zadig/v2/pkg/tool/log"
)

type HelmChartDeployJob struct {
Expand All @@ -50,36 +51,97 @@ func (j *HelmChartDeployJob) SetPreset() error {
return err
}

product, err := commonrepo.NewProductColl().Find(&commonrepo.ProductFindOptions{Name: j.workflow.Project, EnvName: j.spec.Env})
if err != nil {
return fmt.Errorf("env %s not exists", j.spec.Env)
}
renderChartMap := product.GetChartDeployRenderMap()

deploys := []*commonmodels.DeployHelmChart{}
productChartServiceMap := product.GetChartServiceMap()
for _, chartSvc := range productChartServiceMap {
renderChart := renderChartMap[chartSvc.ReleaseName]
if renderChart == nil {
return fmt.Errorf("render chart %s not found", chartSvc.ReleaseName)
}
deploy := &commonmodels.DeployHelmChart{
ReleaseName: chartSvc.ReleaseName,
ChartRepo: renderChart.ChartRepo,
ChartName: renderChart.ChartName,
ChartVersion: renderChart.ChartVersion,
ValuesYaml: renderChart.GetOverrideYaml(),
}
deploys = append(deploys, deploy)
}
j.spec.DeployHelmCharts = deploys
j.job.Spec = j.spec

return nil
}

// SetOptions gets all helm chart info in all envs, and set it in EnvOptions field
func (j *HelmChartDeployJob) SetOptions() error {
j.spec = &commonmodels.ZadigHelmChartDeployJobSpec{}
if err := commonmodels.IToi(j.job.Spec, j.spec); err != nil {
return err
}

envOptions := make([]*commonmodels.ZadigHelmDeployEnvInformation, 0)

if strings.HasPrefix(j.spec.Env, setting.FixedValueMark) {
j.spec.EnvOptions = []string{strings.ReplaceAll(j.spec.Env, setting.FixedValueMark, "")}
envName := strings.ReplaceAll(j.spec.Env, setting.FixedValueMark, "")

chartInfo, err := generateEnvHelmChartInfo(envName, j.workflow.Project)
if err != nil {
log.Errorf("failed to generate helm chart deploy info for env: %s, error: %s", envName, err)
return err
}

envOptions = append(envOptions, &commonmodels.ZadigHelmDeployEnvInformation{
Env: envName,
Services: chartInfo,
})
} else {
productList, err := commonrepo.NewProductColl().List(&commonrepo.ProductListOptions{
Name: j.workflow.Project,
})
if err != nil {
log.Errorf("can't list envs in project %s, error: %w", j.workflow.Project, err)
return fmt.Errorf("failed to list env with project: %s, error: %s", j.workflow.Project, err)
}

envs := make([]string, 0)
for _, env := range productList {
envs = append(envs, env.EnvName)
serviceDeployOption, err := generateEnvHelmChartInfo(env.EnvName, j.workflow.Project)
if err != nil {
log.Errorf("failed to generate chart deployment info for env: %s, error: %s", env.EnvName, err)
return err
}

envOptions = append(envOptions, &commonmodels.ZadigHelmDeployEnvInformation{
Env: env.EnvName,
Services: serviceDeployOption,
})
}

j.spec.EnvOptions = envs
}

product, err := commonrepo.NewProductColl().Find(&commonrepo.ProductFindOptions{Name: j.workflow.Project, EnvName: j.spec.Env})
j.spec.EnvOptions = envOptions
j.job.Spec = j.spec
return nil
}

func generateEnvHelmChartInfo(env, project string) ([]*commonmodels.DeployHelmChart, error) {
product, err := commonrepo.NewProductColl().Find(&commonrepo.ProductFindOptions{Name: project, EnvName: env})
if err != nil {
return fmt.Errorf("env %s not exists", j.spec.Env)
return nil, fmt.Errorf("failed to get env information from db, error: %s", err)
}
renderChartMap := product.GetChartDeployRenderMap()

deploys := []*commonmodels.DeployHelmChart{}
deploys := make([]*commonmodels.DeployHelmChart, 0)
productChartServiceMap := product.GetChartServiceMap()
for _, chartSvc := range productChartServiceMap {
renderChart := renderChartMap[chartSvc.ReleaseName]
if renderChart == nil {
return fmt.Errorf("render chart %s not found", chartSvc.ReleaseName)
return nil, fmt.Errorf("failed to get service render info for service: %s in env: %s", chartSvc.ServiceName, env)
}
deploy := &commonmodels.DeployHelmChart{
ReleaseName: chartSvc.ReleaseName,
Expand All @@ -90,14 +152,8 @@ func (j *HelmChartDeployJob) SetPreset() error {
}
deploys = append(deploys, deploy)
}
j.spec.DeployHelmCharts = deploys
j.job.Spec = j.spec

return nil
}

func (j *HelmChartDeployJob) SetOptions() error {
return nil
return deploys, nil
}

func (j *HelmChartDeployJob) MergeArgs(args *commonmodels.Job) error {
Expand Down

0 comments on commit 983190b

Please sign in to comment.