Merge remote-tracking branch 'origin/master' into fast-dev
This commit is contained in:
@@ -18,7 +18,7 @@
|
||||
|
||||
locals {
|
||||
fleet_clusters = var.fleet_config == null ? {} : {
|
||||
for k, v in var.clusters : k => v.configmanagement_template
|
||||
for k, v in var.clusters : k => v.fleet_config.configmanagement_template
|
||||
if v.fleet_config.register == true
|
||||
}
|
||||
fleet_mcs_enabled = (
|
||||
|
||||
@@ -66,8 +66,9 @@ module "alloydb" {
|
||||
network = module.vpc.id
|
||||
}
|
||||
}
|
||||
instance_name = "db"
|
||||
location = var.region
|
||||
instance_name = "db"
|
||||
location = var.region
|
||||
deletion_protection = false
|
||||
}
|
||||
# tftest modules=3 resources=17 inventory=simple.yaml e2e
|
||||
```
|
||||
@@ -95,6 +96,7 @@ module "alloydb" {
|
||||
node_count = 2
|
||||
}
|
||||
}
|
||||
deletion_protection = false
|
||||
}
|
||||
# tftest modules=1 resources=4 inventory=read_pool.yaml e2e
|
||||
```
|
||||
@@ -118,6 +120,7 @@ module "alloydb" {
|
||||
enabled = true
|
||||
region = "europe-west12"
|
||||
}
|
||||
deletion_protection = false
|
||||
}
|
||||
# tftest modules=1 resources=4 inventory=cross_region_replication.yaml e2e
|
||||
```
|
||||
@@ -141,6 +144,7 @@ module "alloydb" {
|
||||
network_config = {
|
||||
psc_config = { allowed_consumer_projects = [var.project_number] }
|
||||
}
|
||||
deletion_protection = false
|
||||
}
|
||||
# tftest modules=1 resources=2 inventory=psc.yaml e2e
|
||||
```
|
||||
@@ -176,6 +180,7 @@ module "alloydb" {
|
||||
password = "mypassword"
|
||||
}
|
||||
}
|
||||
deletion_protection = false
|
||||
}
|
||||
# tftest modules=1 resources=5 inventory=custom.yaml e2e
|
||||
```
|
||||
@@ -246,6 +251,7 @@ module "alloydb" {
|
||||
encryption_config = {
|
||||
primary_kms_key_name = module.kms.keys.key-regional.id
|
||||
}
|
||||
deletion_protection = false
|
||||
}
|
||||
|
||||
# tftest inventory=cmek.yaml e2e
|
||||
@@ -286,6 +292,7 @@ module "alloydb" {
|
||||
tag_bindings = {
|
||||
env-sandbox = module.org.tag_values["environment/sandbox"].id
|
||||
}
|
||||
deletion_protection = false
|
||||
}
|
||||
# tftest modules=2 resources=7
|
||||
```
|
||||
@@ -295,10 +302,10 @@ module "alloydb" {
|
||||
| name | description | type | required | default |
|
||||
|---|---|:---:|:---:|:---:|
|
||||
| [cluster_name](variables.tf#L81) | Name of the primary cluster. | <code>string</code> | ✓ | |
|
||||
| [instance_name](variables.tf#L177) | Name of primary instance. | <code>string</code> | ✓ | |
|
||||
| [location](variables.tf#L189) | Region or zone of the cluster and instance. | <code>string</code> | ✓ | |
|
||||
| [network_config](variables.tf#L234) | Network configuration for cluster and instance. Only one between psa_config and psc_config can be used. | <code title="object({ psa_config = optional(object({ network = string allocated_ip_range = optional(string) authorized_external_networks = optional(list(string), []) enable_public_ip = optional(bool, false) enable_outbound_public_ip = optional(bool, false) })) psc_config = optional(object({ allowed_consumer_projects = list(string) })) })">object({…})</code> | ✓ | |
|
||||
| [project_id](variables.tf#L269) | The ID of the project where this instances will be created. | <code>string</code> | ✓ | |
|
||||
| [instance_name](variables.tf#L183) | Name of primary instance. | <code>string</code> | ✓ | |
|
||||
| [location](variables.tf#L195) | Region or zone of the cluster and instance. | <code>string</code> | ✓ | |
|
||||
| [network_config](variables.tf#L240) | Network configuration for cluster and instance. Only one between psa_config and psc_config can be used. | <code title="object({ psa_config = optional(object({ network = string allocated_ip_range = optional(string) authorized_external_networks = optional(list(string), []) enable_public_ip = optional(bool, false) enable_outbound_public_ip = optional(bool, false) })) psc_config = optional(object({ allowed_consumer_projects = list(string) })) })">object({…})</code> | ✓ | |
|
||||
| [project_id](variables.tf#L275) | The ID of the project where this instances will be created. | <code>string</code> | ✓ | |
|
||||
| [annotations](variables.tf#L17) | Map FLAG_NAME=>VALUE for annotations which allow client tools to store small amount of arbitrary data. | <code>map(string)</code> | | <code>null</code> |
|
||||
| [automated_backup_configuration](variables.tf#L23) | Automated backup settings for cluster. | <code title="object({ enabled = optional(bool, false) backup_window = optional(string, "1800s") location = optional(string) weekly_schedule = optional(object({ days_of_week = optional(list(string), [ "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY" ]) start_times = optional(object({ hours = optional(number, 23) }), {}) }), {}) retention_count = optional(number, 7) retention_period = optional(string) })">object({…})</code> | | <code>{}</code> |
|
||||
| [availability_type](variables.tf#L58) | Availability type for the primary replica. Either `ZONAL` or `REGIONAL`. | <code>string</code> | | <code>"REGIONAL"</code> |
|
||||
@@ -308,22 +315,23 @@ module "alloydb" {
|
||||
| [cross_region_replication](variables.tf#L97) | Cross region replication config. | <code title="object({ enabled = optional(bool, false) promote_secondary = optional(bool, false) switchover_mode = optional(bool, false) region = optional(string) secondary_cluster_display_name = optional(string) secondary_cluster_name = optional(string) secondary_instance_display_name = optional(string) secondary_instance_name = optional(string) secondary_machine_config = optional(object({ cpu_count = number machine_type = optional(string) })) })">object({…})</code> | | <code>{}</code> |
|
||||
| [database_version](variables.tf#L129) | Database type and version to create. | <code>string</code> | | <code>"POSTGRES_15"</code> |
|
||||
| [deletion_policy](variables.tf#L135) | AlloyDB cluster and instance deletion policy. | <code>string</code> | | <code>null</code> |
|
||||
| [display_name](variables.tf#L141) | AlloyDB instance display name. | <code>string</code> | | <code>null</code> |
|
||||
| [encryption_config](variables.tf#L147) | Set encryption configuration. KMS name format: 'projects/[PROJECT]/locations/[REGION]/keyRings/[RING]/cryptoKeys/[KEY_NAME]'. | <code title="object({ primary_kms_key_name = string secondary_kms_key_name = optional(string) })">object({…})</code> | | <code>null</code> |
|
||||
| [flags](variables.tf#L156) | Map FLAG_NAME=>VALUE for database-specific tuning. | <code>map(string)</code> | | <code>null</code> |
|
||||
| [gce_zone](variables.tf#L162) | The GCE zone that the instance should serve from. This can ONLY be specified for ZONAL instances. If present for a REGIONAL instance, an error will be thrown. | <code>string</code> | | <code>null</code> |
|
||||
| [initial_user](variables.tf#L168) | AlloyDB cluster initial user credentials. | <code title="object({ user = optional(string, "postgres") password = string })">object({…})</code> | | <code>null</code> |
|
||||
| [labels](variables.tf#L183) | Labels to be attached to all instances. | <code>map(string)</code> | | <code>null</code> |
|
||||
| [machine_config](variables.tf#L195) | AlloyDB machine config. | <code title="object({ cpu_count = optional(number, 2) machine_type = optional(string) })">object({…})</code> | | <code>{}</code> |
|
||||
| [maintenance_config](variables.tf#L209) | Set maintenance window configuration. | <code title="object({ enabled = optional(bool, false) day = optional(string, "SUNDAY") start_time = optional(object({ hours = optional(number, 23) }), {}) })">object({…})</code> | | <code>{}</code> |
|
||||
| [prefix](variables.tf#L259) | Optional prefix used to generate instance names. | <code>string</code> | | <code>null</code> |
|
||||
| [project_number](variables.tf#L274) | The project number of the project where this instances will be created. Only used for testing purposes. | <code>string</code> | | <code>null</code> |
|
||||
| [query_insights_config](variables.tf#L280) | Query insights config. | <code title="object({ query_string_length = optional(number, 1024) record_application_tags = optional(bool, true) record_client_address = optional(bool, true) query_plans_per_minute = optional(number, 5) })">object({…})</code> | | <code>{}</code> |
|
||||
| [read_pool](variables.tf#L291) | Map of read pool instances to create in the primary cluster. | <code title="map(object({ display_name = optional(string) node_count = optional(number, 1) flags = optional(map(string)) client_connection_config = optional(object({ require_connectors = optional(bool, false) ssl_config = optional(object({ ssl_mode = string })) })) machine_config = optional(object({ cpu_count = optional(number, 2) machine_type = optional(string) }), {}) network_config = optional(object({ authorized_external_networks = optional(list(string), []) enable_public_ip = optional(bool, false) }), {}) query_insights_config = optional(object({ query_string_length = optional(number, 1024) record_application_tags = optional(bool, true) record_client_address = optional(bool, true) query_plans_per_minute = optional(number, 5) })) }))">map(object({…}))</code> | | <code>{}</code> |
|
||||
| [skip_await_major_version_upgrade](variables.tf#L336) | Set to true to skip awaiting on the major version upgrade of the cluster. | <code>bool</code> | | <code>true</code> |
|
||||
| [subscription_type](variables.tf#L342) | The subscription type of cluster. Possible values are: 'STANDARD' or 'TRIAL'. | <code>string</code> | | <code>"STANDARD"</code> |
|
||||
| [tag_bindings](variables.tf#L348) | Tag bindings for this service, in key => tag value id format. | <code>map(string)</code> | | <code>{}</code> |
|
||||
| [users](variables.tf#L355) | Map of users to create in the primary instance (and replicated to other replicas). Set PASSWORD to null if you want to get an autogenerated password. The user types available are: 'ALLOYDB_BUILT_IN' or 'ALLOYDB_IAM_USER'. | <code title="map(object({ password = optional(string) roles = optional(list(string), ["alloydbsuperuser"]) type = optional(string, "ALLOYDB_BUILT_IN") }))">map(object({…}))</code> | | <code>{}</code> |
|
||||
| [deletion_protection](variables.tf#L141) | Whether Terraform will be prevented from destroying the cluster. When the field is set to true or unset in Terraform state, a terraform apply or terraform destroy that would delete the cluster will fail. When the field is set to false, deleting the cluster is allowed. | <code>bool</code> | | <code>null</code> |
|
||||
| [display_name](variables.tf#L147) | AlloyDB instance display name. | <code>string</code> | | <code>null</code> |
|
||||
| [encryption_config](variables.tf#L153) | Set encryption configuration. KMS name format: 'projects/[PROJECT]/locations/[REGION]/keyRings/[RING]/cryptoKeys/[KEY_NAME]'. | <code title="object({ primary_kms_key_name = string secondary_kms_key_name = optional(string) })">object({…})</code> | | <code>null</code> |
|
||||
| [flags](variables.tf#L162) | Map FLAG_NAME=>VALUE for database-specific tuning. | <code>map(string)</code> | | <code>null</code> |
|
||||
| [gce_zone](variables.tf#L168) | The GCE zone that the instance should serve from. This can ONLY be specified for ZONAL instances. If present for a REGIONAL instance, an error will be thrown. | <code>string</code> | | <code>null</code> |
|
||||
| [initial_user](variables.tf#L174) | AlloyDB cluster initial user credentials. | <code title="object({ user = optional(string, "postgres") password = string })">object({…})</code> | | <code>null</code> |
|
||||
| [labels](variables.tf#L189) | Labels to be attached to all instances. | <code>map(string)</code> | | <code>null</code> |
|
||||
| [machine_config](variables.tf#L201) | AlloyDB machine config. | <code title="object({ cpu_count = optional(number, 2) machine_type = optional(string) })">object({…})</code> | | <code>{}</code> |
|
||||
| [maintenance_config](variables.tf#L215) | Set maintenance window configuration. | <code title="object({ enabled = optional(bool, false) day = optional(string, "SUNDAY") start_time = optional(object({ hours = optional(number, 23) }), {}) })">object({…})</code> | | <code>{}</code> |
|
||||
| [prefix](variables.tf#L265) | Optional prefix used to generate instance names. | <code>string</code> | | <code>null</code> |
|
||||
| [project_number](variables.tf#L280) | The project number of the project where this instances will be created. Only used for testing purposes. | <code>string</code> | | <code>null</code> |
|
||||
| [query_insights_config](variables.tf#L286) | Query insights config. | <code title="object({ query_string_length = optional(number, 1024) record_application_tags = optional(bool, true) record_client_address = optional(bool, true) query_plans_per_minute = optional(number, 5) })">object({…})</code> | | <code>{}</code> |
|
||||
| [read_pool](variables.tf#L297) | Map of read pool instances to create in the primary cluster. | <code title="map(object({ display_name = optional(string) node_count = optional(number, 1) flags = optional(map(string)) client_connection_config = optional(object({ require_connectors = optional(bool, false) ssl_config = optional(object({ ssl_mode = string })) })) machine_config = optional(object({ cpu_count = optional(number, 2) machine_type = optional(string) }), {}) network_config = optional(object({ authorized_external_networks = optional(list(string), []) enable_public_ip = optional(bool, false) }), {}) query_insights_config = optional(object({ query_string_length = optional(number, 1024) record_application_tags = optional(bool, true) record_client_address = optional(bool, true) query_plans_per_minute = optional(number, 5) })) }))">map(object({…}))</code> | | <code>{}</code> |
|
||||
| [skip_await_major_version_upgrade](variables.tf#L342) | Set to true to skip awaiting on the major version upgrade of the cluster. | <code>bool</code> | | <code>true</code> |
|
||||
| [subscription_type](variables.tf#L348) | The subscription type of cluster. Possible values are: 'STANDARD' or 'TRIAL'. | <code>string</code> | | <code>"STANDARD"</code> |
|
||||
| [tag_bindings](variables.tf#L354) | Tag bindings for this service, in key => tag value id format. | <code>map(string)</code> | | <code>{}</code> |
|
||||
| [users](variables.tf#L361) | Map of users to create in the primary instance (and replicated to other replicas). Set PASSWORD to null if you want to get an autogenerated password. The user types available are: 'ALLOYDB_BUILT_IN' or 'ALLOYDB_IAM_USER'. | <code title="map(object({ password = optional(string) roles = optional(list(string), ["alloydbsuperuser"]) type = optional(string, "ALLOYDB_BUILT_IN") }))">map(object({…}))</code> | | <code>{}</code> |
|
||||
|
||||
## Outputs
|
||||
|
||||
|
||||
@@ -61,6 +61,7 @@ resource "google_alloydb_cluster" "primary" {
|
||||
cluster_type = var.cross_region_replication.switchover_mode ? "SECONDARY" : "PRIMARY"
|
||||
database_version = var.database_version
|
||||
deletion_policy = var.deletion_policy
|
||||
deletion_protection = var.deletion_protection
|
||||
display_name = coalesce(var.cluster_display_name, local.primary_cluster_name)
|
||||
labels = var.labels
|
||||
location = var.location
|
||||
|
||||
@@ -138,6 +138,12 @@ variable "deletion_policy" {
|
||||
default = null
|
||||
}
|
||||
|
||||
variable "deletion_protection" {
|
||||
description = "Whether Terraform will be prevented from destroying the cluster. When the field is set to true or unset in Terraform state, a terraform apply or terraform destroy that would delete the cluster will fail. When the field is set to false, deleting the cluster is allowed."
|
||||
type = bool
|
||||
default = null
|
||||
}
|
||||
|
||||
variable "display_name" {
|
||||
description = "AlloyDB instance display name."
|
||||
type = string
|
||||
|
||||
@@ -945,7 +945,7 @@ module "worker" {
|
||||
project_id = var.project_id
|
||||
name = "worker"
|
||||
region = var.region
|
||||
launch_stage = "ALPHA"
|
||||
launch_stage = "BETA"
|
||||
revision = {
|
||||
gpu_zonal_redundancy_disabled = true
|
||||
node_selector = {
|
||||
@@ -985,15 +985,15 @@ module "worker" {
|
||||
| [labels](variables.tf#L130) | Resource labels. | <code>map(string)</code> | | <code>{}</code> |
|
||||
| [launch_stage](variables.tf#L136) | The launch stage as defined by Google Cloud Platform Launch Stages. | <code>string</code> | | <code>null</code> |
|
||||
| [managed_revision](variables.tf#L153) | Whether the Terraform module should control the deployment of revisions. | <code>bool</code> | | <code>true</code> |
|
||||
| [revision](variables.tf#L175) | Revision template configurations. | <code title="object({ gpu_zonal_redundancy_disabled = optional(bool) labels = optional(map(string)) name = optional(string) node_selector = optional(object({ accelerator = string })) vpc_access = optional(object({ connector = optional(string) egress = optional(string) network = optional(string) subnet = optional(string) tags = optional(list(string)) }), {}) timeout = optional(string) })">object({…})</code> | | <code>{}</code> |
|
||||
| [service_account](variables.tf#L235) | Service account email. Unused if service account is auto-created. | <code>string</code> | | <code>null</code> |
|
||||
| [service_account_create](variables.tf#L241) | Auto-create service account. | <code>bool</code> | | <code>false</code> |
|
||||
| [service_config](variables.tf#L247) | Cloud Run service specific configuration options. | <code title="object({ custom_audiences = optional(list(string), null) eventarc_triggers = optional( object({ audit_log = optional(map(object({ method = string service = string }))) pubsub = optional(map(string)) storage = optional(map(object({ bucket = string path = optional(string) }))) service_account_email = optional(string) }), {}) gen2_execution_environment = optional(bool, false) iap_config = optional(object({ iam = optional(list(string), []) iam_additive = optional(list(string), []) }), null) ingress = optional(string, null) invoker_iam_disabled = optional(bool, false) max_concurrency = optional(number) scaling = optional(object({ max_instance_count = optional(number) min_instance_count = optional(number) })) timeout = optional(string) })">object({…})</code> | | <code>{}</code> |
|
||||
| [tag_bindings](variables.tf#L310) | Tag bindings for this service, in key => tag value id format. | <code>map(string)</code> | | <code>{}</code> |
|
||||
| [type](variables.tf#L317) | Type of Cloud Run resource to deploy: JOB, SERVICE or WORKERPOOL. | <code>string</code> | | <code>"SERVICE"</code> |
|
||||
| [volumes](variables.tf#L327) | Named volumes in containers in name => attributes format. | <code title="map(object({ secret = optional(object({ name = string default_mode = optional(string) path = optional(string) version = optional(string) mode = optional(string) })) cloud_sql_instances = optional(list(string)) empty_dir_size = optional(string) gcs = optional(object({ bucket = string is_read_only = optional(bool) })) nfs = optional(object({ server = string path = optional(string) is_read_only = optional(bool) })) }))">map(object({…}))</code> | | <code>{}</code> |
|
||||
| [revision](variables.tf#L175) | Revision template configurations. | <code title="object({ gpu_zonal_redundancy_disabled = optional(bool) labels = optional(map(string)) name = optional(string) node_selector = optional(object({ accelerator = string })) vpc_access = optional(object({ connector = optional(string) egress = optional(string) network = optional(string) subnet = optional(string) tags = optional(list(string)) }), {}) timeout = optional(string) gen2_execution_environment = optional(any) # DEPRECATED job = optional(any) # DEPRECATED max_concurrency = optional(any) # DEPRECATED max_instance_count = optional(any) # DEPRECATED min_instance_count = optional(any) # DEPRECATED })">object({…})</code> | | <code>{}</code> |
|
||||
| [service_account](variables.tf#L236) | Service account email. Unused if service account is auto-created. | <code>string</code> | | <code>null</code> |
|
||||
| [service_account_create](variables.tf#L242) | Auto-create service account. | <code>bool</code> | | <code>false</code> |
|
||||
| [service_config](variables.tf#L248) | Cloud Run service specific configuration options. | <code title="object({ custom_audiences = optional(list(string), null) eventarc_triggers = optional( object({ audit_log = optional(map(object({ method = string service = string }))) pubsub = optional(map(string)) storage = optional(map(object({ bucket = string path = optional(string) }))) service_account_email = optional(string) }), {}) gen2_execution_environment = optional(bool, false) iap_config = optional(object({ iam = optional(list(string), []) iam_additive = optional(list(string), []) }), null) ingress = optional(string, null) invoker_iam_disabled = optional(bool, false) max_concurrency = optional(number) scaling = optional(object({ max_instance_count = optional(number) min_instance_count = optional(number) })) timeout = optional(string) })">object({…})</code> | | <code>{}</code> |
|
||||
| [tag_bindings](variables.tf#L311) | Tag bindings for this service, in key => tag value id format. | <code>map(string)</code> | | <code>{}</code> |
|
||||
| [type](variables.tf#L318) | Type of Cloud Run resource to deploy: JOB, SERVICE or WORKERPOOL. | <code>string</code> | | <code>"SERVICE"</code> |
|
||||
| [volumes](variables.tf#L328) | Named volumes in containers in name => attributes format. | <code title="map(object({ secret = optional(object({ name = string default_mode = optional(string) path = optional(string) version = optional(string) mode = optional(string) })) cloud_sql_instances = optional(list(string)) empty_dir_size = optional(string) gcs = optional(object({ bucket = string is_read_only = optional(bool) })) nfs = optional(object({ server = string path = optional(string) is_read_only = optional(bool) })) }))">map(object({…}))</code> | | <code>{}</code> |
|
||||
| [vpc_connector_create](variables-vpcconnector.tf#L17) | Populate this to create a Serverless VPC Access connector. | <code title="object({ ip_cidr_range = optional(string) machine_type = optional(string) name = optional(string) network = optional(string) instances = optional(object({ max = optional(number) min = optional(number) }), {} ) throughput = optional(object({ max = optional(number) min = optional(number) }), {} ) subnet = optional(object({ name = optional(string) project_id = optional(string) }), {}) })">object({…})</code> | | <code>null</code> |
|
||||
| [workerpool_config](variables.tf#L361) | Cloud Run Worker Pool specific configuration. | <code title="object({ scaling = optional(object({ manual_instance_count = optional(number) max_instance_count = optional(number) min_instance_count = optional(number) mode = optional(string) })) })">object({…})</code> | | <code>{}</code> |
|
||||
| [workerpool_config](variables.tf#L362) | Cloud Run Worker Pool specific configuration. | <code title="object({ scaling = optional(object({ manual_instance_count = optional(number) max_instance_count = optional(number) min_instance_count = optional(number) mode = optional(string) })) })">object({…})</code> | | <code>{}</code> |
|
||||
|
||||
## Outputs
|
||||
|
||||
|
||||
@@ -189,34 +189,35 @@ variable "revision" {
|
||||
tags = optional(list(string))
|
||||
}), {})
|
||||
timeout = optional(string)
|
||||
# deprecated fields
|
||||
gen2_execution_environment = optional(any) # DEPRECATED
|
||||
job = optional(any) # DEPRECATED
|
||||
max_concurrency = optional(any) # DEPRECATED
|
||||
max_instance_count = optional(any) # DEPRECATED
|
||||
min_instance_count = optional(any) # DEPRECATED
|
||||
})
|
||||
default = {}
|
||||
nullable = false
|
||||
validation {
|
||||
condition = !contains(keys(var.revision), "gen2_execution_environment")
|
||||
error_message = "Field gen2_execution_environment moved to var.service_config."
|
||||
condition = lookup(var.revision, "gen2_execution_environment", null) == null
|
||||
error_message = "Field gen2_execution_environment has moved to var.service_config."
|
||||
}
|
||||
validation {
|
||||
condition = !contains(keys(var.revision), "max_concurrency")
|
||||
error_message = "Field max_concurrency moved to var.service_config."
|
||||
condition = lookup(var.revision, "job", null) == null
|
||||
error_message = "Field job has moved to var.job_config."
|
||||
}
|
||||
validation {
|
||||
condition = !contains(keys(var.revision), "max_concurrency")
|
||||
error_message = "Field max_concurrency moved to var.service_config."
|
||||
condition = lookup(var.revision, "max_concurrency", null) == null
|
||||
error_message = "Field max_concurrency has moved to var.service_config."
|
||||
}
|
||||
validation {
|
||||
condition = !contains(keys(var.revision), "max_instance_count")
|
||||
error_message = "Field max_instance_count moved to var.service_config."
|
||||
condition = lookup(var.revision, "max_instance_count", null) == null
|
||||
error_message = "Field max_instance_count has moved to var.service_config."
|
||||
}
|
||||
validation {
|
||||
condition = !contains(keys(var.revision), "min_instance_count")
|
||||
error_message = "Field min_instance_count moved to var.service_config."
|
||||
condition = lookup(var.revision, "min_instance_count", null) == null
|
||||
error_message = "Field min_instance_count has moved to var.service_config."
|
||||
}
|
||||
validation {
|
||||
condition = !contains(keys(var.revision), "job")
|
||||
error_message = "Field job moved to var.job_config."
|
||||
}
|
||||
|
||||
validation {
|
||||
condition = (
|
||||
try(var.revision.vpc_access.egress, null) == null ? true : contains(
|
||||
|
||||
Reference in New Issue
Block a user