Newer
Older
/*
* 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 "org" {
type = string
description = "tenant, which could be your organization name, e.g. aws'"
}
variable "tenant" {
type = string
description = "Account Name or unique account unique id e.g., apps or management or aws007"
}
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..."
}
variable "tags" {
type = map(string)
default = {}
description = "Additional tags (e.g. `map('BusinessUnit`,`XYZ`)"
}
variable "terraform_version" {
type = string
default = "Terraform"
description = "Terraform Version"
}
variable "vpc_id" {
type = string
description = "VPC id"
}
variable "private_subnet_ids" {
description = "list of private subnets Id's for the Worker nodes"
}
variable "public_subnet_ids" {
description = "list of private subnets Id's for the Worker nodes"
# EKS CONTROL PLANE
variable "create_eks" {
type = bool
default = false
description = "Enable Create EKS"
variable "kubernetes_version" {
type = string
default = "1.21"
description = "Desired Kubernetes master version. If you do not specify a value, the latest available version is used"

Vara Bonthu
committed
variable "cluster_endpoint_private_access" {
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"
}

Vara Bonthu
committed
variable "cluster_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"
}

Vara Bonthu
committed
variable "cluster_enabled_log_types" {
type = list(string)
default = ["api", "audit", "authenticator", "controllerManager", "scheduler"]
description = "A list of the desired control plane logging to enable"
}
variable "cluster_log_retention_period" {
type = number
default = 7
description = "Number of days to retain cluster logs"
# EKS MANAGED ADDONS
variable "enable_vpc_cni_addon" {
type = bool
default = false
description = "Enable VPC CNI Addon"
}
variable "enable_coredns_addon" {
type = bool
default = false
description = "Enable CoreDNS Addon"
}
variable "enable_kube_proxy_addon" {
type = bool
default = false
description = "Enable Kube Proxy Addon"
variable "vpc_cni_addon_version" {
type = string
default = "v1.8.0-eksbuild.1"
}
variable "coredns_addon_version" {
type = string
default = "v1.8.3-eksbuild.1"
}
variable "kube_proxy_addon_version" {
type = string
default = "v1.20.4-eksbuild.2"
variable "enable_managed_nodegroups" {
description = "Enable self-managed worker groups"
type = bool
default = false
}
variable "managed_node_groups" {
description = "Managed Node groups configuration"
type = any
default = {}
variable "enable_self_managed_nodegroups" {
description = "Enable self-managed worker groups"
type = bool
default = false
}
description = "Self-Managed Node groups configuration"
type = any
default = {}
description = "Enable Fargate profiles"
type = bool
default = false
description = "Fargate Profile configuration"
type = any
default = {}
variable "enable_windows_support" {
description = "Enable Windows support"
type = bool
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 "aws_auth_additional_labels" {
description = "Additional kubernetes labels applied on aws-auth ConfigMap"
# KUBERNETES ADDONS VARIABLES
default = false
description = "Enabling EMR on EKS Config"
}
variable "emr_on_eks_teams" {
description = "EMR on EKS Teams configuration"
type = any
default = {}
#-----------CLUSTER AUTOSCALER-------------
variable "cluster_autoscaler_enable" {
type = bool
default = false
description = "Enabling Cluster autoscaler on eks cluster"
}
variable "cluster_autoscaler_helm_chart" {
type = any
default = {}
description = "Cluster Autoscaler Helm Chart Config"
}
#-----------PROMETHEUS-------------
variable "aws_managed_prometheus_enable" {
type = bool
default = false
description = "Enable AWS Managed Prometheus service"
}
variable "aws_managed_prometheus_workspace_name" {
type = string
default = "aws-managed-prometheus-workspace"
description = "AWS Managed Prometheus WorkSpace Name"
description = "Enable Community Prometheus Helm Addon"
type = bool
default = false
description = "Community Prometheus Helm Addon Config"
type = any
default = {}
}
#-----------METRIC SERVER-------------
variable "metrics_server_enable" {
type = bool
default = false
description = "Enabling metrics server on eks cluster"
}
variable "metrics_server_helm_chart" {
type = any
default = {}
description = "Metrics Server Helm Addon Config"
}
#-----------TRAEFIK-------------
variable "traefik_ingress_controller_enable" {
type = bool
default = false
description = "Enabling Traefik Ingress Controller on eks cluster"
}
variable "traefik_helm_chart" {
type = any
default = {}
description = "Traefik Helm Addon Config"
#-----------AGONES-------------

Vara Bonthu
committed
variable "agones_enable" {
type = bool
default = false
description = "Enabling Agones Gaming Helm Chart"
}
variable "agones_helm_chart" {
type = any
default = {}
description = "Agones GameServer Helm chart config"
#-----------AWS LB Ingress Controller-------------
variable "aws_lb_ingress_controller_enable" {
type = bool
default = false
description = "enabling LB Ingress Controller on eks cluster"
}
variable "aws_lb_ingress_controller_helm_app" {
type = any
description = "Helm chart definition for aws_lb_ingress_controller"
default = {}
#-----------NGINX-------------
variable "nginx_ingress_controller_enable" {
type = bool
default = false
description = "Enabling NGINX Ingress Controller on EKS Cluster"
variable "nginx_helm_chart" {
description = "NGINX Ingress Controller Helm Chart Configuration"
type = any
default = {}

UlaganathanNamachivayam
committed
}
#-----------SPARK K8S OPERATOR-------------
variable "spark_on_k8s_operator_enable" {
type = bool
default = false
description = "Enabling Spark on K8s Operator on EKS Cluster"
}
variable "spark_on_k8s_operator_helm_chart" {
description = "Spark on K8s Operator Helm Chart Configuration"
type = any
default = {}
}
#-----------AWS FOR FLUENT BIT-------------
variable "aws_for_fluentbit_enable" {
type = bool
default = false
description = "Enabling FluentBit Addon on EKS Worker Nodes"
variable "aws_for_fluentbit_helm_chart" {
description = "Helm chart definition for aws_for_fluent_bit"
#-----------FARGATE FLUENT BIT-------------
variable "fargate_fluentbit_enable" {
type = bool
default = false
description = "Enabling fargate_fluent_bit module on eks cluster"
variable "fargate_fluentbit_config" {
type = any
description = "Fargate fluentbit configuration "
default = {}
#-----------CERT MANAGER-------------
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_helm_chart" {
type = any
description = "Cert Manager Helm chart configuration"
default = {}
#------WINDOWS VPC CONTROLLERS-------------
variable "windows_vpc_controllers_helm_chart" {
type = any
description = "Windows VPC Controllers Helm chart configuration"
default = {}
#-----------AWS OPEN TELEMETRY ADDON-------------
variable "aws_open_telemetry_enable" {
type = bool
default = false
description = "Enable AWS Open Telemetry Distro Addon "
variable "aws_open_telemetry_addon" {
type = any
default = {}
description = "AWS Open Telemetry Distro Addon Configuration"
#-----------ARGOCD ADDON-------------
variable "argocd_enable" {
type = bool
default = false
description = "Enable ARGO CD Kubernetes Addon"
}
variable "argocd_helm_chart" {
type = any
default = {}
description = "ARGO CD Kubernetes Addon Configuration"
}
variable "argocd_applications" {
type = any
default = {}
description = "ARGO CD Applications config to bootstrap the cluster"
variable "argocd_manage_add_ons" {
type = bool
default = false
description = "Enables managing add-on configuration via ArgoCD"
}
variable "keda_enable" {
type = bool
default = false
description = "Enable KEDA Event-based autoscaler for workloads on Kubernetes"
}
variable "keda_helm_chart" {
type = any
default = {}
description = "KEDA Event-based autoscaler Kubernetes Addon Configuration"
}
variable "keda_create_irsa" {
type = bool
description = "Indicates if the add-on should create a IAM role + service account"
default = true
}
variable "keda_irsa_policies" {
type = list(string)
description = "Additional IAM policies for a IAM role for service accounts"
default = []
}