Skip to content

Commit cd692b0

Browse files
authored
Merge pull request #798 from PRX/spire-aarch64
Rename x86_64 ASG template file
2 parents 983c006 + 3b2edca commit cd692b0

File tree

4 files changed

+501
-8
lines changed

4 files changed

+501
-8
lines changed

spire/templates/dashboards.yml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ Parameters:
1919
SharedVpcId: { Type: AWS::EC2::VPC::Id }
2020
SharedVpcCidrBlock: { Type: String }
2121

22-
SharedEcsAsgName: { Type: String }
22+
SharedEcsAsgX86Name: { Type: String }
23+
SharedEcsAsgAarch64Name: { Type: String }
2324

2425
SharedAlbArn: { Type: String }
2526
SharedAlbName: { Type: String }
@@ -102,7 +103,7 @@ Resources:
102103
"x": 0,
103104
"type": "text",
104105
"properties": {
105-
"markdown": "\n# AWS Console\n\n- [CloudFormation root stack](https://${AWS::Region}.console.aws.amazon.com/cloudformation/home?region=${AWS::Region}#/stacks/stackinfo?stackId=${RootStackId})\n- [Stack resource group](https://${AWS::Region}.console.aws.amazon.com/resource-groups/group/${StackResourceGroupName}?region=${AWS::Region}) | [Logs](https://${AWS::Region}.console.aws.amazon.com/resource-groups/group/${StackLogGroupsGroupName}?region=${AWS::Region})\n- [ECS Cluster](https://${AWS::Region}.console.aws.amazon.com/ecs/v2/clusters/${SharedEcsClusterName}/services?region=${AWS::Region})\n- [Shared VPC](https://${AWS::Region}.console.aws.amazon.com/vpcconsole/home?region=${AWS::Region}#VpcDetails:VpcId=${SharedVpcId}) | [Subnets](https://${AWS::Region}.console.aws.amazon.com/vpc/home?region=${AWS::Region}#subnets:vpcId=${SharedVpcId};sort=tag:Name) | [NACLs](https://${AWS::Region}.console.aws.amazon.com/vpc/home?region=${AWS::Region}#acls:vpcId=${SharedVpcId};sort=tag:Name) | [Peering](https://${AWS::Region}.console.aws.amazon.com/vpc/home?region=${AWS::Region}#PeeringConnections:search=${SharedVpcId})\n- [ENIs](https://${AWS::Region}.console.aws.amazon.com/ec2/v2/home?region=${AWS::Region}#NIC:vpcId=${SharedVpcId})\n- [Security groups](https://${AWS::Region}.console.aws.amazon.com/vpc/home?region=${AWS::Region}#securityGroups:search=${SharedVpcId})\n- [Shared VPC Flow Logs Insights](https://${AWS::Region}.cconsole.aws.amazon.com/cloudwatch/home?region=${AWS::Region}#logsV2:logs-insights$3FqueryDetail$3D$257E$2528end$257E0$257Estart$257E-1800$257EtimeType$257E$2527RELATIVE$257Eunit$257E$2527seconds$257EeditorString$257E$2527fields*20*40timestamp*2c*20action*2c*20interfaceId*2c*20srcAddr*2c*20srcPort*2c*20dstAddr*2c*20dstPort*0a*7c*20sort*20*40timestamp*20desc*0a*7c*20limit*20500$257EisLiveTail$257Efalse$257EqueryId$257E$252738782a19-012d-4a8b-bda2-202bec5ce7e1$257Esource$257E$2528$257E$2527${SharedVpcFlowLogsLogGroupName}$2529$2529)\n- [EC2 Instances](https:/${AWS::Region}.cconsole.aws.amazon.com/ec2/v2/home?region=${AWS::Region}#Instances:instanceState=running;search=${SharedVpcId};sort=launchTime) | [Shared ASG](https://${AWS::Region}.console.aws.amazon.com/ec2/home?region=${AWS::Region}#AutoScalingGroupDetails:id=${SharedEcsAsgName};view=details) | [Shared ALB](https://${AWS::Region}.console.aws.amazon.com/ec2/home?region=${AWS::Region}#LoadBalancer:loadBalancerArn=${SharedAlbArn};tab=listeners)\n- [Dovetail ALB](https://${AWS::Region}.console.aws.amazon.com/ec2/home?region=${AWS::Region}#LoadBalancer:loadBalancerArn=${DovetailAlbArn};tab=listeners) | [Exchange FTP NLB](https://${AWS::Region}.console.aws.amazon.com/ec2/home?region=${AWS::Region}#LoadBalancer:loadBalancerArn=${ExchangeFtpServerNlbArn};tab=listeners)\n- [Shared Memcached](https://${AWS::Region}.console.aws.amazon.com/elasticache/home?region=${AWS::Region}#/memcached/${SharedMemcachedCacheName}) | [App Cache Redis](https://${AWS::Region}.console.aws.amazon.com/elasticache/home?region=${AWS::Region}#/redis/${SharedAppRedisCacheName})\n- [Dovetail Redis](https://${AWS::Region}.console.aws.amazon.com/elasticache/home?region=${AWS::Region}#/redis/${DovetailRedisReplicationGroupName})\n- [CMS Elasticsearch Service](https://${AWS::Region}.console.aws.amazon.com/aos/home?region=${AWS::Region}#opensearch/domains/${CmsElasticsearchDomainName})\n- [Castle PostgreSQL](https://${AWS::Region}.console.aws.amazon.com/rds/home?region=${AWS::Region}#database:id=${CastlePostgresInstanceId};is-cluster=false)\n"
106+
"markdown": "\n# AWS Console\n\n- [CloudFormation root stack](https://${AWS::Region}.console.aws.amazon.com/cloudformation/home?region=${AWS::Region}#/stacks/stackinfo?stackId=${RootStackId})\n- [Stack resource group](https://${AWS::Region}.console.aws.amazon.com/resource-groups/group/${StackResourceGroupName}?region=${AWS::Region}) | [Logs](https://${AWS::Region}.console.aws.amazon.com/resource-groups/group/${StackLogGroupsGroupName}?region=${AWS::Region})\n- [ECS Cluster](https://${AWS::Region}.console.aws.amazon.com/ecs/v2/clusters/${SharedEcsClusterName}/services?region=${AWS::Region})\n- [Shared VPC](https://${AWS::Region}.console.aws.amazon.com/vpcconsole/home?region=${AWS::Region}#VpcDetails:VpcId=${SharedVpcId}) | [Subnets](https://${AWS::Region}.console.aws.amazon.com/vpc/home?region=${AWS::Region}#subnets:vpcId=${SharedVpcId};sort=tag:Name) | [NACLs](https://${AWS::Region}.console.aws.amazon.com/vpc/home?region=${AWS::Region}#acls:vpcId=${SharedVpcId};sort=tag:Name) | [Peering](https://${AWS::Region}.console.aws.amazon.com/vpc/home?region=${AWS::Region}#PeeringConnections:search=${SharedVpcId})\n- [ENIs](https://${AWS::Region}.console.aws.amazon.com/ec2/v2/home?region=${AWS::Region}#NIC:vpcId=${SharedVpcId})\n- [Security groups](https://${AWS::Region}.console.aws.amazon.com/vpc/home?region=${AWS::Region}#securityGroups:search=${SharedVpcId})\n- [Shared VPC Flow Logs Insights](https://${AWS::Region}.cconsole.aws.amazon.com/cloudwatch/home?region=${AWS::Region}#logsV2:logs-insights$3FqueryDetail$3D$257E$2528end$257E0$257Estart$257E-1800$257EtimeType$257E$2527RELATIVE$257Eunit$257E$2527seconds$257EeditorString$257E$2527fields*20*40timestamp*2c*20action*2c*20interfaceId*2c*20srcAddr*2c*20srcPort*2c*20dstAddr*2c*20dstPort*0a*7c*20sort*20*40timestamp*20desc*0a*7c*20limit*20500$257EisLiveTail$257Efalse$257EqueryId$257E$252738782a19-012d-4a8b-bda2-202bec5ce7e1$257Esource$257E$2528$257E$2527${SharedVpcFlowLogsLogGroupName}$2529$2529)\n- [EC2 Instances](https:/${AWS::Region}.cconsole.aws.amazon.com/ec2/v2/home?region=${AWS::Region}#Instances:instanceState=running;search=${SharedVpcId};sort=launchTime) | Shared ASG [X86](https://${AWS::Region}.console.aws.amazon.com/ec2/home?region=${AWS::Region}#AutoScalingGroupDetails:id=${SharedEcsAsgX86Name};view=details) [ARM](https://${AWS::Region}.console.aws.amazon.com/ec2/home?region=${AWS::Region}#AutoScalingGroupDetails:id=${SharedEcsAsgAarch64Name};view=details) | [Shared ALB](https://${AWS::Region}.console.aws.amazon.com/ec2/home?region=${AWS::Region}#LoadBalancer:loadBalancerArn=${SharedAlbArn};tab=listeners)\n- [Dovetail ALB](https://${AWS::Region}.console.aws.amazon.com/ec2/home?region=${AWS::Region}#LoadBalancer:loadBalancerArn=${DovetailAlbArn};tab=listeners) | [Exchange FTP NLB](https://${AWS::Region}.console.aws.amazon.com/ec2/home?region=${AWS::Region}#LoadBalancer:loadBalancerArn=${ExchangeFtpServerNlbArn};tab=listeners)\n- [Shared Memcached](https://${AWS::Region}.console.aws.amazon.com/elasticache/home?region=${AWS::Region}#/memcached/${SharedMemcachedCacheName}) | [App Cache Redis](https://${AWS::Region}.console.aws.amazon.com/elasticache/home?region=${AWS::Region}#/redis/${SharedAppRedisCacheName})\n- [Dovetail Redis](https://${AWS::Region}.console.aws.amazon.com/elasticache/home?region=${AWS::Region}#/redis/${DovetailRedisReplicationGroupName})\n- [CMS Elasticsearch Service](https://${AWS::Region}.console.aws.amazon.com/aos/home?region=${AWS::Region}#opensearch/domains/${CmsElasticsearchDomainName})\n- [Castle PostgreSQL](https://${AWS::Region}.console.aws.amazon.com/rds/home?region=${AWS::Region}#database:id=${CastlePostgresInstanceId};is-cluster=false)\n"
106107
}
107108
},
108109
{
@@ -123,8 +124,10 @@ Resources:
123124
"height": 3,
124125
"properties": {
125126
"metrics": [
126-
[ "AWS/AutoScaling", "GroupDesiredCapacity", "AutoScalingGroupName", "${SharedEcsAsgName}", { "label": "Desired Capacity" } ],
127-
[ "AWS/AutoScaling", "GroupInServiceInstances", "AutoScalingGroupName", "${SharedEcsAsgName}", { "label": "In Service Instances" } ]
127+
[ "AWS/AutoScaling", "GroupDesiredCapacity", "AutoScalingGroupName", "${SharedEcsAsgX86Name}", { "label": "x86-64 Desired Capacity" } ],
128+
[ "AWS/AutoScaling", "GroupInServiceInstances", "AutoScalingGroupName", "${SharedEcsAsgX86Name}", { "label": "x86-64 In Service Instances" } ],
129+
[ "AWS/AutoScaling", "GroupDesiredCapacity", "AutoScalingGroupName", "${SharedEcsAsgAarch64Name}", { "label": "aarch64 Desired Capacity" } ],
130+
[ "AWS/AutoScaling", "GroupInServiceInstances", "AutoScalingGroupName", "${SharedEcsAsgAarch64Name}", { "label": "aarch64 In Service Instances" } ]
128131
],
129132
"view": "timeSeries",
130133
"stacked": false,

spire/templates/root.yml

Lines changed: 41 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -390,7 +390,7 @@ Resources:
390390
TemplateURL: !Sub ${TemplateUrlBase}/spire/templates/shared-ecs/asg-sg.yml
391391
TimeoutInMinutes: 20
392392
# Requires VPC, ALB, and more
393-
SharedEcsAsgStack:
393+
SharedEcsAsgStack: # This is the x86-64 ASG
394394
Type: AWS::CloudFormation::Stack
395395
DeletionPolicy: Delete
396396
UpdateReplacePolicy: Delete
@@ -425,7 +425,44 @@ Resources:
425425
- { Key: prx:cloudformation:root-stack-id, Value: !Ref AWS::StackId }
426426
- { Key: prx:ops:environment, Value: !Ref EnvironmentType }
427427
- { Key: prx:dev:application, Value: Common }
428-
TemplateURL: !Sub ${TemplateUrlBase}/spire/templates/shared-ecs/asg.yml
428+
TemplateURL: !Sub ${TemplateUrlBase}/spire/templates/shared-ecs/asg-x86-64.yml
429+
TimeoutInMinutes: 1440
430+
SharedEcsAsgAarch64Stack:
431+
Type: AWS::CloudFormation::Stack
432+
DeletionPolicy: Delete
433+
UpdateReplacePolicy: Delete
434+
Properties:
435+
Parameters:
436+
EnvironmentType: !Ref EnvironmentType
437+
RegionMode: !FindInMap [RegionModeMap, !Ref "AWS::Region", !Ref EnvironmentType]
438+
RootStackName: !Ref AWS::StackName
439+
RootStackId: !Ref AWS::StackName
440+
NestedChangeSetScrubbingResourcesState: !Ref NestedChangeSetScrubbingResourcesState
441+
AuthorizedKeys: !Join [",", !Ref AuthorizedKeys]
442+
VpcPublicSubnet1Id: !GetAtt SharedVpcStack.Outputs.PublicSubnet1Id
443+
VpcPublicSubnet2Id: !GetAtt SharedVpcStack.Outputs.PublicSubnet2Id
444+
VpcPublicSubnet3Id: !GetAtt SharedVpcStack.Outputs.PublicSubnet3Id
445+
EcsClusterName: !GetAtt SharedEcsClusterStack.Outputs.EcsClusterName
446+
SharedEcsAsgInstanceSecurityGroupId: !GetAtt SharedEcsAsgSecurityGroupStack.Outputs.InstanceSecurityGroupId
447+
LoadBalancerSecurityGroupId: !GetAtt SharedAlbStack.Outputs.LoadBalancerSecurityGroupId
448+
SharedMysqlClientSecurityGroupId: !GetAtt SharedDatabaseSecurityGroupsStack.Outputs.SharedMysqlClientSecurityGroupId
449+
SharedPostgresqlClientSecurityGroupId: !GetAtt SharedDatabaseSecurityGroupsStack.Outputs.SharedPostgresqlClientSecurityGroupId
450+
SharedRedisClientSecurityGroupId: !GetAtt SharedRedisSecurityGroupStack.Outputs.ClientSecurityGroupId
451+
SharedClickhouseClientSecurityGroupId: !GetAtt SharedClickhouseSecurityGroupStack.Outputs.ClientSecurityGroupId
452+
EcsLaunchEndpointsAccessSecurityGroupId: !GetAtt SharedVpcStack.Outputs.EcsLaunchEndpointsAccessSecurityGroupId
453+
KmsEndpointAccessSecurityGroupId: !GetAtt SharedVpcStack.Outputs.KmsEndpointAccessSecurityGroupId
454+
StsEndpointAccessSecurityGroupId: !GetAtt SharedVpcStack.Outputs.StsEndpointAccessSecurityGroupId
455+
SharedRedisReplicationGroupEndpointAddress: !GetAtt SharedRedisStack.Outputs.ReplicationGroupEndpointAddress
456+
SharedRedisReplicationGroupEndpointPort: !GetAtt SharedRedisStack.Outputs.ReplicationGroupEndpointPort
457+
Tags:
458+
- { Key: prx:meta:tagging-version, Value: "2021-04-07" }
459+
- { Key: prx:cloudformation:stack-name, Value: !Ref AWS::StackName }
460+
- { Key: prx:cloudformation:stack-id, Value: !Ref AWS::StackId }
461+
- { Key: prx:cloudformation:root-stack-name, Value: !Ref AWS::StackName }
462+
- { Key: prx:cloudformation:root-stack-id, Value: !Ref AWS::StackId }
463+
- { Key: prx:ops:environment, Value: !Ref EnvironmentType }
464+
- { Key: prx:dev:application, Value: Common }
465+
TemplateURL: !Sub ${TemplateUrlBase}/spire/templates/shared-ecs/asg-aarch64.yml
429466
TimeoutInMinutes: 1440
430467

431468
# # Requires database and ECS/ASG security groups
@@ -990,7 +1027,8 @@ Resources:
9901027
SharedVpcId: !GetAtt SharedVpcStack.Outputs.VpcId
9911028
SharedVpcCidrBlock: !GetAtt SharedVpcStack.Outputs.VpcCidrBlock
9921029

993-
SharedEcsAsgName: !GetAtt SharedEcsAsgStack.Outputs.AsgName
1030+
SharedEcsAsgX86Name: !GetAtt SharedEcsAsgStack.Outputs.AsgName
1031+
SharedEcsAsgAarch64Name: !GetAtt SharedEcsAsgAarch64Stack.Outputs.AsgName
9941032

9951033
SharedAlbArn: !GetAtt SharedAlbStack.Outputs.AlbArn
9961034
SharedAlbName: !GetAtt SharedAlbStack.Outputs.AlbName

0 commit comments

Comments
 (0)