Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: MIT-0
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of this
* software and associated documentation files (the "Software"), to deal in the Software
* without restriction, including without limitation the rights to use, copy, modify,
* merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
* PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
variable "terraform_version" {
type = string
default = "Terraform"
description = "Terraform Version"
}
variable "org" {
type = string
description = "tenant, which could be your organization name, e.g. aws'"
default = "aws"
}
variable "tenant" {
type = string
description = "Account Name or unique account unique id e.g., apps or management or aws007"
default = ""
}
variable "environment" {
type = string
default = "preprod"
description = "Environment area, e.g. prod or preprod "
}
variable "zone" {
type = string
description = "zone, e.g. dev or qa or load or ops etc..."
default = ""
}
variable "attributes" {
type = string
default = ""
description = "Additional attributes (e.g. `1`)"
}
variable "tags" {
type = map(string)
default = {}
description = "Additional tags (e.g. `map('BusinessUnit`,`XYZ`)"
}
#----------------------------------------------------------
#----------------------------------------------------------
variable "create_vpc" {
description = "Controls if VPC should be created (it affects almost all resources)"
type = bool
default = false
}
variable "enable_public_subnets" {
description = "Enable public subnets for EKS Cluster"
type = bool
default = false
}
variable "enable_nat_gateway" {
description = "Enable NAT Gateway for public subnets"
type = bool
default = false
}
variable "single_nat_gateway" {
description = "Create single NAT gateway for all private subnets"
type = bool
default = true
}
variable "create_igw" {
description = "Create internet gateway in public subnets"
type = bool
default = false
}

Vara Bonthu
committed
variable "enable_private_subnets" {
description = "Enable private subnets for EKS Cluster"
type = bool
default = true
}
variable "vpc_id" {
type = string
description = "VPC id"
default = ""
}
variable "private_subnet_ids" {
description = "list of private subnets Id's for the Worker nodes"
default = []
}
variable "public_subnet_ids" {
description = "list of private subnets Id's for the Worker nodes"
default = []
}
variable "vpc_cidr_block" {
type = string
default = ""
description = "VPC CIDR"
}
variable "public_subnets_cidr" {
description = "list of Public subnets for the Worker nodes"
default = []
}
variable "private_subnets_cidr" {
description = "list of Private subnets for the Worker nodes"
variable "create_vpc_endpoints" {
type = bool
default = false
description = "Create VPC endpoints for Private subnets"
}
variable "endpoint_private_access" {
type = bool
default = false
description = "Indicates whether or not the Amazon EKS private API server endpoint is enabled. Default to AWS EKS resource and it is false"
}
variable "endpoint_public_access" {
type = bool
default = true
description = "Indicates whether or not the Amazon EKS public API server endpoint is enabled. Default to AWS EKS resource and it is true"
}
variable "enable_irsa" {
type = bool
default = true
description = "Indicates whether or not the Amazon EKS public API server endpoint is enabled. Default to AWS EKS resource and it is true"
}
#----------------------------------------------------------
# EKS CONTROL PLANE
#----------------------------------------------------------
variable "create_eks" {
type = bool
default = false
}
variable "kubernetes_version" {
type = string
description = "Desired Kubernetes master version. If you do not specify a value, the latest available version is used"
}
variable "enabled_cluster_log_types" {
type = list(string)
default = ["api", "audit", "authenticator", "controllerManager", "scheduler"]
description = "A list of the desired control plane logging to enable. Possible values [`api`, `audit`, `authenticator`, `controllerManager`, `scheduler`]"
}
variable "cluster_log_retention_period" {
type = number
default = 7
description = "Number of days to retain cluster logs. Requires `enabled_cluster_log_types` to be set. See https://docs.aws.amazon.com/en_us/eks/latest/userguide/control-plane-logs.html."
}
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
variable "vpc_cni_addon_version" {
type = string
default = "v1.8.0-eksbuild.1"
description = "VPC CNI Addon verison"
}
variable "coredns_addon_version" {
type = string
default = "v1.8.3-eksbuild.1"
description = "CoreDNS Addon verison"
}
variable "kube_proxy_addon_version" {
type = string
default = "v1.20.4-eksbuild.2"
description = "KubeProxy Addon verison"
}
variable "enable_vpc_cni_addon" {
type = bool
default = false
}
variable "enable_coredns_addon" {
type = bool
default = false
}
variable "enable_kube_proxy_addon" {
type = bool
default = false
}
#----------------------------------------------------------
// EKS WORKER NODES
#----------------------------------------------------------
variable "enable_managed_nodegroups" {
description = "Enable self-managed worker groups"
type = bool
default = false
}
variable "managed_node_groups" {
type = any
default = {}
}
variable "enable_self_managed_nodegroups" {
description = "Enable self-managed worker groups"
type = bool
default = false
}
variable "self_managed_node_groups" {
type = any
default = {}
}
variable "enable_fargate" {
default = false
}
variable "fargate_profiles" {
type = any
default = {}
}
variable "enable_windows_support" {
#----------------------------------------------------------
# CONFIG MAP AWS-AUTH
#----------------------------------------------------------
variable "map_accounts" {
description = "Additional AWS account numbers to add to the aws-auth configmap. "
variable "map_roles" {
description = "Additional IAM roles to add to the aws-auth configmap."
type = list(object({
rolearn = string
username = string
groups = list(string)
}))
default = []
}
variable "map_users" {
description = "Additional IAM users to add to the aws-auth configmap. "
type = list(object({
userarn = string
username = string
groups = list(string)
}))
default = []
variable "manage_aws_auth" {
description = "Whether to apply the aws-auth configmap file."
default = true
}
variable "aws_auth_additional_labels" {
description = "Additional kubernetes labels applied on aws-auth ConfigMap"
#----------------------------------------------------------
# HELM CHART VARIABLES
#----------------------------------------------------------
variable "private_container_repo_url" {
type = string
default = ""
description = "Privtae container image repo url (e.g, artifactory url or ECR url)"
}
variable "public_docker_repo" {
type = bool
default = true
description = "public docker repo access"
variable "metrics_server_enable" {
type = bool
description = "Enabling metrics server on eks cluster"
}
variable "cluster_autoscaler_enable" {
type = bool
description = "Enabling Cluster autoscaler on eks cluster"
}
variable "traefik_ingress_controller_enable" {
type = bool
default = false
description = "Enabling Traefik Ingress Controller on eks cluster"
}
variable "aws_lb_ingress_controller_enable" {
type = bool
default = false
description = "enabling LB Ingress Controller on eks cluster"
}

UlaganathanNamachivayam
committed
variable "nginx_ingress_controller_enable" {
type = bool
default = false
description = "enabling Nginx Ingress Controller on eks cluster"
}
variable "aws_for_fluent_bit_enable" {
type = bool
default = false
description = "Enabling aws_fluent_bit module on eks cluster"
}
variable "fargate_fluent_bit_enable" {
type = bool
default = false
description = "Enabling fargate_fluent_bit module on eks cluster"
}
variable "ekslog_retention_in_days" {
default = 90
description = "Number of days to retain log events. Default retention - 90 days."
type = number
}

Vara Bonthu
committed
variable "agones_enable" {
type = bool
default = false
description = "Enabling Agones Gaming Helm Chart"
}
variable "expose_udp" {
type = bool
default = false
description = "Enabling Agones Gaming Helm Chart"
}
variable "agones_image_repo" {
default = "gcr.io/agones-images"
}
variable "agones_image_tag" {
default = "1.15.0"
}
variable "agones_helm_chart_name" {
default = "agones"
}
variable "agones_helm_chart_url" {
default = "https://agones.dev/chart/stable"
}
variable "agones_game_server_maxport" {
default = 8000
}
variable "agones_game_server_minport" {
default = 7000
}
variable "aws_lb_image_repo_name" {
default = "amazon/aws-load-balancer-controller"
}
variable "aws_lb_helm_repo_url" {
default = "https://aws.github.io/eks-charts"
}
variable "aws_lb_helm_helm_chart_name" {
default = "aws-load-balancer-controller"
}
}
variable "aws_lb_helm_chart_version" {
variable "metric_server_image_repo_name" {
default = "bitnami/metrics-server"
}
variable "metric_server_image_tag" {

UlaganathanNamachivayam
committed
variable "metric_server_helm_chart_version" {
variable "metric_server_helm_repo_url" {
default = "https://charts.bitnami.com/bitnami"
}
variable "metric_server_helm_chart_name" {
default = "metrics-server"
}
variable "cluster_autoscaler_helm_repo_url" {
default = "https://kubernetes.github.io/autoscaler"
}
variable "cluster_autoscaler_helm_chart_name" {
default = "cluster-autoscaler"
}
variable "cluster_autoscaler_image_repo_name" {
default = "k8s.gcr.io/autoscaling/cluster-autoscaler"
}
variable "cluster_autoscaler_image_tag" {
}
variable "cluster_autoscaler_helm_version" {
variable "aws_managed_prometheus_workspace_name" {
default = "aws-managed-prometheus-workspace"
}
variable "prometheus_helm_chart_url" {
default = "https://prometheus-community.github.io/helm-charts"
}
variable "prometheus_helm_chart_name" {
default = "prometheus"
}
variable "prometheus_helm_chart_version" {
}
variable "prometheus_image_tag" {

UlaganathanNamachivayam
committed
default = "v2.26.0"
}
variable "alert_manager_image_tag" {

UlaganathanNamachivayam
committed
default = "v0.21.0"
}
variable "configmap_reload_image_tag" {

UlaganathanNamachivayam
committed
default = "v0.5.0"
}
variable "node_exporter_image_tag" {

UlaganathanNamachivayam
committed
default = "v1.1.2"
}
variable "pushgateway_image_tag" {

UlaganathanNamachivayam
committed
default = "v1.3.1"
}
variable "prometheus_enable" {
default = false
}
variable "aws_managed_prometheus_enable" {
variable "traefik_image_repo_name" {
default = "traefik"
}
variable "traefik_helm_chart_name" {
default = "traefik"
}
variable "traefik_helm_chart_url" {
default = "https://helm.traefik.io/traefik"
}
variable "traefik_helm_chart_version" {

UlaganathanNamachivayam
committed
default = "10.0.0"
}
variable "traefik_image_tag" {

UlaganathanNamachivayam
committed
default = "v2.4.9"
}
variable "nginx_image_repo_name" {
default = "ingress-nginx/controller"
}
variable "nginx_helm_chart_url" {
default = "https://kubernetes.github.io/ingress-nginx"
}
variable "nginx_helm_chart_name" {
default = "ingress-nginx"
}

UlaganathanNamachivayam
committed
variable "nginx_helm_chart_version" {

UlaganathanNamachivayam
committed
default = "3.33.0"

UlaganathanNamachivayam
committed
variable "nginx_image_tag" {

UlaganathanNamachivayam
committed
default = "v0.47.0"
}
variable "aws_for_fluent_bit_image_repo_name" {
default = "amazon/aws-for-fluent-bit"
}
variable "aws_for_fluent_bit_helm_chart_url" {
default = "https://aws.github.io/eks-charts"
}
variable "aws_for_fluent_bit_helm_chart_name" {
default = "aws-for-fluent-bit"
}
default = "2.13.0"
description = "Docker image tag for aws_for_fluent_bit"
}
variable "aws_for_fluent_bit_helm_chart_version" {
default = "0.1.11"
description = "Helm chart version for aws_for_fluent_bit"
variable "cert_manager_enable" {
type = bool
default = false
description = "Enabling Cert Manager Helm Chart installation. It is automatically enabled if Windows support is enabled."
}
variable "cert_manager_image_tag" {
type = string
default = "v1.5.3"
description = "Docker image tag for cert-manager controller"
}
variable "cert_manager_helm_chart_version" {
type = string
default = "v1.5.3"
description = "Helm chart version for cert-manager"
}
variable "cert_manager_install_crds" {
type = bool
description = "Whether Cert Manager CRDs should be installed as part of the cert-manager Helm chart installation"
default = true
}
variable "cert_manager_helm_chart_url" {
default = "https://charts.jetstack.io"
}
variable "cert_manager_helm_chart_name" {
default = "cert-manager"
}
variable "cert_manager_image_repo_name" {

Vandan Juvekar
committed
default = "quay.io/jetstack/cert-manager-controller"
variable "windows_vpc_resource_controller_image_tag" {
type = string
default = "v0.2.7"
description = "Docker image tag for Windows VPC resource controller"
}
variable "windows_vpc_admission_webhook_image_tag" {
type = string
default = "v0.2.7"
description = "Docker image tag for Windows VPC admission webhook controller"
}
#-----------AWS OPEN TELEMETRY HELM CHART-------------
variable "aws_open_telemetry_enable" {}
variable "aws_open_telemetry_namespace" {
description = "WS Open telemetry namespace"
}
variable "aws_open_telemetry_emitter_otel_resource_attributes" {
description = "AWS Open telemetry emitter otel resource attributes"
}
variable "aws_open_telemetry_emitter_name" {
description = "AWS Open telemetry emitter image name"
}
variable "aws_open_telemetry_emitter_image" {
description = "AWS Open telemetry emitter image id and tag"
}
variable "aws_open_telemetry_collector_image" {
description = "AWS Open telemetry collector image id and tag"
}
variable "aws_open_telemetry_aws_region" {
description = "AWS Open telemetry region"
}
variable "aws_open_telemetry_emitter_oltp_endpoint" {
description = "AWS Open telemetry OLTP endpoint"
}
variable "aws_open_telemetry_mg_node_iam_role_arns" {
type = list(string)
default = []
}
variable "aws_open_telemetry_self_mg_node_iam_role_arns" {
type = list(string)
default = []
}
#-----------OPEN TELEMETRY HELM CHART-------------
variable "opentelemetry_enable" {
type = bool
default = false
description = "Enabling opentelemetry module on eks cluster"
}
variable "opentelemetry_enable_standalone_collector" {
type = bool
default = false
description = "Enabling the opentelemetry standalone gateway collector on eks cluster"
}
variable "opentelemetry_enable_agent_collector" {
type = bool
default = true
description = "Enabling the opentelemetry agent collector on eks cluster"
}
variable "opentelemetry_enable_autoscaling_standalone_collector" {
type = bool
default = false
description = "Enabling the autoscaling of the standalone gateway collector on eks cluster"
}
variable "opentelemetry_image_tag" {
default = "0.31.0"
description = "Docker image tag for opentelemetry from open-telemetry"
}
variable "opentelemetry_image" {
default = "otel/opentelemetry-collector"
description = "Docker image for opentelemetry from open-telemetry"
}
variable "opentelemetry_helm_chart_version" {
default = "0.5.9"
description = "Helm chart version for opentelemetry"
}
variable "opentelemetry_helm_chart" {
default = "open-telemetry/opentelemetry-collector"
description = "Helm chart for opentelemetry"
}
variable "opentelemetry_command_name" {
default = "otel"
description = "The OpenTelemetry command.name value"
}
variable "opentelemetry_enable_container_logs" {
default = false
description = "Whether or not to enable container log collection on the otel agents"
}
variable "opentelemetry_min_standalone_collectors" {
default = 1
description = "The minimum number of opentelemetry standalone gateway collectors to run"
}
variable "opentelemetry_max_standalone_collectors" {
default = 3
description = "The maximum number of opentelemetry standalone gateway collectors to run"
}
variable "opentelemetry_helm_chart_url" {
default = "https://open-telemetry.github.io/opentelemetry-helm-charts"
description = "opentelemetry helm chart endpoint"
}