Skip to content

Latest commit

 

History

History
105 lines (86 loc) · 9.14 KB

File metadata and controls

105 lines (86 loc) · 9.14 KB

EKS Managed Node Group Example

Configuration in this directory creates an AWS EKS cluster with various EKS Managed Node Groups demonstrating the various methods of configuring/customizing:

  • A default, "out of the box" EKS managed node group as supplied by AWS EKS
  • A default, "out of the box" Bottlerocket EKS managed node group as supplied by AWS EKS
  • A Bottlerocket EKS managed node group that supplies additional bootstrap settings
  • A Bottlerocket EKS managed node group that demonstrates many of the configuration/customizations offered by the eks-managed-node-group sub-module for the Bottlerocket OS
  • An EKS managed node group created from a launch template created outside of the module
  • An EKS managed node group that utilizes a custom AMI that is an EKS optimized AMI derivative
  • An EKS managed node group that demonstrates nearly all of the configurations/customizations offered by the eks-managed-node-group sub-module

See the AWS documentation for further details.

Usage

To run this example you need to execute:

$ terraform init
$ terraform plan
$ terraform apply

Note that this example may create resources which cost money. Run terraform destroy when you don't need these resources.

Requirements

Name Version
terraform >= 1.0
aws >= 4.57
kubernetes >= 2.10

Providers

Name Version
aws >= 4.57

Modules

Name Source Version
ebs_kms_key terraform-aws-modules/kms/aws ~> 1.5
eks ../.. n/a
key_pair terraform-aws-modules/key-pair/aws ~> 2.0
vpc terraform-aws-modules/vpc/aws ~> 4.0
vpc_cni_irsa terraform-aws-modules/iam/aws//modules/iam-role-for-service-accounts-eks ~> 5.0

Resources

Name Type
aws_autoscaling_group_tag.cluster_autoscaler_label_tags resource
aws_iam_policy.node_additional resource
aws_security_group.remote_access resource
aws_ami.eks_default data source
aws_ami.eks_default_arm data source
aws_ami.eks_default_bottlerocket data source
aws_availability_zones.available data source
aws_caller_identity.current data source

Inputs

No inputs.

Outputs

Name Description
aws_auth_configmap_yaml Formatted yaml output for base aws-auth configmap containing roles used in cluster node groups/fargate profiles
cloudwatch_log_group_arn Arn of cloudwatch log group created
cloudwatch_log_group_name Name of cloudwatch log group created
cluster_addons Map of attribute maps for all EKS cluster addons enabled
cluster_arn The Amazon Resource Name (ARN) of the cluster
cluster_certificate_authority_data Base64 encoded certificate data required to communicate with the cluster
cluster_endpoint Endpoint for your Kubernetes API server
cluster_iam_role_arn IAM role ARN of the EKS cluster
cluster_iam_role_name IAM role name of the EKS cluster
cluster_iam_role_unique_id Stable and unique string identifying the IAM role
cluster_id The ID of the EKS cluster. Note: currently a value is returned only for local EKS clusters created on Outposts
cluster_identity_providers Map of attribute maps for all EKS identity providers enabled
cluster_name The name of the EKS cluster
cluster_oidc_issuer_url The URL on the EKS cluster for the OpenID Connect identity provider
cluster_platform_version Platform version for the cluster
cluster_primary_security_group_id Cluster security group that was created by Amazon EKS for the cluster. Managed node groups use this security group for control-plane-to-data-plane communication. Referred to as 'Cluster security group' in the EKS console
cluster_security_group_arn Amazon Resource Name (ARN) of the cluster security group
cluster_security_group_id ID of the cluster security group
cluster_status Status of the EKS cluster. One of CREATING, ACTIVE, DELETING, FAILED
cluster_tls_certificate_sha1_fingerprint The SHA1 fingerprint of the public key of the cluster's certificate
eks_managed_node_groups Map of attribute maps for all EKS managed node groups created
eks_managed_node_groups_autoscaling_group_names List of the autoscaling group names created by EKS managed node groups
fargate_profiles Map of attribute maps for all EKS Fargate Profiles created
kms_key_arn The Amazon Resource Name (ARN) of the key
kms_key_id The globally unique identifier for the key
kms_key_policy The IAM resource policy set on the key
node_security_group_arn Amazon Resource Name (ARN) of the node shared security group
node_security_group_id ID of the node shared security group
oidc_provider The OpenID Connect identity provider (issuer URL without leading https://)
oidc_provider_arn The ARN of the OIDC Provider if enable_irsa = true
self_managed_node_groups Map of attribute maps for all self managed node groups created
self_managed_node_groups_autoscaling_group_names List of the autoscaling group names created by self-managed node groups