AWSTemplateFormatVersion: 2010-09-09 Description: Deploys additional node pools to an EKS Quick Start cluster (qs-1pipqrqef) Parameters: KeyPairName: Description: The name of an existing public/private key pair, which allows you to securely connect to your instance after it launches Type: AWS::EC2::KeyPair::KeyName PrivateSubnet1ID: Type: "AWS::EC2::Subnet::Id" PrivateSubnet2ID: Type: String Default: "" PrivateSubnet3ID: Type: String Default: "" RegularNodeInstanceType: Default: m5.large AllowedValues: [ "t3a.nano", "t3.nano", "t2.nano", "t3a.micro", "t3.micro", "t2.micro", "t3a.small", "t1.micro", "t3.small", "t2.small", "a1.medium", "c6g.medium", "t3a.medium", "c6gd.medium", "m6g.medium", "t3.medium", "m1.small", "m6gd.medium", "t2.medium", "r6g.medium", "a1.large", "r6gd.medium", "m3.medium", "c6g.large", "t3a.large", "c6gd.large", "m6g.large", "c5a.large", "t3.large", "c5.large", "c5ad.large", "m5a.large", "m1.medium", "m6gd.large", "t2.large", "c5d.large", "m5.large", "m4.large", "c4.large", "r6g.large", "a1.xlarge", "m5ad.large", "c3.large", "c5n.large", "r5a.large", "m5d.large", "r6gd.large", "m5n.large", "r5.large", "c1.medium", "r5ad.large", "r4.large", "m3.large", "c6g.xlarge", "m5dn.large", "r5d.large", "r5n.large", "t3a.xlarge", "c6gd.xlarge", "m6g.xlarge", "c5a.xlarge", "i3.large", "r3.large", "t3.xlarge", "r5dn.large", "c5.xlarge", "c5ad.xlarge", "m5a.xlarge", "m1.large", "m6gd.xlarge", "t2.xlarge", "z1d.large", "m5.xlarge", "c5d.xlarge", "c4.xlarge", "m4.xlarge", "r6g.xlarge", "a1.2xlarge", "m5ad.xlarge", "c3.xlarge", "c5n.xlarge", "m5d.xlarge", "r5a.xlarge", "i3en.large", "r6gd.xlarge", "m5n.xlarge", "m2.xlarge", "r5.xlarge", "r5ad.xlarge", "m3.xlarge", "r4.xlarge", "m5dn.xlarge", "c6g.2xlarge", "r5d.xlarge", "r5n.xlarge", "t3a.2xlarge", "c6gd.2xlarge", "c5a.2xlarge", "m6g.2xlarge", "i3.xlarge", "t3.2xlarge", "r3.xlarge", "r5dn.xlarge", "c5.2xlarge", "m5a.2xlarge", "c5ad.2xlarge", "m1.xlarge", "m6gd.2xlarge", "inf1.xlarge", "t2.2xlarge", "z1d.xlarge", "c5d.2xlarge", "m5.2xlarge", "c4.2xlarge", "m4.2xlarge", "r6g.2xlarge", "a1.metal", "a1.4xlarge", "m5ad.2xlarge", "c3.2xlarge", "c5n.2xlarge", "r5a.2xlarge", "i3en.xlarge", "m5d.2xlarge", "r6gd.2xlarge", "h1.2xlarge", "m5n.2xlarge", "m2.2xlarge", "r5.2xlarge", "c1.xlarge", "r5ad.2xlarge", "g4dn.xlarge", "r4.2xlarge", "m3.2xlarge", "m5dn.2xlarge", "c6g.4xlarge", "r5d.2xlarge", "inf1.2xlarge", "r5n.2xlarge", "c6gd.4xlarge", "c5a.4xlarge", "m6g.4xlarge", "i3.2xlarge", "g2.2xlarge", "r3.2xlarge", "r5dn.2xlarge", "c5.4xlarge", "c5ad.4xlarge", "m5a.4xlarge", "d2.xlarge", "m6gd.4xlarge", "z1d.2xlarge", "g3s.xlarge", "g4dn.2xlarge", "m5.4xlarge", "c5d.4xlarge", "c4.4xlarge", "m4.4xlarge", "r6g.4xlarge", "m5ad.4xlarge", "x1e.xlarge", "c3.4xlarge", "i2.xlarge", "c5n.4xlarge", "p2.xlarge", "r5a.4xlarge", "i3en.2xlarge", "m5d.4xlarge", "r6gd.4xlarge", "h1.4xlarge", "m5n.4xlarge", "m2.4xlarge", "r5.4xlarge", "r5ad.4xlarge", "r4.4xlarge", "c6g.8xlarge", "m5dn.4xlarge", "z1d.3xlarge", "g3.4xlarge", "r5d.4xlarge", "r5n.4xlarge", "g4dn.4xlarge", "c6gd.8xlarge", "m6g.8xlarge", "c5a.8xlarge", "i3.4xlarge", "r3.4xlarge", "r5dn.4xlarge", "i3en.3xlarge", "m5a.8xlarge", "c5ad.8xlarge", "d2.2xlarge", "m6gd.8xlarge", "c5.9xlarge", "m5.8xlarge", "c4.8xlarge", "r6g.8xlarge", "c6g.12xlarge", "m5ad.8xlarge", "f1.2xlarge", "x1e.2xlarge", "c3.8xlarge", "i2.2xlarge", "c5d.9xlarge", "m5d.8xlarge", "r5a.8xlarge", "r6gd.8xlarge", "c6gd.12xlarge", "c5a.12xlarge", "m6g.12xlarge", "h1.8xlarge", "m5n.8xlarge", "inf1.6xlarge", "c5n.9xlarge", "i3en.24xlarge", "i3en.metal", "p3.8xlarge", "f1.16xlarge", "x1.32xlarge", "x1e.16xlarge", "p2.16xlarge", "m4.10xlarge", "cc2.8xlarge", "r5.8xlarge", "c5.12xlarge", "c5ad.12xlarge", "m5a.12xlarge", "r5ad.8xlarge", "r4.8xlarge", "m6gd.12xlarge", "m5dn.8xlarge", "c6g.16xlarge", "g4dn.8xlarge", "c6g.metal", "z1d.6xlarge", "g3.8xlarge", "m5.12xlarge", "c5d.12xlarge", "r5d.8xlarge", "r5n.8xlarge", "r6g.12xlarge", "c6gd.metal", "c6gd.16xlarge", "m6g.metal", "c5a.16xlarge", "m6g.16xlarge", "m5ad.12xlarge", "i3.8xlarge", "g2.8xlarge", "r3.8xlarge", "r5dn.8xlarge", "r5a.12xlarge", "m5d.12xlarge", "i3en.6xlarge", "c5ad.16xlarge", "m5a.16xlarge", "d2.4xlarge", "r6gd.12xlarge", "m5n.12xlarge", "m6gd.metal", "m6gd.16xlarge", "p3.16xlarge", "x1e.32xlarge", "r5.12xlarge", "p3.2xlarge", "c5.18xlarge", "m5.16xlarge", "r5ad.12xlarge", "m4.16xlarge", "r6g.16xlarge", "r6g.metal", "m5dn.12xlarge", "m5ad.16xlarge", "f1.4xlarge", "x1e.4xlarge", "i2.4xlarge", "c5d.18xlarge", "r5d.12xlarge", "r5n.12xlarge", "m5d.16xlarge", "r5a.16xlarge", "r6gd.metal", "r6gd.16xlarge", "c5a.24xlarge", "h1.16xlarge", "m5n.16xlarge", "c5n.18xlarge", "c5n.metal", "g4dn.12xlarge", "p3dn.24xlarge", "r5dn.12xlarge", "r5.16xlarge", "c5.metal", "c5.24xlarge", "c5ad.24xlarge", "m5a.24xlarge", "r5ad.16xlarge", "r4.16xlarge", "m5dn.16xlarge", "g4dn.16xlarge", "z1d.metal", "z1d.12xlarge", "g3.16xlarge", "m5.24xlarge", "m5.metal", "c5d.24xlarge", "r5d.16xlarge", "c5d.metal", "r5n.16xlarge", "m5ad.24xlarge", "i3.metal", "i3.16xlarge", "r5dn.16xlarge", "m5d.metal", "i3en.12xlarge", "m5d.24xlarge", "r5a.24xlarge", "d2.8xlarge", "m5n.24xlarge", "r5.24xlarge", "r5.metal", "r5ad.24xlarge", "m5dn.24xlarge", "x1.16xlarge", "x1e.8xlarge", "i2.8xlarge", "r5d.24xlarge", "r5d.metal", "r5n.24xlarge", "p2.8xlarge", "inf1.24xlarge", "g4dn.metal", "r5dn.24xlarge", "t4g.nano", "t4g.medium", "t4g.large", "t4g.micro", "t4g.small", "t4g.2xlarge", "t4g.xlarge" ] ConstraintDescription: Must be a valid EC2 instance type Description: The Amazon EC2 instance type for the regular agents node group. Type: String SpotNodeInstanceType1: Default: m4.large #2x8 AllowedValues: [ "t3a.nano", "t3.nano", "t2.nano", "t3a.micro", "t3.micro", "t2.micro", "t3a.small", "t1.micro", "t3.small", "t2.small", "a1.medium", "c6g.medium", "t3a.medium", "c6gd.medium", "m6g.medium", "t3.medium", "m1.small", "m6gd.medium", "t2.medium", "r6g.medium", "a1.large", "r6gd.medium", "m3.medium", "c6g.large", "t3a.large", "c6gd.large", "m6g.large", "c5a.large", "t3.large", "c5.large", "c5ad.large", "m5a.large", "m1.medium", "m6gd.large", "t2.large", "c5d.large", "m5.large", "m4.large", "c4.large", "r6g.large", "a1.xlarge", "m5ad.large", "c3.large", "c5n.large", "r5a.large", "m5d.large", "r6gd.large", "m5n.large", "r5.large", "c1.medium", "r5ad.large", "r4.large", "m3.large", "c6g.xlarge", "m5dn.large", "r5d.large", "r5n.large", "t3a.xlarge", "c6gd.xlarge", "m6g.xlarge", "c5a.xlarge", "i3.large", "r3.large", "t3.xlarge", "r5dn.large", "c5.xlarge", "c5ad.xlarge", "m5a.xlarge", "m1.large", "m6gd.xlarge", "t2.xlarge", "z1d.large", "m5.xlarge", "c5d.xlarge", "c4.xlarge", "m4.xlarge", "r6g.xlarge", "a1.2xlarge", "m5ad.xlarge", "c3.xlarge", "c5n.xlarge", "m5d.xlarge", "r5a.xlarge", "i3en.large", "r6gd.xlarge", "m5n.xlarge", "m2.xlarge", "r5.xlarge", "r5ad.xlarge", "m3.xlarge", "r4.xlarge", "m5dn.xlarge", "c6g.2xlarge", "r5d.xlarge", "r5n.xlarge", "t3a.2xlarge", "c6gd.2xlarge", "c5a.2xlarge", "m6g.2xlarge", "i3.xlarge", "t3.2xlarge", "r3.xlarge", "r5dn.xlarge", "c5.2xlarge", "m5a.2xlarge", "c5ad.2xlarge", "m1.xlarge", "m6gd.2xlarge", "inf1.xlarge", "t2.2xlarge", "z1d.xlarge", "c5d.2xlarge", "m5.2xlarge", "c4.2xlarge", "m4.2xlarge", "r6g.2xlarge", "a1.metal", "a1.4xlarge", "m5ad.2xlarge", "c3.2xlarge", "c5n.2xlarge", "r5a.2xlarge", "i3en.xlarge", "m5d.2xlarge", "r6gd.2xlarge", "h1.2xlarge", "m5n.2xlarge", "m2.2xlarge", "r5.2xlarge", "c1.xlarge", "r5ad.2xlarge", "g4dn.xlarge", "r4.2xlarge", "m3.2xlarge", "m5dn.2xlarge", "c6g.4xlarge", "r5d.2xlarge", "inf1.2xlarge", "r5n.2xlarge", "c6gd.4xlarge", "c5a.4xlarge", "m6g.4xlarge", "i3.2xlarge", "g2.2xlarge", "r3.2xlarge", "r5dn.2xlarge", "c5.4xlarge", "c5ad.4xlarge", "m5a.4xlarge", "d2.xlarge", "m6gd.4xlarge", "z1d.2xlarge", "g3s.xlarge", "g4dn.2xlarge", "m5.4xlarge", "c5d.4xlarge", "c4.4xlarge", "m4.4xlarge", "r6g.4xlarge", "m5ad.4xlarge", "x1e.xlarge", "c3.4xlarge", "i2.xlarge", "c5n.4xlarge", "p2.xlarge", "r5a.4xlarge", "i3en.2xlarge", "m5d.4xlarge", "r6gd.4xlarge", "h1.4xlarge", "m5n.4xlarge", "m2.4xlarge", "r5.4xlarge", "r5ad.4xlarge", "r4.4xlarge", "c6g.8xlarge", "m5dn.4xlarge", "z1d.3xlarge", "g3.4xlarge", "r5d.4xlarge", "r5n.4xlarge", "g4dn.4xlarge", "c6gd.8xlarge", "m6g.8xlarge", "c5a.8xlarge", "i3.4xlarge", "r3.4xlarge", "r5dn.4xlarge", "i3en.3xlarge", "m5a.8xlarge", "c5ad.8xlarge", "d2.2xlarge", "m6gd.8xlarge", "c5.9xlarge", "m5.8xlarge", "c4.8xlarge", "r6g.8xlarge", "c6g.12xlarge", "m5ad.8xlarge", "f1.2xlarge", "x1e.2xlarge", "c3.8xlarge", "i2.2xlarge", "c5d.9xlarge", "m5d.8xlarge", "r5a.8xlarge", "r6gd.8xlarge", "c6gd.12xlarge", "c5a.12xlarge", "m6g.12xlarge", "h1.8xlarge", "m5n.8xlarge", "inf1.6xlarge", "c5n.9xlarge", "i3en.24xlarge", "i3en.metal", "p3.8xlarge", "f1.16xlarge", "x1.32xlarge", "x1e.16xlarge", "p2.16xlarge", "m4.10xlarge", "cc2.8xlarge", "r5.8xlarge", "c5.12xlarge", "c5ad.12xlarge", "m5a.12xlarge", "r5ad.8xlarge", "r4.8xlarge", "m6gd.12xlarge", "m5dn.8xlarge", "c6g.16xlarge", "g4dn.8xlarge", "c6g.metal", "z1d.6xlarge", "g3.8xlarge", "m5.12xlarge", "c5d.12xlarge", "r5d.8xlarge", "r5n.8xlarge", "r6g.12xlarge", "c6gd.metal", "c6gd.16xlarge", "m6g.metal", "c5a.16xlarge", "m6g.16xlarge", "m5ad.12xlarge", "i3.8xlarge", "g2.8xlarge", "r3.8xlarge", "r5dn.8xlarge", "r5a.12xlarge", "m5d.12xlarge", "i3en.6xlarge", "c5ad.16xlarge", "m5a.16xlarge", "d2.4xlarge", "r6gd.12xlarge", "m5n.12xlarge", "m6gd.metal", "m6gd.16xlarge", "p3.16xlarge", "x1e.32xlarge", "r5.12xlarge", "p3.2xlarge", "c5.18xlarge", "m5.16xlarge", "r5ad.12xlarge", "m4.16xlarge", "r6g.16xlarge", "r6g.metal", "m5dn.12xlarge", "m5ad.16xlarge", "f1.4xlarge", "x1e.4xlarge", "i2.4xlarge", "c5d.18xlarge", "r5d.12xlarge", "r5n.12xlarge", "m5d.16xlarge", "r5a.16xlarge", "r6gd.metal", "r6gd.16xlarge", "c5a.24xlarge", "h1.16xlarge", "m5n.16xlarge", "c5n.18xlarge", "c5n.metal", "g4dn.12xlarge", "p3dn.24xlarge", "r5dn.12xlarge", "r5.16xlarge", "c5.metal", "c5.24xlarge", "c5ad.24xlarge", "m5a.24xlarge", "r5ad.16xlarge", "r4.16xlarge", "m5dn.16xlarge", "g4dn.16xlarge", "z1d.metal", "z1d.12xlarge", "g3.16xlarge", "m5.24xlarge", "m5.metal", "c5d.24xlarge", "r5d.16xlarge", "c5d.metal", "r5n.16xlarge", "m5ad.24xlarge", "i3.metal", "i3.16xlarge", "r5dn.16xlarge", "m5d.metal", "i3en.12xlarge", "m5d.24xlarge", "r5a.24xlarge", "d2.8xlarge", "m5n.24xlarge", "r5.24xlarge", "r5.metal", "r5ad.24xlarge", "m5dn.24xlarge", "x1.16xlarge", "x1e.8xlarge", "i2.8xlarge", "r5d.24xlarge", "r5d.metal", "r5n.24xlarge", "p2.8xlarge", "inf1.24xlarge", "g4dn.metal", "r5dn.24xlarge", "t4g.nano", "t4g.medium", "t4g.large", "t4g.micro", "t4g.small", "t4g.2xlarge", "t4g.xlarge" ] ConstraintDescription: Must be a valid EC2 instance type Description: The first Amazon EC2 instance type for the spot agents node group. Type: String SpotNodeInstanceType2: Default: m5.large #2x8 newer ConstraintDescription: Must be a valid EC2 instance type Description: The second Amazon EC2 instance type for the spot agents node group. Type: String SpotNodeInstanceType3: Default: m5a.large #2x8 amd ConstraintDescription: Must be a valid EC2 instance type Description: The third Amazon EC2 instance type for the spot agents node group. Type: String SpotNodeInstanceType4: Default: m5d.large #2x8 fast disk ConstraintDescription: Must be a valid EC2 instance type Description: The fourth Amazon EC2 instance type for the spot agents node group. Type: String NumberOfRegularNodes: Default: 3 Description: Initial number of "Regular Agents" node instances Type: Number NumberOfSpotNodes: Default: 0 Description: Initial number of "Spot Agents" node instances Type: Number NodeVolumeSize: Type: String CustomAmiId: Default: "" Type: String EKSClusterName: Type: String QSS3BucketName: AllowedPattern: ^[0-9a-zA-Z]+([0-9a-zA-Z-]*[0-9a-zA-Z])*$ ConstraintDescription: Quick Start bucket name can include numbers, lowercase letters, uppercase letters, and hyphens (-). It cannot start or end with a hyphen (-). Default: aws-quickstart Description: S3 bucket name for the Quick Start assets. This string can include numbers, lowercase letters, uppercase letters, and hyphens (-). It cannot start or end with a hyphen (-). Type: String QSS3KeyPrefix: AllowedPattern: ^[0-9a-zA-Z-/]*$ ConstraintDescription: Quick Start key prefix can include numbers, lowercase letters, uppercase letters, hyphens (-), and forward slash (/). Default: quickstart-cloudbees-ci/ Description: S3 key prefix for the Quick Start assets. Quick Start key prefix can include numbers, lowercase letters, uppercase letters, hyphens (-), and forward slash (/). Type: String QSS3BucketRegion: Default: 'us-east-1' Description: The AWS Region where the Quick Start S3 bucket (QSS3BucketName) is hosted. When using your own bucket, you must specify this value. Type: String Conditions: UsingDefaultBucket: !Equals [!Ref QSS3BucketName, 'aws-quickstart'] Resources: RegularAgentNodesStack: Type: "AWS::CloudFormation::Stack" Properties: TemplateURL: !Sub - 'https://${S3Bucket}.s3.${S3Region}.${AWS::URLSuffix}/${QSS3KeyPrefix}submodules/quickstart-amazon-eks/submodules/quickstart-amazon-eks-nodegroup/templates/amazon-eks-nodegroup.template.yaml' - S3Region: !If [UsingDefaultBucket, !Ref 'AWS::Region', !Ref QSS3BucketRegion] S3Bucket: !If [UsingDefaultBucket, !Sub '${QSS3BucketName}-${AWS::Region}', !Ref QSS3BucketName] Parameters: KeyPairName: !Ref 'KeyPairName' Subnet1ID: !Ref PrivateSubnet1ID Subnet2ID: !Ref PrivateSubnet2ID Subnet3ID: !Ref PrivateSubnet3ID NodeInstanceType: !Ref RegularNodeInstanceType NumberOfNodes: !Ref NumberOfRegularNodes NodeGroupName: "cloudbees-ci-regular-agents" NodeVolumeSize: !Ref NodeVolumeSize CustomAmiId: !Ref CustomAmiId EKSClusterName: !Ref EKSClusterName Labels: "partition=regular-agents" Taints: "partition=regular-agents:NoSchedule" SpotAgentNodesStack: Type: "AWS::CloudFormation::Stack" Properties: TemplateURL: !Sub - 'https://${S3Bucket}.s3.${S3Region}.${AWS::URLSuffix}/${QSS3KeyPrefix}submodules/quickstart-amazon-eks/submodules/quickstart-amazon-eks-nodegroup/templates/amazon-eks-nodegroup.template.yaml' - S3Region: !If [UsingDefaultBucket, !Ref 'AWS::Region', !Ref QSS3BucketRegion] S3Bucket: !If [UsingDefaultBucket, !Sub '${QSS3BucketName}-${AWS::Region}', !Ref QSS3BucketName] Parameters: KeyPairName: !Ref 'KeyPairName' Subnet1ID: !Ref PrivateSubnet1ID Subnet2ID: !Ref PrivateSubnet2ID Subnet3ID: !Ref PrivateSubnet3ID NodeGroupType: "Unmanaged" # required for Spot.. OndemandPercentage: 0 NodeInstanceType: !Ref SpotNodeInstanceType1 NodeInstanceType2: !Ref SpotNodeInstanceType2 NodeInstanceType3: !Ref SpotNodeInstanceType3 NodeInstanceType4: !Ref SpotNodeInstanceType4 NumberOfNodes: !Ref NumberOfSpotNodes NodeGroupName: "cloudbees-ci-spot-agents" NodeVolumeSize: !Ref NodeVolumeSize CustomAmiId: !Ref CustomAmiId EKSClusterName: !Ref EKSClusterName Labels: "partition=spot-agents" Taints: "partition=spot-agents:NoSchedule"