fix(workstation-cluster): allow private_cluster_config to be null (#3821)
Fixes #3819 by changing the default of `private_cluster_config` to `null` instead of an empty object, preventing the module from unintentionally generating an empty `private_cluster_config` block and treating the cluster as private when it wasn't requested.
This commit is contained in:
committed by
GitHub
parent
c313502c96
commit
ee8ae023d0
@@ -175,15 +175,15 @@ module "workstation-cluster" {
|
||||
| [id](variables.tf#L59) | Workstation cluster ID. | <code>string</code> | ✓ | |
|
||||
| [location](variables.tf#L70) | Location. | <code>string</code> | ✓ | |
|
||||
| [network_config](variables.tf#L75) | Network configuration. | <code title="object({ network = string subnetwork = string })">object({…})</code> | ✓ | |
|
||||
| [project_id](variables.tf#L93) | Cluster ID. | <code>string</code> | ✓ | |
|
||||
| [project_id](variables.tf#L92) | Cluster ID. | <code>string</code> | ✓ | |
|
||||
| [annotations](variables.tf#L17) | Workstation cluster annotations. | <code>map(string)</code> | | <code>{}</code> |
|
||||
| [context](variables.tf#L23) | Context-specific interpolations. | <code title="object({ condition_vars = optional(map(map(string)), {}) custom_roles = optional(map(string), {}) iam_principals = optional(map(string), {}) locations = optional(map(string), {}) networks = optional(map(string), {}) project_ids = optional(map(string), {}) subnetworks = optional(map(string), {}) })">object({…})</code> | | <code>{}</code> |
|
||||
| [display_name](variables.tf#L38) | Display name. | <code>string</code> | | <code>null</code> |
|
||||
| [domain](variables.tf#L44) | Domain. | <code>string</code> | | <code>null</code> |
|
||||
| [factories_config](variables.tf#L50) | Path to folder with YAML resource description data files. | <code title="object({ workstation_configs = optional(string) })">object({…})</code> | | <code>{}</code> |
|
||||
| [labels](variables.tf#L64) | Workstation cluster labels. | <code>map(string)</code> | | <code>{}</code> |
|
||||
| [private_cluster_config](variables.tf#L83) | Private cluster config. | <code title="object({ enable_private_endpoint = optional(bool, false) allowed_projects = optional(list(string)) })">object({…})</code> | | <code>{}</code> |
|
||||
| [workstation_configs](variables.tf#L98) | Workstation configurations. | <code title="map(object({ annotations = optional(map(string)) display_name = optional(string) enable_audit_agent = optional(bool) labels = optional(map(string)) max_workstations = optional(number) replica_zones = optional(list(string)) container = optional(object({ args = optional(list(string), []) command = optional(list(string), []) env = optional(map(string), {}) image = optional(string) run_as_user = optional(string) working_dir = optional(string) })) encryption_key = optional(object({ kms_key = string kms_key_service_account = string })) gce_instance = optional(object({ boot_disk_size_gb = optional(number) disable_public_ip_addresses = optional(bool, false) enable_confidential_compute = optional(bool, false) enable_nested_virtualization = optional(bool, false) machine_type = optional(string) pool_size = optional(number) service_account = optional(string) service_account_scopes = optional(list(string), []) tags = optional(list(string)) accelerators = optional(list(object({ type = optional(string) count = optional(number) })), []) shielded_instance_config = optional(object({ enable_secure_boot = optional(bool, false) enable_vtpm = optional(bool, false) enable_integrity_monitoring = optional(bool, false) })) })) iam = optional(map(list(string)), {}) iam_bindings = optional(map(object({ role = string members = list(string) })), {}) iam_bindings_additive = optional(map(object({ role = string member = string })), {}) persistent_directories = optional(list(object({ mount_path = optional(string) gce_pd = optional(object({ size_gb = optional(number) fs_type = optional(string) disk_type = optional(string) source_snapshot = optional(string) reclaim_policy = optional(string) })) })), []) timeouts = optional(object({ idle = optional(number) running = optional(number) }), {}) workstations = optional(map(object({ annotations = optional(map(string)) display_name = optional(string) env = optional(map(string)) iam = optional(map(list(string)), {}) iam_bindings = optional(map(object({ role = string members = list(string) })), {}) iam_bindings_additive = optional(map(object({ role = string member = string })), {}) labels = optional(map(string)) })), {}) }))">map(object({…}))</code> | | <code>{}</code> |
|
||||
| [private_cluster_config](variables.tf#L83) | Private cluster config. | <code title="object({ enable_private_endpoint = optional(bool, false) allowed_projects = optional(list(string)) })">object({…})</code> | | <code>null</code> |
|
||||
| [workstation_configs](variables.tf#L97) | Workstation configurations. | <code title="map(object({ annotations = optional(map(string)) display_name = optional(string) enable_audit_agent = optional(bool) labels = optional(map(string)) max_workstations = optional(number) replica_zones = optional(list(string)) container = optional(object({ args = optional(list(string), []) command = optional(list(string), []) env = optional(map(string), {}) image = optional(string) run_as_user = optional(string) working_dir = optional(string) })) encryption_key = optional(object({ kms_key = string kms_key_service_account = string })) gce_instance = optional(object({ boot_disk_size_gb = optional(number) disable_public_ip_addresses = optional(bool, false) enable_confidential_compute = optional(bool, false) enable_nested_virtualization = optional(bool, false) machine_type = optional(string) pool_size = optional(number) service_account = optional(string) service_account_scopes = optional(list(string), []) tags = optional(list(string)) accelerators = optional(list(object({ type = optional(string) count = optional(number) })), []) shielded_instance_config = optional(object({ enable_secure_boot = optional(bool, false) enable_vtpm = optional(bool, false) enable_integrity_monitoring = optional(bool, false) })) })) iam = optional(map(list(string)), {}) iam_bindings = optional(map(object({ role = string members = list(string) })), {}) iam_bindings_additive = optional(map(object({ role = string member = string })), {}) persistent_directories = optional(list(object({ mount_path = optional(string) gce_pd = optional(object({ size_gb = optional(number) fs_type = optional(string) disk_type = optional(string) source_snapshot = optional(string) reclaim_policy = optional(string) })) })), []) timeouts = optional(object({ idle = optional(number) running = optional(number) }), {}) workstations = optional(map(object({ annotations = optional(map(string)) display_name = optional(string) env = optional(map(string)) iam = optional(map(list(string)), {}) iam_bindings = optional(map(object({ role = string members = list(string) })), {}) iam_bindings_additive = optional(map(object({ role = string member = string })), {}) labels = optional(map(string)) })), {}) }))">map(object({…}))</code> | | <code>{}</code> |
|
||||
|
||||
## Outputs
|
||||
|
||||
|
||||
@@ -86,8 +86,7 @@ variable "private_cluster_config" {
|
||||
enable_private_endpoint = optional(bool, false)
|
||||
allowed_projects = optional(list(string))
|
||||
})
|
||||
nullable = false
|
||||
default = {}
|
||||
default = null
|
||||
}
|
||||
|
||||
variable "project_id" {
|
||||
|
||||
@@ -41,8 +41,7 @@ values:
|
||||
labels: null
|
||||
location: europe-west8
|
||||
network: projects/foo-dev-net-spoke-0/global/networks/dev-spoke-0
|
||||
private_cluster_config:
|
||||
- enable_private_endpoint: false
|
||||
private_cluster_config: []
|
||||
project: dev-test-0
|
||||
subnetwork: projects/foo-dev-net-spoke-0/regions/europe-west8/subnetworks/default
|
||||
tags: null
|
||||
|
||||
@@ -36,8 +36,7 @@ values:
|
||||
labels: null
|
||||
location: europe-west8
|
||||
network: https://www.googleapis.com/compute/v1/projects/xxx/global/networks/aaa
|
||||
private_cluster_config:
|
||||
- enable_private_endpoint: false
|
||||
private_cluster_config: []
|
||||
project: project-id
|
||||
subnetwork: subnet_self_link
|
||||
timeouts: null
|
||||
|
||||
@@ -37,8 +37,7 @@ values:
|
||||
labels: null
|
||||
location: europe-west8
|
||||
network: https://www.googleapis.com/compute/v1/projects/xxx/global/networks/aaa
|
||||
private_cluster_config:
|
||||
- enable_private_endpoint: false
|
||||
private_cluster_config: []
|
||||
project: project-id
|
||||
subnetwork: subnet_self_link
|
||||
timeouts: null
|
||||
|
||||
@@ -36,8 +36,7 @@ values:
|
||||
labels: null
|
||||
location: europe-west8
|
||||
network: https://www.googleapis.com/compute/v1/projects/xxx/global/networks/aaa
|
||||
private_cluster_config:
|
||||
- enable_private_endpoint: false
|
||||
private_cluster_config: []
|
||||
project: project-id
|
||||
subnetwork: subnet_self_link
|
||||
timeouts: null
|
||||
|
||||
Reference in New Issue
Block a user