cloud-foundation-fabric/modules/compute-mig/variables.tf

132 lines
3.9 KiB
Terraform
Raw Normal View History

/**
* Copyright 2019 Google LLC
*
* Licensed 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 "autoscaler_config" {
description = "Optional autoscaler configuration. Only one of 'cpu_utilization_target' 'load_balancing_utilization_target' or 'metric' can be not null."
type = object({
max_replicas = number
min_replicas = number
cooldown_period = number
cpu_utilization_target = number
load_balancing_utilization_target = number
metric = object({
name = string
single_instance_assignment = number
target = number
type = string # GAUGE, DELTA_PER_SECOND, DELTA_PER_MINUTE
filter = string
})
})
default = null
}
variable "auto_healing_policies" {
description = "Auto-healing policies for this group."
type = object({
health_check = string
initial_delay_sec = number
})
default = null
}
variable "default_version" {
description = "Default application version template. Additional versions can be specified via the `versions` variable."
type = object({
instance_template = string
name = string
})
}
variable "health_check_config" {
description = "Optional auto-created helth check configuration, use the output self-link to set it in the auto healing policy. Refer to examples for usage."
type = object({
type = string # http https tcp ssl http2
check = map(any) # actual health check block attributes
config = map(number) # interval, thresholds, timeout
logging = bool
})
default = null
}
variable "location" {
description = "Compute zone, or region if `regional` is set to true."
type = string
}
variable "name" {
description = "Managed group name."
type = string
}
variable "named_ports" {
description = "Named ports."
type = map(number)
default = null
}
variable "project_id" {
description = "Project id."
type = string
}
variable "regional" {
description = "Use regional instance group. When set, `location` should be set to the region."
type = bool
default = false
}
variable "target_pools" {
description = "Optional list of URLs for target pools to which new instances in the group are added."
type = list(string)
default = []
}
variable "target_size" {
description = "Group target size, leave null when using an autoscaler."
type = number
default = null
}
variable "update_policy" {
description = "Update policy. Type can be 'OPPORTUNISTIC' or 'PROACTIVE', action 'REPLACE' or 'restart', surge type 'fixed' or 'percent'."
type = object({
type = string # OPPORTUNISTIC | PROACTIVE
minimal_action = string # REPLACE | RESTART
min_ready_sec = number
max_surge_type = string # fixed | percent
max_surge = number
max_unavailable_type = string
max_unavailable = number
})
default = null
}
variable "versions" {
description = "Additional application versions, target_type is either 'fixed' or 'percent'."
type = map(object({
instance_template = string
target_type = string # fixed | percent
target_size = number
}))
default = null
}
variable "wait_for_instances" {
description = "Wait for all instances to be created/updated before returning."
type = bool
default = null
}