AWSTemplateFormatVersion: 2010-09-09 Metadata: AWS::CloudFormation::Interface: ParameterGroups: - Label: default: VPC network configuration Parameters: - AvailabilityZones - VPCID - PrivateSubnet1ID - PrivateSubnet2ID - PrivateSubnet3ID - PublicSubnet1ID - PublicSubnet2ID - PublicSubnet3ID - RemoteAccessCIDR - Label: default: Amazon Bastion configuration Parameters: - KeyPairName - BastionVariables - Label: default: Amazon EKS configuration Parameters: - NodeInstanceType - NumberOfNodes - NodeGroupName - NodeVolumeSize # - AdditionalEKSAdminArns - KubernetesVersion - Label: default: Optional Kubernetes add-ins Parameters: - ClusterAutoScaler - EfsStorageClass - EfsPerformanceMode - EfsThroughputMode - EfsProvisionedThroughputInMibps - Label: default: Drupal Site Domain Configuration Parameters: - Route53HostedZoneId - DrupalSiteDomain - CloudFrontAlias - Label: default: Drupal Account Configuration Parameters: - DrupalAccountUsername - DrupalAccountpassword - DrupalSiteName - DrupalAccountEmail - Label: default: Aurora Serverless Database Configuration Parameters: - EngineVersion - MasterUsername - MasterUserPassword - EngineMode - Label: default: SSL Configuration Parameters: - SSLCertificateId - CloudfrontSSLCertificateId - Label: default: CDN - CloudFront Configuration Parameters: - CloudFrontEnable - CloudFrontPriceClass - Label: default: AWS Quick Start Configuration Parameters: - QSS3BucketName - QSS3KeyPrefix - LambdaZipsBucketName ParameterLabels: EngineMode: default: Aurora database engine mode. AvailabilityZones: default: Availability Zones MasterUsername: default: Drupal Database Username MasterUserPassword: default: Drupal Database Password EngineVersion: default: Database engine version DrupalSiteDomain: default: Drupal Site Domain KeyPairName: default: Bastion SSH key name PrivateSubnet1ID: default: Private subnet 1 ID PrivateSubnet2ID: default: Private subnet 2 ID PrivateSubnet3ID: default: Private subnet 3 ID PublicSubnet1ID: default: Public subnet 1 ID PublicSubnet2ID: default: Public subnet 2 ID PublicSubnet3ID: default: Public subnet 3 ID QSS3BucketName: default: Quick Start S3 Bucket Name QSS3KeyPrefix: default: Quick Start S3 Key Prefix RemoteAccessCIDR: default: Allowed Bastion External Access CIDR SSLCertificateId: default: Loadbalancer SSL Certificate ARN VPCID: default: VPC ID CloudFrontEnable: default: Enable CloudFront CloudFrontAlias: default: CloudFront Alias CloudFrontPriceClass: default: CloudFront PriceClass Route53HostedZoneId: default: Route53 Hosted Zone ID DrupalAccountUsername: default: Drupal Account Username DrupalAccountpassword: default: Drupal Account password DrupalSiteName: default: Drupal Site Name DrupalAccountEmail: default: Drupal Account Email ClusterAutoScaler: default: Cluster Auto Scaler EfsStorageClass: default: Efs Storage Class EfsPerformanceMode: default: Efs Performance Mode EfsThroughputMode: default: Efs Throughput Mode EfsProvisionedThroughputInMibps: default: Efs Provisioned Throughput In Mibps CloudfrontSSLCertificateId: default: Cloudfront SSL Certificate Arn BastionVariables: default: Bastion Variable List LambdaZipsBucketName: default: Lambda Zips Bucket Name NodeInstanceType: default: Node Instance Type NumberOfNodes: default: Number Of Nodes NodeGroupName: default: Node Group Name NodeVolumeSize: default: Node Volume Size # AdditionalEKSAdminArns: # default: Additional EKS Admin Arn List KubernetesVersion: default: Kubernetes Version Parameters: AvailabilityZones: Description: The list of Availability Zones to use for the subnets in the VPC. Three Availability Zones are used for this deployment, and the logical order of your selections is preserved. Type: List 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 VPCID: Type: "AWS::EC2::VPC::Id" Description: The ID of your existing VPC (e.g., vpc-0343606e) PublicSubnet1ID: Type: "AWS::EC2::Subnet::Id" Description: The ID of the public subnet in Availability Zone 1 in your existing VPC (e.g., subnet-a0246dcd) PublicSubnet2ID: Type: "AWS::EC2::Subnet::Id" Description: The ID of the public subnet in Availability Zone 2 in your existing VPC (e.g., subnet-b1236eea) PublicSubnet3ID: Type: "AWS::EC2::Subnet::Id" Description: The ID of the public subnet in Availability Zone 3 in your existing VPC (e.g., subnet-c3456aba) PrivateSubnet1ID: Type: "AWS::EC2::Subnet::Id" Description: The ID of the private subnet in Availability Zone 1 in your existing VPC (e.g., subnet-fe9a8b32) PrivateSubnet2ID: Type: "AWS::EC2::Subnet::Id" Description: The ID of the private subnet in Availability Zone 2 in your existing VPC (e.g., subnet-be8b01ea) PrivateSubnet3ID: Type: "AWS::EC2::Subnet::Id" Description: The ID of the private subnet in Availability Zone 3 in your existing VPC (e.g., subnet-abd39039) 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: quickstart-drupal-on-aws-eks 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 (-), dots(.) and forward slash (/). Default: qs-drupal/ Description: S3 key prefix for the Quick Start assets. Quick Start key prefix can include numbers, lowercase letters, uppercase letters, hyphens (-), dots(.) and forward slash (/). Type: String RemoteAccessCIDR: AllowedPattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/([0-9]|[1-2][0-9]|3[0-2]))$ ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/x Description: The CIDR IP range that is permitted to access the instances. We recommend that you set this value to a trusted IP range. Type: String NodeInstanceType: Default: t3.medium AllowedValues: - t2.small - t2.medium - t2.large - t2.xlarge - t2.2xlarge - t3.nano - t3.micro - t3.small - t3.medium - t3.large - t3.xlarge - t3.2xlarge - m3.medium - m3.large - m3.xlarge - m3.2xlarge - m4.large - m4.xlarge - m4.2xlarge - m4.4xlarge - m4.10xlarge - m5.large - m5.xlarge - m5.2xlarge - m5.4xlarge - m5.12xlarge - m5.24xlarge - c4.large - c4.xlarge - c4.2xlarge - c4.4xlarge - c4.8xlarge - c5.large - c5.xlarge - c5.2xlarge - c5.4xlarge - c5.9xlarge - c5.18xlarge - i3.large - i3.xlarge - i3.2xlarge - i3.4xlarge - i3.8xlarge - i3.16xlarge - r3.xlarge - r3.2xlarge - r3.4xlarge - r3.8xlarge - r4.large - r4.xlarge - r4.2xlarge - r4.4xlarge - r4.8xlarge - r4.16xlarge - x1.16xlarge - x1.32xlarge - p2.xlarge - p2.8xlarge - p2.16xlarge - p3.2xlarge - p3.8xlarge - p3.16xlarge - r5.large - r5.xlarge - r5.2xlarge - r5.4xlarge - r5.12xlarge - r5.24xlarge - r5d.large - r5d.xlarge - r5d.2xlarge - r5d.4xlarge - r5d.12xlarge - r5d.24xlarge - z1d.large - z1d.xlarge - z1d.2xlarge - z1d.3xlarge - z1d.6xlarge - z1d.12xlarge ConstraintDescription: Must be a valid EC2 instance type Description: The type of EC2 instance for the node instances. Type: String NumberOfNodes: Default: 3 Description: The number of Amazon EKS node instances. The default is one for each of the three Availability Zones. Type: Number NodeGroupName: Default: Default Description: The name for EKS node group. Type: String NodeVolumeSize: Default: 20 Description: "The size for the node's root EBS volumes." Type: String KubernetesVersion: Type: String AllowedValues: [ "1.13", "1.14", "1.15" ] Default: "1.15" Description: The Kubernetes control plane version. LambdaZipsBucketName: Description: '[OPTIONAL] The name of the S3 bucket where the Lambda zip files should be placed. If you leave this parameter blank, an S3 bucket will be created.' Type: String Default: '' ClusterAutoScaler: Type: String AllowedValues: [ Enabled, Disabled ] Default: Disabled Description: Choose Enabled to enable Kubernetes cluster autoscaler. EfsStorageClass: Type: String AllowedValues: [ Enabled, Disabled ] Default: Disabled Description: Choose Enabled to enable EFS storage class, which will create the required EFS volume. EfsPerformanceMode: Type: String AllowedValues: [ generalPurpose, maxIO ] Default: generalPurpose Description: Choose maxIO mode to provide greater IOPS with an increased latency. Only has an effect when EfsStorageClass is enabled. EfsThroughputMode: Type: String AllowedValues: [ bursting, provisioned ] Default: bursting Description: Choose provisioned for throughput that is not dependent on the amount of data stored in the file system. Only has an effect when EfsStorageClass is enabled. EfsProvisionedThroughputInMibps: Type: Number MinValue: 0 Default: 0 Description: Set to 0 if EfsThroughputMode is set to bursting. Only has an effect when EfsStorageClass is enabled. # AdditionalEKSAdminArns: # Default: "" # Description: "[OPTIONAL] Comma separated list of IAM user/role Amazon Resource Names (ARNs) to be granted admin access to the EKS cluster" # Type: CommaDelimitedList EngineVersion: Description: "Version of the database engine" Type: String Default: '5.6' MasterUsername: Description: "Username of the Database" Type: String MasterUserPassword: Description: "Database password for the above mentioned user" Type: String NoEcho: true BastionVariables: Description: "[OPTIONAL] Comma separated key-value pair list of Bastion environment vairiables" Type: String Default: "" SSLCertificateId: Default: '' Description: "[OPTIONAL] The ARN of the SSL certificate to use for the load balancer" Type: String CloudFrontEnable: AllowedValues: - 'true' - 'false' Default: 'true' Description: Enable CloudFront Content Delivery Network Type: String CloudFrontPriceClass: AllowedValues: - use-all-edge-locations - use-only-us-canada-europe-asia - use-only-us-canada-europe Default: use-all-edge-locations Description: Select the price class associated with the maximum price that you want to pay for CloudFront service. If you select a price class other than All, some of your users may experience higher latency. Type: String ConstraintDescription: Select a valid CloudFront Price Class. CloudFrontAlias: Description: Alias for the CloudFront distribution. E.g. cdn.example.com. Mandatory when using HTTPS/SSL and optional when using http. Type: String Default: cdn.default AllowedPattern: "(?!-)[a-zA-Z0-9-.]*(?