Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 20 additions & 5 deletions pkg/app/piped/executor/ecs/ecs.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import (
"errors"
"fmt"
"strconv"
"strings"

"github.com/aws/aws-sdk-go-v2/service/ecs/types"
"go.uber.org/zap"
Expand All @@ -38,6 +39,7 @@ const (
trafficRoutePrimaryMetadataKey = "primary-percentage"
trafficRouteCanaryMetadataKey = "canary-percentage"
canaryScaleMetadataKey = "canary-scale"
currentListenersKey = "current-listeners"
)

type registerer interface {
Expand Down Expand Up @@ -437,17 +439,30 @@ func routing(ctx context.Context, in *executor.Input, platformProviderName strin
},
}

metadata := map[string]string{
metadataPercentage := map[string]string{
trafficRoutePrimaryMetadataKey: strconv.FormatInt(int64(primary), 10),
trafficRouteCanaryMetadataKey: strconv.FormatInt(int64(canary), 10),
}
if err := in.MetadataStore.Stage(in.Stage.Id).PutMulti(ctx, metadata); err != nil {
if err := in.MetadataStore.Stage(in.Stage.Id).PutMulti(ctx, metadataPercentage); err != nil {
in.Logger.Error("Failed to store traffic routing config to metadata store", zap.Error(err))
}

currListenerArns, err := client.GetListenerArns(ctx, primaryTargetGroup)
if err != nil {
in.LogPersister.Errorf("Failed to get current active listeners: %v", err)
var currListenerArns []string
value, ok := in.MetadataStore.Shared().Get(currentListenersKey)
if ok {
currListenerArns = strings.Split(value, ",")
} else {
currListenerArns, err = client.GetListenerArns(ctx, primaryTargetGroup)
if err != nil {
in.LogPersister.Errorf("Failed to get current active listeners: %v", err)
return false
}
}

// Store created listeners to use later.
metadata := strings.Join(currListenerArns, ",")
if err := in.MetadataStore.Shared().Put(ctx, currentListenersKey, metadata); err != nil {
in.LogPersister.Errorf("Unable to store created listeners to metadata store: %v", err)
return false
}

Expand Down