in custom-targets/infrastructure-manager/im-deployer/render.go [157:206]
func (r *renderer) deploymentYAML(gcsSourceURI string) ([]byte, error) {
labels := make(map[string]string)
if !r.params.disableCloudDeployLabels {
labels = map[string]string{
"managed-by": "google-cloud-deploy",
"project": r.req.Project,
"location": r.req.Location,
"delivery-pipeline-id": r.req.Pipeline,
"release-id": r.req.Release,
"target-id": r.req.Target,
}
}
d := &configpb.Deployment{
Name: r.params.deploymentName(),
Labels: labels,
Blueprint: &configpb.Deployment_TerraformBlueprint{
TerraformBlueprint: &configpb.TerraformBlueprint{
Source: &configpb.TerraformBlueprint_GcsSource{
GcsSource: gcsSourceURI,
},
},
},
ImportExistingResources: &r.params.importExistingResources,
}
// Use Cloud Deploy workload service account if deploy parameter overwrite wasn't provided.
serviceAccount := r.params.imServiceAccount
if len(serviceAccount) == 0 {
serviceAccount = r.req.WorkloadCBInfo.ServiceAccount
}
d.ServiceAccount = &serviceAccount
// Use Cloud Deploy workload worker pool if present and deploy parameter overwrite wasn't provided.
if len(r.params.imWorkerPool) != 0 {
d.WorkerPool = &r.params.imWorkerPool
} else if len(r.req.WorkloadCBInfo.WorkerPool) != 0 {
d.WorkerPool = &r.req.WorkloadCBInfo.WorkerPool
}
j, err := protojson.Marshal(d)
if err != nil {
return nil, fmt.Errorf("error marshaling deployment: %v", err)
}
y, err := yaml.JSONToYAML(j)
if err != nil {
return nil, fmt.Errorf("error converting deployment json to yaml: %v", err)
}
return y, nil
}