Terraform EKS submodule: eks managed node groups
Revision as of 09:26, 23 March 2023 by Newworld3 (talk | contribs) (Newworld3 moved page Terraform EKS module: eks managed node groups to Terraform EKS submodule: eks managed node groups)
Terraform EKS module: eks_managed_node_groups
- Submodule: https://registry.terraform.io/modules/terraform-aws-modules/eks/aws/latest/submodules/eks-managed-node-group
- Input: https://registry.terraform.io/modules/terraform-aws-modules/eks/aws/latest#input_eks_managed_node_groups
- Example: https://registry.terraform.io/modules/terraform-aws-modules/eks/aws/latest/examples/eks_managed_node_group
Contents
Parameters
instance_types: min_size, max_size, desired_size
use_custom_launch_template
fargate_profiles
eks_managed_node_group_defaults
Examples
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
│ Error: error updating EKS Node Group (your-ng:node_default-20230320234324234001) config: InvalidParameterException: Minimum capacity 2 can't be greater than desired size 1
Related
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 submodule
metadata options
self_managed_node_groups
See also
Advertising: