Terraform EKS submodule: eks managed node groups
(Redirected from Terraform eks managed node groups)
Jump to navigation
Jump to search
Terraform EKS module: eks_managed_node_groups submodule (doc) and
eks_managed_node_group_defaultseks_managed_node_groupinput from Terraform EKS module- Inputs, Example
- https://registry.terraform.io/modules/terraform-aws-modules/eks/aws/latest/submodules/eks-managed-node-group?tab=inputs
Contents
Inputs[edit]
instance_types: min_size, max_size, desired_sizeuse_custom_launch_templatefargate_profilessubnet_idsuse_latest_ami_release_versionami_type
Examples[edit]
eks_managed_node_groups = {
one = {
name = "node-group-1"
instance_types = ["t3.small"]
min_size = 1
max_size = 3
desired_size = 2 # https://github.com/terraform-aws-modules/terraform-aws-eks/blob/master/docs/faq.md#why-are-there-no-changes-when-a-node-groups-desired_size-is-modified
pre_bootstrap_user_data = <<-EOT
echo 'foo bar'
EOT
vpc_security_group_ids = [
aws_security_group.node_group_one.id
]
}
two = {
name = "node-group-2"
instance_types = ["t3.medium"]
min_size = 1
max_size = 2
desired_size = 1
pre_bootstrap_user_data = <<-EOT
echo 'foo bar'
EOT
vpc_security_group_ids = [
aws_security_group.node_group_two.id
]
}
}
module "eks_managed_node_group" {
source = "terraform-aws-modules/eks/aws//modules/eks-managed-node-group"
name = "separate-eks-mng"
cluster_name = "my-cluster"
cluster_version = "1.24"
subnet_ids = ["subnet-abcde012", "subnet-bcde012a", "subnet-fghi345a"]
// The following variables are necessary if you decide to use the module outside of the parent EKS module context.
// Without it, the security groups of the nodes are empty and thus won't join the cluster.
cluster_primary_security_group_id = module.eks.cluster_primary_security_group_id
vpc_security_group_ids = [module.eks.node_security_group_id]
// Note: `disk_size`, and `remote_access` can only be set when using the EKS managed node group default launch template
// This module defaults to providing a custom launch template to allow for custom security groups, tag propagation, etc.
// use_custom_launch_template = false
// disk_size = 50
//
// # Remote access cannot be specified with a launch template
// remote_access = {
// ec2_ssh_key = module.key_pair.key_pair_name
// source_security_group_ids = [aws_security_group.remote_access.id]
// }
min_size = 1
max_size = 10
desired_size = 1
instance_types = ["t3.large"]
capacity_type = "SPOT"
labels = {
Environment = "test"
GithubRepo = "terraform-aws-eks"
GithubOrg = "terraform-aws-modules"
}
taints = {
dedicated = {
key = "dedicated"
value = "gpuGroup"
effect = "NO_SCHEDULE"
}
}
tags = {
Environment = "dev"
Terraform = "true"
}
}
Errors[edit]
│ Error: error updating EKS Node Group (your-ng:node_default-20230320234324234001) config: InvalidParameterException: Minimum capacity 2 can't be greater than desired size 1
module.eks.module.eks_managed_node_group["one"].aws_eks_node_group.this[0]: Destruction complete after 6m16s
Related[edit]
eks-cluster.tf- FAQ: https://github.com/terraform-aws-modules/terraform-aws-eks/blob/master/docs/faq.md#why-are-there-no-changes-when-a-node-groups-desired_size-is-modified
taints- Terraform resource:
aws_eks_node_group Terraform submodulemetadata optionsself_managed_node_groups- AWS EKS nodes
- module.eks.module.eks_managed_node_group
- Still destroying ...
- Terraform EKS module: eks_managed_node_group_defaults
See also[edit]
eks_managed_node_groups: instance_types, desired_size, min_size, max_size, use_custom_launch_template, use_latest_ami_release_version, ami_type, NO_SCHEDULEeks_managed_node_groups: instance_types, desired_size, min_size, max_size, use_custom_launch_template, use_latest_ami_release_version, ami_type, NO_SCHEDULEmodule.eks: eks_managed_node_group, oidc_provider- Terraform EKS module (link): Deploy EKS cluster using Terraform,
manage_aws_auth_configmap, create_aws_auth_configmap, aws_auth_roles, aws_auth_users, aws_auth_accounts, module.eks, Amazon EKS Blueprints for Terraform, OIDC, cluster_security_group_additional_rules, access_entries, eks_managed_node_groups, compute_config (Auto mode)
Advertising: