201 lines
5.9 KiB
HCL
201 lines
5.9 KiB
HCL
variable "region" {
|
|
type = string
|
|
description = "AWS Region"
|
|
}
|
|
|
|
variable "availability_zones" {
|
|
type = list(string)
|
|
description = "List of availability zones"
|
|
}
|
|
|
|
variable "namespace" {
|
|
type = string
|
|
description = "Namespace, which could be your organization name, e.g. 'eg' or 'cp'"
|
|
}
|
|
|
|
variable "stage" {
|
|
type = string
|
|
description = "Stage, e.g. 'prod', 'staging', 'dev' or 'testing'"
|
|
}
|
|
|
|
variable "name" {
|
|
type = string
|
|
description = "Solution name, e.g. 'app' or 'cluster'"
|
|
}
|
|
|
|
variable "delimiter" {
|
|
type = string
|
|
default = "-"
|
|
description = "Delimiter to be used between `name`, `namespace`, `stage`, etc."
|
|
}
|
|
|
|
variable "attributes" {
|
|
type = list(string)
|
|
default = []
|
|
description = "Additional attributes (e.g. `1`)"
|
|
}
|
|
|
|
variable "tags" {
|
|
type = map(string)
|
|
default = {}
|
|
description = "Additional tags (e.g. `map('BusinessUnit`,`XYZ`)"
|
|
}
|
|
|
|
variable "instance_type" {
|
|
type = string
|
|
description = "Instance type to launch"
|
|
}
|
|
|
|
variable "kubernetes_version" {
|
|
type = string
|
|
default = ""
|
|
description = "Desired Kubernetes master version. If you do not specify a value, the latest available version is used"
|
|
}
|
|
|
|
variable "health_check_type" {
|
|
type = "string"
|
|
description = "Controls how health checking is done. Valid values are `EC2` or `ELB`"
|
|
}
|
|
|
|
variable "associate_public_ip_address" {
|
|
type = bool
|
|
description = "Associate a public IP address with an instance in a VPC"
|
|
}
|
|
|
|
variable "max_size" {
|
|
type = number
|
|
description = "The maximum size of the AutoScaling Group"
|
|
}
|
|
|
|
variable "min_size" {
|
|
type = number
|
|
description = "The minimum size of the AutoScaling Group"
|
|
}
|
|
|
|
variable "wait_for_capacity_timeout" {
|
|
type = string
|
|
description = "A maximum duration that Terraform should wait for ASG instances to be healthy before timing out. Setting this to '0' causes Terraform to skip all Capacity Waiting behavior"
|
|
}
|
|
|
|
variable "autoscaling_policies_enabled" {
|
|
type = bool
|
|
description = "Whether to create `aws_autoscaling_policy` and `aws_cloudwatch_metric_alarm` resources to control Auto Scaling"
|
|
}
|
|
|
|
variable "cpu_utilization_high_threshold_percent" {
|
|
type = number
|
|
description = "Worker nodes AutoScaling Group CPU utilization high threshold percent"
|
|
}
|
|
|
|
variable "cpu_utilization_low_threshold_percent" {
|
|
type = number
|
|
description = "Worker nodes AutoScaling Group CPU utilization low threshold percent"
|
|
}
|
|
|
|
variable "map_additional_aws_accounts" {
|
|
description = "Additional AWS account numbers to add to `config-map-aws-auth` ConfigMap"
|
|
type = list(string)
|
|
default = []
|
|
}
|
|
|
|
variable "map_additional_iam_roles" {
|
|
description = "Additional IAM roles to add to `config-map-aws-auth` ConfigMap"
|
|
|
|
type = list(object({
|
|
rolearn = string
|
|
username = string
|
|
groups = list(string)
|
|
}))
|
|
|
|
default = []
|
|
}
|
|
|
|
variable "map_additional_iam_users" {
|
|
description = "Additional IAM users to add to `config-map-aws-auth` ConfigMap"
|
|
|
|
type = list(object({
|
|
userarn = string
|
|
username = string
|
|
groups = list(string)
|
|
}))
|
|
|
|
default = []
|
|
}
|
|
|
|
variable "oidc_provider_enabled" {
|
|
type = bool
|
|
default = false
|
|
description = "Create an IAM OIDC identity provider for the cluster, then you can create IAM roles to associate with a service account in the cluster, instead of using kiam or kube2iam. For more information, see https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html"
|
|
}
|
|
|
|
variable "kubeconfig_path" {
|
|
type = string
|
|
description = "The path to `kubeconfig` file"
|
|
}
|
|
|
|
variable "local_exec_interpreter" {
|
|
type = string
|
|
default = "/bin/bash"
|
|
description = "shell to use for local exec"
|
|
}
|
|
|
|
variable "configmap_auth_template_file" {
|
|
type = string
|
|
default = ""
|
|
description = "Path to `config_auth_template_file`"
|
|
}
|
|
|
|
variable "configmap_auth_file" {
|
|
type = string
|
|
default = ""
|
|
description = "Path to `configmap_auth_file`"
|
|
}
|
|
|
|
variable "install_aws_cli" {
|
|
type = bool
|
|
default = false
|
|
description = "Set to `true` to install AWS CLI if the module is provisioned on workstations where AWS CLI is not installed by default, e.g. Terraform Cloud workers"
|
|
}
|
|
|
|
variable "install_kubectl" {
|
|
type = bool
|
|
default = false
|
|
description = "Set to `true` to install `kubectl` if the module is provisioned on workstations where `kubectl` is not installed by default, e.g. Terraform Cloud workers"
|
|
}
|
|
|
|
variable "kubectl_version" {
|
|
type = string
|
|
default = ""
|
|
description = "`kubectl` version to install. If not specified, the latest version will be used"
|
|
}
|
|
|
|
variable "external_packages_install_path" {
|
|
type = string
|
|
default = ""
|
|
description = "Path to install external packages, e.g. AWS CLI and `kubectl`. Used when the module is provisioned on workstations where the external packages are not installed by default, e.g. Terraform Cloud workers"
|
|
}
|
|
|
|
variable "aws_eks_update_kubeconfig_additional_arguments" {
|
|
type = string
|
|
default = ""
|
|
description = "Additional arguments for `aws eks update-kubeconfig` command, e.g. `--role-arn xxxxxxxxx`. For more info, see https://docs.aws.amazon.com/cli/latest/reference/eks/update-kubeconfig.html"
|
|
}
|
|
|
|
variable "aws_cli_assume_role_arn" {
|
|
type = string
|
|
default = ""
|
|
description = "IAM Role ARN for AWS CLI to assume before calling `aws eks` to update kubeconfig"
|
|
}
|
|
|
|
variable "aws_cli_assume_role_session_name" {
|
|
type = string
|
|
default = ""
|
|
description = "An identifier for the assumed role session when assuming the IAM Role for AWS CLI before calling `aws eks` to update `kubeconfig`"
|
|
}
|
|
|
|
variable "jq_version" {
|
|
type = string
|
|
default = "1.6"
|
|
description = "Version of `jq` to download to extract temporaly credentials after running `aws sts assume-role` if AWS CLI needs to assume role to access the cluster (if variable `aws_cli_assume_role_arn` is set)"
|
|
}
|