diff --git a/spire/templates/apps-100A.yml b/spire/templates/apps-100A.yml index 695079fb..a646f0e9 100644 --- a/spire/templates/apps-100A.yml +++ b/spire/templates/apps-100A.yml @@ -48,6 +48,8 @@ Parameters: PorterJobExecutionSnsTopicArn: { Type: AWS::SSM::Parameter::Value } DovetailCdnLogsKinesisStreamArn: { Type: String } DovetailCountedKinesisStreamArn: { Type: String } + X8664AsgCapacityProviderName: { Type: String } + Aarch64AsgCapacityProviderName: { Type: String } CmsSharedAlbListenerRulePriorityPrefix: { Type: String } @@ -103,6 +105,7 @@ Resources: MetaHostname: !Ref MetaHostname NewRelicApiKeyPrxLite: !Ref NewRelicApiKeyPrxLite BetaHostname: !Ref BetaHostname + X8664AsgCapacityProviderName: !Ref X8664AsgCapacityProviderName Tags: - { Key: prx:meta:tagging-version, Value: "2021-04-07" } - { Key: prx:cloudformation:stack-name, Value: !Ref AWS::StackName } @@ -294,6 +297,7 @@ Resources: SharedAuroraMysqlEndpoint: !Ref SharedAuroraMysqlEndpoint SharedAuroraMysqlPort: !Ref SharedAuroraMysqlPort TurnstileID: !Sub /prx/${EnvironmentTypeAbbreviation}/Spire/ID/turnstile-id + Aarch64AsgCapacityProviderName: !Ref Aarch64AsgCapacityProviderName Tags: - { Key: prx:meta:tagging-version, Value: "2021-04-07" } - { Key: prx:cloudformation:stack-name, Value: !Ref AWS::StackName } @@ -322,6 +326,7 @@ Resources: EnvironmentTypeAbbreviation: !Ref EnvironmentTypeAbbreviation RootStackName: !Ref RootStackName RootStackId: !Ref RootStackId + X8664AsgCapacityProviderName: !Ref X8664AsgCapacityProviderName Tags: - { Key: prx:meta:tagging-version, Value: "2021-04-07" } - { Key: prx:cloudformation:stack-name, Value: !Ref AWS::StackName } @@ -352,6 +357,7 @@ Resources: RootStackName: !Ref RootStackName RootStackId: !Ref RootStackId PlayHostname: !Ref PlayHostname + X8664AsgCapacityProviderName: !Ref X8664AsgCapacityProviderName Tags: - { Key: prx:meta:tagging-version, Value: "2021-04-07" } - { Key: prx:cloudformation:stack-name, Value: !Ref AWS::StackName } @@ -409,6 +415,7 @@ Resources: EnvironmentTypeAbbreviation: !Ref EnvironmentTypeAbbreviation RootStackName: !Ref RootStackName RootStackId: !Ref RootStackId + X8664AsgCapacityProviderName: !Ref X8664AsgCapacityProviderName Tags: - { Key: prx:meta:tagging-version, Value: "2021-04-07" } - { Key: prx:cloudformation:stack-name, Value: !Ref AWS::StackName } @@ -437,6 +444,7 @@ Resources: EnvironmentTypeAbbreviation: !Ref EnvironmentTypeAbbreviation RootStackName: !Ref RootStackName RootStackId: !Ref RootStackId + X8664AsgCapacityProviderName: !Ref X8664AsgCapacityProviderName Tags: - { Key: prx:meta:tagging-version, Value: "2021-04-07" } - { Key: prx:cloudformation:stack-name, Value: !Ref AWS::StackName } diff --git a/spire/templates/apps-200A.yml b/spire/templates/apps-200A.yml index 956c8d3d..11d48fd1 100644 --- a/spire/templates/apps-200A.yml +++ b/spire/templates/apps-200A.yml @@ -78,6 +78,8 @@ Parameters: AnnounceResourcePrefix: { Type: String } PorterJobExecutionSnsTopicArn: { Type: AWS::SSM::Parameter::Value } ClickhouseLegacyClientSecurityGroupId: { Type: AWS::EC2::SecurityGroup::Id } + X8664AsgCapacityProviderName: { Type: String } + Aarch64AsgCapacityProviderName: { Type: String } CastleSharedAlbListenerRulePriorityPrefix: { Type: String } @@ -156,6 +158,7 @@ Resources: FeederHostname: !Ref FeederHostname IdHostname: !Ref IdHostname ClickhouseLegacyClientSecurityGroupId: !Ref ClickhouseLegacyClientSecurityGroupId + X8664AsgCapacityProviderName: !Ref X8664AsgCapacityProviderName Tags: - { Key: prx:meta:tagging-version, Value: "2021-04-07" } - { Key: prx:cloudformation:stack-name, Value: !Ref AWS::StackName } @@ -221,6 +224,7 @@ Resources: BetaHostname: !Ref BetaHostname TheCountHostname: !Ref TheCountHostname TheCastleHostname: !Ref TheCastleHostname + X8664AsgCapacityProviderName: !Ref X8664AsgCapacityProviderName Tags: - { Key: prx:meta:tagging-version, Value: "2021-04-07" } - { Key: prx:cloudformation:stack-name, Value: !Ref AWS::StackName } @@ -283,6 +287,7 @@ Resources: DovetailAppleApiBridgeEndpointUrl: !Ref DovetailAppleApiBridgeEndpointUrl EchoServiceToken: !Ref EchoServiceToken SlackMessageRelaySnsTopicArn: !Ref SlackMessageRelaySnsTopicArn + X8664AsgCapacityProviderName: !Ref X8664AsgCapacityProviderName Tags: - { Key: prx:meta:tagging-version, Value: "2021-04-07" } - { Key: prx:cloudformation:stack-name, Value: !Ref AWS::StackName } @@ -316,6 +321,7 @@ Resources: RootStackName: !Ref RootStackName RootStackId: !Ref RootStackId IdHostname: !Ref IdHostname + Aarch64AsgCapacityProviderName: !Ref Aarch64AsgCapacityProviderName Tags: - { Key: prx:meta:tagging-version, Value: "2021-04-07" } - { Key: prx:cloudformation:stack-name, Value: !Ref AWS::StackName } @@ -370,6 +376,7 @@ Resources: ExchangeHostname: !Ref ExchangeHostname ExchangeApiHostname: !Ref ExchangeApiHostname IdHostname: !Ref IdHostname + X8664AsgCapacityProviderName: !Ref X8664AsgCapacityProviderName Tags: - { Key: prx:meta:tagging-version, Value: "2021-04-07" } - { Key: prx:cloudformation:stack-name, Value: !Ref AWS::StackName } @@ -409,6 +416,7 @@ Resources: TransferS3BucketArn: !Sub /prx/${EnvironmentTypeAbbreviation}/Spire/Exchange/${AWS::Region}/ftp/s3-bucket-arn RemixHostname: !Ref RemixHostname ExchangeHostname: !Ref ExchangeHostname + X8664AsgCapacityProviderName: !Ref X8664AsgCapacityProviderName Tags: - { Key: prx:meta:tagging-version, Value: "2021-04-07" } - { Key: prx:cloudformation:stack-name, Value: !Ref AWS::StackName } diff --git a/spire/templates/apps-300A.yml b/spire/templates/apps-300A.yml index b072e577..3eadb56a 100644 --- a/spire/templates/apps-300A.yml +++ b/spire/templates/apps-300A.yml @@ -60,6 +60,7 @@ Parameters: DovetailCountedKinesisStreamName: { Type: String } DovetailVerifiedMetricsKinesisStreamArn: { Type: String } DovetailVerifiedMetricsKinesisStreamName: { Type: String } + X8664AsgCapacityProviderName: { Type: String } AugurySharedAlbListenerRulePriorityPrefix: { Type: String } @@ -120,6 +121,7 @@ Resources: AdFilesS3BucketArn: !Sub /prx/${EnvironmentTypeAbbreviation}/Spire/Dovetail-Augury/${AWS::Region}/ad-files-s3-bucket-arn SlackMessageRelaySnsTopicArn: !Ref SlackMessageRelaySnsTopicArn ClickhouseLegacyClientSecurityGroupId: !Ref ClickhouseLegacyClientSecurityGroupId + X8664AsgCapacityProviderName: !Ref X8664AsgCapacityProviderName Tags: - { Key: prx:meta:tagging-version, Value: "2021-04-07" } - { Key: prx:cloudformation:stack-name, Value: !Ref AWS::StackName } @@ -199,6 +201,7 @@ Resources: DovetailCdnRedirectPrefix: !Sub /prx/${EnvironmentTypeAbbreviation}/Spire/Dovetail-Router/${AWS::Region}/redirect-prefix FrequencyDynamodbTableName: !Sub /prx/${EnvironmentTypeAbbreviation}/Spire/Dovetail-Analytics/FREQUENCY_DDB_TABLE FrequencyDynamodbAccessRoleArn: !Sub /prx/${EnvironmentTypeAbbreviation}/Spire/Dovetail-Analytics/FREQUENCY_DDB_ACCESS_ROLE + X8664AsgCapacityProviderName: !Ref X8664AsgCapacityProviderName Tags: - { Key: prx:meta:tagging-version, Value: "2021-04-07" } - { Key: prx:cloudformation:stack-name, Value: !Ref AWS::StackName } @@ -231,6 +234,7 @@ Resources: CastleHostname: !Ref CastleHostname IdHostname: !Ref IdHostname MetricsHostname: !Ref MetricsHostname + X8664AsgCapacityProviderName: !Ref X8664AsgCapacityProviderName Tags: - { Key: prx:meta:tagging-version, Value: "2021-04-07" } - { Key: prx:cloudformation:stack-name, Value: !Ref AWS::StackName } diff --git a/spire/templates/apps-400A.yml b/spire/templates/apps-400A.yml index 75781728..810dd40a 100644 --- a/spire/templates/apps-400A.yml +++ b/spire/templates/apps-400A.yml @@ -32,6 +32,7 @@ Parameters: S3SigningEndpointUrl: { Type: String } S3SigningAccessKeyId: { Type: String } AmazonSesSmtpCredentialsGeneratorServiceToken: { Type: String } + X8664AsgCapacityProviderName: { Type: String } ExchangeHostname: { Type: String } @@ -72,6 +73,7 @@ Resources: SharedAuroraMysqlEndpoint: !Ref SharedAuroraMysqlEndpoint SharedAuroraMysqlPort: !Ref SharedAuroraMysqlPort ExchangeHostname: !Ref ExchangeHostname + X8664AsgCapacityProviderName: !Ref X8664AsgCapacityProviderName Tags: - { Key: prx:meta:tagging-version, Value: "2021-04-07" } - { Key: prx:cloudformation:stack-name, Value: !Ref AWS::StackName } @@ -181,6 +183,7 @@ Resources: AnnounceResourcePrefix: !Ref AnnounceResourcePrefix PorterJobExecutionSnsTopicArn: !Ref PorterJobExecutionSnsTopicArn ExchangeHostname: !Ref ExchangeHostname + X8664AsgCapacityProviderName: !Ref X8664AsgCapacityProviderName Tags: - { Key: prx:meta:tagging-version, Value: "2021-04-07" } - { Key: prx:cloudformation:stack-name, Value: !Ref AWS::StackName } diff --git a/spire/templates/apps/augury.yml b/spire/templates/apps/augury.yml index 9476213e..d267f9e3 100644 --- a/spire/templates/apps/augury.yml +++ b/spire/templates/apps/augury.yml @@ -68,6 +68,7 @@ Parameters: DovetailRouterHostname: { Type: String } AdFilesS3BucketArn: { Type: AWS::SSM::Parameter::Value } SlackMessageRelaySnsTopicArn: { Type: String } + X8664AsgCapacityProviderName: { Type: String } Conditions: IsProduction: !Equals [!Ref EnvironmentType, Production] @@ -260,6 +261,10 @@ Resources: Type: AWS::ECS::Service Condition: HasAuroraEndpoint # See README Properties: + CapacityProviderStrategy: + - Base: 0 + CapacityProvider: !Ref X8664AsgCapacityProviderName + Weight: 1 Cluster: !Ref EcsClusterArn DeploymentConfiguration: MaximumPercent: 200 @@ -291,6 +296,10 @@ Resources: Type: AWS::ECS::Service Condition: EnableWorkers # See README Properties: + CapacityProviderStrategy: + - Base: 0 + CapacityProvider: !Ref X8664AsgCapacityProviderName + Weight: 1 Cluster: !Ref EcsClusterArn DeploymentConfiguration: MaximumPercent: 200 @@ -1144,6 +1153,7 @@ Resources: ROOT_STACK_NAME: !Ref RootStackName STACK_ID: !Ref AWS::StackName STACK_NAME: !Ref AWS::StackId + X86_64_ASG_CAPACITY_PROVIDER_NAME: !Ref X8664AsgCapacityProviderName Events: SqsMessages: Type: SQS diff --git a/spire/templates/apps/castle.yml b/spire/templates/apps/castle.yml index 8e9b78e1..4bcc0a4f 100644 --- a/spire/templates/apps/castle.yml +++ b/spire/templates/apps/castle.yml @@ -37,6 +37,7 @@ Parameters: SharedEcsAsgInstanceSecurityGroupId: { Type: AWS::EC2::SecurityGroup::Id } FeederHostname: { Type: String } IdHostname: { Type: String } + X8664AsgCapacityProviderName: { Type: String } ClickhouseLegacyClientSecurityGroupId: { Type: AWS::EC2::SecurityGroup::Id } Conditions: @@ -120,6 +121,10 @@ Resources: EcsService: Type: AWS::ECS::Service Properties: + CapacityProviderStrategy: + - Base: 0 + CapacityProvider: !Ref X8664AsgCapacityProviderName + Weight: 1 Cluster: !Ref EcsClusterArn DeploymentConfiguration: MaximumPercent: 200 diff --git a/spire/templates/apps/cms.yml b/spire/templates/apps/cms.yml index d06b6fd7..e5e3a8f8 100644 --- a/spire/templates/apps/cms.yml +++ b/spire/templates/apps/cms.yml @@ -56,6 +56,7 @@ Parameters: MetaHostname: { Type: String } NewRelicApiKeyPrxLite: { Type: String } BetaHostname: { Type: String } + X8664AsgCapacityProviderName: { Type: String } Conditions: IsProduction: !Equals [!Ref EnvironmentType, Production] @@ -333,6 +334,10 @@ Resources: Type: AWS::ECS::Service Condition: HasAuroraEndpoint # See README Properties: + CapacityProviderStrategy: + - Base: 0 + CapacityProvider: !Ref X8664AsgCapacityProviderName + Weight: 1 Cluster: !Ref EcsClusterArn DeploymentConfiguration: MaximumPercent: 200 @@ -360,6 +365,10 @@ Resources: Type: AWS::ECS::Service Condition: EnableWorkers # See README Properties: + CapacityProviderStrategy: + - Base: 0 + CapacityProvider: !Ref X8664AsgCapacityProviderName + Weight: 1 Cluster: !Ref EcsClusterArn DeploymentConfiguration: MaximumPercent: 200 diff --git a/spire/templates/apps/dovetail-insights.yml b/spire/templates/apps/dovetail-insights.yml index 28e45d3d..0cd491e7 100644 --- a/spire/templates/apps/dovetail-insights.yml +++ b/spire/templates/apps/dovetail-insights.yml @@ -36,6 +36,7 @@ Parameters: EcrImageTag: { Type: AWS::SSM::Parameter::Value } AlbListenerRulePriorityPrefix: { Type: String } IdHostname: { Type: String } + Aarch64AsgCapacityProviderName: { Type: String } Conditions: IsProduction: !Equals [!Ref EnvironmentType, Production] @@ -177,6 +178,10 @@ Resources: Type: AWS::ECS::Service # Condition: HasAuroraEndpoint # See README Properties: + CapacityProviderStrategy: + - Base: 0 + CapacityProvider: !Ref Aarch64AsgCapacityProviderName + Weight: 1 Cluster: !Ref EcsClusterArn DeploymentConfiguration: MaximumPercent: 200 diff --git a/spire/templates/apps/dovetail-router.yml b/spire/templates/apps/dovetail-router.yml index 1236f482..7bc79698 100644 --- a/spire/templates/apps/dovetail-router.yml +++ b/spire/templates/apps/dovetail-router.yml @@ -93,6 +93,7 @@ Parameters: FeederHostname: { Type: String } DovetailCdnHostname: { Type: String } DovetailRouterHostname: { Type: String } + X8664AsgCapacityProviderName: { Type: String } DovetailCdnRedirectPrefix: { Type: AWS::SSM::Parameter::Value } FrequencyDynamodbTableName: { Type: AWS::SSM::Parameter::Value } FrequencyDynamodbAccessRoleArn: { Type: AWS::SSM::Parameter::Value } @@ -661,6 +662,10 @@ Resources: - HttpListener - HttpsListener Properties: + CapacityProviderStrategy: + - Base: 0 + CapacityProvider: !Ref X8664AsgCapacityProviderName + Weight: 1 Cluster: !Ref EcsClusterArn DeploymentConfiguration: MaximumPercent: 200 diff --git a/spire/templates/apps/exchange.yml b/spire/templates/apps/exchange.yml index b1eefe9d..58aad54f 100644 --- a/spire/templates/apps/exchange.yml +++ b/spire/templates/apps/exchange.yml @@ -73,6 +73,7 @@ Parameters: BetaHostname: { Type: String } TheCountHostname: { Type: String } TheCastleHostname: { Type: String } + X8664AsgCapacityProviderName: { Type: String } Conditions: IsProduction: !Equals [!Ref EnvironmentType, Production] @@ -345,6 +346,10 @@ Resources: Type: AWS::ECS::Service Condition: HasAuroraEndpoint # See README Properties: + CapacityProviderStrategy: + - Base: 0 + CapacityProvider: !Ref X8664AsgCapacityProviderName + Weight: 1 Cluster: !Ref EcsClusterArn DeploymentConfiguration: MaximumPercent: 200 @@ -586,6 +591,10 @@ Resources: Type: AWS::ECS::Service Condition: EnableWorkers # See README Properties: + CapacityProviderStrategy: + - Base: 0 + CapacityProvider: !Ref X8664AsgCapacityProviderName + Weight: 1 Cluster: !Ref EcsClusterArn DeploymentConfiguration: MaximumPercent: 200 @@ -962,6 +971,10 @@ Resources: Targets: - Arn: !Ref EcsClusterArn EcsParameters: + CapacityProviderStrategy: + - Base: 0 + CapacityProvider: !Ref X8664AsgCapacityProviderName + Weight: 1 TaskCount: 1 TaskDefinitionArn: !Ref WorkerTaskDefinition Id: SayWhenRuleTarget diff --git a/spire/templates/apps/feeder.yml b/spire/templates/apps/feeder.yml index 1c52ec2b..7d3aff11 100644 --- a/spire/templates/apps/feeder.yml +++ b/spire/templates/apps/feeder.yml @@ -72,6 +72,7 @@ Parameters: PublicFeedsHostname: { Type: String } DovetailAppleApiBridgeEndpointUrl: { Type: String } SlackMessageRelaySnsTopicArn: { Type: String } + X8664AsgCapacityProviderName: { Type: String } Conditions: IsProduction: !Equals [!Ref EnvironmentType, Production] @@ -736,6 +737,10 @@ Resources: Type: AWS::ECS::Service Condition: HasAuroraEndpoint # See README Properties: + CapacityProviderStrategy: + - Base: 0 + CapacityProvider: !Ref X8664AsgCapacityProviderName + Weight: 1 Cluster: !Ref EcsClusterArn DeploymentConfiguration: MaximumPercent: 200 @@ -910,6 +915,10 @@ Resources: Type: AWS::ECS::Service Condition: EnableWorkers # See README Properties: + CapacityProviderStrategy: + - Base: 0 + CapacityProvider: !Ref X8664AsgCapacityProviderName + Weight: 1 Cluster: !Ref EcsClusterArn DeploymentConfiguration: MaximumPercent: 200 diff --git a/spire/templates/apps/id.yml b/spire/templates/apps/id.yml index a60f54c4..17fe5f94 100644 --- a/spire/templates/apps/id.yml +++ b/spire/templates/apps/id.yml @@ -39,6 +39,7 @@ Parameters: PorterJobExecutionSnsTopicArn: { Type: String } SharedAuroraMysqlEndpoint: { Type: String } SharedAuroraMysqlPort: { Type: String } + Aarch64AsgCapacityProviderName: { Type: String } TurnstileID: { Type: AWS::SSM::Parameter::Value } Conditions: @@ -122,6 +123,10 @@ Resources: Type: AWS::ECS::Service Condition: HasAuroraEndpoint # See README Properties: + CapacityProviderStrategy: + - Base: 0 + CapacityProvider: !Ref Aarch64AsgCapacityProviderName + Weight: 1 Cluster: !Ref EcsClusterArn DeploymentConfiguration: MaximumPercent: 200 diff --git a/spire/templates/apps/iframely.yml b/spire/templates/apps/iframely.yml index 588be19a..e7e45f66 100644 --- a/spire/templates/apps/iframely.yml +++ b/spire/templates/apps/iframely.yml @@ -24,6 +24,7 @@ Parameters: VpcId: { Type: AWS::EC2::VPC::Id } EcrImageTag: { Type: AWS::SSM::Parameter::Value } AlbListenerRulePriorityPrefix: { Type: String } + X8664AsgCapacityProviderName: { Type: String } Conditions: IsProduction: !Equals [!Ref EnvironmentType, Production] @@ -128,6 +129,10 @@ Resources: EcsService: Type: AWS::ECS::Service Properties: + CapacityProviderStrategy: + - Base: 0 + CapacityProvider: !Ref X8664AsgCapacityProviderName + Weight: 1 Cluster: !Ref EcsClusterArn DeploymentConfiguration: MaximumPercent: 200 diff --git a/spire/templates/apps/metrics.yml b/spire/templates/apps/metrics.yml index 7af2a74f..9c60d400 100644 --- a/spire/templates/apps/metrics.yml +++ b/spire/templates/apps/metrics.yml @@ -28,6 +28,7 @@ Parameters: CastleHostname: { Type: String } IdHostname: { Type: String } MetricsHostname: { Type: String } + X8664AsgCapacityProviderName: { Type: String } Conditions: IsProduction: !Equals [!Ref EnvironmentType, Production] @@ -148,6 +149,10 @@ Resources: EcsService: Type: AWS::ECS::Service Properties: + CapacityProviderStrategy: + - Base: 0 + CapacityProvider: !Ref X8664AsgCapacityProviderName + Weight: 1 Cluster: !Ref EcsClusterArn DeploymentConfiguration: MaximumPercent: 200 diff --git a/spire/templates/apps/networks.yml b/spire/templates/apps/networks.yml index 10297488..c1f09edc 100644 --- a/spire/templates/apps/networks.yml +++ b/spire/templates/apps/networks.yml @@ -60,6 +60,7 @@ Parameters: ExchangeHostname: { Type: String } ExchangeApiHostname: { Type: String } IdHostname: { Type: String } + X8664AsgCapacityProviderName: { Type: String } Conditions: IsProduction: !Equals [!Ref EnvironmentType, Production] @@ -239,6 +240,10 @@ Resources: Type: AWS::ECS::Service Condition: HasAuroraEndpoint # See README Properties: + CapacityProviderStrategy: + - Base: 0 + CapacityProvider: !Ref X8664AsgCapacityProviderName + Weight: 1 Cluster: !Ref EcsClusterArn DeploymentConfiguration: MaximumPercent: 200 @@ -629,6 +634,10 @@ Resources: - SphinxServerSearchdNlbListener - SphinxServerWebNlbListener Properties: + CapacityProviderStrategy: + - Base: 0 + CapacityProvider: !Ref X8664AsgCapacityProviderName + Weight: 1 Cluster: !Ref EcsClusterArn DeploymentConfiguration: MaximumPercent: 200 diff --git a/spire/templates/apps/play.yml b/spire/templates/apps/play.yml index 4047d40a..976e6348 100644 --- a/spire/templates/apps/play.yml +++ b/spire/templates/apps/play.yml @@ -28,6 +28,7 @@ Parameters: EcrImageTag: { Type: AWS::SSM::Parameter::Value } AlbListenerRulePriorityPrefix: { Type: String } PlayHostname: { Type: String } + X8664AsgCapacityProviderName: { Type: String } Conditions: IsProduction: !Equals [!Ref EnvironmentType, Production] @@ -159,6 +160,10 @@ Resources: WebEcsService: Type: AWS::ECS::Service Properties: + CapacityProviderStrategy: + - Base: 0 + CapacityProvider: !Ref X8664AsgCapacityProviderName + Weight: 1 Cluster: !Ref EcsClusterArn DeploymentConfiguration: MaximumPercent: 200 diff --git a/spire/templates/apps/remix.yml b/spire/templates/apps/remix.yml index 7fdb4c72..a81e8612 100644 --- a/spire/templates/apps/remix.yml +++ b/spire/templates/apps/remix.yml @@ -40,6 +40,7 @@ Parameters: TransferS3BucketArn: { Type: AWS::SSM::Parameter::Value } RemixHostname: { Type: String } ExchangeHostname: { Type: String } + X8664AsgCapacityProviderName: { Type: String } Conditions: IsProduction: !Equals [!Ref EnvironmentType, Production] @@ -227,6 +228,10 @@ Resources: Type: AWS::ECS::Service Condition: HasAuroraEndpoint # See README Properties: + CapacityProviderStrategy: + - Base: 0 + CapacityProvider: !Ref X8664AsgCapacityProviderName + Weight: 1 Cluster: !Ref EcsClusterArn DeploymentConfiguration: MaximumPercent: 200 @@ -514,6 +519,10 @@ Resources: Targets: - Arn: !Ref EcsClusterArn EcsParameters: + CapacityProviderStrategy: + - Base: 0 + CapacityProvider: !Ref X8664AsgCapacityProviderName + Weight: 1 TaskCount: 1 TaskDefinitionArn: !Ref WorkerTaskDefinition Id: RemixWorkerRuleTarget diff --git a/spire/templates/apps/styleguide.yml b/spire/templates/apps/styleguide.yml index 1b7201d1..6eef8a75 100644 --- a/spire/templates/apps/styleguide.yml +++ b/spire/templates/apps/styleguide.yml @@ -25,6 +25,7 @@ Parameters: VpcId: { Type: AWS::EC2::VPC::Id } EcrImageTag: { Type: AWS::SSM::Parameter::Value } AlbListenerRulePriorityPrefix: { Type: String } + X8664AsgCapacityProviderName: { Type: String } Conditions: IsProduction: !Equals [!Ref EnvironmentType, Production] @@ -103,6 +104,10 @@ Resources: EcsService: Type: AWS::ECS::Service Properties: + CapacityProviderStrategy: + - Base: 0 + CapacityProvider: !Ref X8664AsgCapacityProviderName + Weight: 1 Cluster: !Ref EcsClusterArn DeploymentConfiguration: MaximumPercent: 200 diff --git a/spire/templates/apps/the-castle.yml b/spire/templates/apps/the-castle.yml index 21d21a3b..7b7cd57a 100644 --- a/spire/templates/apps/the-castle.yml +++ b/spire/templates/apps/the-castle.yml @@ -40,6 +40,7 @@ Parameters: SharedAuroraMysqlEndpoint: { Type: String } SharedAuroraMysqlPort: { Type: String } ExchangeHostname: { Type: String } + X8664AsgCapacityProviderName: { Type: String } Conditions: IsProduction: !Equals [!Ref EnvironmentType, Production] @@ -206,6 +207,10 @@ Resources: Type: AWS::ECS::Service Condition: HasAuroraEndpoint # See README Properties: + CapacityProviderStrategy: + - Base: 0 + CapacityProvider: !Ref X8664AsgCapacityProviderName + Weight: 1 Cluster: !Ref EcsClusterArn DeploymentConfiguration: MaximumPercent: 200 @@ -466,6 +471,10 @@ Resources: Targets: - Arn: !Ref EcsClusterArn EcsParameters: + CapacityProviderStrategy: + - Base: 0 + CapacityProvider: !Ref X8664AsgCapacityProviderName + Weight: 1 TaskCount: 1 TaskDefinitionArn: !Ref WorkerTaskDefinition Id: TheCastleWorkerRuleTarget diff --git a/spire/templates/apps/theworld-website.yml b/spire/templates/apps/theworld-website.yml index 95e48056..66cfbd9a 100644 --- a/spire/templates/apps/theworld-website.yml +++ b/spire/templates/apps/theworld-website.yml @@ -25,6 +25,7 @@ Parameters: VpcId: { Type: AWS::EC2::VPC::Id } EcrImageTag: { Type: AWS::SSM::Parameter::Value } AlbListenerRulePriorityPrefix: { Type: String } + X8664AsgCapacityProviderName: { Type: String } Conditions: IsProduction: !Equals [!Ref EnvironmentType, Production] @@ -106,6 +107,10 @@ Resources: EcsService: Type: AWS::ECS::Service Properties: + CapacityProviderStrategy: + - Base: 0 + CapacityProvider: !Ref X8664AsgCapacityProviderName + Weight: 1 Cluster: !Ref EcsClusterArn DeploymentConfiguration: MaximumPercent: 200 diff --git a/spire/templates/apps/wfmt.yml b/spire/templates/apps/wfmt.yml index e420f648..c4e65c13 100644 --- a/spire/templates/apps/wfmt.yml +++ b/spire/templates/apps/wfmt.yml @@ -44,6 +44,7 @@ Parameters: AnnounceResourcePrefix: { Type: String } PorterJobExecutionSnsTopicArn: { Type: String } ExchangeHostname: { Type: String } + X8664AsgCapacityProviderName: { Type: String } Conditions: IsProduction: !Equals [!Ref EnvironmentType, Production] @@ -411,6 +412,10 @@ Resources: Type: AWS::ECS::Service Condition: EnableWeb Properties: + CapacityProviderStrategy: + - Base: 0 + CapacityProvider: !Ref X8664AsgCapacityProviderName + Weight: 1 Cluster: !Ref EcsClusterArn DeploymentConfiguration: MaximumPercent: 200 @@ -569,6 +574,10 @@ Resources: Type: AWS::ECS::Service Condition: EnableWorkers # See README Properties: + CapacityProviderStrategy: + - Base: 0 + CapacityProvider: !Ref X8664AsgCapacityProviderName + Weight: 1 Cluster: !Ref EcsClusterArn DeploymentConfiguration: MaximumPercent: 200 diff --git a/spire/templates/root.yml b/spire/templates/root.yml index 5844de76..2ce4fbeb 100644 --- a/spire/templates/root.yml +++ b/spire/templates/root.yml @@ -710,6 +710,8 @@ Resources: PorterJobExecutionSnsTopicArn: !Sub /prx/${EnvironmentTypeAbbreviation}/Spire/${AWS::Region}/porter-job-execution-topic-arn DovetailCdnLogsKinesisStreamArn: !GetAtt SharedDovetailKinesisStack.Outputs.DovetailCdnLogsKinesisStreamArn DovetailCountedKinesisStreamArn: !GetAtt SharedDovetailKinesisStack.Outputs.DovetailCountedKinesisStreamArn + X8664AsgCapacityProviderName: !GetAtt SharedEcsAsgStack.Outputs.CapacityProviderName + Aarch64AsgCapacityProviderName: !GetAtt SharedEcsAsgAarch64Stack.Outputs.CapacityProviderName # App-specific parameters @@ -814,6 +816,8 @@ Resources: PorterJobExecutionSnsTopicArn: !Sub /prx/${EnvironmentTypeAbbreviation}/Spire/${AWS::Region}/porter-job-execution-topic-arn DovetailAppleApiBridgeEndpointUrl: !GetAtt Apps100AStack.Outputs.DovetailAppleApiBridgeEndpointUrl ClickhouseLegacyClientSecurityGroupId: !GetAtt SharedClickhouseSecurityGroupStack.Outputs.LegacyClientSecurityGroupId + X8664AsgCapacityProviderName: !GetAtt SharedEcsAsgStack.Outputs.CapacityProviderName + Aarch64AsgCapacityProviderName: !GetAtt SharedEcsAsgAarch64Stack.Outputs.CapacityProviderName # App-specific parameters @@ -898,6 +902,7 @@ Resources: SharedClickhouseEndpoint: !GetAtt SharedClickhouseStack.Outputs.PrivateDnsName SharedClickhousePort: !GetAtt SharedClickhouseStack.Outputs.HttpPort ClickhouseLegacyClientSecurityGroupId: !GetAtt SharedClickhouseSecurityGroupStack.Outputs.LegacyClientSecurityGroupId + X8664AsgCapacityProviderName: !GetAtt SharedEcsAsgStack.Outputs.CapacityProviderName # App-specific parameters @@ -947,6 +952,7 @@ Resources: S3SigningEndpointUrl: !GetAtt Apps100AStack.Outputs.S3SigningEndpointUrl S3SigningAccessKeyId: !GetAtt Apps100AStack.Outputs.S3SigningAccessKeyId AmazonSesSmtpCredentialsGeneratorServiceToken: !GetAtt CustomResourcesStack.Outputs.AmazonSesSmtpCredentialsGeneratorServiceToken + X8664AsgCapacityProviderName: !GetAtt SharedEcsAsgStack.Outputs.CapacityProviderName # App-specific parameters diff --git a/spire/templates/shared-ecs/asg-aarch64.yml b/spire/templates/shared-ecs/asg-aarch64.yml index ab46458f..76c62047 100644 --- a/spire/templates/shared-ecs/asg-aarch64.yml +++ b/spire/templates/shared-ecs/asg-aarch64.yml @@ -403,6 +403,14 @@ Resources: # The capacity provider is associated with the ECS cluster in the x86-64 # template, for that's where the association resource was originally created # and it's a pain to move. + # + # > [!NOTE] + # > This is poorly named. As of 2025, we have multiple capacity providers, + # and this one may or may not be part of the cluster's default capacity + # provider strategy. Even when it was, it was improper to name the logical ID + # of this resource as the "default". It is (or isn't) the default because of + # the way it's used, not inherently. It would be better named something like + # `BasicCapactiyProvider` or even just `CapacityProvider`. DefaultCapacityProvider: Type: AWS::ECS::CapacityProvider Properties: diff --git a/spire/templates/shared-ecs/asg-x86-64.yml b/spire/templates/shared-ecs/asg-x86-64.yml index f5b9d0bb..6a39ecf7 100644 --- a/spire/templates/shared-ecs/asg-x86-64.yml +++ b/spire/templates/shared-ecs/asg-x86-64.yml @@ -410,6 +410,13 @@ Resources: - !Ref VpcPublicSubnet2Id - !Ref VpcPublicSubnet3Id + # > [!NOTE] + # > This is poorly named. As of 2025, we have multiple capacity providers, + # and this one may or may not be part of the cluster's default capacity + # provider strategy. Even when it was, it was improper to name the logical ID + # of this resource as the "default". It is (or isn't) the default because of + # the way it's used, not inherently. It would be better named something like + # `BasicCapactiyProvider` or even just `CapacityProvider`. DefaultCapacityProvider: Type: AWS::ECS::CapacityProvider Properties: @@ -452,10 +459,9 @@ Resources: - Base: 0 Weight: 1 CapacityProvider: !Ref DefaultCapacityProvider - - Base: 0 - Weight: 1 - CapacityProvider: !Ref Aarch64AsgCapacityProviderName Outputs: AsgName: Value: !Ref Asg + CapacityProviderName: + Value: !Ref DefaultCapacityProvider