1
0
mirror of https://github.com/terraform-aws-modules/terraform-aws-eks.git synced 2025-09-09 19:32:58 +08:00
Files
terraform-aws-eks/examples/eks-hybrid-nodes
Bryant Biggs 416515a0da feat!: Upgrade min AWS provider and Terraform versions to 6.0 and 1.5.7 respectively (#3412)
* feat!: Upgrade min AWS provider and Terraform versions to `6.0` and `1.5.7` respectively

* fix: Remove deprecated arguments in AWS v6.0 provider, upgrade Helm provider to v3.0, bump VPC module to v6.0

* fix: Remove `aws-auth` sub-module

* fix: Remove `platform` and `cluster_service_ipv4_cidr` variables from `user-data` sub-module

* fix: Resolve all marked `todos` that have been accumulated

* fix: Set default `http_put_response_hop_limit` to `1`

* fix: Remove IRSA support from Karpenter sub-module

* fix: Avoid making GET requests from data sources unless absolutely necessary

* feat: Add variable optional attribute definitions

* feat: Bump KMS key module version to latest, add remaining variable attribute definitions

* fix: Remove `cluster_` prefix from variable names to better match the underlying API

* fix: Move all EFA logic to the nodegroup itself

* fix: Remove arguments that do not make sense in EKS

* fix: Updates from plan validation

* fix: Remove more self-managed node group attributes that are commonly not used in EKS clusters

* fix: Remove data plane compute `*_defaults` variables that do not work with variable optional attributes

* fix: Ignore changes to `bootstrap_self_managed_addons` to aid in upgrade

* feat: Add support for `region` argument on relevant resources

* feat: Initial pass on upgrade guide

* fix: Updates from testing and validating EKS managed node group

* fix: Updates from testing and validating self-managed node group

* docs: Ensure addon ussage documented is aligned

* feat: Switch to dualstack OIDC issuer URL

* feat: Allow sourcing over overriding the Karpenter assume role policy

* fix: Use `Bool` instead of `StringEquals` for DenyHTTP queue policy

* fix: Correct use of `nullable` and default value propagation
2025-07-23 15:11:01 -05:00
..

EKS Hybrid Nodes

Caution

EC2 instances are not supported with EKS Hybrid Nodes. This example is provided for reference only in lieu of users having to provision a VM in their own environment.

Usage

Note

The Packer CLI is required to build a custom AMI for the Hybrid node used in the example.

To provision the provided configurations you need to execute:

terraform init
terraform apply -target=module.remote_node_vpc -target=local_file.key_pem -target=module.key_pair --auto-approve
cd ami && packer build -var 'ssh_keypair_name=hybrid-node' -var 'ssh_private_key_file=../key.pem' . && cd -
terraform apply --auto-approve
./join.sh

Note that this example may create resources which cost money. Run terraform destroy when you don't need these resources.

Requirements

Name Version
terraform >= 1.5.7
aws >= 6.0
helm >= 3.0
http >= 3.4
local >= 2.5
tls >= 4.0

Providers

Name Version
aws >= 6.0
aws.remote >= 6.0
helm >= 3.0
http >= 3.4
local >= 2.5

Modules

Name Source Version
eks ../.. n/a
eks_hybrid_node_role ../../modules/hybrid-node-role n/a
key_pair terraform-aws-modules/key-pair/aws ~> 2.0
remote_node_vpc terraform-aws-modules/vpc/aws ~> 6.0
vpc terraform-aws-modules/vpc/aws ~> 6.0

Resources

Name Type
aws_instance.hybrid_node resource
aws_route.peer resource
aws_route.remote_node_private resource
aws_route.remote_node_public resource
aws_security_group.remote_node resource
aws_ssm_activation.this resource
aws_vpc_peering_connection.remote_node resource
aws_vpc_peering_connection_accepter.peer resource
aws_vpc_security_group_egress_rule.remote_node resource
aws_vpc_security_group_ingress_rule.remote_node resource
helm_release.cilium resource
local_file.join resource
local_file.key_pem resource
local_file.key_pub_pem resource
aws_ami.hybrid_node data source
aws_availability_zones.available data source
aws_availability_zones.remote data source
http_http.icanhazip data source

Inputs

No inputs.

Outputs

No outputs.