Difference between revisions of "Terraform EKS submodule: eks managed node groups"
Jump to navigation
Jump to search
(→Errors) |
|||
(33 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
− | [[Terraform EKS module]]: <code>eks_managed_node_groups</code> | + | [[Terraform EKS module]]: <code>eks_managed_node_groups</code> submodule and |
+ | * <code>[[eks_managed_node_group_defaults]]</code> <code>[[eks_managed_node_group]]</code> input from [[Terraform EKS module]] | ||
* Submodule: https://registry.terraform.io/modules/terraform-aws-modules/eks/aws/latest/submodules/eks-managed-node-group | * 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 | * Input: https://registry.terraform.io/modules/terraform-aws-modules/eks/aws/latest#input_eks_managed_node_groups | ||
+ | * https://registry.terraform.io/modules/terraform-aws-modules/eks/aws/latest/submodules/eks-managed-node-group?tab=inputs | ||
* Example: https://registry.terraform.io/modules/terraform-aws-modules/eks/aws/latest/examples/eks_managed_node_group | * Example: https://registry.terraform.io/modules/terraform-aws-modules/eks/aws/latest/examples/eks_managed_node_group | ||
− | + | == Inputs == | |
− | + | https://registry.terraform.io/modules/terraform-aws-modules/eks/aws/latest/submodules/eks-managed-node-group?tab=inputs | |
− | + | * <code>[[instance_types]]: [[min_size]], [[max_size]], [[desired_size]]</code></code> | |
− | <code>[[ | + | * <code>[[use_custom_launch_template]]</code> |
− | + | * <code>[[fargate_profiles]]</code> | |
− | <code>[[ | ||
− | |||
− | <code>[[ | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Examples == | == Examples == | ||
Line 28: | Line 21: | ||
[[instance_types]] = ["t3.small"] | [[instance_types]] = ["t3.small"] | ||
− | min_size = 1 | + | [[min_size]] = 1 |
− | max_size = 3 | + | [[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 | [[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 | ||
Line 35: | Line 28: | ||
echo 'foo bar' | echo 'foo bar' | ||
EOT | EOT | ||
− | + | ||
vpc_security_group_ids = [ | vpc_security_group_ids = [ | ||
aws_security_group.node_group_one.id | aws_security_group.node_group_one.id | ||
Line 62: | Line 55: | ||
− | + | ||
− | module "eks_managed_node_group" { | + | module "eks_managed_node_group" { |
source = "terraform-aws-modules/eks/aws//modules/eks-managed-node-group" | source = "terraform-aws-modules/eks/aws//modules/eks-managed-node-group" | ||
− | + | ||
name = "separate-eks-mng" | name = "separate-eks-mng" | ||
cluster_name = "my-cluster" | cluster_name = "my-cluster" | ||
cluster_version = "1.24" | cluster_version = "1.24" | ||
− | + | ||
subnet_ids = ["subnet-abcde012", "subnet-bcde012a", "subnet-fghi345a"] | 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. | // 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. | // 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 | cluster_primary_security_group_id = module.eks.cluster_primary_security_group_id | ||
vpc_security_group_ids = [module.eks.node_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 | // 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. | // This module defaults to providing a custom launch template to allow for custom security groups, tag propagation, etc. | ||
Line 87: | Line 80: | ||
// source_security_group_ids = [aws_security_group.remote_access.id] | // source_security_group_ids = [aws_security_group.remote_access.id] | ||
// } | // } | ||
− | + | ||
min_size = 1 | min_size = 1 | ||
max_size = 10 | max_size = 10 | ||
desired_size = 1 | desired_size = 1 | ||
− | + | ||
instance_types = ["t3.large"] | instance_types = ["t3.large"] | ||
− | capacity_type = "SPOT" | + | [[capacity_type]] = "SPOT" |
− | + | ||
labels = { | labels = { | ||
Environment = "test" | Environment = "test" | ||
Line 113: | Line 106: | ||
Terraform = "true" | 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 | ||
+ | |||
+ | |||
+ | |||
+ | [[module.eks.module.eks_managed_node_group]]["one"].aws_eks_node_group.this[0]: [[Destruction complete after]] 6m16s | ||
== Related == | == Related == | ||
Line 120: | Line 119: | ||
* 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 | * 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 | ||
* <code>[[taints]]</code> | * <code>[[taints]]</code> | ||
− | <code>[[ | + | * Terraform resource: <code>[[aws_eks_node_group]]</code> |
− | <code>[[Terraform submodule]]</code> | + | * <code>[[Terraform submodule]]</code> |
+ | * <code>[[metadata options]]</code> | ||
+ | * <code>[[self_managed_node_groups]]</code> | ||
+ | * [[AWS EKS nodes]] | ||
+ | * [[module.eks.module.eks_managed_node_group]] | ||
+ | * [[Still destroying ...]] | ||
== See also == | == See also == | ||
+ | * {{eks_managed_node_groups}} | ||
+ | * {{eks_managed_node_group}} | ||
+ | * {{module.eks}} | ||
* {{Terraform EKS module}} | * {{Terraform EKS module}} | ||
[[Category:EKS]] | [[Category:EKS]] |
Latest revision as of 23:27, 11 February 2024
Terraform EKS module: eks_managed_node_groups
submodule and
- 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
- https://registry.terraform.io/modules/terraform-aws-modules/eks/aws/latest/submodules/eks-managed-node-group?tab=inputs
- Example: https://registry.terraform.io/modules/terraform-aws-modules/eks/aws/latest/examples/eks_managed_node_group
Contents
Inputs[edit]
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 submodule
metadata options
self_managed_node_groups
- AWS EKS nodes
- module.eks.module.eks_managed_node_group
- Still destroying ...
See also[edit]
eks_managed_node_groups: desired_size, min_size, max_size, use_custom_launch_template
module.eks_managed_node_group
module.eks: eks_managed_node_group, oidc_provider
- Terraform EKS module:
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
Advertising: