2020-04-30 08:08:18 -07:00
/ * *
2021-02-15 00:38:10 -08:00
* Copyright 2021 Google LLC
2020-04-30 08:08:18 -07:00
*
* 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 .
* /
2021-10-08 09:26:04 -07:00
variable " auto_healing_policies " {
description = " Auto-healing policies for this group. "
type = object ( {
health_check = string
initial_delay_sec = number
} )
default = null
}
2020-04-30 08:08:18 -07:00
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 " 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 " {
2020-05-06 22:37:15 -07:00
description = " Optional auto-created health check configuration, use the output self-link to set it in the auto healing policy. Refer to examples for usage. "
2020-04-30 08:08:18 -07:00
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
}