@@ -33,9 +33,8 @@ import (
3333)
3434
3535const (
36- activeServiceKeyName = "active-service-object"
3736 // Canary task set metadata keys.
38- canaryTaskSetARNKeyName = "canary-taskset-arn "
37+ canaryTaskSetKeyName = "canary-taskset-object "
3938 // Stage metadata keys.
4039 trafficRoutePrimaryMetadataKey = "primary-percentage"
4140 trafficRouteCanaryMetadataKey = "canary-percentage"
@@ -237,7 +236,7 @@ func createPrimaryTaskSet(ctx context.Context, client provider.Client, service t
237236
238237 // Remove old taskSet if existed.
239238 if prevPrimaryTaskSet != nil {
240- if err = client .DeleteTaskSet (ctx , service , * prevPrimaryTaskSet . TaskSetArn ); err != nil {
239+ if err = client .DeleteTaskSet (ctx , * prevPrimaryTaskSet ); err != nil {
241240 return err
242241 }
243242 }
@@ -266,17 +265,6 @@ func sync(ctx context.Context, in *executor.Input, platformProviderName string,
266265 return false
267266 }
268267
269- // Store ACTIVE service to delete its unused TaskSet later.
270- serviceObjData , err := json .Marshal (service )
271- if err != nil {
272- in .LogPersister .Errorf ("Unable to store applied service to metadata store: %v" , err )
273- return false
274- }
275- if err := in .MetadataStore .Shared ().Put (ctx , activeServiceKeyName , string (serviceObjData )); err != nil {
276- in .LogPersister .Errorf ("Unable to store applied service to metadata store: %v" , err )
277- return false
278- }
279-
280268 in .LogPersister .Infof ("Start rolling out ECS task set" )
281269 if err := createPrimaryTaskSet (ctx , client , * service , * td , targetGroup ); err != nil {
282270 in .LogPersister .Errorf ("Failed to rolling out ECS task set for service %s: %v" , * serviceDefinition .ServiceName , err )
@@ -314,17 +302,6 @@ func rollout(ctx context.Context, in *executor.Input, platformProviderName strin
314302 return false
315303 }
316304
317- // Store ACTIVE service to delete its unused TaskSet later.
318- serviceObjData , err := json .Marshal (service )
319- if err != nil {
320- in .LogPersister .Errorf ("Unable to store applied service to metadata store: %v" , err )
321- return false
322- }
323- if err := in .MetadataStore .Shared ().Put (ctx , activeServiceKeyName , string (serviceObjData )); err != nil {
324- in .LogPersister .Errorf ("Unable to store applied service to metadata store: %v" , err )
325- return false
326- }
327-
328305 // Create a task set in the specified cluster and service.
329306 in .LogPersister .Infof ("Start rolling out ECS task set" )
330307 if in .StageConfig .Name == model .StageECSPrimaryRollout {
@@ -355,7 +332,12 @@ func rollout(ctx context.Context, in *executor.Input, platformProviderName strin
355332 return false
356333 }
357334 // Store created ACTIVE TaskSet (CANARY variant) to delete later.
358- if err := in .MetadataStore .Shared ().Put (ctx , canaryTaskSetARNKeyName , * taskSet .TaskSetArn ); err != nil {
335+ taskSetObjData , err := json .Marshal (taskSet )
336+ if err != nil {
337+ in .LogPersister .Errorf ("Unable to store created active taskSet to metadata store: %v" , err )
338+ return false
339+ }
340+ if err := in .MetadataStore .Shared ().Put (ctx , canaryTaskSetKeyName , string (taskSetObjData )); err != nil {
359341 in .LogPersister .Errorf ("Unable to store created active taskSet to metadata store: %v" , err )
360342 return false
361343 }
@@ -378,30 +360,26 @@ func clean(ctx context.Context, in *executor.Input, platformProviderName string,
378360 return false
379361 }
380362
381- // Get service object from metadata store.
382- serviceObjData , ok := in .MetadataStore .Shared ().Get (activeServiceKeyName )
363+ // Get task set object from metadata store.
364+ taskSetObjData , ok := in .MetadataStore .Shared ().Get (canaryTaskSetKeyName )
383365 if ! ok {
384- in .LogPersister .Errorf ("Unable to restore service to clean: Not found" )
366+ in .LogPersister .Error ("Unable to restore taskset to clean: Not found" )
385367 return false
386368 }
387- service := & types.Service {}
388- if err := json .Unmarshal ([]byte (serviceObjData ), service ); err != nil {
389- in .LogPersister .Errorf ("Unable to restore service to clean: %v" , err )
369+ taskSet := & types.TaskSet {}
370+ if err := json .Unmarshal ([]byte (taskSetObjData ), taskSet ); err != nil {
371+ in .LogPersister .Errorf ("Unable to restore taskset to clean: %v" , err )
390372 return false
391373 }
392374
393375 // Delete canary task set if present.
394- taskSetArn , ok := in .MetadataStore .Shared ().Get (canaryTaskSetARNKeyName )
395- if ok {
396- in .LogPersister .Infof ("Cleaning CANARY task set %s from service %s" , taskSetArn , * service .ServiceName )
397- if err := client .DeleteTaskSet (ctx , * service , taskSetArn ); err != nil {
398- in .LogPersister .Errorf ("Failed to clean CANARY task set %s: %v" , taskSetArn , err )
399- return false
400- }
401- return true
376+ in .LogPersister .Infof ("Cleaning CANARY task set %s from service %s" , * taskSet .TaskSetArn , * taskSet .ServiceArn )
377+ if err := client .DeleteTaskSet (ctx , * taskSet ); err != nil {
378+ in .LogPersister .Errorf ("Failed to clean CANARY task set %s: %v" , * taskSet .TaskSetArn , err )
379+ return false
402380 }
403381
404- in .LogPersister .Info ( "No task set found in metadata store to clean" )
382+ in .LogPersister .Infof ( "Successfully cleaned CANARY task set %s from service %s" , * taskSet . TaskSetArn , * taskSet . ServiceArn )
405383 return true
406384}
407385
0 commit comments