mirror of
https://github.com/ysoftdevs/terraform-aws-eks.git
synced 2026-03-24 02:11:04 +01:00
feat: Add support for EKS Auto Mode and EKS Hybrid nodes (#3225)
* feat: Add support for EKS hybrid nodes * feat: Add support for EKS Auto Mode * chore: Update test directory names * chore: Clean up examples and tests * fix: Clean up and last minute changes for GA * chore: Formatting * chore: Bump min required version for new features * fix: Corrects from test/validation on existing clusters * feat: Add policy for custom tags on EKS Auto Mode, validate examples * chore: Expand on `CAM` acronym * chore: Update README to match examples
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# Fargate Profile
|
||||
# EKS Fargate Profile
|
||||
|
||||
## Usage
|
||||
|
||||
@@ -18,13 +18,13 @@ Note that this example may create resources which cost money. Run `terraform des
|
||||
| Name | Version |
|
||||
|------|---------|
|
||||
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.3.2 |
|
||||
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.75 |
|
||||
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.79 |
|
||||
|
||||
## Providers
|
||||
|
||||
| Name | Version |
|
||||
|------|---------|
|
||||
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.75 |
|
||||
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.79 |
|
||||
|
||||
## Modules
|
||||
|
||||
@@ -58,8 +58,8 @@ No inputs.
|
||||
| <a name="output_cluster_certificate_authority_data"></a> [cluster\_certificate\_authority\_data](#output\_cluster\_certificate\_authority\_data) | Base64 encoded certificate data required to communicate with the cluster |
|
||||
| <a name="output_cluster_dualstack_oidc_issuer_url"></a> [cluster\_dualstack\_oidc\_issuer\_url](#output\_cluster\_dualstack\_oidc\_issuer\_url) | Dual-stack compatible URL on the EKS cluster for the OpenID Connect identity provider |
|
||||
| <a name="output_cluster_endpoint"></a> [cluster\_endpoint](#output\_cluster\_endpoint) | Endpoint for your Kubernetes API server |
|
||||
| <a name="output_cluster_iam_role_arn"></a> [cluster\_iam\_role\_arn](#output\_cluster\_iam\_role\_arn) | IAM role ARN of the EKS cluster |
|
||||
| <a name="output_cluster_iam_role_name"></a> [cluster\_iam\_role\_name](#output\_cluster\_iam\_role\_name) | IAM role name of the EKS cluster |
|
||||
| <a name="output_cluster_iam_role_arn"></a> [cluster\_iam\_role\_arn](#output\_cluster\_iam\_role\_arn) | Cluster IAM role ARN |
|
||||
| <a name="output_cluster_iam_role_name"></a> [cluster\_iam\_role\_name](#output\_cluster\_iam\_role\_name) | Cluster IAM role name |
|
||||
| <a name="output_cluster_iam_role_unique_id"></a> [cluster\_iam\_role\_unique\_id](#output\_cluster\_iam\_role\_unique\_id) | Stable and unique string identifying the IAM role |
|
||||
| <a name="output_cluster_id"></a> [cluster\_id](#output\_cluster\_id) | The ID of the EKS cluster. Note: currently a value is returned only for local EKS clusters created on Outposts |
|
||||
| <a name="output_cluster_identity_providers"></a> [cluster\_identity\_providers](#output\_cluster\_identity\_providers) | Map of attribute maps for all EKS identity providers enabled |
|
||||
@@ -79,6 +79,9 @@ No inputs.
|
||||
| <a name="output_kms_key_arn"></a> [kms\_key\_arn](#output\_kms\_key\_arn) | The Amazon Resource Name (ARN) of the key |
|
||||
| <a name="output_kms_key_id"></a> [kms\_key\_id](#output\_kms\_key\_id) | The globally unique identifier for the key |
|
||||
| <a name="output_kms_key_policy"></a> [kms\_key\_policy](#output\_kms\_key\_policy) | The IAM resource policy set on the key |
|
||||
| <a name="output_node_iam_role_arn"></a> [node\_iam\_role\_arn](#output\_node\_iam\_role\_arn) | EKS Auto node IAM role ARN |
|
||||
| <a name="output_node_iam_role_name"></a> [node\_iam\_role\_name](#output\_node\_iam\_role\_name) | EKS Auto node IAM role name |
|
||||
| <a name="output_node_iam_role_unique_id"></a> [node\_iam\_role\_unique\_id](#output\_node\_iam\_role\_unique\_id) | Stable and unique string identifying the IAM role |
|
||||
| <a name="output_node_security_group_arn"></a> [node\_security\_group\_arn](#output\_node\_security\_group\_arn) | Amazon Resource Name (ARN) of the node shared security group |
|
||||
| <a name="output_node_security_group_id"></a> [node\_security\_group\_id](#output\_node\_security\_group\_id) | ID of the node shared security group |
|
||||
| <a name="output_oidc_provider"></a> [oidc\_provider](#output\_oidc\_provider) | The OpenID Connect identity provider (issuer URL without leading `https://`) |
|
||||
@@ -2,7 +2,13 @@ provider "aws" {
|
||||
region = local.region
|
||||
}
|
||||
|
||||
data "aws_availability_zones" "available" {}
|
||||
data "aws_availability_zones" "available" {
|
||||
# Exclude local zones
|
||||
filter {
|
||||
name = "opt-in-status"
|
||||
values = ["opt-in-not-required"]
|
||||
}
|
||||
}
|
||||
|
||||
locals {
|
||||
name = "ex-${basename(path.cwd)}"
|
||||
@@ -142,12 +142,12 @@ output "cluster_tls_certificate_sha1_fingerprint" {
|
||||
################################################################################
|
||||
|
||||
output "cluster_iam_role_name" {
|
||||
description = "IAM role name of the EKS cluster"
|
||||
description = "Cluster IAM role name"
|
||||
value = module.eks.cluster_iam_role_name
|
||||
}
|
||||
|
||||
output "cluster_iam_role_arn" {
|
||||
description = "IAM role ARN of the EKS cluster"
|
||||
description = "Cluster IAM role ARN"
|
||||
value = module.eks.cluster_iam_role_arn
|
||||
}
|
||||
|
||||
@@ -156,6 +156,25 @@ output "cluster_iam_role_unique_id" {
|
||||
value = module.eks.cluster_iam_role_unique_id
|
||||
}
|
||||
|
||||
################################################################################
|
||||
# EKS Auto Node IAM Role
|
||||
################################################################################
|
||||
|
||||
output "node_iam_role_name" {
|
||||
description = "EKS Auto node IAM role name"
|
||||
value = module.eks.node_iam_role_name
|
||||
}
|
||||
|
||||
output "node_iam_role_arn" {
|
||||
description = "EKS Auto node IAM role ARN"
|
||||
value = module.eks.node_iam_role_arn
|
||||
}
|
||||
|
||||
output "node_iam_role_unique_id" {
|
||||
description = "Stable and unique string identifying the IAM role"
|
||||
value = module.eks.node_iam_role_unique_id
|
||||
}
|
||||
|
||||
################################################################################
|
||||
# EKS Addons
|
||||
################################################################################
|
||||
@@ -4,7 +4,7 @@ terraform {
|
||||
required_providers {
|
||||
aws = {
|
||||
source = "hashicorp/aws"
|
||||
version = ">= 5.75"
|
||||
version = ">= 5.79"
|
||||
}
|
||||
}
|
||||
}
|
||||
65
tests/eks-hybrid-nodes/README.md
Normal file
65
tests/eks-hybrid-nodes/README.md
Normal file
@@ -0,0 +1,65 @@
|
||||
# EKS Hybrid Node IAM Role
|
||||
|
||||
## Usage
|
||||
|
||||
To provision the provided configurations you need to execute:
|
||||
|
||||
```bash
|
||||
$ terraform init
|
||||
$ terraform plan
|
||||
$ terraform apply --auto-approve
|
||||
```
|
||||
|
||||
Note that this example may create resources which cost money. Run `terraform destroy` when you don't need these resources.
|
||||
|
||||
<!-- BEGIN_TF_DOCS -->
|
||||
## Requirements
|
||||
|
||||
| Name | Version |
|
||||
|------|---------|
|
||||
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.3.2 |
|
||||
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.79 |
|
||||
| <a name="requirement_tls"></a> [tls](#requirement\_tls) | >= 4.0 |
|
||||
|
||||
## Providers
|
||||
|
||||
| Name | Version |
|
||||
|------|---------|
|
||||
| <a name="provider_tls"></a> [tls](#provider\_tls) | >= 4.0 |
|
||||
|
||||
## Modules
|
||||
|
||||
| Name | Source | Version |
|
||||
|------|--------|---------|
|
||||
| <a name="module_disabled_eks_hybrid_node_role"></a> [disabled\_eks\_hybrid\_node\_role](#module\_disabled\_eks\_hybrid\_node\_role) | ../../modules/hybrid-node-role | n/a |
|
||||
| <a name="module_eks_hybrid_node_role"></a> [eks\_hybrid\_node\_role](#module\_eks\_hybrid\_node\_role) | ../../modules/hybrid-node-role | n/a |
|
||||
| <a name="module_ira_eks_hybrid_node_role"></a> [ira\_eks\_hybrid\_node\_role](#module\_ira\_eks\_hybrid\_node\_role) | ../../modules/hybrid-node-role | n/a |
|
||||
|
||||
## Resources
|
||||
|
||||
| Name | Type |
|
||||
|------|------|
|
||||
| [tls_private_key.example](https://registry.terraform.io/providers/hashicorp/tls/latest/docs/resources/private_key) | resource |
|
||||
| [tls_self_signed_cert.example](https://registry.terraform.io/providers/hashicorp/tls/latest/docs/resources/self_signed_cert) | resource |
|
||||
|
||||
## Inputs
|
||||
|
||||
No inputs.
|
||||
|
||||
## Outputs
|
||||
|
||||
| Name | Description |
|
||||
|------|-------------|
|
||||
| <a name="output_arn"></a> [arn](#output\_arn) | The Amazon Resource Name (ARN) specifying the node IAM role |
|
||||
| <a name="output_intermediate_role_arn"></a> [intermediate\_role\_arn](#output\_intermediate\_role\_arn) | The Amazon Resource Name (ARN) specifying the node IAM role |
|
||||
| <a name="output_intermediate_role_name"></a> [intermediate\_role\_name](#output\_intermediate\_role\_name) | The name of the node IAM role |
|
||||
| <a name="output_intermediate_role_unique_id"></a> [intermediate\_role\_unique\_id](#output\_intermediate\_role\_unique\_id) | Stable and unique string identifying the node IAM role |
|
||||
| <a name="output_ira_arn"></a> [ira\_arn](#output\_ira\_arn) | The Amazon Resource Name (ARN) specifying the node IAM role |
|
||||
| <a name="output_ira_intermediate_role_arn"></a> [ira\_intermediate\_role\_arn](#output\_ira\_intermediate\_role\_arn) | The Amazon Resource Name (ARN) specifying the node IAM role |
|
||||
| <a name="output_ira_intermediate_role_name"></a> [ira\_intermediate\_role\_name](#output\_ira\_intermediate\_role\_name) | The name of the node IAM role |
|
||||
| <a name="output_ira_intermediate_role_unique_id"></a> [ira\_intermediate\_role\_unique\_id](#output\_ira\_intermediate\_role\_unique\_id) | Stable and unique string identifying the node IAM role |
|
||||
| <a name="output_ira_name"></a> [ira\_name](#output\_ira\_name) | The name of the node IAM role |
|
||||
| <a name="output_ira_unique_id"></a> [ira\_unique\_id](#output\_ira\_unique\_id) | Stable and unique string identifying the node IAM role |
|
||||
| <a name="output_name"></a> [name](#output\_name) | The name of the node IAM role |
|
||||
| <a name="output_unique_id"></a> [unique\_id](#output\_unique\_id) | Stable and unique string identifying the node IAM role |
|
||||
<!-- END_TF_DOCS -->
|
||||
84
tests/eks-hybrid-nodes/main.tf
Normal file
84
tests/eks-hybrid-nodes/main.tf
Normal file
@@ -0,0 +1,84 @@
|
||||
provider "aws" {
|
||||
region = local.region
|
||||
}
|
||||
|
||||
locals {
|
||||
name = "ex-${basename(path.cwd)}"
|
||||
region = "us-west-2"
|
||||
|
||||
tags = {
|
||||
Test = local.name
|
||||
GithubRepo = "terraform-aws-eks"
|
||||
GithubOrg = "terraform-aws-modules"
|
||||
}
|
||||
}
|
||||
|
||||
################################################################################
|
||||
# Hybrid Node IAM Module
|
||||
################################################################################
|
||||
|
||||
# Default (SSM)
|
||||
module "eks_hybrid_node_role" {
|
||||
source = "../../modules/hybrid-node-role"
|
||||
|
||||
policy_statements = [
|
||||
{
|
||||
actions = [
|
||||
"s3:Get*",
|
||||
"s3:List*",
|
||||
]
|
||||
resources = ["*"]
|
||||
}
|
||||
]
|
||||
|
||||
tags = local.tags
|
||||
}
|
||||
|
||||
# IAM Roles Anywhere
|
||||
module "ira_eks_hybrid_node_role" {
|
||||
source = "../../modules/hybrid-node-role"
|
||||
|
||||
name = "${local.name}-ira"
|
||||
|
||||
enable_ira = true
|
||||
|
||||
ira_trust_anchor_source_type = "CERTIFICATE_BUNDLE"
|
||||
ira_trust_anchor_x509_certificate_data = local.cert_data
|
||||
|
||||
tags = local.tags
|
||||
}
|
||||
|
||||
module "disabled_eks_hybrid_node_role" {
|
||||
source = "../../modules/hybrid-node-role"
|
||||
|
||||
create = false
|
||||
}
|
||||
|
||||
################################################################################
|
||||
# Supporting Resources
|
||||
################################################################################
|
||||
|
||||
resource "tls_private_key" "example" {
|
||||
algorithm = "RSA"
|
||||
rsa_bits = 4096
|
||||
}
|
||||
|
||||
resource "tls_self_signed_cert" "example" {
|
||||
private_key_pem = tls_private_key.example.private_key_pem
|
||||
|
||||
subject {
|
||||
common_name = "Custom root"
|
||||
organization = "ACME Examples, Inc"
|
||||
}
|
||||
|
||||
validity_period_hours = 17544
|
||||
is_ca_certificate = true
|
||||
|
||||
allowed_uses = [
|
||||
"cert_signing",
|
||||
]
|
||||
}
|
||||
|
||||
locals {
|
||||
cert_data = trimspace(replace(trimprefix(tls_self_signed_cert.example.cert_pem, "-----BEGIN CERTIFICATE-----"), "-----END CERTIFICATE-----", ""))
|
||||
}
|
||||
71
tests/eks-hybrid-nodes/outputs.tf
Normal file
71
tests/eks-hybrid-nodes/outputs.tf
Normal file
@@ -0,0 +1,71 @@
|
||||
################################################################################
|
||||
# Default (SSM) - Node IAM Role
|
||||
################################################################################
|
||||
|
||||
# Node IAM Role
|
||||
output "name" {
|
||||
description = "The name of the node IAM role"
|
||||
value = module.eks_hybrid_node_role.name
|
||||
}
|
||||
|
||||
output "arn" {
|
||||
description = "The Amazon Resource Name (ARN) specifying the node IAM role"
|
||||
value = module.eks_hybrid_node_role.arn
|
||||
}
|
||||
|
||||
output "unique_id" {
|
||||
description = "Stable and unique string identifying the node IAM role"
|
||||
value = module.eks_hybrid_node_role.unique_id
|
||||
}
|
||||
|
||||
# Intermedaite IAM Role
|
||||
output "intermediate_role_name" {
|
||||
description = "The name of the node IAM role"
|
||||
value = module.eks_hybrid_node_role.intermediate_role_name
|
||||
}
|
||||
|
||||
output "intermediate_role_arn" {
|
||||
description = "The Amazon Resource Name (ARN) specifying the node IAM role"
|
||||
value = module.eks_hybrid_node_role.intermediate_role_arn
|
||||
}
|
||||
|
||||
output "intermediate_role_unique_id" {
|
||||
description = "Stable and unique string identifying the node IAM role"
|
||||
value = module.eks_hybrid_node_role.intermediate_role_unique_id
|
||||
}
|
||||
|
||||
################################################################################
|
||||
# IAM Roles Anywhere - Node IAM Role
|
||||
################################################################################
|
||||
|
||||
# Node IAM Role
|
||||
output "ira_name" {
|
||||
description = "The name of the node IAM role"
|
||||
value = module.ira_eks_hybrid_node_role.name
|
||||
}
|
||||
|
||||
output "ira_arn" {
|
||||
description = "The Amazon Resource Name (ARN) specifying the node IAM role"
|
||||
value = module.ira_eks_hybrid_node_role.arn
|
||||
}
|
||||
|
||||
output "ira_unique_id" {
|
||||
description = "Stable and unique string identifying the node IAM role"
|
||||
value = module.ira_eks_hybrid_node_role.unique_id
|
||||
}
|
||||
|
||||
# Intermedaite IAM Role
|
||||
output "ira_intermediate_role_name" {
|
||||
description = "The name of the node IAM role"
|
||||
value = module.ira_eks_hybrid_node_role.intermediate_role_name
|
||||
}
|
||||
|
||||
output "ira_intermediate_role_arn" {
|
||||
description = "The Amazon Resource Name (ARN) specifying the node IAM role"
|
||||
value = module.ira_eks_hybrid_node_role.intermediate_role_arn
|
||||
}
|
||||
|
||||
output "ira_intermediate_role_unique_id" {
|
||||
description = "Stable and unique string identifying the node IAM role"
|
||||
value = module.ira_eks_hybrid_node_role.intermediate_role_unique_id
|
||||
}
|
||||
0
tests/eks-hybrid-nodes/variables.tf
Normal file
0
tests/eks-hybrid-nodes/variables.tf
Normal file
14
tests/eks-hybrid-nodes/versions.tf
Normal file
14
tests/eks-hybrid-nodes/versions.tf
Normal file
@@ -0,0 +1,14 @@
|
||||
terraform {
|
||||
required_version = ">= 1.3.2"
|
||||
|
||||
required_providers {
|
||||
aws = {
|
||||
source = "hashicorp/aws"
|
||||
version = ">= 5.79"
|
||||
}
|
||||
tls = {
|
||||
source = "hashicorp/tls"
|
||||
version = ">= 4.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -18,13 +18,13 @@ Note that this example may create resources which cost money. Run `terraform des
|
||||
| Name | Version |
|
||||
|------|---------|
|
||||
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.3.2 |
|
||||
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.75 |
|
||||
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.79 |
|
||||
|
||||
## Providers
|
||||
|
||||
| Name | Version |
|
||||
|------|---------|
|
||||
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.75 |
|
||||
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.79 |
|
||||
|
||||
## Modules
|
||||
|
||||
@@ -68,8 +68,8 @@ No inputs.
|
||||
| <a name="output_cluster_certificate_authority_data"></a> [cluster\_certificate\_authority\_data](#output\_cluster\_certificate\_authority\_data) | Base64 encoded certificate data required to communicate with the cluster |
|
||||
| <a name="output_cluster_dualstack_oidc_issuer_url"></a> [cluster\_dualstack\_oidc\_issuer\_url](#output\_cluster\_dualstack\_oidc\_issuer\_url) | Dual-stack compatible URL on the EKS cluster for the OpenID Connect identity provider |
|
||||
| <a name="output_cluster_endpoint"></a> [cluster\_endpoint](#output\_cluster\_endpoint) | Endpoint for your Kubernetes API server |
|
||||
| <a name="output_cluster_iam_role_arn"></a> [cluster\_iam\_role\_arn](#output\_cluster\_iam\_role\_arn) | IAM role ARN of the EKS cluster |
|
||||
| <a name="output_cluster_iam_role_name"></a> [cluster\_iam\_role\_name](#output\_cluster\_iam\_role\_name) | IAM role name of the EKS cluster |
|
||||
| <a name="output_cluster_iam_role_arn"></a> [cluster\_iam\_role\_arn](#output\_cluster\_iam\_role\_arn) | Cluster IAM role ARN |
|
||||
| <a name="output_cluster_iam_role_name"></a> [cluster\_iam\_role\_name](#output\_cluster\_iam\_role\_name) | Cluster IAM role name |
|
||||
| <a name="output_cluster_iam_role_unique_id"></a> [cluster\_iam\_role\_unique\_id](#output\_cluster\_iam\_role\_unique\_id) | Stable and unique string identifying the IAM role |
|
||||
| <a name="output_cluster_id"></a> [cluster\_id](#output\_cluster\_id) | The ID of the EKS cluster. Note: currently a value is returned only for local EKS clusters created on Outposts |
|
||||
| <a name="output_cluster_identity_providers"></a> [cluster\_identity\_providers](#output\_cluster\_identity\_providers) | Map of attribute maps for all EKS identity providers enabled |
|
||||
@@ -89,6 +89,9 @@ No inputs.
|
||||
| <a name="output_kms_key_arn"></a> [kms\_key\_arn](#output\_kms\_key\_arn) | The Amazon Resource Name (ARN) of the key |
|
||||
| <a name="output_kms_key_id"></a> [kms\_key\_id](#output\_kms\_key\_id) | The globally unique identifier for the key |
|
||||
| <a name="output_kms_key_policy"></a> [kms\_key\_policy](#output\_kms\_key\_policy) | The IAM resource policy set on the key |
|
||||
| <a name="output_node_iam_role_arn"></a> [node\_iam\_role\_arn](#output\_node\_iam\_role\_arn) | EKS Auto node IAM role ARN |
|
||||
| <a name="output_node_iam_role_name"></a> [node\_iam\_role\_name](#output\_node\_iam\_role\_name) | EKS Auto node IAM role name |
|
||||
| <a name="output_node_iam_role_unique_id"></a> [node\_iam\_role\_unique\_id](#output\_node\_iam\_role\_unique\_id) | Stable and unique string identifying the IAM role |
|
||||
| <a name="output_node_security_group_arn"></a> [node\_security\_group\_arn](#output\_node\_security\_group\_arn) | Amazon Resource Name (ARN) of the node shared security group |
|
||||
| <a name="output_node_security_group_id"></a> [node\_security\_group\_id](#output\_node\_security\_group\_id) | ID of the node shared security group |
|
||||
| <a name="output_oidc_provider"></a> [oidc\_provider](#output\_oidc\_provider) | The OpenID Connect identity provider (issuer URL without leading `https://`) |
|
||||
|
||||
@@ -3,7 +3,14 @@ provider "aws" {
|
||||
}
|
||||
|
||||
data "aws_caller_identity" "current" {}
|
||||
data "aws_availability_zones" "available" {}
|
||||
|
||||
data "aws_availability_zones" "available" {
|
||||
# Exclude local zones
|
||||
filter {
|
||||
name = "opt-in-status"
|
||||
values = ["opt-in-not-required"]
|
||||
}
|
||||
}
|
||||
|
||||
locals {
|
||||
name = "ex-${replace(basename(path.cwd), "_", "-")}"
|
||||
|
||||
@@ -142,12 +142,12 @@ output "cluster_tls_certificate_sha1_fingerprint" {
|
||||
################################################################################
|
||||
|
||||
output "cluster_iam_role_name" {
|
||||
description = "IAM role name of the EKS cluster"
|
||||
description = "Cluster IAM role name"
|
||||
value = module.eks.cluster_iam_role_name
|
||||
}
|
||||
|
||||
output "cluster_iam_role_arn" {
|
||||
description = "IAM role ARN of the EKS cluster"
|
||||
description = "Cluster IAM role ARN"
|
||||
value = module.eks.cluster_iam_role_arn
|
||||
}
|
||||
|
||||
@@ -156,6 +156,25 @@ output "cluster_iam_role_unique_id" {
|
||||
value = module.eks.cluster_iam_role_unique_id
|
||||
}
|
||||
|
||||
################################################################################
|
||||
# EKS Auto Node IAM Role
|
||||
################################################################################
|
||||
|
||||
output "node_iam_role_name" {
|
||||
description = "EKS Auto node IAM role name"
|
||||
value = module.eks.node_iam_role_name
|
||||
}
|
||||
|
||||
output "node_iam_role_arn" {
|
||||
description = "EKS Auto node IAM role ARN"
|
||||
value = module.eks.node_iam_role_arn
|
||||
}
|
||||
|
||||
output "node_iam_role_unique_id" {
|
||||
description = "Stable and unique string identifying the IAM role"
|
||||
value = module.eks.node_iam_role_unique_id
|
||||
}
|
||||
|
||||
################################################################################
|
||||
# EKS Addons
|
||||
################################################################################
|
||||
|
||||
@@ -4,7 +4,7 @@ terraform {
|
||||
required_providers {
|
||||
aws = {
|
||||
source = "hashicorp/aws"
|
||||
version = ">= 5.75"
|
||||
version = ">= 5.79"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,13 +22,13 @@ Note that this example may create resources which cost money. Run `terraform des
|
||||
| Name | Version |
|
||||
|------|---------|
|
||||
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.3.2 |
|
||||
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.75 |
|
||||
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.79 |
|
||||
|
||||
## Providers
|
||||
|
||||
| Name | Version |
|
||||
|------|---------|
|
||||
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.75 |
|
||||
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.79 |
|
||||
|
||||
## Modules
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ terraform {
|
||||
required_providers {
|
||||
aws = {
|
||||
source = "hashicorp/aws"
|
||||
version = ">= 5.75"
|
||||
version = ">= 5.79"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,13 +18,13 @@ Note that this example may create resources which cost money. Run `terraform des
|
||||
| Name | Version |
|
||||
|------|---------|
|
||||
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.3.2 |
|
||||
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.75 |
|
||||
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.79 |
|
||||
|
||||
## Providers
|
||||
|
||||
| Name | Version |
|
||||
|------|---------|
|
||||
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.75 |
|
||||
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.79 |
|
||||
|
||||
## Modules
|
||||
|
||||
@@ -64,8 +64,8 @@ No inputs.
|
||||
| <a name="output_cluster_certificate_authority_data"></a> [cluster\_certificate\_authority\_data](#output\_cluster\_certificate\_authority\_data) | Base64 encoded certificate data required to communicate with the cluster |
|
||||
| <a name="output_cluster_dualstack_oidc_issuer_url"></a> [cluster\_dualstack\_oidc\_issuer\_url](#output\_cluster\_dualstack\_oidc\_issuer\_url) | Dual-stack compatible URL on the EKS cluster for the OpenID Connect identity provider |
|
||||
| <a name="output_cluster_endpoint"></a> [cluster\_endpoint](#output\_cluster\_endpoint) | Endpoint for your Kubernetes API server |
|
||||
| <a name="output_cluster_iam_role_arn"></a> [cluster\_iam\_role\_arn](#output\_cluster\_iam\_role\_arn) | IAM role ARN of the EKS cluster |
|
||||
| <a name="output_cluster_iam_role_name"></a> [cluster\_iam\_role\_name](#output\_cluster\_iam\_role\_name) | IAM role name of the EKS cluster |
|
||||
| <a name="output_cluster_iam_role_arn"></a> [cluster\_iam\_role\_arn](#output\_cluster\_iam\_role\_arn) | Cluster IAM role ARN |
|
||||
| <a name="output_cluster_iam_role_name"></a> [cluster\_iam\_role\_name](#output\_cluster\_iam\_role\_name) | Cluster IAM role name |
|
||||
| <a name="output_cluster_iam_role_unique_id"></a> [cluster\_iam\_role\_unique\_id](#output\_cluster\_iam\_role\_unique\_id) | Stable and unique string identifying the IAM role |
|
||||
| <a name="output_cluster_id"></a> [cluster\_id](#output\_cluster\_id) | The ID of the EKS cluster. Note: currently a value is returned only for local EKS clusters created on Outposts |
|
||||
| <a name="output_cluster_identity_providers"></a> [cluster\_identity\_providers](#output\_cluster\_identity\_providers) | Map of attribute maps for all EKS identity providers enabled |
|
||||
@@ -85,6 +85,9 @@ No inputs.
|
||||
| <a name="output_kms_key_arn"></a> [kms\_key\_arn](#output\_kms\_key\_arn) | The Amazon Resource Name (ARN) of the key |
|
||||
| <a name="output_kms_key_id"></a> [kms\_key\_id](#output\_kms\_key\_id) | The globally unique identifier for the key |
|
||||
| <a name="output_kms_key_policy"></a> [kms\_key\_policy](#output\_kms\_key\_policy) | The IAM resource policy set on the key |
|
||||
| <a name="output_node_iam_role_arn"></a> [node\_iam\_role\_arn](#output\_node\_iam\_role\_arn) | EKS Auto node IAM role ARN |
|
||||
| <a name="output_node_iam_role_name"></a> [node\_iam\_role\_name](#output\_node\_iam\_role\_name) | EKS Auto node IAM role name |
|
||||
| <a name="output_node_iam_role_unique_id"></a> [node\_iam\_role\_unique\_id](#output\_node\_iam\_role\_unique\_id) | Stable and unique string identifying the IAM role |
|
||||
| <a name="output_node_security_group_arn"></a> [node\_security\_group\_arn](#output\_node\_security\_group\_arn) | Amazon Resource Name (ARN) of the node shared security group |
|
||||
| <a name="output_node_security_group_id"></a> [node\_security\_group\_id](#output\_node\_security\_group\_id) | ID of the node shared security group |
|
||||
| <a name="output_oidc_provider"></a> [oidc\_provider](#output\_oidc\_provider) | The OpenID Connect identity provider (issuer URL without leading `https://`) |
|
||||
|
||||
@@ -3,7 +3,14 @@ provider "aws" {
|
||||
}
|
||||
|
||||
data "aws_caller_identity" "current" {}
|
||||
data "aws_availability_zones" "available" {}
|
||||
|
||||
data "aws_availability_zones" "available" {
|
||||
# Exclude local zones
|
||||
filter {
|
||||
name = "opt-in-status"
|
||||
values = ["opt-in-not-required"]
|
||||
}
|
||||
}
|
||||
|
||||
locals {
|
||||
name = "ex-${replace(basename(path.cwd), "_", "-")}"
|
||||
|
||||
@@ -142,12 +142,12 @@ output "cluster_tls_certificate_sha1_fingerprint" {
|
||||
################################################################################
|
||||
|
||||
output "cluster_iam_role_name" {
|
||||
description = "IAM role name of the EKS cluster"
|
||||
description = "Cluster IAM role name"
|
||||
value = module.eks.cluster_iam_role_name
|
||||
}
|
||||
|
||||
output "cluster_iam_role_arn" {
|
||||
description = "IAM role ARN of the EKS cluster"
|
||||
description = "Cluster IAM role ARN"
|
||||
value = module.eks.cluster_iam_role_arn
|
||||
}
|
||||
|
||||
@@ -156,6 +156,25 @@ output "cluster_iam_role_unique_id" {
|
||||
value = module.eks.cluster_iam_role_unique_id
|
||||
}
|
||||
|
||||
################################################################################
|
||||
# EKS Auto Node IAM Role
|
||||
################################################################################
|
||||
|
||||
output "node_iam_role_name" {
|
||||
description = "EKS Auto node IAM role name"
|
||||
value = module.eks.node_iam_role_name
|
||||
}
|
||||
|
||||
output "node_iam_role_arn" {
|
||||
description = "EKS Auto node IAM role ARN"
|
||||
value = module.eks.node_iam_role_arn
|
||||
}
|
||||
|
||||
output "node_iam_role_unique_id" {
|
||||
description = "Stable and unique string identifying the IAM role"
|
||||
value = module.eks.node_iam_role_unique_id
|
||||
}
|
||||
|
||||
################################################################################
|
||||
# EKS Addons
|
||||
################################################################################
|
||||
|
||||
@@ -4,7 +4,7 @@ terraform {
|
||||
required_providers {
|
||||
aws = {
|
||||
source = "hashicorp/aws"
|
||||
version = ">= 5.75"
|
||||
version = ">= 5.79"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user