mirror of
https://github.com/ysoftdevs/terraform-aws-eks.git
synced 2026-04-29 20:07:38 +02:00
feat!: Replace the use of aws-auth configmap with EKS cluster access entry (#2858)
* feat: Replace `resolve_conflicts` with `resolve_conflicts_on_create`/`delete`; raise MSV of AWS provider to `v5.0` to support * fix: Replace dynamic DNS suffix for `sts:AssumeRole` API calls for static suffix * feat: Add module tag * feat: Align Karpenter permissions with Karpenter v1beta1/v0.32 permissions from upstream * refactor: Move `aws-auth` ConfigMap functionality to its own sub-module * chore: Update examples * feat: Add state `moved` block for Karpenter Pod Identity role re-name * fix: Correct variable `create` description * feat: Add support for cluster access entries * chore: Bump MSV of Terraform to `1.3` * fix: Replace defunct kubectl provider with an updated forked equivalent * chore: Update and validate examples for access entry; clean up provider usage * docs: Correct double redundant variable descriptions * feat: Add support for Cloudwatch log group class argument * fix: Update usage tag placement, fix Karpenter event spelling, add upcoming changes section to upgrade guide * feat: Update Karpenter module to generalize naming used and align policy with the upstream Karpenter policy * feat: Add native support for Windows based managed nodegroups similar to AL2 and Bottlerocket * feat: Update self-managed nodegroup module to use latest features of ASG * docs: Update and simplify docs * fix: Correct variable description for AMI types * fix: Update upgrade guide with changes; rename Karpenter controller resource names to support migrating for users * docs: Complete upgrade guide docs for migration and changes applied * Update examples/karpenter/README.md Co-authored-by: Anton Babenko <anton@antonbabenko.com> * Update examples/outposts/README.md Co-authored-by: Anton Babenko <anton@antonbabenko.com> * Update modules/karpenter/README.md Co-authored-by: Anton Babenko <anton@antonbabenko.com> --------- Co-authored-by: Anton Babenko <anton@antonbabenko.com>
This commit is contained in:
@@ -17,7 +17,7 @@ $ terraform apply
|
||||
|
||||
| Name | Version |
|
||||
|------|---------|
|
||||
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.0 |
|
||||
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.3 |
|
||||
|
||||
## Providers
|
||||
|
||||
@@ -35,6 +35,10 @@ No providers.
|
||||
| <a name="module_eks_mng_linux_custom_ami"></a> [eks\_mng\_linux\_custom\_ami](#module\_eks\_mng\_linux\_custom\_ami) | ../../modules/_user_data | n/a |
|
||||
| <a name="module_eks_mng_linux_custom_template"></a> [eks\_mng\_linux\_custom\_template](#module\_eks\_mng\_linux\_custom\_template) | ../../modules/_user_data | n/a |
|
||||
| <a name="module_eks_mng_linux_no_op"></a> [eks\_mng\_linux\_no\_op](#module\_eks\_mng\_linux\_no\_op) | ../../modules/_user_data | n/a |
|
||||
| <a name="module_eks_mng_windows_additional"></a> [eks\_mng\_windows\_additional](#module\_eks\_mng\_windows\_additional) | ../../modules/_user_data | n/a |
|
||||
| <a name="module_eks_mng_windows_custom_ami"></a> [eks\_mng\_windows\_custom\_ami](#module\_eks\_mng\_windows\_custom\_ami) | ../../modules/_user_data | n/a |
|
||||
| <a name="module_eks_mng_windows_custom_template"></a> [eks\_mng\_windows\_custom\_template](#module\_eks\_mng\_windows\_custom\_template) | ../../modules/_user_data | n/a |
|
||||
| <a name="module_eks_mng_windows_no_op"></a> [eks\_mng\_windows\_no\_op](#module\_eks\_mng\_windows\_no\_op) | ../../modules/_user_data | n/a |
|
||||
| <a name="module_self_mng_bottlerocket_bootstrap"></a> [self\_mng\_bottlerocket\_bootstrap](#module\_self\_mng\_bottlerocket\_bootstrap) | ../../modules/_user_data | n/a |
|
||||
| <a name="module_self_mng_bottlerocket_custom_template"></a> [self\_mng\_bottlerocket\_custom\_template](#module\_self\_mng\_bottlerocket\_custom\_template) | ../../modules/_user_data | n/a |
|
||||
| <a name="module_self_mng_bottlerocket_no_op"></a> [self\_mng\_bottlerocket\_no\_op](#module\_self\_mng\_bottlerocket\_no\_op) | ../../modules/_user_data | n/a |
|
||||
@@ -65,6 +69,10 @@ No inputs.
|
||||
| <a name="output_eks_mng_linux_custom_ami"></a> [eks\_mng\_linux\_custom\_ami](#output\_eks\_mng\_linux\_custom\_ami) | Base64 decoded user data rendered for the provided inputs |
|
||||
| <a name="output_eks_mng_linux_custom_template"></a> [eks\_mng\_linux\_custom\_template](#output\_eks\_mng\_linux\_custom\_template) | Base64 decoded user data rendered for the provided inputs |
|
||||
| <a name="output_eks_mng_linux_no_op"></a> [eks\_mng\_linux\_no\_op](#output\_eks\_mng\_linux\_no\_op) | Base64 decoded user data rendered for the provided inputs |
|
||||
| <a name="output_eks_mng_windows_additional"></a> [eks\_mng\_windows\_additional](#output\_eks\_mng\_windows\_additional) | Base64 decoded user data rendered for the provided inputs |
|
||||
| <a name="output_eks_mng_windows_custom_ami"></a> [eks\_mng\_windows\_custom\_ami](#output\_eks\_mng\_windows\_custom\_ami) | Base64 decoded user data rendered for the provided inputs |
|
||||
| <a name="output_eks_mng_windows_custom_template"></a> [eks\_mng\_windows\_custom\_template](#output\_eks\_mng\_windows\_custom\_template) | Base64 decoded user data rendered for the provided inputs |
|
||||
| <a name="output_eks_mng_windows_no_op"></a> [eks\_mng\_windows\_no\_op](#output\_eks\_mng\_windows\_no\_op) | Base64 decoded user data rendered for the provided inputs |
|
||||
| <a name="output_self_mng_bottlerocket_bootstrap"></a> [self\_mng\_bottlerocket\_bootstrap](#output\_self\_mng\_bottlerocket\_bootstrap) | Base64 decoded user data rendered for the provided inputs |
|
||||
| <a name="output_self_mng_bottlerocket_custom_template"></a> [self\_mng\_bottlerocket\_custom\_template](#output\_self\_mng\_bottlerocket\_custom\_template) | Base64 decoded user data rendered for the provided inputs |
|
||||
| <a name="output_self_mng_bottlerocket_no_op"></a> [self\_mng\_bottlerocket\_no\_op](#output\_self\_mng\_bottlerocket\_no\_op) | Base64 decoded user data rendered for the provided inputs |
|
||||
|
||||
@@ -121,6 +121,69 @@ module "eks_mng_bottlerocket_custom_template" {
|
||||
EOT
|
||||
}
|
||||
|
||||
# EKS managed node group - windows
|
||||
module "eks_mng_windows_no_op" {
|
||||
source = "../../modules/_user_data"
|
||||
|
||||
platform = "windows"
|
||||
}
|
||||
|
||||
module "eks_mng_windows_additional" {
|
||||
source = "../../modules/_user_data"
|
||||
|
||||
platform = "windows"
|
||||
|
||||
pre_bootstrap_user_data = <<-EOT
|
||||
[string]$Something = 'IDoNotKnowAnyPowerShell ¯\_(ツ)_/¯'
|
||||
EOT
|
||||
}
|
||||
|
||||
module "eks_mng_windows_custom_ami" {
|
||||
source = "../../modules/_user_data"
|
||||
|
||||
platform = "windows"
|
||||
|
||||
cluster_name = local.name
|
||||
cluster_endpoint = local.cluster_endpoint
|
||||
cluster_auth_base64 = local.cluster_auth_base64
|
||||
|
||||
enable_bootstrap_user_data = true
|
||||
|
||||
pre_bootstrap_user_data = <<-EOT
|
||||
[string]$Something = 'IDoNotKnowAnyPowerShell ¯\_(ツ)_/¯'
|
||||
EOT
|
||||
# I don't know if this is the right way on Windows, but its just a string check here anyways
|
||||
bootstrap_extra_args = "-KubeletExtraArgs --node-labels=node.kubernetes.io/lifecycle=spot"
|
||||
|
||||
post_bootstrap_user_data = <<-EOT
|
||||
[string]$Something = 'IStillDoNotKnowAnyPowerShell ¯\_(ツ)_/¯'
|
||||
EOT
|
||||
}
|
||||
|
||||
module "eks_mng_windows_custom_template" {
|
||||
source = "../../modules/_user_data"
|
||||
|
||||
platform = "windows"
|
||||
|
||||
cluster_name = local.name
|
||||
cluster_endpoint = local.cluster_endpoint
|
||||
cluster_auth_base64 = local.cluster_auth_base64
|
||||
|
||||
enable_bootstrap_user_data = true
|
||||
|
||||
user_data_template_path = "${path.module}/templates/windows_custom.tpl"
|
||||
|
||||
pre_bootstrap_user_data = <<-EOT
|
||||
[string]$Something = 'IDoNotKnowAnyPowerShell ¯\_(ツ)_/¯'
|
||||
EOT
|
||||
# I don't know if this is the right way on Windows, but its just a string check here anyways
|
||||
bootstrap_extra_args = "-KubeletExtraArgs --node-labels=node.kubernetes.io/lifecycle=spot"
|
||||
|
||||
post_bootstrap_user_data = <<-EOT
|
||||
[string]$Something = 'IStillDoNotKnowAnyPowerShell ¯\_(ツ)_/¯'
|
||||
EOT
|
||||
}
|
||||
|
||||
# Self managed node group - linux
|
||||
module "self_mng_linux_no_op" {
|
||||
source = "../../modules/_user_data"
|
||||
@@ -247,7 +310,7 @@ module "self_mng_windows_bootstrap" {
|
||||
pre_bootstrap_user_data = <<-EOT
|
||||
[string]$Something = 'IDoNotKnowAnyPowerShell ¯\_(ツ)_/¯'
|
||||
EOT
|
||||
# I don't know if this is the right way on WindowsOS, but its just a string check here anyways
|
||||
# I don't know if this is the right way on Windows, but its just a string check here anyways
|
||||
bootstrap_extra_args = "-KubeletExtraArgs --node-labels=node.kubernetes.io/lifecycle=spot"
|
||||
|
||||
post_bootstrap_user_data = <<-EOT
|
||||
@@ -272,7 +335,7 @@ module "self_mng_windows_custom_template" {
|
||||
pre_bootstrap_user_data = <<-EOT
|
||||
[string]$Something = 'IDoNotKnowAnyPowerShell ¯\_(ツ)_/¯'
|
||||
EOT
|
||||
# I don't know if this is the right way on WindowsOS, but its just a string check here anyways
|
||||
# I don't know if this is the right way on Windows, but its just a string check here anyways
|
||||
bootstrap_extra_args = "-KubeletExtraArgs --node-labels=node.kubernetes.io/lifecycle=spot"
|
||||
|
||||
post_bootstrap_user_data = <<-EOT
|
||||
|
||||
@@ -40,6 +40,27 @@ output "eks_mng_bottlerocket_custom_template" {
|
||||
value = base64decode(module.eks_mng_bottlerocket_custom_template.user_data)
|
||||
}
|
||||
|
||||
# EKS managed node group - windows
|
||||
output "eks_mng_windows_no_op" {
|
||||
description = "Base64 decoded user data rendered for the provided inputs"
|
||||
value = base64decode(module.eks_mng_windows_no_op.user_data)
|
||||
}
|
||||
|
||||
output "eks_mng_windows_additional" {
|
||||
description = "Base64 decoded user data rendered for the provided inputs"
|
||||
value = base64decode(module.eks_mng_windows_additional.user_data)
|
||||
}
|
||||
|
||||
output "eks_mng_windows_custom_ami" {
|
||||
description = "Base64 decoded user data rendered for the provided inputs"
|
||||
value = base64decode(module.eks_mng_windows_custom_ami.user_data)
|
||||
}
|
||||
|
||||
output "eks_mng_windows_custom_template" {
|
||||
description = "Base64 decoded user data rendered for the provided inputs"
|
||||
value = base64decode(module.eks_mng_windows_custom_template.user_data)
|
||||
}
|
||||
|
||||
# Self managed node group - linux
|
||||
output "self_mng_linux_no_op" {
|
||||
description = "Base64 decoded user data rendered for the provided inputs"
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
terraform {
|
||||
required_version = ">= 1.0"
|
||||
required_version = ">= 1.3"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user