AWSTemplateFormatVersion: 2010-09-09 Description: "This template create the EKS node group resources for the Microservice Observability with Amazon OpenSearch Service Workshop." Transform: "AWS::Serverless-2016-10-31" Parameters: EksClusterRole: Default: arn:* Type: String EksSubnet1: Description: Subnet 1 ID Type: String EksSubnet2: Description: Subnet 2 ID Type: String EksSubnet3: Description: Subnet 3 ID Type: String EksNodeSubnet1: Description: EKS Nodes Subnet 1 ID Type: String EksNodeSubnet2: Description: EKS Nodes Subnet 2 ID Type: String EksNodeSubnet3: Description: EKS Nodes Subnet 3 ID Type: String EksClusterName: Default: eks-cluster-01 Type: String Resources: EKSNodesIAMRole: Type: "AWS::IAM::Role" Properties: AssumeRolePolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Principal: Service: - eks.amazonaws.com - ec2.amazonaws.com Action: - "sts:AssumeRole" ManagedPolicyArns: - arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy - arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly - arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess - arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy - arn:aws:iam::aws:policy/ElasticLoadBalancingFullAccess EKS: Type: "AWS::EKS::Cluster" Properties: Name: !Ref EksClusterName Version: "1.23" RoleArn: !Ref EksClusterRole ResourcesVpcConfig: SubnetIds: - !Ref EksSubnet1 - !Ref EksSubnet2 - !Ref EksSubnet3 EKSNodegroup: Type: "AWS::EKS::Nodegroup" DependsOn: EKS Properties: ClusterName: !Ref EksClusterName NodeRole: !GetAtt EKSNodesIAMRole.Arn CapacityType: ON_DEMAND ScalingConfig: MinSize: 1 DesiredSize: 3 MaxSize: 5 Subnets: - !Ref EksNodeSubnet1 - !Ref EksNodeSubnet2 - !Ref EksNodeSubnet3