mirror of
https://github.com/ysoftdevs/terraform-aws-eks.git
synced 2026-03-24 10:21:08 +01:00
feat: Add support for enabling EFA resources (#2936)
* feat: Add support for enabling EFA resources * feat: Add support for creating placement group and ensuring subnet ID used supports the instance type provided * chore: Update README and examples * feat: Update AWS provider MSV to support `maximum_network_cards` attribute * fix: Update self-managed example after last round of testing; improve EFA support wording
This commit is contained in:
@@ -30,13 +30,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 |
|
||||
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.34 |
|
||||
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.38 |
|
||||
|
||||
## Providers
|
||||
|
||||
| Name | Version |
|
||||
|------|---------|
|
||||
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.34 |
|
||||
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.38 |
|
||||
|
||||
## Modules
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ data "aws_availability_zones" "available" {}
|
||||
|
||||
locals {
|
||||
name = "ex-${replace(basename(path.cwd), "_", "-")}"
|
||||
cluster_version = "1.27"
|
||||
cluster_version = "1.29"
|
||||
region = "eu-west-1"
|
||||
|
||||
vpc_cidr = "10.0.0.0/16"
|
||||
@@ -37,6 +37,10 @@ module "eks" {
|
||||
|
||||
enable_cluster_creator_admin_permissions = true
|
||||
|
||||
# Enable EFA support by adding necessary security group rules
|
||||
# to the shared node security group
|
||||
enable_efa_support = true
|
||||
|
||||
cluster_addons = {
|
||||
coredns = {
|
||||
most_recent = true
|
||||
@@ -241,6 +245,26 @@ module "eks" {
|
||||
ExtraTag = "EKS managed node group complete example"
|
||||
}
|
||||
}
|
||||
|
||||
efa = {
|
||||
# Disabling automatic creation due to instance type/quota availability
|
||||
# Can be enabled when appropriate for testing/validation
|
||||
create = false
|
||||
|
||||
instance_types = ["trn1n.32xlarge"]
|
||||
ami_type = "AL2_x86_64_GPU"
|
||||
|
||||
enable_efa_support = true
|
||||
pre_bootstrap_user_data = <<-EOT
|
||||
# Mount NVME instance store volumes since they are typically
|
||||
# available on instances that support EFA
|
||||
setup-local-disks raid0
|
||||
EOT
|
||||
|
||||
min_size = 2
|
||||
max_size = 2
|
||||
desired_size = 2
|
||||
}
|
||||
}
|
||||
|
||||
access_entries = {
|
||||
|
||||
@@ -4,7 +4,7 @@ terraform {
|
||||
required_providers {
|
||||
aws = {
|
||||
source = "hashicorp/aws"
|
||||
version = ">= 5.34"
|
||||
version = ">= 5.38"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,13 +20,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 |
|
||||
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.34 |
|
||||
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.38 |
|
||||
|
||||
## Providers
|
||||
|
||||
| Name | Version |
|
||||
|------|---------|
|
||||
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.34 |
|
||||
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.38 |
|
||||
|
||||
## Modules
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ terraform {
|
||||
required_providers {
|
||||
aws = {
|
||||
source = "hashicorp/aws"
|
||||
version = ">= 5.34"
|
||||
version = ">= 5.38"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@ 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 |
|
||||
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.34 |
|
||||
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.38 |
|
||||
| <a name="requirement_helm"></a> [helm](#requirement\_helm) | >= 2.7 |
|
||||
| <a name="requirement_kubectl"></a> [kubectl](#requirement\_kubectl) | >= 2.0 |
|
||||
|
||||
@@ -63,8 +63,8 @@ Note that this example may create resources which cost money. Run `terraform des
|
||||
|
||||
| Name | Version |
|
||||
|------|---------|
|
||||
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.34 |
|
||||
| <a name="provider_aws.virginia"></a> [aws.virginia](#provider\_aws.virginia) | >= 5.34 |
|
||||
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.38 |
|
||||
| <a name="provider_aws.virginia"></a> [aws.virginia](#provider\_aws.virginia) | >= 5.38 |
|
||||
| <a name="provider_helm"></a> [helm](#provider\_helm) | >= 2.7 |
|
||||
| <a name="provider_kubectl"></a> [kubectl](#provider\_kubectl) | >= 2.0 |
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ terraform {
|
||||
required_providers {
|
||||
aws = {
|
||||
source = "hashicorp/aws"
|
||||
version = ">= 5.34"
|
||||
version = ">= 5.38"
|
||||
}
|
||||
helm = {
|
||||
source = "hashicorp/helm"
|
||||
|
||||
@@ -49,14 +49,14 @@ terraform destroy
|
||||
| Name | Version |
|
||||
|------|---------|
|
||||
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.3 |
|
||||
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.34 |
|
||||
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.38 |
|
||||
| <a name="requirement_kubernetes"></a> [kubernetes](#requirement\_kubernetes) | >= 2.20 |
|
||||
|
||||
## Providers
|
||||
|
||||
| Name | Version |
|
||||
|------|---------|
|
||||
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.34 |
|
||||
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.38 |
|
||||
| <a name="provider_kubernetes"></a> [kubernetes](#provider\_kubernetes) | >= 2.20 |
|
||||
|
||||
## Modules
|
||||
|
||||
@@ -4,7 +4,7 @@ terraform {
|
||||
required_providers {
|
||||
aws = {
|
||||
source = "hashicorp/aws"
|
||||
version = ">= 5.34"
|
||||
version = ">= 5.38"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ terraform {
|
||||
required_providers {
|
||||
aws = {
|
||||
source = "hashicorp/aws"
|
||||
version = ">= 5.34"
|
||||
version = ">= 5.38"
|
||||
}
|
||||
kubernetes = {
|
||||
source = "hashicorp/kubernetes"
|
||||
|
||||
@@ -26,13 +26,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 |
|
||||
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.34 |
|
||||
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.38 |
|
||||
|
||||
## Providers
|
||||
|
||||
| Name | Version |
|
||||
|------|---------|
|
||||
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.34 |
|
||||
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.38 |
|
||||
|
||||
## Modules
|
||||
|
||||
|
||||
@@ -31,6 +31,12 @@ module "eks" {
|
||||
cluster_version = local.cluster_version
|
||||
cluster_endpoint_public_access = true
|
||||
|
||||
enable_cluster_creator_admin_permissions = true
|
||||
|
||||
# Enable EFA support by adding necessary security group rules
|
||||
# to the shared node security group
|
||||
enable_efa_support = true
|
||||
|
||||
cluster_addons = {
|
||||
coredns = {
|
||||
most_recent = true
|
||||
@@ -252,6 +258,25 @@ module "eks" {
|
||||
ExtraTag = "Self managed node group complete example"
|
||||
}
|
||||
}
|
||||
|
||||
efa = {
|
||||
# Disabling automatic creation due to instance type/quota availability
|
||||
# Can be enabled when appropriate for testing/validation
|
||||
create = false
|
||||
|
||||
instance_type = "trn1n.32xlarge"
|
||||
|
||||
enable_efa_support = true
|
||||
pre_bootstrap_user_data = <<-EOT
|
||||
# Mount NVME instance store volumes since they are typically
|
||||
# available on instances that support EFA
|
||||
setup-local-disks raid0
|
||||
EOT
|
||||
|
||||
min_size = 2
|
||||
max_size = 2
|
||||
desired_size = 2
|
||||
}
|
||||
}
|
||||
|
||||
tags = local.tags
|
||||
|
||||
@@ -4,7 +4,7 @@ terraform {
|
||||
required_providers {
|
||||
aws = {
|
||||
source = "hashicorp/aws"
|
||||
version = ">= 5.34"
|
||||
version = ">= 5.38"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user