Files
terraform-aws-eks/examples/self_managed_node_group

Self Managed Node Groups Example

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

  • A default, "out of the box" self managed node group as supplied by the self-managed-node-group sub-module
  • A Bottlerocket self managed node group that demonstrates many of the configuration/customizations offered by the self-manged-node-group sub-module for the Bottlerocket OS
  • A self managed node group that demonstrates nearly all of the configurations/customizations offered by the self-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 >= 0.13.1
aws >= 3.72
null >= 3.0
tls >= 2.2

Providers

Name Version
aws >= 3.72
null >= 3.0
tls >= 2.2

Modules

Name Source Version
eks ../.. n/a
vpc terraform-aws-modules/vpc/aws ~> 3.0

Resources

Name Type
aws_ec2_capacity_reservation.targeted resource
aws_key_pair.this resource
aws_kms_key.ebs resource
aws_kms_key.eks resource
aws_security_group.additional resource
null_resource.apply resource
tls_private_key.this resource
aws_ami.eks_default data source
aws_ami.eks_default_bottlerocket data source
aws_caller_identity.current data source
aws_eks_cluster_auth.this data source
aws_iam_policy_document.ebs 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 name/id of the EKS cluster. Will block on cluster creation until the cluster is really ready
cluster_identity_providers Map of attribute maps for all EKS identity providers enabled
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
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
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