{"id":15135168,"url":"https://github.com/jetbrains/terraform-aws-kubernetes","last_synced_at":"2025-08-16T17:31:00.478Z","repository":{"id":152277376,"uuid":"617050426","full_name":"JetBrains/terraform-aws-kubernetes","owner":"JetBrains","description":"This repository contains a Terraform Module that implements an architectural blueprint for EKS.","archived":false,"fork":false,"pushed_at":"2024-12-16T20:10:25.000Z","size":493,"stargazers_count":2,"open_issues_count":4,"forks_count":1,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-12-16T20:42:32.275Z","etag":null,"topics":["aws","eks","kubernetes","landing-zone-component","platform-as-code","terraform"],"latest_commit_sha":null,"homepage":"","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JetBrains.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-21T15:49:42.000Z","updated_at":"2024-12-16T20:10:09.000Z","dependencies_parsed_at":"2023-11-14T13:25:17.219Z","dependency_job_id":"a8168882-9133-4c4a-a2b3-4ff6debf560f","html_url":"https://github.com/JetBrains/terraform-aws-kubernetes","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JetBrains%2Fterraform-aws-kubernetes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JetBrains%2Fterraform-aws-kubernetes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JetBrains%2Fterraform-aws-kubernetes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JetBrains%2Fterraform-aws-kubernetes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JetBrains","download_url":"https://codeload.github.com/JetBrains/terraform-aws-kubernetes/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230047257,"owners_count":18164573,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","eks","kubernetes","landing-zone-component","platform-as-code","terraform"],"created_at":"2024-09-26T05:43:54.405Z","updated_at":"2025-08-16T17:31:00.143Z","avatar_url":"https://github.com/JetBrains.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- BEGIN_TF_DOCS --\u003e\n# terraform-aws-kubernetes\n\n[![official JetBrains project](https://jb.gg/badges/official.svg)](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)\n\nThis repository contains a Terraform Module that sets up a Kubernetes infrastructure on AWS using Elastic Kubernetes Service (EKS).\nIt provides flexibility in managing its own internal networking infrastructure or using an external one, and supports different types\nof node pools. The repository also includes guides for usage and contribution, automated tests, and examples for ready use.\n\n## Compatibility\n\nThe minimum supported Terraform version is: 1.3.0.\n\n## Features\n\n* Configure Kubernetes cluster network with options for internal and external networking, VPC settings, subnetting, DNS, DHCP, ACLs, VPC tags and other.\n\n* Support both AWS-managed and self-managed compute pools, with detailed configurations for instance types, scaling, and labeling.\n\n* Specify IAM roles and policies for the Kubernetes cluster, service accounts, and encryption key management.\n\n* Include addons for the Kubernetes cluster such as CoreDNS, VPC CNI, kube-proxy, and more with conflict resolution strategies.\n\n* Provide detailed storage class configurations, including default classes and custom classes with parameters like encryption and volume binding modes.\n\n* Set up monitoring, logging, and autoscaling using Helm charts with configurable repository, chart versions, and values.\n\n* Provide means for adding custom configurations to the Kubernetes cluster, such as custom Helm charts, manifests, and scripts.\n\n## Core concepts\n\n* [What is EKS?](https://docs.aws.amazon.com/eks/index.html);\n\n* [What is Kubernetes?](https://kubernetes.io/docs/home/);\n\n* [What is a Networking Spoke?](https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/ready/azure-best-practices/hub-spoke-network-topology);\n\n* [What are the IAM Roles for Service Accounts, as known as IRSA?](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/setting-up-enable-IAM.html);\n\n* [How to choose the best EC2 instance type for Kubernetes workers in EKS?](https://docs.aws.amazon.com/eks/latest/userguide/choosing-instance-type.html).\n\n## Repository organization\n\n* [examples](./examples): this folder contains ready to use examples that show how to use this Module;\n\n* [tests](./test): this folder contains a list of automated tests for this Module and examples;\n\n* [lib](./lib): this folder contains a list of local utilities, mostly Makefiles, to support the\n  contributor's maintenance effort of this Module;\n\n* [modules](./modules): this folder contains a list of local Terraform modules that the Root Module uses;\n\n* [.github](./.github): this folder contains a list of GitHub workflows to support contributions\n  during change requests and releases of this Module.\n\n## Usage guides\n\nRefer to this [page](./docs/GUIDES.md) for details in regard to cluster services usage instructions.\n\n## Contribution guides\n\nRefer to this [page](./CONTRIBUTING.md) for details in regard to contribution instructions.\n\n## Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement\\_terraform) | \u003e= 1.3 |\n| \u003ca name=\"requirement_aws\"\u003e\u003c/a\u003e [aws](#requirement\\_aws) | \u003e= 5.20 |\n| \u003ca name=\"requirement_helm\"\u003e\u003c/a\u003e [helm](#requirement\\_helm) | 2.7.0 |\n| \u003ca name=\"requirement_kubectl\"\u003e\u003c/a\u003e [kubectl](#requirement\\_kubectl) | \u003e= 1.7.0 |\n| \u003ca name=\"requirement_kubernetes\"\u003e\u003c/a\u003e [kubernetes](#requirement\\_kubernetes) | \u003e= 2.26.0 |\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | \u003e= 5.20 |\n| \u003ca name=\"provider_kubectl\"\u003e\u003c/a\u003e [kubectl](#provider\\_kubectl) | \u003e= 1.7.0 |\n| \u003ca name=\"provider_kubernetes\"\u003e\u003c/a\u003e [kubernetes](#provider\\_kubernetes) | \u003e= 2.26.0 |\n| \u003ca name=\"provider_null\"\u003e\u003c/a\u003e [null](#provider\\_null) | n/a |\n| \u003ca name=\"provider_random\"\u003e\u003c/a\u003e [random](#provider\\_random) | n/a |\n## Resources\n\n| Name | Type |\n|------|------|\n| [aws_eks_addon.ebs_csi_driver](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/eks_addon) | resource |\n| [aws_eks_addon.efs_csi_driver](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/eks_addon) | resource |\n| [aws_ssm_parameter.grafana_admin_password](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ssm_parameter) | resource |\n| [aws_ssm_parameter.grafana_admin_username](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ssm_parameter) | resource |\n| [kubectl_manifest.default_ec2_node_class](https://registry.terraform.io/providers/gavinbunney/kubectl/latest/docs/resources/manifest) | resource |\n| [kubectl_manifest.default_node_pool](https://registry.terraform.io/providers/gavinbunney/kubectl/latest/docs/resources/manifest) | resource |\n| [null_resource.wait_for_kubernetes_api_be_active](https://registry.terraform.io/providers/hashicorp/null/latest/docs/resources/resource) | resource |\n| [random_password.grafana_admin](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/password) | resource |\n| [random_pet.grafana_admin](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/pet) | resource |\n| [aws_availability_zones.available](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/availability_zones) | data source |\n| [aws_caller_identity.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/caller_identity) | data source |\n| [aws_eks_cluster.this_cluster](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/eks_cluster) | data source |\n| [aws_eks_cluster_auth.this_cluster](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/eks_cluster_auth) | data source |\n| [aws_iam_role.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_role) | data source |\n| [kubernetes_service_v1.kube_private_ingress_svc_url](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/data-sources/service_v1) | data source |\n| [kubernetes_service_v1.kube_public_ingress_svc_url](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/data-sources/service_v1) | data source |\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_cluster_access_management\"\u003e\u003c/a\u003e [cluster\\_access\\_management](#input\\_cluster\\_access\\_management) | The access management configuration for the Kubernetes cluster | \u003cpre\u003eobject({\u003cbr/\u003e    enable_cluster_creator_admin_permissions = optional(bool)\u003cbr/\u003e    list                                     = optional(map(any))\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"enable_cluster_creator_admin_permissions\": false,\u003cbr/\u003e  \"list\": null\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_additional_apps\"\u003e\u003c/a\u003e [cluster\\_additional\\_apps](#input\\_cluster\\_additional\\_apps) | List of additional apps packaged as Helm Charts to deploy in the Kubernetes cluster. | \u003cpre\u003elist(object({\u003cbr/\u003e    namespace  = string\u003cbr/\u003e    repository = string\u003cbr/\u003e    repository_config = optional(object({\u003cbr/\u003e      repository_key_file  = optional(string)\u003cbr/\u003e      repository_cert_file = optional(string)\u003cbr/\u003e      repository_ca_file   = optional(string)\u003cbr/\u003e      repository_username  = optional(string)\u003cbr/\u003e      repository_password  = optional(string)\u003cbr/\u003e    }))\u003cbr/\u003e    app = object({\u003cbr/\u003e      name                       = string\u003cbr/\u003e      chart                      = string\u003cbr/\u003e      version                    = string\u003cbr/\u003e      force_update               = optional(bool)\u003cbr/\u003e      wait                       = optional(bool)\u003cbr/\u003e      recreate_pods              = optional(bool)\u003cbr/\u003e      max_history                = optional(number)\u003cbr/\u003e      lint                       = optional(bool)\u003cbr/\u003e      cleanup_on_fail            = optional(bool)\u003cbr/\u003e      create_namespace           = optional(bool)\u003cbr/\u003e      disable_webhooks           = optional(bool)\u003cbr/\u003e      verify                     = optional(bool)\u003cbr/\u003e      reuse_values               = optional(bool)\u003cbr/\u003e      reset_values               = optional(bool)\u003cbr/\u003e      atomic                     = optional(bool)\u003cbr/\u003e      skip_crds                  = optional(bool)\u003cbr/\u003e      render_subchart_notes      = optional(bool)\u003cbr/\u003e      disable_openapi_validation = optional(bool)\u003cbr/\u003e      wait_for_jobs              = optional(bool)\u003cbr/\u003e      dependency_update          = optional(bool)\u003cbr/\u003e      replace                    = optional(bool)\u003cbr/\u003e    })\u003cbr/\u003e    values = optional(any)\u003cbr/\u003e    params = optional(list(object({\u003cbr/\u003e      name  = string\u003cbr/\u003e      value = any\u003cbr/\u003e    })))\u003cbr/\u003e    secrets = optional(list(object({\u003cbr/\u003e      name  = string\u003cbr/\u003e      value = any\u003cbr/\u003e    })))\u003cbr/\u003e  }))\u003c/pre\u003e | `[]` | no |\n| \u003ca name=\"input_cluster_additional_apps_create\"\u003e\u003c/a\u003e [cluster\\_additional\\_apps\\_create](#input\\_cluster\\_additional\\_apps\\_create) | Whether to create additional apps in the Kubernetes cluster | `bool` | `false` | no |\n| \u003ca name=\"input_cluster_additional_identity_providers\"\u003e\u003c/a\u003e [cluster\\_additional\\_identity\\_providers](#input\\_cluster\\_additional\\_identity\\_providers) | The additional identity providers configuration for the Kubernetes cluster | `any` | `{}` | no |\n| \u003ca name=\"input_cluster_addons_additional\"\u003e\u003c/a\u003e [cluster\\_addons\\_additional](#input\\_cluster\\_addons\\_additional) | The additional addons configuration for the Kubernetes cluster | `any` | `{}` | no |\n| \u003ca name=\"input_cluster_addons_default\"\u003e\u003c/a\u003e [cluster\\_addons\\_default](#input\\_cluster\\_addons\\_default) | The addons configuration for the Kubernetes cluster | `any` | \u003cpre\u003e{\u003cbr/\u003e  \"coredns\": {\u003cbr/\u003e    \"resolve_conflicts_on_create\": \"OVERWRITE\",\u003cbr/\u003e    \"resolve_conflicts_on_update\": \"OVERWRITE\"\u003cbr/\u003e  },\u003cbr/\u003e  \"eks-pod-identity-agent\": {\u003cbr/\u003e    \"resolve_conflicts_on_create\": \"OVERWRITE\",\u003cbr/\u003e    \"resolve_conflicts_on_update\": \"OVERWRITE\"\u003cbr/\u003e  },\u003cbr/\u003e  \"kube-proxy\": {\u003cbr/\u003e    \"resolve_conflicts_on_create\": \"OVERWRITE\",\u003cbr/\u003e    \"resolve_conflicts_on_update\": \"OVERWRITE\"\u003cbr/\u003e  },\u003cbr/\u003e  \"snapshot-controller\": {\u003cbr/\u003e    \"resolve_conflicts_on_create\": \"OVERWRITE\",\u003cbr/\u003e    \"resolve_conflicts_on_update\": \"OVERWRITE\"\u003cbr/\u003e  },\u003cbr/\u003e  \"vpc-cni\": {\u003cbr/\u003e    \"before_compute\": true,\u003cbr/\u003e    \"resolve_conflicts_on_create\": \"OVERWRITE\",\u003cbr/\u003e    \"resolve_conflicts_on_update\": \"OVERWRITE\"\u003cbr/\u003e  }\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_addons_timeouts\"\u003e\u003c/a\u003e [cluster\\_addons\\_timeouts](#input\\_cluster\\_addons\\_timeouts) | The waiting timeouts configuration for the Kubernetes cluster addons | \u003cpre\u003eobject({\u003cbr/\u003e    create = optional(string)\u003cbr/\u003e    update = optional(string)\u003cbr/\u003e    delete = optional(string)\u003cbr/\u003e  })\u003c/pre\u003e | `{}` | no |\n| \u003ca name=\"input_cluster_authentication_mode\"\u003e\u003c/a\u003e [cluster\\_authentication\\_mode](#input\\_cluster\\_authentication\\_mode) | The authentication mode for the Kubernetes cluster | `string` | `\"API_AND_CONFIG_MAP\"` | no |\n| \u003ca name=\"input_cluster_autoscaler\"\u003e\u003c/a\u003e [cluster\\_autoscaler](#input\\_cluster\\_autoscaler) | The cluster autoscaler configuration for the Kubernetes cluster | \u003cpre\u003eobject({\u003cbr/\u003e    helm_chart_repository        = string\u003cbr/\u003e    helm_chart_repository_config = optional(string)\u003cbr/\u003e    helm_chart_version           = string\u003cbr/\u003e    helm_chart_name              = optional(string)\u003cbr/\u003e    helm_chart_params = optional(list(object({\u003cbr/\u003e      name  = string\u003cbr/\u003e      value = any\u003cbr/\u003e    })))\u003cbr/\u003e    helm_chart_secrets = optional(list(object({\u003cbr/\u003e      name  = string\u003cbr/\u003e      value = any\u003cbr/\u003e    })))\u003cbr/\u003e    helm_chart_values = optional(string)\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"helm_chart_name\": \"kube-karpenter\",\u003cbr/\u003e  \"helm_chart_params\": [],\u003cbr/\u003e  \"helm_chart_repository\": \"oci://public.registry.jetbrains.space/p/helm/library\",\u003cbr/\u003e  \"helm_chart_repository_config\": null,\u003cbr/\u003e  \"helm_chart_secrets\": [],\u003cbr/\u003e  \"helm_chart_values\": null,\u003cbr/\u003e  \"helm_chart_version\": \"0.35.1\"\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_autoscaler_create\"\u003e\u003c/a\u003e [cluster\\_autoscaler\\_create](#input\\_cluster\\_autoscaler\\_create) | Whether to create the cluster autoscaler for the Kubernetes cluster | `bool` | `true` | no |\n| \u003ca name=\"input_cluster_autoscaler_subnet_selector\"\u003e\u003c/a\u003e [cluster\\_autoscaler\\_subnet\\_selector](#input\\_cluster\\_autoscaler\\_subnet\\_selector) | The subnet selector for the cluster autoscaler | `string` | `null` | no |\n| \u003ca name=\"input_cluster_cloudwatch_logging\"\u003e\u003c/a\u003e [cluster\\_cloudwatch\\_logging](#input\\_cluster\\_cloudwatch\\_logging) | The logging configuration for the Kubernetes cluster | \u003cpre\u003eobject({\u003cbr/\u003e    enabled                     = optional(bool)\u003cbr/\u003e    log_types                   = optional(list(string))\u003cbr/\u003e    log_group_retention_in_days = optional(number)\u003cbr/\u003e    log_group_kms_key_id        = optional(string)\u003cbr/\u003e    log_group_class             = optional(string)\u003cbr/\u003e    log_group_tags              = optional(map(string))\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"enabled\": true,\u003cbr/\u003e  \"log_group_class\": null,\u003cbr/\u003e  \"log_group_kms_key_id\": null,\u003cbr/\u003e  \"log_group_retention_in_days\": 7,\u003cbr/\u003e  \"log_group_tags\": {},\u003cbr/\u003e  \"log_types\": [\u003cbr/\u003e    \"api\",\u003cbr/\u003e    \"audit\",\u003cbr/\u003e    \"authenticator\",\u003cbr/\u003e    \"controllerManager\",\u003cbr/\u003e    \"scheduler\"\u003cbr/\u003e  ]\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_compute_pool_aws_managed\"\u003e\u003c/a\u003e [cluster\\_compute\\_pool\\_aws\\_managed](#input\\_cluster\\_compute\\_pool\\_aws\\_managed) | The AWS managed compute pool configuration for the Kubernetes cluster | \u003cpre\u003eobject({\u003cbr/\u003e    defaults = optional(any)\u003cbr/\u003e    groups   = any\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"defaults\": {},\u003cbr/\u003e  \"groups\": {\u003cbr/\u003e    \"main\": {\u003cbr/\u003e      \"capacity_type\": \"ON_DEMAND\",\u003cbr/\u003e      \"desired_size\": 2,\u003cbr/\u003e      \"disk_size\": 100,\u003cbr/\u003e      \"instance_types\": [\u003cbr/\u003e        \"t3a.2xlarge\"\u003cbr/\u003e      ],\u003cbr/\u003e      \"labels\": {\u003cbr/\u003e        \"node-type\": \"main\"\u003cbr/\u003e      },\u003cbr/\u003e      \"max_size\": 2,\u003cbr/\u003e      \"min_size\": 2,\u003cbr/\u003e      \"update_config\": {\u003cbr/\u003e        \"max_unavailable_percentage\": 30\u003cbr/\u003e      },\u003cbr/\u003e      \"use_custom_launch_template\": false\u003cbr/\u003e    },\u003cbr/\u003e    \"spot\": {\u003cbr/\u003e      \"capacity_type\": \"SPOT\",\u003cbr/\u003e      \"desired_size\": 3,\u003cbr/\u003e      \"disk_size\": 100,\u003cbr/\u003e      \"instance_types\": [\u003cbr/\u003e        \"t3a.2xlarge\",\u003cbr/\u003e        \"m5a.2xlarge\",\u003cbr/\u003e        \"c5a.2xlarge\",\u003cbr/\u003e        \"r5a.2xlarge\",\u003cbr/\u003e        \"t3a.large\"\u003cbr/\u003e      ],\u003cbr/\u003e      \"labels\": {\u003cbr/\u003e        \"node-type\": \"spot\"\u003cbr/\u003e      },\u003cbr/\u003e      \"max_size\": 3,\u003cbr/\u003e      \"min_size\": 3,\u003cbr/\u003e      \"update_config\": {\u003cbr/\u003e        \"max_unavailable_percentage\": 30\u003cbr/\u003e      },\u003cbr/\u003e      \"use_custom_launch_template\": false\u003cbr/\u003e    }\u003cbr/\u003e  }\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_compute_pool_fargate\"\u003e\u003c/a\u003e [cluster\\_compute\\_pool\\_fargate](#input\\_cluster\\_compute\\_pool\\_fargate) | The Fargate compute pool configuration for the Kubernetes cluster | \u003cpre\u003eobject({\u003cbr/\u003e    defaults = optional(any)\u003cbr/\u003e    groups   = any\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"defaults\": {},\u003cbr/\u003e  \"groups\": {}\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_compute_pool_self_managed\"\u003e\u003c/a\u003e [cluster\\_compute\\_pool\\_self\\_managed](#input\\_cluster\\_compute\\_pool\\_self\\_managed) | The self managed compute pool configuration for the Kubernetes cluster | \u003cpre\u003eobject({\u003cbr/\u003e    defaults = optional(any)\u003cbr/\u003e    groups   = any\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"defaults\": {},\u003cbr/\u003e  \"groups\": {}\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_custom_storage_classes\"\u003e\u003c/a\u003e [cluster\\_custom\\_storage\\_classes](#input\\_cluster\\_custom\\_storage\\_classes) | Custom storage class objects for the current Kubernetes cluster that can be created in addition of as a substitution for the ones defined in the cluster\\_default\\_storage\\_storage\\_classes variable | \u003cpre\u003emap(object({\u003cbr/\u003e    name                   = optional(string)\u003cbr/\u003e    annotations            = optional(any)\u003cbr/\u003e    reclaim_policy         = optional(string)\u003cbr/\u003e    volume_binding_mode    = optional(string)\u003cbr/\u003e    allow_volume_expansion = optional(bool)\u003cbr/\u003e    storage_provisioner    = optional(string)\u003cbr/\u003e    parameters             = optional(any)\u003cbr/\u003e  }))\u003c/pre\u003e | `{}` | no |\n| \u003ca name=\"input_cluster_database_encryption_config\"\u003e\u003c/a\u003e [cluster\\_database\\_encryption\\_config](#input\\_cluster\\_database\\_encryption\\_config) | The encryption configuration for the Kubernetes cluster | \u003cpre\u003eobject({\u003cbr/\u003e    provider_key_arn = optional(string)\u003cbr/\u003e    resources        = optional(list(string))\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"provider_key_arn\": null,\u003cbr/\u003e  \"resources\": [\u003cbr/\u003e    \"secrets\"\u003cbr/\u003e  ]\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_default_storage_storage_classes\"\u003e\u003c/a\u003e [cluster\\_default\\_storage\\_storage\\_classes](#input\\_cluster\\_default\\_storage\\_storage\\_classes) | The default standard storage class type for the current Kubernetes cluster | \u003cpre\u003emap(object({\u003cbr/\u003e    name                   = optional(string)\u003cbr/\u003e    annotations            = optional(any)\u003cbr/\u003e    reclaim_policy         = optional(string)\u003cbr/\u003e    volume_binding_mode    = optional(string)\u003cbr/\u003e    allow_volume_expansion = optional(bool)\u003cbr/\u003e    parameters             = optional(any)\u003cbr/\u003e  }))\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"golden\": {\u003cbr/\u003e    \"allow_volume_expansion\": true,\u003cbr/\u003e    \"annotations\": {\u003cbr/\u003e      \"storageclass.kubernetes.io/is-default-class\": \"false\"\u003cbr/\u003e    },\u003cbr/\u003e    \"name\": \"golden\",\u003cbr/\u003e    \"parameters\": {\u003cbr/\u003e      \"allowAutoIOPSPerGBIncrease\": true,\u003cbr/\u003e      \"csi.storage.k8s.io/fstype\": \"ext3\",\u003cbr/\u003e      \"encrypted\": true,\u003cbr/\u003e      \"type\": \"io1\"\u003cbr/\u003e    },\u003cbr/\u003e    \"reclaim_policy\": \"Retain\",\u003cbr/\u003e    \"volume_binding_mode\": \"WaitForFirstConsumer\"\u003cbr/\u003e  },\u003cbr/\u003e  \"platinum\": {\u003cbr/\u003e    \"allow_volume_expansion\": true,\u003cbr/\u003e    \"annotations\": {\u003cbr/\u003e      \"storageclass.kubernetes.io/is-default-class\": \"false\"\u003cbr/\u003e    },\u003cbr/\u003e    \"name\": \"platinum\",\u003cbr/\u003e    \"parameters\": {\u003cbr/\u003e      \"allowAutoIOPSPerGBIncrease\": true,\u003cbr/\u003e      \"csi.storage.k8s.io/fstype\": \"xfs\",\u003cbr/\u003e      \"encrypted\": true,\u003cbr/\u003e      \"type\": \"io2\"\u003cbr/\u003e    },\u003cbr/\u003e    \"reclaim_policy\": \"Retain\",\u003cbr/\u003e    \"volume_binding_mode\": \"WaitForFirstConsumer\"\u003cbr/\u003e  },\u003cbr/\u003e  \"standard\": {\u003cbr/\u003e    \"allow_volume_expansion\": true,\u003cbr/\u003e    \"annotations\": {\u003cbr/\u003e      \"storageclass.kubernetes.io/is-default-class\": \"true\"\u003cbr/\u003e    },\u003cbr/\u003e    \"name\": \"standard\",\u003cbr/\u003e    \"parameters\": {\u003cbr/\u003e      \"allowAutoIOPSPerGBIncrease\": true,\u003cbr/\u003e      \"csi.storage.k8s.io/fstype\": \"ext3\",\u003cbr/\u003e      \"encrypted\": true,\u003cbr/\u003e      \"type\": \"gp3\"\u003cbr/\u003e    },\u003cbr/\u003e    \"reclaim_policy\": \"Retain\",\u003cbr/\u003e    \"volume_binding_mode\": \"WaitForFirstConsumer\"\u003cbr/\u003e  }\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_descheduler\"\u003e\u003c/a\u003e [cluster\\_descheduler](#input\\_cluster\\_descheduler) | The descheduler configuration for the Kubernetes cluster | \u003cpre\u003eobject({\u003cbr/\u003e    helm_chart_repository        = optional(string)\u003cbr/\u003e    helm_chart_repository_config = optional(string)\u003cbr/\u003e    helm_chart_version           = optional(string)\u003cbr/\u003e    helm_chart_name              = optional(string)\u003cbr/\u003e    helm_chart_params = optional(list(object({\u003cbr/\u003e      name  = string\u003cbr/\u003e      value = any\u003cbr/\u003e    })))\u003cbr/\u003e    helm_chart_secrets = optional(list(object({\u003cbr/\u003e      name  = string\u003cbr/\u003e      value = any\u003cbr/\u003e    })))\u003cbr/\u003e    helm_chart_values = optional(string)\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"helm_chart_name\": \"kube-descheduler\",\u003cbr/\u003e  \"helm_chart_params\": [],\u003cbr/\u003e  \"helm_chart_repository\": \"oci://public.registry.jetbrains.space/p/helm/library\",\u003cbr/\u003e  \"helm_chart_repository_config\": null,\u003cbr/\u003e  \"helm_chart_secrets\": [],\u003cbr/\u003e  \"helm_chart_values\": null,\u003cbr/\u003e  \"helm_chart_version\": \"0.29.0\"\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_descheduler_create\"\u003e\u003c/a\u003e [cluster\\_descheduler\\_create](#input\\_cluster\\_descheduler\\_create) | Whether to create the descheduler for the Kubernetes cluster | `bool` | `true` | no |\n| \u003ca name=\"input_cluster_enabled\"\u003e\u003c/a\u003e [cluster\\_enabled](#input\\_cluster\\_enabled) | Whether to create the Kubernetes cluster | `bool` | `true` | no |\n| \u003ca name=\"input_cluster_encryption_policy\"\u003e\u003c/a\u003e [cluster\\_encryption\\_policy](#input\\_cluster\\_encryption\\_policy) | The encryption policy for the Kubernetes cluster | \u003cpre\u003eobject({\u003cbr/\u003e    attach_default  = optional(bool)\u003cbr/\u003e    use_name_prefix = optional(bool)\u003cbr/\u003e    name            = optional(string)\u003cbr/\u003e    description     = optional(string)\u003cbr/\u003e    path            = optional(string)\u003cbr/\u003e    tags            = optional(map(string))\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"attach_default\": true,\u003cbr/\u003e  \"description\": \"Cluster encryption policy to allow cluster role to utilize CMK provided\",\u003cbr/\u003e  \"name\": null,\u003cbr/\u003e  \"path\": null,\u003cbr/\u003e  \"tags\": {},\u003cbr/\u003e  \"use_name_prefix\": true\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_iam\"\u003e\u003c/a\u003e [cluster\\_iam](#input\\_cluster\\_iam) | The IAM role configuration for the Kubernetes cluster | \u003cpre\u003eobject({\u003cbr/\u003e    create_default_role       = optional(bool)\u003cbr/\u003e    role_arn                  = optional(string)\u003cbr/\u003e    role_name                 = optional(string)\u003cbr/\u003e    role_use_name_prefix      = optional(bool)\u003cbr/\u003e    role_path                 = optional(string)\u003cbr/\u003e    role_description          = optional(string)\u003cbr/\u003e    role_permissions_boundary = optional(string)\u003cbr/\u003e    role_additional_policies  = optional(map(string))\u003cbr/\u003e    role_tags                 = optional(map(string))\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"create_default_role\": true,\u003cbr/\u003e  \"role_additional_policies\": {},\u003cbr/\u003e  \"role_arn\": null,\u003cbr/\u003e  \"role_description\": null,\u003cbr/\u003e  \"role_name\": null,\u003cbr/\u003e  \"role_path\": null,\u003cbr/\u003e  \"role_permissions_boundary\": null,\u003cbr/\u003e  \"role_tags\": {},\u003cbr/\u003e  \"role_use_name_prefix\": true\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_iam_role_for_service_account\"\u003e\u003c/a\u003e [cluster\\_iam\\_role\\_for\\_service\\_account](#input\\_cluster\\_iam\\_role\\_for\\_service\\_account) | The IAM role configuration for the Kubernetes cluster service account | \u003cpre\u003eobject({\u003cbr/\u003e    enabled                         = optional(bool)\u003cbr/\u003e    include_oidc_root_ca_thumbprint = optional(bool)\u003cbr/\u003e    openid_connect_audiences        = optional(list(string))\u003cbr/\u003e    custom_oidc_thumbprints         = optional(list(string))\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"custom_oidc_thumbprints\": [],\u003cbr/\u003e  \"enabled\": true,\u003cbr/\u003e  \"include_oidc_root_ca_thumbprint\": true,\u003cbr/\u003e  \"openid_connect_audiences\": []\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_kms\"\u003e\u003c/a\u003e [cluster\\_kms](#input\\_cluster\\_kms) | The KMS configuration for the Kubernetes cluster | \u003cpre\u003eobject({\u003cbr/\u003e    enabled                       = optional(bool)\u003cbr/\u003e    key_description               = optional(string)\u003cbr/\u003e    key_deletion_window_in_days   = optional(string)\u003cbr/\u003e    enable_key_rotation           = optional(bool)\u003cbr/\u003e    key_enable_default_policy     = optional(bool)\u003cbr/\u003e    key_owners                    = optional(list(string))\u003cbr/\u003e    key_administrators            = optional(list(string))\u003cbr/\u003e    key_users                     = optional(list(string))\u003cbr/\u003e    key_service_users             = optional(list(string))\u003cbr/\u003e    key_source_policy_documents   = optional(list(string))\u003cbr/\u003e    key_override_policy_documents = optional(list(string))\u003cbr/\u003e    key_aliases                   = optional(list(string))\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"enable_key_rotation\": true,\u003cbr/\u003e  \"enabled\": true,\u003cbr/\u003e  \"key_administrators\": [],\u003cbr/\u003e  \"key_aliases\": [],\u003cbr/\u003e  \"key_deletion_window_in_days\": 30,\u003cbr/\u003e  \"key_description\": null,\u003cbr/\u003e  \"key_enable_default_policy\": true,\u003cbr/\u003e  \"key_override_policy_documents\": [],\u003cbr/\u003e  \"key_owners\": [],\u003cbr/\u003e  \"key_service_users\": [],\u003cbr/\u003e  \"key_source_policy_documents\": [],\u003cbr/\u003e  \"key_users\": []\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_logging\"\u003e\u003c/a\u003e [cluster\\_logging](#input\\_cluster\\_logging) | The cluster logging configuration for the Kubernetes cluster | \u003cpre\u003eobject({\u003cbr/\u003e    helm_chart_repository          = optional(string)\u003cbr/\u003e    helm_chart_repository_config   = optional(string)\u003cbr/\u003e    helm_chart_version             = optional(string)\u003cbr/\u003e    helm_chart_name                = optional(string)\u003cbr/\u003e    helm_chart_namespace           = optional(string)\u003cbr/\u003e    create_namespace_if_not_exists = optional(bool)\u003cbr/\u003e    helm_chart_params = optional(list(object({\u003cbr/\u003e      name  = string\u003cbr/\u003e      value = any\u003cbr/\u003e    })))\u003cbr/\u003e    helm_chart_secrets = optional(list(object({\u003cbr/\u003e      name  = string\u003cbr/\u003e      value = any\u003cbr/\u003e    })))\u003cbr/\u003e    helm_chart_values = optional(string)\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"create_namespace_if_not_exists\": true,\u003cbr/\u003e  \"helm_chart_name\": \"kube-grafana-loki\",\u003cbr/\u003e  \"helm_chart_namespace\": \"kube-monitoring\",\u003cbr/\u003e  \"helm_chart_params\": [],\u003cbr/\u003e  \"helm_chart_repository\": \"oci://public.registry.jetbrains.space/p/helm/library\",\u003cbr/\u003e  \"helm_chart_repository_config\": null,\u003cbr/\u003e  \"helm_chart_secrets\": [],\u003cbr/\u003e  \"helm_chart_values\": null,\u003cbr/\u003e  \"helm_chart_version\": \"5.43.3\"\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_logging_collector\"\u003e\u003c/a\u003e [cluster\\_logging\\_collector](#input\\_cluster\\_logging\\_collector) | The cluster logging collector configuration for the Kubernetes cluster | \u003cpre\u003eobject({\u003cbr/\u003e    helm_chart_repository          = optional(string)\u003cbr/\u003e    helm_chart_repository_config   = optional(string)\u003cbr/\u003e    helm_chart_version             = optional(string)\u003cbr/\u003e    helm_chart_name                = optional(string)\u003cbr/\u003e    helm_chart_namespace           = optional(string)\u003cbr/\u003e    create_namespace_if_not_exists = optional(bool)\u003cbr/\u003e    helm_chart_params = optional(list(object({\u003cbr/\u003e      name  = string\u003cbr/\u003e      value = any\u003cbr/\u003e    })))\u003cbr/\u003e    helm_chart_secrets = optional(list(object({\u003cbr/\u003e      name  = string\u003cbr/\u003e      value = any\u003cbr/\u003e    })))\u003cbr/\u003e    helm_chart_values = optional(string)\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"create_namespace_if_not_exists\": true,\u003cbr/\u003e  \"helm_chart_name\": \"kube-grafana-promtail\",\u003cbr/\u003e  \"helm_chart_namespace\": \"kube-monitoring\",\u003cbr/\u003e  \"helm_chart_params\": [],\u003cbr/\u003e  \"helm_chart_repository\": \"oci://public.registry.jetbrains.space/p/helm/library\",\u003cbr/\u003e  \"helm_chart_repository_config\": null,\u003cbr/\u003e  \"helm_chart_secrets\": [],\u003cbr/\u003e  \"helm_chart_values\": null,\u003cbr/\u003e  \"helm_chart_version\": \"6.15.5\"\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_logging_create\"\u003e\u003c/a\u003e [cluster\\_logging\\_create](#input\\_cluster\\_logging\\_create) | Whether to create the cluster logging service for the Kubernetes cluster | `bool` | `true` | no |\n| \u003ca name=\"input_cluster_metrics_server\"\u003e\u003c/a\u003e [cluster\\_metrics\\_server](#input\\_cluster\\_metrics\\_server) | The metrics server configuration for the Kubernetes cluster | \u003cpre\u003eobject({\u003cbr/\u003e    helm_chart_repository          = optional(string)\u003cbr/\u003e    helm_chart_repository_config   = optional(string)\u003cbr/\u003e    helm_chart_version             = optional(string)\u003cbr/\u003e    helm_chart_name                = optional(string)\u003cbr/\u003e    helm_chart_namespace           = optional(string)\u003cbr/\u003e    create_namespace_if_not_exists = optional(bool)\u003cbr/\u003e    helm_chart_params = optional(list(object({\u003cbr/\u003e      name  = string\u003cbr/\u003e      value = any\u003cbr/\u003e    })))\u003cbr/\u003e    helm_chart_secrets = optional(list(object({\u003cbr/\u003e      name  = string\u003cbr/\u003e      value = any\u003cbr/\u003e    })))\u003cbr/\u003e    helm_chart_values = optional(string)\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"create_namespace_if_not_exists\": true,\u003cbr/\u003e  \"helm_chart_name\": \"kube-metrics-server\",\u003cbr/\u003e  \"helm_chart_namespace\": \"kube-monitoring\",\u003cbr/\u003e  \"helm_chart_params\": [],\u003cbr/\u003e  \"helm_chart_repository\": \"oci://public.registry.jetbrains.space/p/helm/library\",\u003cbr/\u003e  \"helm_chart_repository_config\": null,\u003cbr/\u003e  \"helm_chart_secrets\": [],\u003cbr/\u003e  \"helm_chart_values\": null,\u003cbr/\u003e  \"helm_chart_version\": \"3.12.0\"\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_metrics_server_create\"\u003e\u003c/a\u003e [cluster\\_metrics\\_server\\_create](#input\\_cluster\\_metrics\\_server\\_create) | Whether to create the cluster metrics server for the Kubernetes cluster | `bool` | `true` | no |\n| \u003ca name=\"input_cluster_monitoring\"\u003e\u003c/a\u003e [cluster\\_monitoring](#input\\_cluster\\_monitoring) | The monitoring configuration for the Kubernetes cluster | \u003cpre\u003eobject({\u003cbr/\u003e    helm_chart_repository          = optional(string)\u003cbr/\u003e    helm_chart_repository_config   = optional(string)\u003cbr/\u003e    helm_chart_version             = optional(string)\u003cbr/\u003e    helm_chart_name                = optional(string)\u003cbr/\u003e    helm_chart_namespace           = optional(string)\u003cbr/\u003e    create_namespace_if_not_exists = optional(bool)\u003cbr/\u003e    helm_chart_params = optional(list(object({\u003cbr/\u003e      name  = string\u003cbr/\u003e      value = any\u003cbr/\u003e    })))\u003cbr/\u003e    helm_chart_secrets = optional(list(object({\u003cbr/\u003e      name  = string\u003cbr/\u003e      value = any\u003cbr/\u003e    })))\u003cbr/\u003e    helm_chart_values = optional(string)\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"create_namespace_if_not_exists\": true,\u003cbr/\u003e  \"helm_chart_name\": \"kube-prometheus-operator\",\u003cbr/\u003e  \"helm_chart_namespace\": \"kube-monitoring\",\u003cbr/\u003e  \"helm_chart_params\": [],\u003cbr/\u003e  \"helm_chart_repository\": \"oci://public.registry.jetbrains.space/p/helm/library\",\u003cbr/\u003e  \"helm_chart_repository_config\": null,\u003cbr/\u003e  \"helm_chart_secrets\": [],\u003cbr/\u003e  \"helm_chart_values\": null,\u003cbr/\u003e  \"helm_chart_version\": \"56.21.1\"\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_monitoring_create\"\u003e\u003c/a\u003e [cluster\\_monitoring\\_create](#input\\_cluster\\_monitoring\\_create) | Whether to create the monitoring for the Kubernetes cluster | `bool` | `true` | no |\n| \u003ca name=\"input_cluster_network_external_control_plane_subnet_ids\"\u003e\u003c/a\u003e [cluster\\_network\\_external\\_control\\_plane\\_subnet\\_ids](#input\\_cluster\\_network\\_external\\_control\\_plane\\_subnet\\_ids) | The IDs of the subnets to use for the control plane in the external network | `list(string)` | `null` | no |\n| \u003ca name=\"input_cluster_network_external_node_subnet_ids\"\u003e\u003c/a\u003e [cluster\\_network\\_external\\_node\\_subnet\\_ids](#input\\_cluster\\_network\\_external\\_node\\_subnet\\_ids) | The IDs of the subnets to use for the nodes in the external network | `list(string)` | `null` | no |\n| \u003ca name=\"input_cluster_network_external_vpc_id\"\u003e\u003c/a\u003e [cluster\\_network\\_external\\_vpc\\_id](#input\\_cluster\\_network\\_external\\_vpc\\_id) | The ID of the VPC to use for the external network | `string` | `null` | no |\n| \u003ca name=\"input_cluster_network_internal_public_ingress_subnets_subnets_acls\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_public\\_ingress\\_subnets\\_subnets\\_acls](#input\\_cluster\\_network\\_internal\\_public\\_ingress\\_subnets\\_subnets\\_acls) | The ACLs configuration for the public subnets in the internal VPC | \u003cpre\u003eobject({\u003cbr/\u003e    enabled = bool\u003cbr/\u003e    inbound_rules = optional(list(object({\u003cbr/\u003e      rule_number = number\u003cbr/\u003e      rule_action = string\u003cbr/\u003e      from_port   = number\u003cbr/\u003e      to_port     = number\u003cbr/\u003e      protocol    = optional(string)\u003cbr/\u003e      cidr_block  = string\u003cbr/\u003e    })))\u003cbr/\u003e    outbound_rules = optional(list(object({\u003cbr/\u003e      rule_number = number\u003cbr/\u003e      rule_action = string\u003cbr/\u003e      from_port   = number\u003cbr/\u003e      to_port     = number\u003cbr/\u003e      protocol    = optional(string)\u003cbr/\u003e      cidr_block  = string\u003cbr/\u003e    })))\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"enabled\": false,\u003cbr/\u003e  \"inbound_rules\": [\u003cbr/\u003e    {\u003cbr/\u003e      \"cidr_block\": \"0.0.0.0/0\",\u003cbr/\u003e      \"from_port\": 0,\u003cbr/\u003e      \"protocol\": \"-1\",\u003cbr/\u003e      \"rule_action\": \"allow\",\u003cbr/\u003e      \"rule_number\": 100,\u003cbr/\u003e      \"to_port\": 0\u003cbr/\u003e    }\u003cbr/\u003e  ],\u003cbr/\u003e  \"outbound_rules\": [\u003cbr/\u003e    {\u003cbr/\u003e      \"cidr_block\": \"0.0.0.0/0\",\u003cbr/\u003e      \"from_port\": 0,\u003cbr/\u003e      \"protocol\": \"-1\",\u003cbr/\u003e      \"rule_action\": \"allow\",\u003cbr/\u003e      \"rule_number\": 100,\u003cbr/\u003e      \"to_port\": 0\u003cbr/\u003e    }\u003cbr/\u003e  ]\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_network_internal_public_ingress_subnets_subnets_addresses\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_public\\_ingress\\_subnets\\_subnets\\_addresses](#input\\_cluster\\_network\\_internal\\_public\\_ingress\\_subnets\\_subnets\\_addresses) | The CIDR blocks to use for the public subnets in the internal VPC | `list(string)` | \u003cpre\u003e[\u003cbr/\u003e  \"10.0.0.0/24\",\u003cbr/\u003e  \"10.0.1.0/24\",\u003cbr/\u003e  \"10.0.2.0/24\"\u003cbr/\u003e]\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_network_internal_public_ingress_subnets_subnets_assign_ipv6_address_on_creation\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_public\\_ingress\\_subnets\\_subnets\\_assign\\_ipv6\\_address\\_on\\_creation](#input\\_cluster\\_network\\_internal\\_public\\_ingress\\_subnets\\_subnets\\_assign\\_ipv6\\_address\\_on\\_creation) | Whether to assign an IPv6 address to the public subnets in the internal VPC | `bool` | `false` | no |\n| \u003ca name=\"input_cluster_network_internal_public_ingress_subnets_subnets_enable_dns64\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_public\\_ingress\\_subnets\\_subnets\\_enable\\_dns64](#input\\_cluster\\_network\\_internal\\_public\\_ingress\\_subnets\\_subnets\\_enable\\_dns64) | Whether to enable DNS64 for the public subnets in the internal VPC | `bool` | `true` | no |\n| \u003ca name=\"input_cluster_network_internal_public_ingress_subnets_subnets_enable_resource_name_dns_a_record_on_launch\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_public\\_ingress\\_subnets\\_subnets\\_enable\\_resource\\_name\\_dns\\_a\\_record\\_on\\_launch](#input\\_cluster\\_network\\_internal\\_public\\_ingress\\_subnets\\_subnets\\_enable\\_resource\\_name\\_dns\\_a\\_record\\_on\\_launch) | Whether to enable resource name DNS A record on launch for the public subnets in the internal VPC | `bool` | `false` | no |\n| \u003ca name=\"input_cluster_network_internal_public_ingress_subnets_subnets_enable_resource_name_dns_aaaa_record_on_launch\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_public\\_ingress\\_subnets\\_subnets\\_enable\\_resource\\_name\\_dns\\_aaaa\\_record\\_on\\_launch](#input\\_cluster\\_network\\_internal\\_public\\_ingress\\_subnets\\_subnets\\_enable\\_resource\\_name\\_dns\\_aaaa\\_record\\_on\\_launch) | Whether to enable resource name DNS AAAA record on launch for the public subnets in the internal VPC | `bool` | `true` | no |\n| \u003ca name=\"input_cluster_network_internal_public_ingress_subnets_subnets_ipv6_native\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_public\\_ingress\\_subnets\\_subnets\\_ipv6\\_native](#input\\_cluster\\_network\\_internal\\_public\\_ingress\\_subnets\\_subnets\\_ipv6\\_native) | Whether to enable IPv6 native for the public subnets in the internal VPC | `bool` | `false` | no |\n| \u003ca name=\"input_cluster_network_internal_public_ingress_subnets_subnets_ipv6_prefixes\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_public\\_ingress\\_subnets\\_subnets\\_ipv6\\_prefixes](#input\\_cluster\\_network\\_internal\\_public\\_ingress\\_subnets\\_subnets\\_ipv6\\_prefixes) | The IPv6 prefixes to use for the public subnets in the internal VPC | `list(string)` | `[]` | no |\n| \u003ca name=\"input_cluster_network_internal_public_ingress_subnets_subnets_map_public_ip_on_launch\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_public\\_ingress\\_subnets\\_subnets\\_map\\_public\\_ip\\_on\\_launch](#input\\_cluster\\_network\\_internal\\_public\\_ingress\\_subnets\\_subnets\\_map\\_public\\_ip\\_on\\_launch) | Whether to map public IP on launch for the public subnets in the internal VPC | `bool` | `false` | no |\n| \u003ca name=\"input_cluster_network_internal_public_ingress_subnets_subnets_private_dns_hostname_type_on_launch\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_public\\_ingress\\_subnets\\_subnets\\_private\\_dns\\_hostname\\_type\\_on\\_launch](#input\\_cluster\\_network\\_internal\\_public\\_ingress\\_subnets\\_subnets\\_private\\_dns\\_hostname\\_type\\_on\\_launch) | The private DNS hostname type on launch for the public subnets in the internal VPC | `string` | `null` | no |\n| \u003ca name=\"input_cluster_network_internal_public_ingress_subnets_subnets_tags\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_public\\_ingress\\_subnets\\_subnets\\_tags](#input\\_cluster\\_network\\_internal\\_public\\_ingress\\_subnets\\_subnets\\_tags) | The tags configuration for the public subnets in the internal VPC | \u003cpre\u003eobject({\u003cbr/\u003e    tags               = optional(map(string))\u003cbr/\u003e    route_table_tags   = optional(map(string))\u003cbr/\u003e    subnet_tags_per_az = optional(map(map(string)))\u003cbr/\u003e    acl_tags           = optional(map(string))\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"acl_tags\": {},\u003cbr/\u003e  \"route_table_tags\": {},\u003cbr/\u003e  \"subnet_tags_per_az\": {},\u003cbr/\u003e  \"tags\": {}\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_availability_zones_number\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_availability\\_zones\\_number](#input\\_cluster\\_network\\_internal\\_vpc\\_availability\\_zones\\_number) | The number of availability zones to use for the internal VPC | `number` | `2` | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_cidr\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_cidr](#input\\_cluster\\_network\\_internal\\_vpc\\_cidr) | The CIDR block to use for the internal VPC | `string` | `\"10.0.0.0/16\"` | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_data_subnets_acls\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_data\\_subnets\\_acls](#input\\_cluster\\_network\\_internal\\_vpc\\_data\\_subnets\\_acls) | The ACLs configuration for the data subnets in the internal VPC | \u003cpre\u003eobject({\u003cbr/\u003e    enabled = bool\u003cbr/\u003e    inbound_rules = optional(list(object({\u003cbr/\u003e      rule_number = number\u003cbr/\u003e      rule_action = string\u003cbr/\u003e      from_port   = number\u003cbr/\u003e      to_port     = number\u003cbr/\u003e      protocol    = optional(string)\u003cbr/\u003e      cidr_block  = string\u003cbr/\u003e    })))\u003cbr/\u003e    outbound_rules = optional(list(object({\u003cbr/\u003e      rule_number = number\u003cbr/\u003e      rule_action = string\u003cbr/\u003e      from_port   = number\u003cbr/\u003e      to_port     = number\u003cbr/\u003e      protocol    = optional(string)\u003cbr/\u003e      cidr_block  = string\u003cbr/\u003e    })))\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"enabled\": false,\u003cbr/\u003e  \"inbound_rules\": [\u003cbr/\u003e    {\u003cbr/\u003e      \"cidr_block\": \"0.0.0.0/0\",\u003cbr/\u003e      \"from_port\": 0,\u003cbr/\u003e      \"protocol\": \"-1\",\u003cbr/\u003e      \"rule_action\": \"allow\",\u003cbr/\u003e      \"rule_number\": 100,\u003cbr/\u003e      \"to_port\": 0\u003cbr/\u003e    }\u003cbr/\u003e  ],\u003cbr/\u003e  \"outbound_rules\": [\u003cbr/\u003e    {\u003cbr/\u003e      \"cidr_block\": \"0.0.0.0/0\",\u003cbr/\u003e      \"from_port\": 0,\u003cbr/\u003e      \"protocol\": \"-1\",\u003cbr/\u003e      \"rule_action\": \"allow\",\u003cbr/\u003e      \"rule_number\": 100,\u003cbr/\u003e      \"to_port\": 0\u003cbr/\u003e    }\u003cbr/\u003e  ]\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_data_subnets_addresses\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_data\\_subnets\\_addresses](#input\\_cluster\\_network\\_internal\\_vpc\\_data\\_subnets\\_addresses) | The CIDR blocks to use for the data subnets in the internal VPC | `list(string)` | \u003cpre\u003e[\u003cbr/\u003e  \"10.0.224.0/24\",\u003cbr/\u003e  \"10.0.225.0/24\",\u003cbr/\u003e  \"10.0.226.0/24\"\u003cbr/\u003e]\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_data_subnets_assign_ipv6_address_on_creation\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_data\\_subnets\\_assign\\_ipv6\\_address\\_on\\_creation](#input\\_cluster\\_network\\_internal\\_vpc\\_data\\_subnets\\_assign\\_ipv6\\_address\\_on\\_creation) | Whether to assign an IPv6 address to the data subnets in the internal VPC | `bool` | `false` | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_data_subnets_dns_hostname_type_on_launch\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_data\\_subnets\\_dns\\_hostname\\_type\\_on\\_launch](#input\\_cluster\\_network\\_internal\\_vpc\\_data\\_subnets\\_dns\\_hostname\\_type\\_on\\_launch) | The DNS hostname type on launch for the data subnets in the internal VPC | `string` | `null` | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_data_subnets_enable_dns64\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_data\\_subnets\\_enable\\_dns64](#input\\_cluster\\_network\\_internal\\_vpc\\_data\\_subnets\\_enable\\_dns64) | Whether to enable DNS64 for the data subnets in the internal VPC | `bool` | `true` | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_data_subnets_enable_resource_name_dns_a_record_on_launch\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_data\\_subnets\\_enable\\_resource\\_name\\_dns\\_a\\_record\\_on\\_launch](#input\\_cluster\\_network\\_internal\\_vpc\\_data\\_subnets\\_enable\\_resource\\_name\\_dns\\_a\\_record\\_on\\_launch) | Whether to enable resource name DNS A record on launch for the data subnets in the internal VPC | `bool` | `false` | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_data_subnets_enable_resource_name_dns_aaaa_record_on_launch\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_data\\_subnets\\_enable\\_resource\\_name\\_dns\\_aaaa\\_record\\_on\\_launch](#input\\_cluster\\_network\\_internal\\_vpc\\_data\\_subnets\\_enable\\_resource\\_name\\_dns\\_aaaa\\_record\\_on\\_launch) | Whether to enable resource name DNS AAAA record on launch for the data subnets in the internal VPC | `bool` | `true` | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_data_subnets_ipv6_native\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_data\\_subnets\\_ipv6\\_native](#input\\_cluster\\_network\\_internal\\_vpc\\_data\\_subnets\\_ipv6\\_native) | Whether to enable IPv6 native for the data subnets in the internal VPC | `bool` | `false` | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_data_subnets_ipv6_prefixes\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_data\\_subnets\\_ipv6\\_prefixes](#input\\_cluster\\_network\\_internal\\_vpc\\_data\\_subnets\\_ipv6\\_prefixes) | The IPv6 prefixes to use for the data subnets in the internal VPC | `list(string)` | `[]` | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_data_subnets_tags\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_data\\_subnets\\_tags](#input\\_cluster\\_network\\_internal\\_vpc\\_data\\_subnets\\_tags) | The tags configuration for the data subnets in the internal VPC | \u003cpre\u003eobject({\u003cbr/\u003e    tags     = optional(map(string))\u003cbr/\u003e    acl_tags = optional(map(string))\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"acl_tags\": {},\u003cbr/\u003e  \"tags\": {}\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_dhcp_options\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_dhcp\\_options](#input\\_cluster\\_network\\_internal\\_vpc\\_dhcp\\_options) | The DHCP options configuration for the internal VPC | \u003cpre\u003eobject({\u003cbr/\u003e    enabled              = bool\u003cbr/\u003e    domain_name          = string\u003cbr/\u003e    domain_name_servers  = optional(list(string))\u003cbr/\u003e    ntp_servers          = optional(list(string))\u003cbr/\u003e    netbios_name_servers = optional(list(string))\u003cbr/\u003e    netbios_node_type    = optional(string)\u003cbr/\u003e    tags                 = optional(map(string))\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"domain_name\": \"\",\u003cbr/\u003e  \"domain_name_servers\": [\u003cbr/\u003e    \"AmazonProvidedDNS\"\u003cbr/\u003e  ],\u003cbr/\u003e  \"enabled\": false,\u003cbr/\u003e  \"netbios_name_servers\": [],\u003cbr/\u003e  \"netbios_node_type\": \"\",\u003cbr/\u003e  \"ntp_servers\": [],\u003cbr/\u003e  \"tags\": {}\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_enable_dns_hostnames\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_enable\\_dns\\_hostnames](#input\\_cluster\\_network\\_internal\\_vpc\\_enable\\_dns\\_hostnames) | Whether to enable DNS hostnames for the internal VPC | `bool` | `true` | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_enable_dns_support\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_enable\\_dns\\_support](#input\\_cluster\\_network\\_internal\\_vpc\\_enable\\_dns\\_support) | Whether to enable DNS support for the internal VPC | `bool` | `true` | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_enable_network_address_usage_metrics\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_enable\\_network\\_address\\_usage\\_metrics](#input\\_cluster\\_network\\_internal\\_vpc\\_enable\\_network\\_address\\_usage\\_metrics) | Whether to enable network address usage metrics for the internal VPC | `bool` | `false` | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_endpoints\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_endpoints](#input\\_cluster\\_network\\_internal\\_vpc\\_endpoints) | The VPC endpoints configuration for the internal VPC | \u003cpre\u003eobject({\u003cbr/\u003e    enabled = bool\u003cbr/\u003e    services = optional(map(object({\u003cbr/\u003e      service             = string\u003cbr/\u003e      service_name        = optional(string)\u003cbr/\u003e      service_type        = optional(string)\u003cbr/\u003e      policy              = optional(string)\u003cbr/\u003e      auto_accept         = optional(bool)\u003cbr/\u003e      private_dns_enabled = optional(bool)\u003cbr/\u003e    })))\u003cbr/\u003e    security_group_ids = optional(list(string))\u003cbr/\u003e    dns_options = optional(object({\u003cbr/\u003e      dns_record_ip_type                             = optional(string)\u003cbr/\u003e      private_dns_only_for_inbound_resolver_endpoint = optional(bool)\u003cbr/\u003e    }))\u003cbr/\u003e    timeout_options = optional(object({\u003cbr/\u003e      create = optional(string)\u003cbr/\u003e      update = optional(string)\u003cbr/\u003e      delete = optional(string)\u003cbr/\u003e    }))\u003cbr/\u003e    tags = optional(map(string))\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"dns_options\": {},\u003cbr/\u003e  \"enabled\": false,\u003cbr/\u003e  \"security_group_ids\": [],\u003cbr/\u003e  \"services\": {},\u003cbr/\u003e  \"tags\": {},\u003cbr/\u003e  \"timeout_options\": {}\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_instance_tenancy\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_instance\\_tenancy](#input\\_cluster\\_network\\_internal\\_vpc\\_instance\\_tenancy) | The instance tenancy to use for the internal VPC | `string` | `\"default\"` | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_ipam_pool_options\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_ipam\\_pool\\_options](#input\\_cluster\\_network\\_internal\\_vpc\\_ipam\\_pool\\_options) | The IPAM pool configuration for the internal VPC | \u003cpre\u003eobject({\u003cbr/\u003e    enabled                              = bool\u003cbr/\u003e    ipv4_pool_id                         = string\u003cbr/\u003e    ipv4_netmask_length                  = number\u003cbr/\u003e    enable_ipv6                          = optional(bool)\u003cbr/\u003e    ipv6_cidr                            = optional(string)\u003cbr/\u003e    ipv6_pool_id                         = optional(string)\u003cbr/\u003e    ipv6_netmask_length                  = optional(number)\u003cbr/\u003e    ipv6_cidr_block_network_border_group = optional(string)\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"enable_ipv6\": false,\u003cbr/\u003e  \"enabled\": false,\u003cbr/\u003e  \"ipv4_netmask_length\": null,\u003cbr/\u003e  \"ipv4_pool_id\": null,\u003cbr/\u003e  \"ipv6_cidr\": null,\u003cbr/\u003e  \"ipv6_cidr_block_network_border_group\": null,\u003cbr/\u003e  \"ipv6_netmask_length\": null,\u003cbr/\u003e  \"ipv6_pool_id\": null\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_nat_gateway_type\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_nat\\_gateway\\_type](#input\\_cluster\\_network\\_internal\\_vpc\\_nat\\_gateway\\_type) | The type of NAT gateway to use for the internal VPC | `string` | `\"one_nat_gateway_per_az\"` | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_node_subnets_acls\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_node\\_subnets\\_acls](#input\\_cluster\\_network\\_internal\\_vpc\\_node\\_subnets\\_acls) | The ACLs configuration for the node subnets in the internal VPC | \u003cpre\u003eobject({\u003cbr/\u003e    enabled = bool\u003cbr/\u003e    inbound_rules = optional(list(object({\u003cbr/\u003e      rule_number = number\u003cbr/\u003e      rule_action = string\u003cbr/\u003e      from_port   = number\u003cbr/\u003e      to_port     = number\u003cbr/\u003e      protocol    = optional(string)\u003cbr/\u003e      cidr_block  = string\u003cbr/\u003e    })))\u003cbr/\u003e    outbound_rules = optional(list(object({\u003cbr/\u003e      rule_number = number\u003cbr/\u003e      rule_action = string\u003cbr/\u003e      from_port   = number\u003cbr/\u003e      to_port     = number\u003cbr/\u003e      protocol    = optional(string)\u003cbr/\u003e      cidr_block  = string\u003cbr/\u003e    })))\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"enabled\": false,\u003cbr/\u003e  \"inbound_rules\": [\u003cbr/\u003e    {\u003cbr/\u003e      \"cidr_block\": \"0.0.0.0/0\",\u003cbr/\u003e      \"from_port\": 0,\u003cbr/\u003e      \"protocol\": \"-1\",\u003cbr/\u003e      \"rule_action\": \"allow\",\u003cbr/\u003e      \"rule_number\": 100,\u003cbr/\u003e      \"to_port\": 0\u003cbr/\u003e    }\u003cbr/\u003e  ],\u003cbr/\u003e  \"outbound_rules\": [\u003cbr/\u003e    {\u003cbr/\u003e      \"cidr_block\": \"0.0.0.0/0\",\u003cbr/\u003e      \"from_port\": 0,\u003cbr/\u003e      \"protocol\": \"-1\",\u003cbr/\u003e      \"rule_action\": \"allow\",\u003cbr/\u003e      \"rule_number\": 100,\u003cbr/\u003e      \"to_port\": 0\u003cbr/\u003e    }\u003cbr/\u003e  ]\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_node_subnets_addresses\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_node\\_subnets\\_addresses](#input\\_cluster\\_network\\_internal\\_vpc\\_node\\_subnets\\_addresses) | The CIDR blocks to use for the node subnets in the internal VPC | `list(string)` | \u003cpre\u003e[\u003cbr/\u003e  \"10.0.96.0/19\",\u003cbr/\u003e  \"10.0.128.0/19\",\u003cbr/\u003e  \"10.0.160.0/19\"\u003cbr/\u003e]\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_node_subnets_assign_ipv6_address_on_creation\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_node\\_subnets\\_assign\\_ipv6\\_address\\_on\\_creation](#input\\_cluster\\_network\\_internal\\_vpc\\_node\\_subnets\\_assign\\_ipv6\\_address\\_on\\_creation) | Whether to assign an IPv6 address to the node subnets in the internal VPC | `bool` | `false` | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_node_subnets_enable_dns64\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_node\\_subnets\\_enable\\_dns64](#input\\_cluster\\_network\\_internal\\_vpc\\_node\\_subnets\\_enable\\_dns64) | Whether to enable DNS64 for the node subnets in the internal VPC | `bool` | `true` | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_node_subnets_enable_resource_name_dns_a_record_on_launch\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_node\\_subnets\\_enable\\_resource\\_name\\_dns\\_a\\_record\\_on\\_launch](#input\\_cluster\\_network\\_internal\\_vpc\\_node\\_subnets\\_enable\\_resource\\_name\\_dns\\_a\\_record\\_on\\_launch) | Whether to enable resource name DNS A record on launch for the node subnets in the internal VPC | `bool` | `false` | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_node_subnets_enable_resource_name_dns_aaaa_record_on_launch\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_node\\_subnets\\_enable\\_resource\\_name\\_dns\\_aaaa\\_record\\_on\\_launch](#input\\_cluster\\_network\\_internal\\_vpc\\_node\\_subnets\\_enable\\_resource\\_name\\_dns\\_aaaa\\_record\\_on\\_launch) | Whether to enable resource name DNS AAAA record on launch for the node subnets in the internal VPC | `bool` | `true` | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_node_subnets_ipv6_native\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_node\\_subnets\\_ipv6\\_native](#input\\_cluster\\_network\\_internal\\_vpc\\_node\\_subnets\\_ipv6\\_native) | Whether to enable IPv6 native for the node subnets in the internal VPC | `bool` | `false` | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_node_subnets_ipv6_prefixes\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_node\\_subnets\\_ipv6\\_prefixes](#input\\_cluster\\_network\\_internal\\_vpc\\_node\\_subnets\\_ipv6\\_prefixes) | The IPv6 prefixes to use for the node subnets in the internal VPC | `list(string)` | `[]` | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_node_subnets_private_dns_hostname_type_on_launch\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_node\\_subnets\\_private\\_dns\\_hostname\\_type\\_on\\_launch](#input\\_cluster\\_network\\_internal\\_vpc\\_node\\_subnets\\_private\\_dns\\_hostname\\_type\\_on\\_launch) | The private DNS hostname type on launch for the node subnets in the internal VPC | `string` | `null` | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_node_subnets_tags\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_node\\_subnets\\_tags](#input\\_cluster\\_network\\_internal\\_vpc\\_node\\_subnets\\_tags) | The tags configuration for the node subnets in the internal VPC | \u003cpre\u003eobject({\u003cbr/\u003e    tags               = optional(map(string))\u003cbr/\u003e    route_table_tags   = optional(map(string))\u003cbr/\u003e    subnet_tags_per_az = optional(map(map(string)))\u003cbr/\u003e    acl_tags           = optional(map(string))\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"acl_tags\": {},\u003cbr/\u003e  \"route_table_tags\": {},\u003cbr/\u003e  \"subnet_tags_per_az\": {},\u003cbr/\u003e  \"tags\": {}\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_private_ingress_subnets_acls\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_private\\_ingress\\_subnets\\_acls](#input\\_cluster\\_network\\_internal\\_vpc\\_private\\_ingress\\_subnets\\_acls) | The ACLs configuration for the intranet subnets in the internal VPC | \u003cpre\u003eobject({\u003cbr/\u003e    enabled = bool\u003cbr/\u003e    inbound_rules = optional(list(object({\u003cbr/\u003e      rule_number = number\u003cbr/\u003e      rule_action = string\u003cbr/\u003e      from_port   = number\u003cbr/\u003e      to_port     = number\u003cbr/\u003e      protocol    = optional(string)\u003cbr/\u003e      cidr_block  = string\u003cbr/\u003e    })))\u003cbr/\u003e    outbound_rules = optional(list(object({\u003cbr/\u003e      rule_number = number\u003cbr/\u003e      rule_action = string\u003cbr/\u003e      from_port   = number\u003cbr/\u003e      to_port     = number\u003cbr/\u003e      protocol    = optional(string)\u003cbr/\u003e      cidr_block  = string\u003cbr/\u003e    })))\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"enabled\": false,\u003cbr/\u003e  \"inbound_rules\": [\u003cbr/\u003e    {\u003cbr/\u003e      \"cidr_block\": \"0.0.0.0/0\",\u003cbr/\u003e      \"from_port\": 0,\u003cbr/\u003e      \"protocol\": \"-1\",\u003cbr/\u003e      \"rule_action\": \"allow\",\u003cbr/\u003e      \"rule_number\": 100,\u003cbr/\u003e      \"to_port\": 0\u003cbr/\u003e    }\u003cbr/\u003e  ],\u003cbr/\u003e  \"outbound_rules\": [\u003cbr/\u003e    {\u003cbr/\u003e      \"cidr_block\": \"0.0.0.0/0\",\u003cbr/\u003e      \"from_port\": 0,\u003cbr/\u003e      \"protocol\": \"-1\",\u003cbr/\u003e      \"rule_action\": \"allow\",\u003cbr/\u003e      \"rule_number\": 100,\u003cbr/\u003e      \"to_port\": 0\u003cbr/\u003e    }\u003cbr/\u003e  ]\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_private_ingress_subnets_addresses\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_private\\_ingress\\_subnets\\_addresses](#input\\_cluster\\_network\\_internal\\_vpc\\_private\\_ingress\\_subnets\\_addresses) | The CIDR blocks to use for the intranet subnets in the internal VPC | `list(string)` | \u003cpre\u003e[\u003cbr/\u003e  \"10.0.64.0/24\",\u003cbr/\u003e  \"10.0.65.0/24\",\u003cbr/\u003e  \"10.0.66.0/24\"\u003cbr/\u003e]\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_private_ingress_subnets_assign_ipv6_address_on_creation\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_private\\_ingress\\_subnets\\_assign\\_ipv6\\_address\\_on\\_creation](#input\\_cluster\\_network\\_internal\\_vpc\\_private\\_ingress\\_subnets\\_assign\\_ipv6\\_address\\_on\\_creation) | Whether to assign an IPv6 address to the intranet subnets in the internal VPC | `bool` | `false` | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_private_ingress_subnets_dns_hostname_type_on_launch\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_private\\_ingress\\_subnets\\_dns\\_hostname\\_type\\_on\\_launch](#input\\_cluster\\_network\\_internal\\_vpc\\_private\\_ingress\\_subnets\\_dns\\_hostname\\_type\\_on\\_launch) | The DNS hostname type on launch for the intranet subnets in the internal VPC | `string` | `null` | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_private_ingress_subnets_enable_dns64\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_private\\_ingress\\_subnets\\_enable\\_dns64](#input\\_cluster\\_network\\_internal\\_vpc\\_private\\_ingress\\_subnets\\_enable\\_dns64) | Whether to enable DNS64 for the intranet subnets in the internal VPC | `bool` | `true` | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_private_ingress_subnets_enable_resource_name_dns_a_record_on_launch\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_private\\_ingress\\_subnets\\_enable\\_resource\\_name\\_dns\\_a\\_record\\_on\\_launch](#input\\_cluster\\_network\\_internal\\_vpc\\_private\\_ingress\\_subnets\\_enable\\_resource\\_name\\_dns\\_a\\_record\\_on\\_launch) | Whether to enable resource name DNS A record on launch for the intranet subnets in the internal VPC | `bool` | `false` | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_private_ingress_subnets_enable_resource_name_dns_aaaa_record_on_launch\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_private\\_ingress\\_subnets\\_enable\\_resource\\_name\\_dns\\_aaaa\\_record\\_on\\_launch](#input\\_cluster\\_network\\_internal\\_vpc\\_private\\_ingress\\_subnets\\_enable\\_resource\\_name\\_dns\\_aaaa\\_record\\_on\\_launch) | Whether to enable resource name DNS AAAA record on launch for the intranet subnets in the internal VPC | `bool` | `true` | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_private_ingress_subnets_ipv6_native\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_private\\_ingress\\_subnets\\_ipv6\\_native](#input\\_cluster\\_network\\_internal\\_vpc\\_private\\_ingress\\_subnets\\_ipv6\\_native) | Whether to enable IPv6 native for the intranet subnets in the internal VPC | `bool` | `false` | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_private_ingress_subnets_ipv6_prefixes\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_private\\_ingress\\_subnets\\_ipv6\\_prefixes](#input\\_cluster\\_network\\_internal\\_vpc\\_private\\_ingress\\_subnets\\_ipv6\\_prefixes) | The IPv6 prefixes to use for the intranet subnets in the internal VPC | `list(string)` | `[]` | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_private_ingress_subnets_tags\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_private\\_ingress\\_subnets\\_tags](#input\\_cluster\\_network\\_internal\\_vpc\\_private\\_ingress\\_subnets\\_tags) | The tags configuration for the intranet subnets in the internal VPC | \u003cpre\u003eobject({\u003cbr/\u003e    tags             = optional(map(string))\u003cbr/\u003e    route_table_tags = optional(map(string))\u003cbr/\u003e    acl_tags         = optional(map(string))\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"acl_tags\": {},\u003cbr/\u003e  \"route_table_tags\": {},\u003cbr/\u003e  \"tags\": {}\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_secondary_cidr_blocks\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_secondary\\_cidr\\_blocks](#input\\_cluster\\_network\\_internal\\_vpc\\_secondary\\_cidr\\_blocks) | The secondary CIDR blocks to use for the internal VPC | `list(string)` | `[]` | no |\n| \u003ca name=\"input_cluster_network_internal_vpc_tags\"\u003e\u003c/a\u003e [cluster\\_network\\_internal\\_vpc\\_tags](#input\\_cluster\\_network\\_internal\\_vpc\\_tags) | The tags to apply to the internal VPC | `map(string)` | `{}` | no |\n| \u003ca name=\"input_cluster_network_type\"\u003e\u003c/a\u003e [cluster\\_network\\_type](#input\\_cluster\\_network\\_type) | The type of network to create. If set to internal, a new VPC will be created. If set to external, an existing VPC will be used | `string` | `\"internal\"` | no |\n| \u003ca name=\"input_cluster_node_patcher\"\u003e\u003c/a\u003e [cluster\\_node\\_patcher](#input\\_cluster\\_node\\_patcher) | The node patcher configuration for the Kubernetes cluster | \u003cpre\u003eobject({\u003cbr/\u003e    helm_chart_repository          = optional(string)\u003cbr/\u003e    helm_chart_repository_config   = optional(string)\u003cbr/\u003e    helm_chart_version             = optional(string)\u003cbr/\u003e    helm_chart_name                = optional(string)\u003cbr/\u003e    helm_chart_namespace           = optional(string)\u003cbr/\u003e    create_namespace_if_not_exists = optional(bool)\u003cbr/\u003e    helm_chart_params = optional(list(object({\u003cbr/\u003e      name  = string\u003cbr/\u003e      value = any\u003cbr/\u003e    })))\u003cbr/\u003e    helm_chart_secrets = optional(list(object({\u003cbr/\u003e      name  = string\u003cbr/\u003e      value = any\u003cbr/\u003e    })))\u003cbr/\u003e    helm_chart_values = optional(string)\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"create_namespace_if_not_exists\": true,\u003cbr/\u003e  \"helm_chart_name\": \"kube-node-reboot\",\u003cbr/\u003e  \"helm_chart_namespace\": \"kube-node-rebooter\",\u003cbr/\u003e  \"helm_chart_params\": [],\u003cbr/\u003e  \"helm_chart_repository\": \"oci://public.registry.jetbrains.space/p/helm/library\",\u003cbr/\u003e  \"helm_chart_repository_config\": null,\u003cbr/\u003e  \"helm_chart_secrets\": [],\u003cbr/\u003e  \"helm_chart_values\": null,\u003cbr/\u003e  \"helm_chart_version\": \"5.4.3\"\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_node_patcher_create\"\u003e\u003c/a\u003e [cluster\\_node\\_patcher\\_create](#input\\_cluster\\_node\\_patcher\\_create) | Whether to create the node patcher for the Kubernetes cluster | `bool` | `true` | no |\n| \u003ca name=\"input_cluster_node_security_group\"\u003e\u003c/a\u003e [cluster\\_node\\_security\\_group](#input\\_cluster\\_node\\_security\\_group) | The security group configuration for the Kubernetes cluster nodes | \u003cpre\u003eobject({\u003cbr/\u003e    create_default             = optional(bool)\u003cbr/\u003e    id                         = optional(string)\u003cbr/\u003e    name                       = optional(string)\u003cbr/\u003e    use_name_prefix            = optional(bool)\u003cbr/\u003e    description                = optional(string)\u003cbr/\u003e    enable_efa_support         = optional(bool)\u003cbr/\u003e    enable_recommended_rules   = optional(bool)\u003cbr/\u003e    create_cni_ipv6_iam_policy = optional(bool)\u003cbr/\u003e    additional_rules           = optional(any)\u003cbr/\u003e    tags                       = optional(map(string))\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"additional_rules\": {},\u003cbr/\u003e  \"create_cni_ipv6_iam_policy\": false,\u003cbr/\u003e  \"create_default\": true,\u003cbr/\u003e  \"description\": \"EKS node security group\",\u003cbr/\u003e  \"enable_efa_support\": false,\u003cbr/\u003e  \"enable_recommended_rules\": true,\u003cbr/\u003e  \"id\": \"\",\u003cbr/\u003e  \"name\": null,\u003cbr/\u003e  \"tags\": {},\u003cbr/\u003e  \"use_name_prefix\": true\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_private_ingress\"\u003e\u003c/a\u003e [cluster\\_private\\_ingress](#input\\_cluster\\_private\\_ingress) | The cluster private ingress configuration for the Kubernetes cluster | \u003cpre\u003eobject({\u003cbr/\u003e    helm_chart_repository          = optional(string)\u003cbr/\u003e    helm_chart_repository_config   = optional(string)\u003cbr/\u003e    helm_chart_version             = optional(string)\u003cbr/\u003e    helm_chart_name                = optional(string)\u003cbr/\u003e    helm_chart_namespace           = optional(string)\u003cbr/\u003e    create_namespace_if_not_exists = optional(bool)\u003cbr/\u003e    helm_chart_params = optional(list(object({\u003cbr/\u003e      name  = string\u003cbr/\u003e      value = any\u003cbr/\u003e    })))\u003cbr/\u003e    helm_chart_secrets = optional(list(object({\u003cbr/\u003e      name  = string\u003cbr/\u003e      value = any\u003cbr/\u003e    })))\u003cbr/\u003e    helm_chart_values = optional(string)\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"create_namespace_if_not_exists\": true,\u003cbr/\u003e  \"helm_chart_name\": \"kube-ingress-nginx\",\u003cbr/\u003e  \"helm_chart_namespace\": \"kube-private-ingress\",\u003cbr/\u003e  \"helm_chart_params\": [],\u003cbr/\u003e  \"helm_chart_repository\": \"oci://public.registry.jetbrains.space/p/helm/library\",\u003cbr/\u003e  \"helm_chart_repository_config\": null,\u003cbr/\u003e  \"helm_chart_secrets\": [],\u003cbr/\u003e  \"helm_chart_values\": null,\u003cbr/\u003e  \"helm_chart_version\": \"4.10.0\"\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_private_ingress_create\"\u003e\u003c/a\u003e [cluster\\_private\\_ingress\\_create](#input\\_cluster\\_private\\_ingress\\_create) | Whether to create the private ingress for the Kubernetes cluster | `bool` | `true` | no |\n| \u003ca name=\"input_cluster_public_ingress\"\u003e\u003c/a\u003e [cluster\\_public\\_ingress](#input\\_cluster\\_public\\_ingress) | The cluster public ingress configuration for the Kubernetes cluster | \u003cpre\u003eobject({\u003cbr/\u003e    helm_chart_repository          = optional(string)\u003cbr/\u003e    helm_chart_repository_config   = optional(string)\u003cbr/\u003e    helm_chart_version             = optional(string)\u003cbr/\u003e    helm_chart_name                = optional(string)\u003cbr/\u003e    helm_chart_namespace           = optional(string)\u003cbr/\u003e    create_namespace_if_not_exists = optional(bool)\u003cbr/\u003e    helm_chart_params = optional(list(object({\u003cbr/\u003e      name  = string\u003cbr/\u003e      value = any\u003cbr/\u003e    })))\u003cbr/\u003e    helm_chart_secrets = optional(list(object({\u003cbr/\u003e      name  = string\u003cbr/\u003e      value = any\u003cbr/\u003e    })))\u003cbr/\u003e    helm_chart_values = optional(string)\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"create_namespace_if_not_exists\": true,\u003cbr/\u003e  \"helm_chart_name\": \"kube-ingress-nginx\",\u003cbr/\u003e  \"helm_chart_namespace\": \"kube-public-ingress\",\u003cbr/\u003e  \"helm_chart_params\": [],\u003cbr/\u003e  \"helm_chart_repository\": \"oci://public.registry.jetbrains.space/p/helm/library\",\u003cbr/\u003e  \"helm_chart_repository_config\": null,\u003cbr/\u003e  \"helm_chart_secrets\": [],\u003cbr/\u003e  \"helm_chart_values\": null,\u003cbr/\u003e  \"helm_chart_version\": \"4.10.0\"\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_public_ingress_create\"\u003e\u003c/a\u003e [cluster\\_public\\_ingress\\_create](#input\\_cluster\\_public\\_ingress\\_create) | Whether to create the public ingress for the Kubernetes cluster | `bool` | `false` | no |\n| \u003ca name=\"input_cluster_security_group\"\u003e\u003c/a\u003e [cluster\\_security\\_group](#input\\_cluster\\_security\\_group) | The security group configuration for the Kubernetes cluster | \u003cpre\u003eobject({\u003cbr/\u003e    create_default                     = optional(bool)\u003cbr/\u003e    create_primary_security_group_tags = optional(bool)\u003cbr/\u003e    id                                 = optional(string)\u003cbr/\u003e    name                               = optional(string)\u003cbr/\u003e    use_name_prefix                    = optional(bool)\u003cbr/\u003e    description                        = optional(string)\u003cbr/\u003e    additional_rules                   = optional(any)\u003cbr/\u003e    tags                               = optional(map(string))\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"additional_rules\": {},\u003cbr/\u003e  \"create_default\": true,\u003cbr/\u003e  \"create_primary_security_group_tags\": true,\u003cbr/\u003e  \"description\": \"EKS cluster security group\",\u003cbr/\u003e  \"id\": null,\u003cbr/\u003e  \"name\": null,\u003cbr/\u003e  \"tags\": {},\u003cbr/\u003e  \"use_name_prefix\": true\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_service_network_config\"\u003e\u003c/a\u003e [cluster\\_service\\_network\\_config](#input\\_cluster\\_service\\_network\\_config) | The internal service network configuration for the Kubernetes cluster | \u003cpre\u003eobject({\u003cbr/\u003e    ip_family         = optional(string)\u003cbr/\u003e    service_ipv4_cidr = optional(string)\u003cbr/\u003e    service_ipv6_cidr = optional(string)\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"ip_family\": \"ipv4\",\u003cbr/\u003e  \"service_ipv4_cidr\": null,\u003cbr/\u003e  \"service_ipv6_cidr\": null\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_storage_classes_create\"\u003e\u003c/a\u003e [cluster\\_storage\\_classes\\_create](#input\\_cluster\\_storage\\_classes\\_create) | Whether to create the custom storage classes for the Kubernetes cluster | `bool` | `true` | no |\n| \u003ca name=\"input_cluster_tags\"\u003e\u003c/a\u003e [cluster\\_tags](#input\\_cluster\\_tags) | The tags to apply to the Kubernetes cluster | `map(string)` | `{}` | no |\n| \u003ca name=\"input_cluster_timeouts\"\u003e\u003c/a\u003e [cluster\\_timeouts](#input\\_cluster\\_timeouts) | The waiting timeouts configuration for the Kubernetes cluster | \u003cpre\u003eobject({\u003cbr/\u003e    create = optional(string)\u003cbr/\u003e    update = optional(string)\u003cbr/\u003e    delete = optional(string)\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"create\": \"45m\",\u003cbr/\u003e  \"delete\": \"30m\",\u003cbr/\u003e  \"update\": \"60m\"\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cluster_version\"\u003e\u003c/a\u003e [cluster\\_version](#input\\_cluster\\_version) | The version of the Kubernetes cluster | `string` | `\"1.29\"` | no |\n| \u003ca name=\"input_cluster_vpc_config\"\u003e\u003c/a\u003e [cluster\\_vpc\\_config](#input\\_cluster\\_vpc\\_config) | The VPC configuration for the Kubernetes cluster | \u003cpre\u003eobject({\u003cbr/\u003e    additional_security_group_ids           = optional(list(string))\u003cbr/\u003e    endpoint_public_access                  = optional(bool)\u003cbr/\u003e    endpoint_private_access                 = optional(bool)\u003cbr/\u003e    endpoint_public_access_allow_from_cidrs = optional(list(string))\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"additional_security_group_ids\": [],\u003cbr/\u003e  \"endpoint_private_access\": true,\u003cbr/\u003e  \"endpoint_public_access\": true,\u003cbr/\u003e  \"endpoint_public_access_allow_from_cidrs\": [\u003cbr/\u003e    \"0.0.0.0/0\"\u003cbr/\u003e  ]\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_prefix\"\u003e\u003c/a\u003e [prefix](#input\\_prefix) | The prefix to be used for all resources in this module | `string` | `\"kube\"` | no |\n| \u003ca name=\"input_tags\"\u003e\u003c/a\u003e [tags](#input\\_tags) | Specify a list of tags as key/value pairs. These tags will be applied to all resources created by this module | `map(string)` | \u003cpre\u003e{\u003cbr/\u003e  \"ResourceCreatedBy\": \"TerraformModule:terraform-aws-kubernetes\"\u003cbr/\u003e}\u003c/pre\u003e | no |\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_cluster\"\u003e\u003c/a\u003e [cluster](#output\\_cluster) | Configuration of the Kubernetes cluster |\n| \u003ca name=\"output_cluster_additional_apps\"\u003e\u003c/a\u003e [cluster\\_additional\\_apps](#output\\_cluster\\_additional\\_apps) | Additional apps' configurations |\n| \u003ca name=\"output_cluster_autoscaler\"\u003e\u003c/a\u003e [cluster\\_autoscaler](#output\\_cluster\\_autoscaler) | Autoscaler configuration for the Kubernetes cluster |\n| \u003ca name=\"output_cluster_autoscaler_resources\"\u003e\u003c/a\u003e [cluster\\_autoscaler\\_resources](#output\\_cluster\\_autoscaler\\_resources) | Autoscaler resources for the Kubernetes cluster to be used by Cluster Users |\n| \u003ca name=\"output_cluster_descheduler\"\u003e\u003c/a\u003e [cluster\\_descheduler](#output\\_cluster\\_descheduler) | Descheduler configuration for the Kubernetes cluster |\n| \u003ca name=\"output_cluster_ingresses\"\u003e\u003c/a\u003e [cluster\\_ingresses](#output\\_cluster\\_ingresses) | Ingresses for the Kubernetes cluster |\n| \u003ca name=\"output_cluster_logging\"\u003e\u003c/a\u003e [cluster\\_logging](#output\\_cluster\\_logging) | Cluster logging configuration for the Kubernetes cluster |\n| \u003ca name=\"output_cluster_monitoring\"\u003e\u003c/a\u003e [cluster\\_monitoring](#output\\_cluster\\_monitoring) | Monitoring configuration for the Kubernetes cluster |\n| \u003ca name=\"output_cluster_network\"\u003e\u003c/a\u003e [cluster\\_network](#output\\_cluster\\_network) | Configuration of the internal network |\n| \u003ca name=\"output_cluster_node_rebooter\"\u003e\u003c/a\u003e [cluster\\_node\\_rebooter](#output\\_cluster\\_node\\_rebooter) | Node rebooter configuration for the Kubernetes cluster |\n| \u003ca name=\"output_cluster_ssm_params_paths\"\u003e\u003c/a\u003e [cluster\\_ssm\\_params\\_paths](#output\\_cluster\\_ssm\\_params\\_paths) | SSM parameters paths exported by the module for the Kubernetes cluster |\n| \u003ca name=\"output_cluster_storage_classes\"\u003e\u003c/a\u003e [cluster\\_storage\\_classes](#output\\_cluster\\_storage\\_classes) | Storage classes for the Kubernetes cluster |\n\u003c!-- END_TF_DOCS --\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjetbrains%2Fterraform-aws-kubernetes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjetbrains%2Fterraform-aws-kubernetes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjetbrains%2Fterraform-aws-kubernetes/lists"}