@@ -157,7 +157,24 @@ func GetEnvServiceVersionYaml(ctx *internalhandler.Context, projectName, envName
157157 Namespace : envSvcRevision .Namespace ,
158158 Production : envSvcRevision .Production ,
159159 }
160- parsedYaml , err := kube .RenderEnvService (fakeEnv , envSvcRevision .Service .GetServiceRender (), envSvcRevision .Service )
160+ clusterName := envSvcRevision .ClusterName
161+ if clusterName == "" {
162+ cluster , err := kube .GetCluster (env .ClusterID )
163+ if err != nil {
164+ return resp , err
165+ }
166+ clusterName = cluster .Name
167+ }
168+ svcTmpl , err := repository .QueryTemplateService (& commonrepo.ServiceFindOption {
169+ ServiceName : envSvcRevision .Service .ServiceName ,
170+ ProductName : envSvcRevision .ProductName ,
171+ Type : envSvcRevision .Service .Type ,
172+ Revision : envSvcRevision .Service .Revision ,
173+ }, envSvcRevision .Production )
174+ if err != nil {
175+ return resp , fmt .Errorf ("failed to find %s/%s/%d service template, isProduction %v, error: %v" , envSvcRevision .ProductName , envSvcRevision .Service .ServiceName , envSvcRevision .Service .Revision , envSvcRevision .Production , err )
176+ }
177+ parsedYaml , err := kube .RenderEnvServiceWithTempl (fakeEnv , envSvcRevision .Service .GetServiceRender (), envSvcRevision .Service , svcTmpl , clusterName )
161178 if err != nil {
162179 err = fmt .Errorf ("Failed to render env Service %s, error: %v" , envSvcRevision .Service .ServiceName , err )
163180 return resp , err
@@ -407,7 +424,8 @@ func RollbackEnvServiceVersion(ctx *internalhandler.Context, projectName, envNam
407424 VariableKVs : envSvcVersion .Service .GetServiceRender ().OverrideYaml .RenderVariableKVs ,
408425 Containers : envSvcVersion .Service .Containers ,
409426 }
410- _ , _ , resources , err := kube .GenerateRenderedYaml (option )
427+ var resources []* kube.WorkloadResource
428+ _ , _ , resources , err = kube .GenerateRenderedYaml (option )
411429 if err != nil {
412430 return nil , e .ErrRollbackEnvServiceVersion .AddErr (fmt .Errorf ("failed to generate service yaml, error: %v" , err ))
413431 }
@@ -434,7 +452,24 @@ func RollbackEnvServiceVersion(ctx *internalhandler.Context, projectName, envNam
434452 Namespace : envSvcVersion .Namespace ,
435453 Production : envSvcVersion .Production ,
436454 }
437- parsedYaml , err := kube .RenderEnvService (fakeEnv , envSvcVersion .Service .GetServiceRender (), envSvcVersion .Service )
455+ clusterName := envSvcVersion .ClusterName
456+ if clusterName == "" {
457+ cluster , err := kube .GetCluster (env .ClusterID )
458+ if err != nil {
459+ return nil , e .ErrRollbackEnvServiceVersion .AddErr (err )
460+ }
461+ clusterName = cluster .Name
462+ }
463+ svcTmpl , err := repository .QueryTemplateService (& commonrepo.ServiceFindOption {
464+ ServiceName : envSvcVersion .Service .ServiceName ,
465+ ProductName : envSvcVersion .ProductName ,
466+ Type : envSvcVersion .Service .Type ,
467+ Revision : envSvcVersion .Service .Revision ,
468+ }, envSvcVersion .Production )
469+ if err != nil {
470+ return nil , e .ErrRollbackEnvServiceVersion .AddErr (fmt .Errorf ("failed to find %s/%s/%d service template, isProduction %v, error: %v" , envSvcVersion .ProductName , envSvcVersion .Service .ServiceName , envSvcVersion .Service .Revision , envSvcVersion .Production , err ))
471+ }
472+ parsedYaml , err := kube .RenderEnvServiceWithTempl (fakeEnv , envSvcVersion .Service .GetServiceRender (), envSvcVersion .Service , svcTmpl , clusterName )
438473 if err != nil {
439474 err = fmt .Errorf ("Failed to render env %s, service %s, revision %d, error: %v" , envSvcVersion .EnvName , envSvcVersion .Service .ServiceName , envSvcVersion .Service .Revision , err )
440475 return nil , e .ErrRollbackEnvServiceVersion .AddErr (err )
0 commit comments