deployment/terraform/aws/modules/keycloak/variables.tf (187 lines of code) (raw):
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
variable "alb_certificate_arn" {
description = "ACM certificate ARN used by ALB"
type = string
}
variable "alb_destroy_log_bucket" {
description = "Destroy ALB log bucket on teardown"
type = bool
}
variable "rds_source_region" {
description = "Region of primary RDS cluster (needed to support encryption)"
type = string
}
variable "container_cpu_units" {
description = "CPU units to reserve for container (1024 units == 1 CPU)"
type = number
}
variable "container_memory_limit" {
description = "Container memory hard limit"
type = number
}
variable "container_memory_reserved" {
description = "Container memory starting reservation"
type = number
}
variable "container_port" {
description = "Keycloak port exposed in container"
type = number
}
variable "db_allowed_cidr_blocks" {
description = "List of CIDR blocks allowed to access DB cluster"
type = list(string)
default = []
}
variable "db_backup_retention_days" {
description = "How long Database backups are retained"
type = number
}
variable "db_backup_window" {
description = "Daily time range during which backups happen"
type = string
}
variable "db_cluster_family" {
description = "Family of DB cluster parameter group"
type = string
}
variable "db_cluster_size" {
description = "Number of RDS cluster instances"
type = number
}
variable "db_engine_version" {
description = "Version of DB engine to use"
type = string
}
variable "db_instance_type" {
description = "Instance type used for RDS instances"
type = string
}
variable "db_maintenance_window" {
description = "Weekly time range during which system maintenance can occur (UTC)"
type = string
}
variable "deletion_protection" {
description = "Protect resources from being deleted"
type = bool
}
variable "deployment_maximum_percent" {
description = "Maximum task instances allowed to run"
type = number
}
variable "deployment_minimum_healthy_percent" {
description = "Minimum percentage of healthy task instances"
type = number
}
variable "desired_count" {
description = "Number of ECS task instances to run"
type = number
}
variable "dns_name" {
description = "Keycloak DNS"
type = string
}
variable "dns_zone_id" {
description = "Route53 Zone ID hosting Keycloak"
type = string
}
variable "encryption_configuration" {
type = object({
encryption_type = string
kms_key = any
})
description = "ECR encryption configuration"
}
variable "environment" {
description = "Environment name (development, production, etc)"
type = string
}
variable "http_redirect" {
description = "Controls whether port 80 should redirect to 443 (or not listen)"
type = bool
}
variable "http_ingress_cidr_blocks" {
description = "CIDR ranges allowed to connect to service port 80"
type = list(string)
}
variable "https_ingress_cidr_blocks" {
description = "CIDR ranges allowed to connect to service port 443"
type = list(string)
}
variable "internal" {
description = "Whether environment should be exposed to Internet (if not using network module)"
type = bool
}
variable "jvm_heap_min" {
description = "Minimum JVM heap size for application in MB"
type = number
}
variable "jvm_heap_max" {
description = "Maximum JVM heap size for application in MB"
type = number
}
variable "jvm_meta_min" {
description = "Minimum JVM meta space size for application in MB"
type = number
}
variable "jvm_meta_max" {
description = "Maximum JVM meta space size for application in MB"
type = number
}
variable "log_retention_days" {
description = "Log retention for CloudWatch logs"
type = number
}
variable "name" {
description = "Used by modules to construct labels"
type = string
}
variable "namespace" {
description = "Used by modules to construct labels"
type = string
}
variable "private_subnet_ids" {
description = "List of private subnet IDs"
type = list(string)
}
variable "private_subnet_cidrs" {
description = "List of private subnet CIDR ranges"
type = list(string)
}
variable "public_subnet_ids" {
description = "List of public subnet IDs"
type = list(string)
}
variable "region" {
description = "AWS region to target"
type = string
}
variable "route_table_ids" {
description = "List of route tables used by s3 VPC endpoint (if not using network module)"
type = list(string)
}
variable "stickiness" {
type = object({
cookie_duration = number
enabled = bool
})
description = "Target group sticky configuration"
}
variable "tags" {
description = "Default tags applied to resources"
type = map(string)
}
variable "vpc_id" {
description = "AWS VPC ID"
type = string
}
variable "ecr_repository_name" {
description = "Name of the ECR Repository"
default = "keycloak"
}
variable "docker_image_name" {
description = "Name of the Docker Image"
default = "keycloak-custos"
}
variable "docker_image_tag" {
description = "The Version Tag for the Docker Image"
default = "latest"
}