Terraform EKS module upgrade from v17.x to v18.x

This page summarizes the projects mentioned and recommended in the original post on dev.to

Our great sponsors
  • InfluxDB - Build time-series-based applications quickly and at scale.
  • talent.io - Download talent.io’s Tech Salary Report
  • Scout APM - Truly a developer’s best friend
  • SonarQube - Static code analysis for 29 languages.
  • terraform-aws-eks

    Terraform module to create an Elastic Kubernetes (EKS) cluster and associated resources 🇺🇦

    module "eks" { source = "terraform-aws-modules/eks/aws" # check releases for the latest version # https://github.com/terraform-aws-modules/terraform-aws-eks/releases version = "18.26.2" # Needed for EKS module Upgrade # https://github.com/terraform-aws-modules/terraform-aws-eks/blob/master/docs/UPGRADE-18.0.md#upgrade-from-v17x-to-v18x prefix_separator = "" iam_role_name = var.cluster_name cluster_security_group_name = var.cluster_name cluster_security_group_description = "EKS cluster security group." # Add this to avoid issues with AWS Load balancer controller # "error":"expect exactly one securityGroup tagged kubernetes.io/cluster/xxx # https://github.com/terraform-aws-modules/terraform-aws-eks/issues/1986 node_security_group_tags = { "kubernetes.io/cluster/${var.cluster_name}" = null } cluster_name = local.name cluster_version = local.cluster_version cluster_endpoint_private_access = true cluster_endpoint_public_access = true cluster_addons = { coredns = { resolve_conflicts = "OVERWRITE" } kube-proxy = { resolve_conflicts = "OVERWRITE" } } cluster_encryption_config = [ { provider_key_arn = aws_kms_key.eks.arn resources = ["secrets"] } ] vpc_id = module.vpc.vpc_id # Rename subnets to subnet_ids subnet_ids = module.vpc.private_subnets # Rename node_group_defaults to eks_managed_node_group_defaults eks_managed_node_group_defaults = { ami_type = "AL2_x86_64" instance_types = ["m5.large", "m5a.large", "t3.large", "m5.xlarge"] iam_role_attach_cni_policy = true update_config = { max_unavailable_percentage = 50 } block_device_mappings = { xvda = { device_name = "/dev/xvda" ebs = { volume_size = "100" volume_type = "gp3" encrypted = true kms_key_id = aws_kms_key.ebs.arn } } } metadata_options = { http_endpoint = "enabled" http_tokens = "required" http_put_response_hop_limit = 2 instance_metadata_tags = "disabled" } } # Rename eks_managed_node_groups to eks_managed_node_groups # the variables in the sub module also changed, so be sure to rename them! eks_managed_node_groups = { default = { name = "default" use_name_prefix = true subnet_ids = module.vpc.private_subnets desired_size = 3 max_size = 10 min_size = 3 labels = { environment = local.environment capacity = "on_demand" } tags = local.tags }, spot = { name = "spot" use_name_prefix = true capacity_type = "SPOT" instance_types = ["m5a.xlarge", "m5.xlarge", "r5.xlarge", "r5a.xlarge"] subnet_ids = module.vpc.private_subnets desired_size = 3 max_size = 15 min_size = 3 cluster_version = local.cluster_version labels = { environment = local.environment capacity = "spot" } tags = local.tags } tags = local.tags } }

  • InfluxDB

    Build time-series-based applications quickly and at scale.. InfluxDB is the Time Series Data Platform where developers build real-time applications for analytics, IoT and cloud-native services in less time with less code.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts