Fix variable/output sort check
This commit is contained in:
@@ -29,19 +29,19 @@ module "neg" {
|
||||
|
||||
| name | description | type | required | default |
|
||||
|---|---|:---:|:---:|:---:|
|
||||
| [endpoints](variables.tf#L42) | List of (instance, port, address) of the NEG. | <code title="list(object({ instance = string port = number ip_address = string }))">list(object({…}))</code> | ✓ | |
|
||||
| [name](variables.tf#L22) | NEG name. | <code>string</code> | ✓ | |
|
||||
| [network](variables.tf#L27) | Name or self link of the VPC used for the NEG. Use the self link for Shared VPC. | <code>string</code> | ✓ | |
|
||||
| [project_id](variables.tf#L17) | NEG project id. | <code>string</code> | ✓ | |
|
||||
| [subnetwork](variables.tf#L32) | VPC subnetwork name or self link. | <code>string</code> | ✓ | |
|
||||
| [zone](variables.tf#L37) | NEG zone. | <code>string</code> | ✓ | |
|
||||
| [endpoints](variables.tf#L17) | List of (instance, port, address) of the NEG. | <code title="list(object({ instance = string port = number ip_address = string }))">list(object({…}))</code> | ✓ | |
|
||||
| [name](variables.tf#L26) | NEG name. | <code>string</code> | ✓ | |
|
||||
| [network](variables.tf#L31) | Name or self link of the VPC used for the NEG. Use the self link for Shared VPC. | <code>string</code> | ✓ | |
|
||||
| [project_id](variables.tf#L36) | NEG project id. | <code>string</code> | ✓ | |
|
||||
| [subnetwork](variables.tf#L41) | VPC subnetwork name or self link. | <code>string</code> | ✓ | |
|
||||
| [zone](variables.tf#L46) | NEG zone. | <code>string</code> | ✓ | |
|
||||
|
||||
## Outputs
|
||||
|
||||
| name | description | sensitive |
|
||||
|---|---|:---:|
|
||||
| [id](outputs.tf#L17) | Network endpoint group ID. | |
|
||||
| [self_lnk](outputs.tf#L27) | Network endpoint group self link. | |
|
||||
| [size](outputs.tf#L22) | Size of the network endpoint group. | |
|
||||
| [self_lnk](outputs.tf#L22) | Network endpoint group self link. | |
|
||||
| [size](outputs.tf#L27) | Size of the network endpoint group. | |
|
||||
|
||||
<!-- END TFDOC -->
|
||||
|
||||
@@ -19,12 +19,12 @@ output "id" {
|
||||
value = google_compute_network_endpoint_group.group.name
|
||||
}
|
||||
|
||||
output "size" {
|
||||
description = "Size of the network endpoint group."
|
||||
value = google_compute_network_endpoint_group.group.size
|
||||
}
|
||||
|
||||
output "self_lnk" {
|
||||
description = "Network endpoint group self link."
|
||||
value = google_compute_network_endpoint_group.group.self_link
|
||||
}
|
||||
|
||||
output "size" {
|
||||
description = "Size of the network endpoint group."
|
||||
value = google_compute_network_endpoint_group.group.size
|
||||
}
|
||||
|
||||
@@ -14,9 +14,13 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
variable "project_id" {
|
||||
description = "NEG project id."
|
||||
type = string
|
||||
variable "endpoints" {
|
||||
description = "List of (instance, port, address) of the NEG."
|
||||
type = list(object({
|
||||
instance = string
|
||||
port = number
|
||||
ip_address = string
|
||||
}))
|
||||
}
|
||||
|
||||
variable "name" {
|
||||
@@ -29,6 +33,11 @@ variable "network" {
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "project_id" {
|
||||
description = "NEG project id."
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "subnetwork" {
|
||||
description = "VPC subnetwork name or self link."
|
||||
type = string
|
||||
@@ -38,12 +47,3 @@ variable "zone" {
|
||||
description = "NEG zone."
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "endpoints" {
|
||||
description = "List of (instance, port, address) of the NEG."
|
||||
type = list(object({
|
||||
instance = string
|
||||
port = number
|
||||
ip_address = string
|
||||
}))
|
||||
}
|
||||
|
||||
@@ -141,22 +141,22 @@ module "apigee" {
|
||||
|
||||
| name | description | type | required | default |
|
||||
|---|---|:---:|:---:|:---:|
|
||||
| [project_id](variables.tf#L17) | Project ID. | <code>string</code> | ✓ | |
|
||||
| [envgroups](variables.tf#L36) | Environment groups (NAME => [HOSTNAMES]). | <code>map(list(string))</code> | | <code>null</code> |
|
||||
| [environments](variables.tf#L42) | Environments. | <code title="map(object({ display_name = optional(string) description = optional(string, "Terraform-managed") node_config = optional(object({ min_node_count = optional(number) max_node_count = optional(number) current_aggregate_node_count = number })) iam = optional(map(list(string))) envgroups = list(string) }))">map(object({…}))</code> | | <code>null</code> |
|
||||
| [instances](variables.tf#L58) | Instance. | <code title="map(object({ display_name = optional(string) description = optional(string, "Terraform-managed") region = string environments = list(string) psa_ip_cidr_range = string disk_encryption_key = optional(string) consumer_accept_list = optional(list(string)) }))">map(object({…}))</code> | | <code>null</code> |
|
||||
| [organization](variables.tf#L22) | Apigee organization. If set to null the organization must already exist. | <code title="object({ display_name = optional(string) description = optional(string, "Terraform-managed") authorized_network = optional(string) runtime_type = optional(string, "CLOUD") billing_type = optional(string) database_encryption_key = optional(string) analytics_region = optional(string, "europe-west1") })">object({…})</code> | | <code>null</code> |
|
||||
| [project_id](variables.tf#L68) | Project ID. | <code>string</code> | ✓ | |
|
||||
| [envgroups](variables.tf#L18) | Environment groups (NAME => [HOSTNAMES]). | <code>map(list(string))</code> | | <code>null</code> |
|
||||
| [environments](variables.tf#L24) | Environments. | <code title="map(object({ display_name = optional(string) description = optional(string, "Terraform-managed") node_config = optional(object({ min_node_count = optional(number) max_node_count = optional(number) current_aggregate_node_count = number })) iam = optional(map(list(string))) envgroups = list(string) }))">map(object({…}))</code> | | <code>null</code> |
|
||||
| [instances](variables.tf#L40) | Instance. | <code title="map(object({ display_name = optional(string) description = optional(string, "Terraform-managed") region = string environments = list(string) psa_ip_cidr_range = string disk_encryption_key = optional(string) consumer_accept_list = optional(list(string)) }))">map(object({…}))</code> | | <code>null</code> |
|
||||
| [organization](variables.tf#L54) | Apigee organization. If set to null the organization must already exist. | <code title="object({ display_name = optional(string) description = optional(string, "Terraform-managed") authorized_network = optional(string) runtime_type = optional(string, "CLOUD") billing_type = optional(string) database_encryption_key = optional(string) analytics_region = optional(string, "europe-west1") })">object({…})</code> | | <code>null</code> |
|
||||
|
||||
## Outputs
|
||||
|
||||
| name | description | sensitive |
|
||||
|---|---|:---:|
|
||||
| [envgroups](outputs.tf#L32) | Environment groups. | |
|
||||
| [environments](outputs.tf#L37) | Environment. | |
|
||||
| [instances](outputs.tf#L42) | Instances | |
|
||||
| [org_id](outputs.tf#L22) | Organization ID. | |
|
||||
| [org_name](outputs.tf#L27) | Organization name. | |
|
||||
| [organization](outputs.tf#L17) | Organization. | |
|
||||
| [envgroups](outputs.tf#L17) | Environment groups. | |
|
||||
| [environments](outputs.tf#L22) | Environment. | |
|
||||
| [instances](outputs.tf#L27) | Instances | |
|
||||
| [org_id](outputs.tf#L32) | Organization ID. | |
|
||||
| [org_name](outputs.tf#L37) | Organization name. | |
|
||||
| [organization](outputs.tf#L42) | Organization. | |
|
||||
| [service_attachments](outputs.tf#L47) | Service attachments. | |
|
||||
|
||||
<!-- END TFDOC -->
|
||||
|
||||
@@ -14,21 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
output "organization" {
|
||||
description = "Organization."
|
||||
value = try(google_apigee_organization.organization[0], null)
|
||||
}
|
||||
|
||||
output "org_id" {
|
||||
description = "Organization ID."
|
||||
value = local.org_id
|
||||
}
|
||||
|
||||
output "org_name" {
|
||||
description = "Organization name."
|
||||
value = try(google_apigee_organization.organization[0].name, var.project_id)
|
||||
}
|
||||
|
||||
output "envgroups" {
|
||||
description = "Environment groups."
|
||||
value = try(google_apigee_envgroup.envgroups, null)
|
||||
@@ -44,6 +29,21 @@ output "instances" {
|
||||
value = try(google_apigee_instance.instances, null)
|
||||
}
|
||||
|
||||
output "org_id" {
|
||||
description = "Organization ID."
|
||||
value = local.org_id
|
||||
}
|
||||
|
||||
output "org_name" {
|
||||
description = "Organization name."
|
||||
value = try(google_apigee_organization.organization[0].name, var.project_id)
|
||||
}
|
||||
|
||||
output "organization" {
|
||||
description = "Organization."
|
||||
value = try(google_apigee_organization.organization[0], null)
|
||||
}
|
||||
|
||||
output "service_attachments" {
|
||||
description = "Service attachments."
|
||||
value = { for k, v in google_apigee_instance.instances : k => v.service_attachment }
|
||||
|
||||
@@ -14,24 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
variable "project_id" {
|
||||
description = "Project ID."
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "organization" {
|
||||
description = "Apigee organization. If set to null the organization must already exist."
|
||||
type = object({
|
||||
display_name = optional(string)
|
||||
description = optional(string, "Terraform-managed")
|
||||
authorized_network = optional(string)
|
||||
runtime_type = optional(string, "CLOUD")
|
||||
billing_type = optional(string)
|
||||
database_encryption_key = optional(string)
|
||||
analytics_region = optional(string, "europe-west1")
|
||||
})
|
||||
default = null
|
||||
}
|
||||
|
||||
variable "envgroups" {
|
||||
description = "Environment groups (NAME => [HOSTNAMES])."
|
||||
@@ -68,3 +50,22 @@ variable "instances" {
|
||||
}))
|
||||
default = null
|
||||
}
|
||||
|
||||
variable "organization" {
|
||||
description = "Apigee organization. If set to null the organization must already exist."
|
||||
type = object({
|
||||
display_name = optional(string)
|
||||
description = optional(string, "Terraform-managed")
|
||||
authorized_network = optional(string)
|
||||
runtime_type = optional(string, "CLOUD")
|
||||
billing_type = optional(string)
|
||||
database_encryption_key = optional(string)
|
||||
analytics_region = optional(string, "europe-west1")
|
||||
})
|
||||
default = null
|
||||
}
|
||||
|
||||
variable "project_id" {
|
||||
description = "Project ID."
|
||||
type = string
|
||||
}
|
||||
|
||||
@@ -61,19 +61,19 @@ module "binauthz" {
|
||||
|
||||
| name | description | type | required | default |
|
||||
|---|---|:---:|:---:|:---:|
|
||||
| [project_id](variables.tf#L17) | Project ID. | <code>string</code> | ✓ | |
|
||||
| [admission_whitelist_patterns](variables.tf#L28) | An image name pattern to allowlist | <code>list(string)</code> | | <code>null</code> |
|
||||
| [attestors_config](variables.tf#L58) | Attestors configuration | <code title="map(object({ note_reference = string iam = map(list(string)) pgp_public_keys = list(string) pkix_public_keys = list(object({ id = string public_key_pem = string signature_algorithm = string })) }))">map(object({…}))</code> | | <code>null</code> |
|
||||
| [cluster_admission_rules](variables.tf#L48) | Admission rules | <code title="map(object({ evaluation_mode = string enforcement_mode = string attestors = list(string) }))">map(object({…}))</code> | | <code>null</code> |
|
||||
| [default_admission_rule](variables.tf#L34) | Default admission rule | <code title="object({ evaluation_mode = string enforcement_mode = string attestors = list(string) })">object({…})</code> | | <code title="{ evaluation_mode = "ALWAYS_ALLOW" enforcement_mode = "ENFORCED_BLOCK_AND_AUDIT_LOG" attestors = null }">{…}</code> |
|
||||
| [global_policy_evaluation_mode](variables.tf#L22) | Global policy evaluation mode. | <code>string</code> | | <code>null</code> |
|
||||
| [project_id](variables.tf#L68) | Project ID. | <code>string</code> | ✓ | |
|
||||
| [admission_whitelist_patterns](variables.tf#L17) | An image name pattern to allowlist | <code>list(string)</code> | | <code>null</code> |
|
||||
| [attestors_config](variables.tf#L23) | Attestors configuration | <code title="map(object({ note_reference = string iam = map(list(string)) pgp_public_keys = list(string) pkix_public_keys = list(object({ id = string public_key_pem = string signature_algorithm = string })) }))">map(object({…}))</code> | | <code>null</code> |
|
||||
| [cluster_admission_rules](variables.tf#L38) | Admission rules | <code title="map(object({ evaluation_mode = string enforcement_mode = string attestors = list(string) }))">map(object({…}))</code> | | <code>null</code> |
|
||||
| [default_admission_rule](variables.tf#L48) | Default admission rule | <code title="object({ evaluation_mode = string enforcement_mode = string attestors = list(string) })">object({…})</code> | | <code title="{ evaluation_mode = "ALWAYS_ALLOW" enforcement_mode = "ENFORCED_BLOCK_AND_AUDIT_LOG" attestors = null }">{…}</code> |
|
||||
| [global_policy_evaluation_mode](variables.tf#L62) | Global policy evaluation mode. | <code>string</code> | | <code>null</code> |
|
||||
|
||||
## Outputs
|
||||
|
||||
| name | description | sensitive |
|
||||
|---|---|:---:|
|
||||
| [attestors](outputs.tf#L22) | Attestors. | |
|
||||
| [id](outputs.tf#L17) | Binary Authorization policy ID | |
|
||||
| [attestors](outputs.tf#L17) | Attestors. | |
|
||||
| [id](outputs.tf#L25) | Binary Authorization policy ID | |
|
||||
| [notes](outputs.tf#L30) | Notes. | |
|
||||
|
||||
<!-- END TFDOC -->
|
||||
|
||||
@@ -14,11 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
output "id" {
|
||||
description = "Binary Authorization policy ID"
|
||||
value = google_binary_authorization_policy.policy.id
|
||||
}
|
||||
|
||||
output "attestors" {
|
||||
description = "Attestors."
|
||||
value = google_binary_authorization_attestor.attestors
|
||||
@@ -27,6 +22,11 @@ output "attestors" {
|
||||
]
|
||||
}
|
||||
|
||||
output "id" {
|
||||
description = "Binary Authorization policy ID"
|
||||
value = google_binary_authorization_policy.policy.id
|
||||
}
|
||||
|
||||
output "notes" {
|
||||
description = "Notes."
|
||||
value = google_container_analysis_note.notes
|
||||
|
||||
@@ -14,47 +14,12 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
variable "project_id" {
|
||||
description = "Project ID."
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "global_policy_evaluation_mode" {
|
||||
description = "Global policy evaluation mode."
|
||||
type = string
|
||||
default = null
|
||||
}
|
||||
|
||||
variable "admission_whitelist_patterns" {
|
||||
description = "An image name pattern to allowlist"
|
||||
type = list(string)
|
||||
default = null
|
||||
}
|
||||
|
||||
variable "default_admission_rule" {
|
||||
description = "Default admission rule"
|
||||
type = object({
|
||||
evaluation_mode = string
|
||||
enforcement_mode = string
|
||||
attestors = list(string)
|
||||
})
|
||||
default = {
|
||||
evaluation_mode = "ALWAYS_ALLOW"
|
||||
enforcement_mode = "ENFORCED_BLOCK_AND_AUDIT_LOG"
|
||||
attestors = null
|
||||
}
|
||||
}
|
||||
|
||||
variable "cluster_admission_rules" {
|
||||
description = "Admission rules"
|
||||
type = map(object({
|
||||
evaluation_mode = string
|
||||
enforcement_mode = string
|
||||
attestors = list(string)
|
||||
}))
|
||||
default = null
|
||||
}
|
||||
|
||||
variable "attestors_config" {
|
||||
description = "Attestors configuration"
|
||||
type = map(object({
|
||||
@@ -69,3 +34,38 @@ variable "attestors_config" {
|
||||
}))
|
||||
default = null
|
||||
}
|
||||
|
||||
variable "cluster_admission_rules" {
|
||||
description = "Admission rules"
|
||||
type = map(object({
|
||||
evaluation_mode = string
|
||||
enforcement_mode = string
|
||||
attestors = list(string)
|
||||
}))
|
||||
default = null
|
||||
}
|
||||
|
||||
variable "default_admission_rule" {
|
||||
description = "Default admission rule"
|
||||
type = object({
|
||||
evaluation_mode = string
|
||||
enforcement_mode = string
|
||||
attestors = list(string)
|
||||
})
|
||||
default = {
|
||||
evaluation_mode = "ALWAYS_ALLOW"
|
||||
enforcement_mode = "ENFORCED_BLOCK_AND_AUDIT_LOG"
|
||||
attestors = null
|
||||
}
|
||||
}
|
||||
|
||||
variable "global_policy_evaluation_mode" {
|
||||
description = "Global policy evaluation mode."
|
||||
type = string
|
||||
default = null
|
||||
}
|
||||
|
||||
variable "project_id" {
|
||||
description = "Project ID."
|
||||
type = string
|
||||
}
|
||||
|
||||
@@ -14,6 +14,19 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
|
||||
variable "allow" {
|
||||
description = "List of domains Squid will allow connections to."
|
||||
type = list(string)
|
||||
default = []
|
||||
}
|
||||
|
||||
variable "clients" {
|
||||
description = "List of CIDR ranges from which Squid will allow connections."
|
||||
type = list(string)
|
||||
default = []
|
||||
}
|
||||
|
||||
variable "cloud_config" {
|
||||
description = "Cloud config template path. If null default will be used."
|
||||
type = string
|
||||
@@ -26,10 +39,30 @@ variable "config_variables" {
|
||||
default = {}
|
||||
}
|
||||
|
||||
variable "squid_config" {
|
||||
description = "Squid configuration path, if null default will be used."
|
||||
variable "default_action" {
|
||||
description = "Default action for domains not matching neither the allow or deny lists."
|
||||
type = string
|
||||
default = null
|
||||
default = "deny"
|
||||
validation {
|
||||
condition = var.default_action == "deny" || var.default_action == "allow"
|
||||
error_message = "Default action must be allow or deny."
|
||||
}
|
||||
}
|
||||
|
||||
variable "deny" {
|
||||
description = "List of domains Squid will deny connections to."
|
||||
type = list(string)
|
||||
default = []
|
||||
}
|
||||
|
||||
variable "files" {
|
||||
description = "Map of extra files to create on the instance, path as key. Owner and permissions will use defaults if null."
|
||||
type = map(object({
|
||||
content = string
|
||||
owner = string
|
||||
permissions = string
|
||||
}))
|
||||
default = {}
|
||||
}
|
||||
|
||||
variable "file_defaults" {
|
||||
@@ -44,40 +77,8 @@ variable "file_defaults" {
|
||||
}
|
||||
}
|
||||
|
||||
variable "files" {
|
||||
description = "Map of extra files to create on the instance, path as key. Owner and permissions will use defaults if null."
|
||||
type = map(object({
|
||||
content = string
|
||||
owner = string
|
||||
permissions = string
|
||||
}))
|
||||
default = {}
|
||||
}
|
||||
|
||||
variable "allow" {
|
||||
description = "List of domains Squid will allow connections to."
|
||||
type = list(string)
|
||||
default = []
|
||||
}
|
||||
|
||||
variable "deny" {
|
||||
description = "List of domains Squid will deny connections to."
|
||||
type = list(string)
|
||||
default = []
|
||||
}
|
||||
|
||||
variable "clients" {
|
||||
description = "List of CIDR ranges from which Squid will allow connections."
|
||||
type = list(string)
|
||||
default = []
|
||||
}
|
||||
|
||||
variable "default_action" {
|
||||
description = "Default action for domains not matching neither the allow or deny lists."
|
||||
variable "squid_config" {
|
||||
description = "Squid configuration path, if null default will be used."
|
||||
type = string
|
||||
default = "deny"
|
||||
validation {
|
||||
condition = var.default_action == "deny" || var.default_action == "allow"
|
||||
error_message = "Default action must be allow or deny."
|
||||
}
|
||||
default = null
|
||||
}
|
||||
|
||||
@@ -243,9 +243,9 @@ module "cf-http" {
|
||||
| [service_account](variables.tf#L132) | Service account email. Unused if service account is auto-created. | <code>string</code> | | <code>null</code> |
|
||||
| [service_account_create](variables.tf#L138) | Auto-create service account. | <code>bool</code> | | <code>false</code> |
|
||||
| [trigger_config](variables.tf#L144) | Function trigger configuration. Leave null for HTTP trigger. | <code title="object({ v1 = optional(object({ event = string resource = string retry = optional(bool) })), v2 = optional(object({ region = optional(string) event_type = optional(string) pubsub_topic = optional(string) event_filters = optional(list(object({ attribute = string value = string operator = string }))) service_account_email = optional(string) service_account_create = optional(bool) retry_policy = optional(string) })) })">object({…})</code> | | <code>{ v1 = null, v2 = null }</code> |
|
||||
| [v2](variables.tf#L192) | Whether to use Cloud Function version 2nd Gen or 1st Gen. | <code>bool</code> | | <code>false</code> |
|
||||
| [vpc_connector](variables.tf#L173) | VPC connector configuration. Set create to 'true' if a new connector needs to be created. | <code title="object({ create = bool name = string egress_settings = string })">object({…})</code> | | <code>null</code> |
|
||||
| [vpc_connector_config](variables.tf#L183) | VPC connector network configuration. Must be provided if new VPC connector is being created. | <code title="object({ ip_cidr_range = string network = string })">object({…})</code> | | <code>null</code> |
|
||||
| [v2](variables.tf#L173) | Whether to use Cloud Function version 2nd Gen or 1st Gen. | <code>bool</code> | | <code>false</code> |
|
||||
| [vpc_connector](variables.tf#L179) | VPC connector configuration. Set create to 'true' if a new connector needs to be created. | <code title="object({ create = bool name = string egress_settings = string })">object({…})</code> | | <code>null</code> |
|
||||
| [vpc_connector_config](variables.tf#L189) | VPC connector network configuration. Must be provided if new VPC connector is being created. | <code title="object({ ip_cidr_range = string network = string })">object({…})</code> | | <code>null</code> |
|
||||
|
||||
## Outputs
|
||||
|
||||
@@ -255,13 +255,13 @@ module "cf-http" {
|
||||
| [bucket_name](outputs.tf#L24) | Bucket name. | |
|
||||
| [function](outputs.tf#L29) | Cloud function resources. | |
|
||||
| [function_name](outputs.tf#L34) | Cloud function name. | |
|
||||
| [service_account](outputs.tf#L42) | Service account resource. | |
|
||||
| [service_account_email](outputs.tf#L47) | Service account email. | |
|
||||
| [service_account_iam_email](outputs.tf#L52) | Service account email. | |
|
||||
| [trigger_service_account](outputs.tf#L60) | Service account resource. | |
|
||||
| [trigger_service_account_email](outputs.tf#L65) | Service account email. | |
|
||||
| [trigger_service_account_iam_email](outputs.tf#L70) | Service account email. | |
|
||||
| [uri](outputs.tf#L38) | Cloud function service uri. | |
|
||||
| [vpc_connector](outputs.tf#L78) | VPC connector resource if created. | |
|
||||
| [service_account](outputs.tf#L39) | Service account resource. | |
|
||||
| [service_account_email](outputs.tf#L44) | Service account email. | |
|
||||
| [service_account_iam_email](outputs.tf#L49) | Service account email. | |
|
||||
| [trigger_service_account](outputs.tf#L57) | Service account resource. | |
|
||||
| [trigger_service_account_email](outputs.tf#L62) | Service account email. | |
|
||||
| [trigger_service_account_iam_email](outputs.tf#L67) | Service account email. | |
|
||||
| [uri](outputs.tf#L75) | Cloud function service uri. | |
|
||||
| [vpc_connector](outputs.tf#L80) | VPC connector resource if created. | |
|
||||
|
||||
<!-- END TFDOC -->
|
||||
|
||||
@@ -35,10 +35,7 @@ output "function_name" {
|
||||
description = "Cloud function name."
|
||||
value = local.function.name
|
||||
}
|
||||
output "uri" {
|
||||
description = "Cloud function service uri."
|
||||
value = var.v2 ? google_cloudfunctions2_function.function[0].service_config[0].uri : null
|
||||
}
|
||||
|
||||
output "service_account" {
|
||||
description = "Service account resource."
|
||||
value = try(google_service_account.service_account[0], null)
|
||||
@@ -75,6 +72,11 @@ output "trigger_service_account_iam_email" {
|
||||
])
|
||||
}
|
||||
|
||||
output "uri" {
|
||||
description = "Cloud function service uri."
|
||||
value = var.v2 ? google_cloudfunctions2_function.function[0].service_config[0].uri : null
|
||||
}
|
||||
|
||||
output "vpc_connector" {
|
||||
description = "VPC connector resource if created."
|
||||
value = try(google_vpc_access_connector.connector.0.id, null)
|
||||
|
||||
@@ -170,6 +170,12 @@ variable "trigger_config" {
|
||||
}
|
||||
}
|
||||
|
||||
variable "v2" {
|
||||
description = "Whether to use Cloud Function version 2nd Gen or 1st Gen."
|
||||
type = bool
|
||||
default = false
|
||||
}
|
||||
|
||||
variable "vpc_connector" {
|
||||
description = "VPC connector configuration. Set create to 'true' if a new connector needs to be created."
|
||||
type = object({
|
||||
@@ -189,10 +195,4 @@ variable "vpc_connector_config" {
|
||||
default = null
|
||||
}
|
||||
|
||||
variable "v2" {
|
||||
description = "Whether to use Cloud Function version 2nd Gen or 1st Gen."
|
||||
type = bool
|
||||
default = false
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -146,27 +146,27 @@ module "db" {
|
||||
|
||||
| name | description | type | required | default |
|
||||
|---|---|:---:|:---:|:---:|
|
||||
| [database_version](variables.tf#L50) | Database type and version to create. | <code>string</code> | ✓ | |
|
||||
| [name](variables.tf#L97) | Name of primary instance. | <code>string</code> | ✓ | |
|
||||
| [network](variables.tf#L102) | VPC self link where the instances will be deployed. Private Service Networking must be enabled and configured in this VPC. | <code>string</code> | ✓ | |
|
||||
| [project_id](variables.tf#L117) | The ID of the project where this instances will be created. | <code>string</code> | ✓ | |
|
||||
| [region](variables.tf#L122) | Region of the primary instance. | <code>string</code> | ✓ | |
|
||||
| [tier](variables.tf#L142) | The machine type to use for the instances. | <code>string</code> | ✓ | |
|
||||
| [database_version](variables.tf#L49) | Database type and version to create. | <code>string</code> | ✓ | |
|
||||
| [name](variables.tf#L102) | Name of primary instance. | <code>string</code> | ✓ | |
|
||||
| [network](variables.tf#L107) | VPC self link where the instances will be deployed. Private Service Networking must be enabled and configured in this VPC. | <code>string</code> | ✓ | |
|
||||
| [project_id](variables.tf#L122) | The ID of the project where this instances will be created. | <code>string</code> | ✓ | |
|
||||
| [region](variables.tf#L127) | Region of the primary instance. | <code>string</code> | ✓ | |
|
||||
| [tier](variables.tf#L147) | The machine type to use for the instances. | <code>string</code> | ✓ | |
|
||||
| [authorized_networks](variables.tf#L17) | Map of NAME=>CIDR_RANGE to allow to connect to the database(s). | <code>map(string)</code> | | <code>null</code> |
|
||||
| [availability_type](variables.tf#L23) | Availability type for the primary replica. Either `ZONAL` or `REGIONAL`. | <code>string</code> | | <code>"ZONAL"</code> |
|
||||
| [backup_configuration](variables.tf#L29) | Backup settings for primary instance. Will be automatically enabled if using MySQL with one or more replicas. | <code title="object({ enabled = bool binary_log_enabled = bool start_time = string location = string log_retention_days = number retention_count = number })">object({…})</code> | | <code title="{ enabled = false binary_log_enabled = false start_time = "23:00" location = null log_retention_days = 7 retention_count = 7 }">{…}</code> |
|
||||
| [databases](variables.tf#L55) | Databases to create once the primary instance is created. | <code>list(string)</code> | | <code>null</code> |
|
||||
| [deletion_protection](variables.tf#L61) | Allow terraform to delete instances. | <code>bool</code> | | <code>false</code> |
|
||||
| [disk_size](variables.tf#L67) | Disk size in GB. Set to null to enable autoresize. | <code>number</code> | | <code>null</code> |
|
||||
| [disk_type](variables.tf#L73) | The type of data disk: `PD_SSD` or `PD_HDD`. | <code>string</code> | | <code>"PD_SSD"</code> |
|
||||
| [encryption_key_name](variables.tf#L79) | The full path to the encryption key used for the CMEK disk encryption of the primary instance. | <code>string</code> | | <code>null</code> |
|
||||
| [flags](variables.tf#L85) | Map FLAG_NAME=>VALUE for database-specific tuning. | <code>map(string)</code> | | <code>null</code> |
|
||||
| [ipv4_enabled](variables.tf#L153) | Add a public IP address to database instance. | <code>bool</code> | | <code>false</code> |
|
||||
| [labels](variables.tf#L91) | Labels to be attached to all instances. | <code>map(string)</code> | | <code>null</code> |
|
||||
| [prefix](variables.tf#L107) | Optional prefix used to generate instance names. | <code>string</code> | | <code>null</code> |
|
||||
| [replicas](variables.tf#L127) | Map of NAME=> {REGION, KMS_KEY} for additional read replicas. Set to null to disable replica creation. | <code title="map(object({ region = string encryption_key_name = string }))">map(object({…}))</code> | | <code>{}</code> |
|
||||
| [root_password](variables.tf#L136) | Root password of the Cloud SQL instance. Required for MS SQL Server | <code>string</code> | | <code>null</code> |
|
||||
| [users](variables.tf#L147) | Map of users to create in the primary instance (and replicated to other replicas) in the format USER=>PASSWORD. For MySQL, anything afterr the first `@` (if persent) will be used as the user's host. Set PASSWORD to null if you want to get an autogenerated password. | <code>map(string)</code> | | <code>null</code> |
|
||||
| [databases](variables.tf#L54) | Databases to create once the primary instance is created. | <code>list(string)</code> | | <code>null</code> |
|
||||
| [deletion_protection](variables.tf#L60) | Allow terraform to delete instances. | <code>bool</code> | | <code>false</code> |
|
||||
| [disk_size](variables.tf#L66) | Disk size in GB. Set to null to enable autoresize. | <code>number</code> | | <code>null</code> |
|
||||
| [disk_type](variables.tf#L72) | The type of data disk: `PD_SSD` or `PD_HDD`. | <code>string</code> | | <code>"PD_SSD"</code> |
|
||||
| [encryption_key_name](variables.tf#L78) | The full path to the encryption key used for the CMEK disk encryption of the primary instance. | <code>string</code> | | <code>null</code> |
|
||||
| [flags](variables.tf#L84) | Map FLAG_NAME=>VALUE for database-specific tuning. | <code>map(string)</code> | | <code>null</code> |
|
||||
| [ipv4_enabled](variables.tf#L90) | Add a public IP address to database instance. | <code>bool</code> | | <code>false</code> |
|
||||
| [labels](variables.tf#L96) | Labels to be attached to all instances. | <code>map(string)</code> | | <code>null</code> |
|
||||
| [prefix](variables.tf#L112) | Optional prefix used to generate instance names. | <code>string</code> | | <code>null</code> |
|
||||
| [replicas](variables.tf#L132) | Map of NAME=> {REGION, KMS_KEY} for additional read replicas. Set to null to disable replica creation. | <code title="map(object({ region = string encryption_key_name = string }))">map(object({…}))</code> | | <code>{}</code> |
|
||||
| [root_password](variables.tf#L141) | Root password of the Cloud SQL instance. Required for MS SQL Server | <code>string</code> | | <code>null</code> |
|
||||
| [users](variables.tf#L152) | Map of users to create in the primary instance (and replicated to other replicas) in the format USER=>PASSWORD. For MySQL, anything afterr the first `@` (if persent) will be used as the user's host. Set PASSWORD to null if you want to get an autogenerated password. | <code>map(string)</code> | | <code>null</code> |
|
||||
|
||||
## Outputs
|
||||
|
||||
|
||||
@@ -46,7 +46,6 @@ variable "backup_configuration" {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
variable "database_version" {
|
||||
description = "Database type and version to create."
|
||||
type = string
|
||||
@@ -88,6 +87,12 @@ variable "flags" {
|
||||
default = null
|
||||
}
|
||||
|
||||
variable "ipv4_enabled" {
|
||||
description = "Add a public IP address to database instance."
|
||||
type = bool
|
||||
default = false
|
||||
}
|
||||
|
||||
variable "labels" {
|
||||
description = "Labels to be attached to all instances."
|
||||
type = map(string)
|
||||
@@ -149,9 +154,3 @@ variable "users" {
|
||||
type = map(string)
|
||||
default = null
|
||||
}
|
||||
|
||||
variable "ipv4_enabled" {
|
||||
description = "Add a public IP address to database instance."
|
||||
type = bool
|
||||
default = false
|
||||
}
|
||||
|
||||
@@ -429,8 +429,8 @@ module "nginx-mig" {
|
||||
| [distribution_policy](variables.tf#L95) | DIstribution policy for regional MIG. | <code title="object({ target_shape = optional(string) zones = optional(list(string)) })">object({…})</code> | | <code>null</code> |
|
||||
| [health_check_config](variables.tf#L104) | Optional auto-created health check configuration, use the output self-link to set it in the auto healing policy. Refer to examples for usage. | <code title="object({ check_interval_sec = optional(number) description = optional(string, "Terraform managed.") enable_logging = optional(bool, false) healthy_threshold = optional(number) timeout_sec = optional(number) unhealthy_threshold = optional(number) grpc = optional(object({ port = optional(number) port_name = optional(string) port_specification = optional(string) # USE_FIXED_PORT USE_NAMED_PORT USE_SERVING_PORT service_name = optional(string) })) http = optional(object({ host = optional(string) port = optional(number) port_name = optional(string) port_specification = optional(string) # USE_FIXED_PORT USE_NAMED_PORT USE_SERVING_PORT proxy_header = optional(string) request_path = optional(string) response = optional(string) })) http2 = optional(object({ host = optional(string) port = optional(number) port_name = optional(string) port_specification = optional(string) # USE_FIXED_PORT USE_NAMED_PORT USE_SERVING_PORT proxy_header = optional(string) request_path = optional(string) response = optional(string) })) https = optional(object({ host = optional(string) port = optional(number) port_name = optional(string) port_specification = optional(string) # USE_FIXED_PORT USE_NAMED_PORT USE_SERVING_PORT proxy_header = optional(string) request_path = optional(string) response = optional(string) })) tcp = optional(object({ port = optional(number) port_name = optional(string) port_specification = optional(string) # USE_FIXED_PORT USE_NAMED_PORT USE_SERVING_PORT proxy_header = optional(string) request = optional(string) response = optional(string) })) ssl = optional(object({ port = optional(number) port_name = optional(string) port_specification = optional(string) # USE_FIXED_PORT USE_NAMED_PORT USE_SERVING_PORT proxy_header = optional(string) request = optional(string) response = optional(string) })) })">object({…})</code> | | <code>null</code> |
|
||||
| [named_ports](variables.tf#L189) | Named ports. | <code>map(number)</code> | | <code>null</code> |
|
||||
| [stateful_config](variables.tf#L207) | Stateful configuration for individual instances. | <code title="map(object({ minimal_action = optional(string) most_disruptive_action = optional(string) remove_state_on_destroy = optional(bool) preserved_state = optional(object({ disks = optional(map(object({ source = string delete_on_instance_deletion = optional(bool) read_only = optional(bool) }))) metadata = optional(map(string)) })) }))">map(object({…}))</code> | | <code>{}</code> |
|
||||
| [stateful_disks](variables.tf#L200) | Stateful disk configuration applied at the MIG level to all instances, in device name => on permanent instance delete rule as boolean. | <code>map(bool)</code> | | <code>{}</code> |
|
||||
| [stateful_config](variables.tf#L200) | Stateful configuration for individual instances. | <code title="map(object({ minimal_action = optional(string) most_disruptive_action = optional(string) remove_state_on_destroy = optional(bool) preserved_state = optional(object({ disks = optional(map(object({ source = string delete_on_instance_deletion = optional(bool) read_only = optional(bool) }))) metadata = optional(map(string)) })) }))">map(object({…}))</code> | | <code>{}</code> |
|
||||
| [stateful_disks](variables.tf#L219) | Stateful disk configuration applied at the MIG level to all instances, in device name => on permanent instance delete rule as boolean. | <code>map(bool)</code> | | <code>{}</code> |
|
||||
| [target_pools](variables.tf#L226) | Optional list of URLs for target pools to which new instances in the group are added. | <code>list(string)</code> | | <code>[]</code> |
|
||||
| [target_size](variables.tf#L232) | Group target size, leave null when using an autoscaler. | <code>number</code> | | <code>null</code> |
|
||||
| [update_policy](variables.tf#L238) | Update policy. Minimal action and type are required. | <code title="object({ minimal_action = string type = string max_surge = optional(object({ fixed = optional(number) percent = optional(number) })) max_unavailable = optional(object({ fixed = optional(number) percent = optional(number) })) min_ready_sec = optional(number) most_disruptive_action = optional(string) regional_redistribution_type = optional(string) replacement_method = optional(string) })">object({…})</code> | | <code>null</code> |
|
||||
|
||||
@@ -197,13 +197,6 @@ variable "project_id" {
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "stateful_disks" {
|
||||
description = "Stateful disk configuration applied at the MIG level to all instances, in device name => on permanent instance delete rule as boolean."
|
||||
type = map(bool)
|
||||
default = {}
|
||||
nullable = false
|
||||
}
|
||||
|
||||
variable "stateful_config" {
|
||||
description = "Stateful configuration for individual instances."
|
||||
type = map(object({
|
||||
@@ -223,6 +216,13 @@ variable "stateful_config" {
|
||||
nullable = false
|
||||
}
|
||||
|
||||
variable "stateful_disks" {
|
||||
description = "Stateful disk configuration applied at the MIG level to all instances, in device name => on permanent instance delete rule as boolean."
|
||||
type = map(bool)
|
||||
default = {}
|
||||
nullable = false
|
||||
}
|
||||
|
||||
variable "target_pools" {
|
||||
description = "Optional list of URLs for target pools to which new instances in the group are added."
|
||||
type = list(string)
|
||||
|
||||
@@ -98,8 +98,8 @@ module "private-dns" {
|
||||
| [client_networks](variables.tf#L21) | List of VPC self links that can see this zone. | <code>list(string)</code> | | <code>[]</code> |
|
||||
| [description](variables.tf#L28) | Domain description. | <code>string</code> | | <code>"Terraform managed."</code> |
|
||||
| [dnssec_config](variables.tf#L34) | DNSSEC configuration for this zone. | <code title="object({ non_existence = optional(string, "nsec3") state = string key_signing_key = optional(object( { algorithm = string, key_length = number }), { algorithm = "rsasha256", key_length = 2048 } ) zone_signing_key = optional(object( { algorithm = string, key_length = number }), { algorithm = "rsasha256", key_length = 1024 } ) })">object({…})</code> | | <code title="{ state = "off" }">{…}</code> |
|
||||
| [enable_logging](variables.tf#L65) | Enable query logging for this zone. Only valid for public zones. | <code>bool</code> | | <code>false</code> |
|
||||
| [forwarders](variables.tf#L59) | Map of {IPV4_ADDRESS => FORWARDING_PATH} for 'forwarding' zone types. Path can be 'default', 'private', or null for provider default. | <code>map(string)</code> | | <code>{}</code> |
|
||||
| [enable_logging](variables.tf#L59) | Enable query logging for this zone. Only valid for public zones. | <code>bool</code> | | <code>false</code> |
|
||||
| [forwarders](variables.tf#L66) | Map of {IPV4_ADDRESS => FORWARDING_PATH} for 'forwarding' zone types. Path can be 'default', 'private', or null for provider default. | <code>map(string)</code> | | <code>{}</code> |
|
||||
| [peer_network](variables.tf#L77) | Peering network self link, only valid for 'peering' zone types. | <code>string</code> | | <code>null</code> |
|
||||
| [recordsets](variables.tf#L88) | Map of DNS recordsets in \"type name\" => {ttl, [records]} format. | <code title="map(object({ ttl = optional(number, 300) records = optional(list(string)) geo_routing = optional(list(object({ location = string records = list(string) }))) wrr_routing = optional(list(object({ weight = number records = list(string) }))) }))">map(object({…}))</code> | | <code>{}</code> |
|
||||
| [service_directory_namespace](variables.tf#L123) | Service directory namespace id (URL), only valid for 'service-directory' zone types. | <code>string</code> | | <code>null</code> |
|
||||
|
||||
@@ -56,12 +56,6 @@ variable "domain" {
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "forwarders" {
|
||||
description = "Map of {IPV4_ADDRESS => FORWARDING_PATH} for 'forwarding' zone types. Path can be 'default', 'private', or null for provider default."
|
||||
type = map(string)
|
||||
default = {}
|
||||
}
|
||||
|
||||
variable "enable_logging" {
|
||||
description = "Enable query logging for this zone. Only valid for public zones."
|
||||
type = bool
|
||||
@@ -69,6 +63,12 @@ variable "enable_logging" {
|
||||
nullable = false
|
||||
}
|
||||
|
||||
variable "forwarders" {
|
||||
description = "Map of {IPV4_ADDRESS => FORWARDING_PATH} for 'forwarding' zone types. Path can be 'default', 'private', or null for provider default."
|
||||
type = map(string)
|
||||
default = {}
|
||||
}
|
||||
|
||||
variable "name" {
|
||||
description = "Zone name, must be unique within the project."
|
||||
type = string
|
||||
|
||||
@@ -549,33 +549,33 @@ Target proxies leverage [url-maps](url-map.tf): set of L7 rules, which create a
|
||||
|
||||
| name | description | type | required | default |
|
||||
|---|---|:---:|:---:|:---:|
|
||||
| [name](variables.tf#L17) | Load balancer name. | <code>string</code> | ✓ | |
|
||||
| [project_id](variables.tf#L22) | Project id. | <code>string</code> | ✓ | |
|
||||
| [backend_services_config](variables.tf#L62) | The backends services configuration. | <code title="map(object({ enable_cdn = bool cdn_config = object({ cache_mode = string client_ttl = number default_ttl = number max_ttl = number negative_caching = bool negative_caching_policy = map(number) serve_while_stale = bool signed_url_cache_max_age_sec = string }) bucket_config = object({ bucket_name = string options = object({ custom_response_headers = list(string) }) }) group_config = object({ backends = list(object({ group = string # IG or NEG FQDN address options = object({ balancing_mode = string # Can be UTILIZATION, RATE, CONNECTION capacity_scaler = number # Valid range is [0.0,1.0] max_connections = number max_connections_per_instance = number max_connections_per_endpoint = number max_rate = number max_rate_per_instance = number max_rate_per_endpoint = number max_utilization = number }) })) health_checks = list(string) log_config = object({ enable = bool sample_rate = number # must be in [0, 1] }) options = object({ affinity_cookie_ttl_sec = number custom_request_headers = list(string) custom_response_headers = list(string) connection_draining_timeout_sec = number load_balancing_scheme = string # only EXTERNAL (default) makes sense here locality_lb_policy = string port_name = string protocol = string security_policy = string session_affinity = string timeout_sec = number circuits_breakers = object({ max_requests_per_connection = number # Set to 1 to disable keep-alive max_connections = number # Defaults to 1024 max_pending_requests = number # Defaults to 1024 max_requests = number # Defaults to 1024 max_retries = number # Defaults to 3 }) consistent_hash = object({ http_header_name = string minimum_ring_size = string http_cookie = object({ name = string path = string ttl = object({ seconds = number nanos = number }) }) }) iap = object({ oauth2_client_id = string oauth2_client_secret = string oauth2_client_secret_sha256 = string }) }) }) }))">map(object({…}))</code> | | <code>{}</code> |
|
||||
| [forwarding_rule_config](variables.tf#L226) | Regional forwarding rule configurations. | <code title="object({ ip_protocol = string ip_version = string load_balancing_scheme = string port_range = string network_tier = string network = string })">object({…})</code> | | <code title="{ load_balancing_scheme = "EXTERNAL_MANAGED" ip_protocol = "TCP" ip_version = "IPV4" network_tier = "STANDARD" network = "default" port_range = null }">{…}</code> |
|
||||
| [global_forwarding_rule_config](variables.tf#L208) | Global forwarding rule configurations. | <code title="object({ ip_protocol = string ip_version = string load_balancing_scheme = string port_range = string })">object({…})</code> | | <code title="{ load_balancing_scheme = "EXTERNAL" ip_protocol = "TCP" ip_version = "IPV4" port_range = null }">{…}</code> |
|
||||
| [health_checks_config](variables.tf#L51) | Custom health checks configuration. | <code title="map(object({ type = string # http https tcp ssl http2 check = map(any) # actual health check block attributes options = map(number) # interval, thresholds, timeout logging = bool }))">map(object({…}))</code> | | <code>{}</code> |
|
||||
| [health_checks_config_defaults](variables.tf#L33) | Auto-created health check default configuration. | <code title="object({ type = string # http https tcp ssl http2 check = map(any) # actual health check block attributes options = map(number) # interval, thresholds, timeout logging = bool })">object({…})</code> | | <code title="{ type = "http" logging = false options = {} check = { port_specification = "USE_SERVING_PORT" } }">{…}</code> |
|
||||
| [https](variables.tf#L247) | Whether to enable HTTPS. | <code>bool</code> | | <code>false</code> |
|
||||
| [region](variables.tf#L27) | Create a regional load balancer in this region. | <code>string</code> | | <code>null</code> |
|
||||
| [reserve_ip_address](variables.tf#L253) | Whether to reserve a static global IP address. | <code>bool</code> | | <code>false</code> |
|
||||
| [ssl_certificates_config](variables.tf#L171) | The SSL certificate configuration. | <code title="map(object({ domains = list(string) unmanaged_config = object({ tls_private_key = string tls_self_signed_cert = string }) }))">map(object({…}))</code> | | <code>{}</code> |
|
||||
| [ssl_certificates_config_defaults](variables.tf#L184) | The SSL certificate default configuration. | <code title="object({ domains = list(string) unmanaged_config = object({ tls_private_key = string tls_self_signed_cert = string }) })">object({…})</code> | | <code title="{ domains = ["example.com"], unmanaged_config = null }">{…}</code> |
|
||||
| [target_proxy_https_config](variables.tf#L200) | The HTTPS target proxy configuration. | <code title="object({ ssl_certificates = list(string) })">object({…})</code> | | <code>null</code> |
|
||||
| [url_map_config](variables.tf#L157) | The url-map configuration. | <code title="object({ default_service = string default_route_action = any default_url_redirect = map(any) header_action = any host_rules = list(any) path_matchers = list(any) tests = list(map(string)) })">object({…})</code> | | <code>null</code> |
|
||||
| [name](variables.tf#L186) | Load balancer name. | <code>string</code> | ✓ | |
|
||||
| [project_id](variables.tf#L191) | Project id. | <code>string</code> | ✓ | |
|
||||
| [backend_services_config](variables.tf#L17) | The backends services configuration. | <code title="map(object({ enable_cdn = bool cdn_config = object({ cache_mode = string client_ttl = number default_ttl = number max_ttl = number negative_caching = bool negative_caching_policy = map(number) serve_while_stale = bool signed_url_cache_max_age_sec = string }) bucket_config = object({ bucket_name = string options = object({ custom_response_headers = list(string) }) }) group_config = object({ backends = list(object({ group = string # IG or NEG FQDN address options = object({ balancing_mode = string # Can be UTILIZATION, RATE, CONNECTION capacity_scaler = number # Valid range is [0.0,1.0] max_connections = number max_connections_per_instance = number max_connections_per_endpoint = number max_rate = number max_rate_per_instance = number max_rate_per_endpoint = number max_utilization = number }) })) health_checks = list(string) log_config = object({ enable = bool sample_rate = number # must be in [0, 1] }) options = object({ affinity_cookie_ttl_sec = number custom_request_headers = list(string) custom_response_headers = list(string) connection_draining_timeout_sec = number load_balancing_scheme = string # only EXTERNAL (default) makes sense here locality_lb_policy = string port_name = string protocol = string security_policy = string session_affinity = string timeout_sec = number circuits_breakers = object({ max_requests_per_connection = number # Set to 1 to disable keep-alive max_connections = number # Defaults to 1024 max_pending_requests = number # Defaults to 1024 max_requests = number # Defaults to 1024 max_retries = number # Defaults to 3 }) consistent_hash = object({ http_header_name = string minimum_ring_size = string http_cookie = object({ name = string path = string ttl = object({ seconds = number nanos = number }) }) }) iap = object({ oauth2_client_id = string oauth2_client_secret = string oauth2_client_secret_sha256 = string }) }) }) }))">map(object({…}))</code> | | <code>{}</code> |
|
||||
| [forwarding_rule_config](variables.tf#L112) | Regional forwarding rule configurations. | <code title="object({ ip_protocol = string ip_version = string load_balancing_scheme = string port_range = string network_tier = string network = string })">object({…})</code> | | <code title="{ load_balancing_scheme = "EXTERNAL_MANAGED" ip_protocol = "TCP" ip_version = "IPV4" network_tier = "STANDARD" network = "default" port_range = null }">{…}</code> |
|
||||
| [global_forwarding_rule_config](variables.tf#L133) | Global forwarding rule configurations. | <code title="object({ ip_protocol = string ip_version = string load_balancing_scheme = string port_range = string })">object({…})</code> | | <code title="{ load_balancing_scheme = "EXTERNAL" ip_protocol = "TCP" ip_version = "IPV4" port_range = null }">{…}</code> |
|
||||
| [health_checks_config](variables.tf#L151) | Custom health checks configuration. | <code title="map(object({ type = string # http https tcp ssl http2 check = map(any) # actual health check block attributes options = map(number) # interval, thresholds, timeout logging = bool }))">map(object({…}))</code> | | <code>{}</code> |
|
||||
| [health_checks_config_defaults](variables.tf#L162) | Auto-created health check default configuration. | <code title="object({ type = string # http https tcp ssl http2 check = map(any) # actual health check block attributes options = map(number) # interval, thresholds, timeout logging = bool })">object({…})</code> | | <code title="{ type = "http" logging = false options = {} check = { port_specification = "USE_SERVING_PORT" } }">{…}</code> |
|
||||
| [https](variables.tf#L180) | Whether to enable HTTPS. | <code>bool</code> | | <code>false</code> |
|
||||
| [region](variables.tf#L196) | Create a regional load balancer in this region. | <code>string</code> | | <code>null</code> |
|
||||
| [reserve_ip_address](variables.tf#L202) | Whether to reserve a static global IP address. | <code>bool</code> | | <code>false</code> |
|
||||
| [ssl_certificates_config](variables.tf#L208) | The SSL certificate configuration. | <code title="map(object({ domains = list(string) unmanaged_config = object({ tls_private_key = string tls_self_signed_cert = string }) }))">map(object({…}))</code> | | <code>{}</code> |
|
||||
| [ssl_certificates_config_defaults](variables.tf#L221) | The SSL certificate default configuration. | <code title="object({ domains = list(string) unmanaged_config = object({ tls_private_key = string tls_self_signed_cert = string }) })">object({…})</code> | | <code title="{ domains = ["example.com"], unmanaged_config = null }">{…}</code> |
|
||||
| [target_proxy_https_config](variables.tf#L237) | The HTTPS target proxy configuration. | <code title="object({ ssl_certificates = list(string) })">object({…})</code> | | <code>null</code> |
|
||||
| [url_map_config](variables.tf#L245) | The url-map configuration. | <code title="object({ default_service = string default_route_action = any default_url_redirect = map(any) header_action = any host_rules = list(any) path_matchers = list(any) tests = list(map(string)) })">object({…})</code> | | <code>null</code> |
|
||||
|
||||
## Outputs
|
||||
|
||||
| name | description | sensitive |
|
||||
|---|---|:---:|
|
||||
| [backend_services](outputs.tf#L22) | Backend service resources. | |
|
||||
| [forwarding_rule](outputs.tf#L67) | The regional forwarding rule. | |
|
||||
| [global_forwarding_rule](outputs.tf#L62) | The global forwarding rule. | |
|
||||
| [health_checks](outputs.tf#L17) | Health-check resources. | |
|
||||
| [ip_address](outputs.tf#L44) | The reserved global IP address. | |
|
||||
| [ip_address_self_link](outputs.tf#L49) | The URI of the reserved global IP address. | |
|
||||
| [ssl_certificates](outputs.tf#L35) | The SSL certificate. | |
|
||||
| [target_proxy](outputs.tf#L54) | The target proxy. | |
|
||||
| [url_map](outputs.tf#L30) | The url-map. | |
|
||||
| [backend_services](outputs.tf#L17) | Backend service resources. | |
|
||||
| [forwarding_rule](outputs.tf#L25) | The regional forwarding rule. | |
|
||||
| [global_forwarding_rule](outputs.tf#L30) | The global forwarding rule. | |
|
||||
| [health_checks](outputs.tf#L35) | Health-check resources. | |
|
||||
| [ip_address](outputs.tf#L40) | The reserved global IP address. | |
|
||||
| [ip_address_self_link](outputs.tf#L45) | The URI of the reserved global IP address. | |
|
||||
| [ssl_certificates](outputs.tf#L50) | The SSL certificate. | |
|
||||
| [target_proxy](outputs.tf#L59) | The target proxy. | |
|
||||
| [url_map](outputs.tf#L67) | The url-map. | |
|
||||
|
||||
<!-- END TFDOC -->
|
||||
|
||||
@@ -14,11 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
output "health_checks" {
|
||||
description = "Health-check resources."
|
||||
value = try(google_compute_health_check.health_check, [])
|
||||
}
|
||||
|
||||
output "backend_services" {
|
||||
description = "Backend service resources."
|
||||
value = {
|
||||
@@ -27,18 +22,19 @@ output "backend_services" {
|
||||
}
|
||||
}
|
||||
|
||||
output "url_map" {
|
||||
description = "The url-map."
|
||||
value = google_compute_url_map.url_map
|
||||
output "forwarding_rule" {
|
||||
description = "The regional forwarding rule."
|
||||
value = var.region == null ? google_compute_global_forwarding_rule.forwarding_rule.0 : google_compute_forwarding_rule.forwarding_rule.0
|
||||
}
|
||||
|
||||
output "ssl_certificates" {
|
||||
description = "The SSL certificate."
|
||||
value = try(
|
||||
google_compute_managed_ssl_certificate.managed,
|
||||
google_compute_ssl_certificate.unmanaged,
|
||||
null
|
||||
)
|
||||
output "global_forwarding_rule" {
|
||||
description = "The global forwarding rule."
|
||||
value = var.region == null ? google_compute_global_forwarding_rule.forwarding_rule.0 : null
|
||||
}
|
||||
|
||||
output "health_checks" {
|
||||
description = "Health-check resources."
|
||||
value = try(google_compute_health_check.health_check, [])
|
||||
}
|
||||
|
||||
output "ip_address" {
|
||||
@@ -51,6 +47,15 @@ output "ip_address_self_link" {
|
||||
value = var.region == null ? google_compute_global_forwarding_rule.forwarding_rule.0.ip_address : google_compute_forwarding_rule.forwarding_rule.0.ip_address
|
||||
}
|
||||
|
||||
output "ssl_certificates" {
|
||||
description = "The SSL certificate."
|
||||
value = try(
|
||||
google_compute_managed_ssl_certificate.managed,
|
||||
google_compute_ssl_certificate.unmanaged,
|
||||
null
|
||||
)
|
||||
}
|
||||
|
||||
output "target_proxy" {
|
||||
description = "The target proxy."
|
||||
value = try(
|
||||
@@ -59,12 +64,7 @@ output "target_proxy" {
|
||||
)
|
||||
}
|
||||
|
||||
output "global_forwarding_rule" {
|
||||
description = "The global forwarding rule."
|
||||
value = var.region == null ? google_compute_global_forwarding_rule.forwarding_rule.0 : null
|
||||
}
|
||||
|
||||
output "forwarding_rule" {
|
||||
description = "The regional forwarding rule."
|
||||
value = var.region == null ? google_compute_global_forwarding_rule.forwarding_rule.0 : google_compute_forwarding_rule.forwarding_rule.0
|
||||
output "url_map" {
|
||||
description = "The url-map."
|
||||
value = google_compute_url_map.url_map
|
||||
}
|
||||
|
||||
@@ -14,51 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
variable "name" {
|
||||
description = "Load balancer name."
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "project_id" {
|
||||
description = "Project id."
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "region" {
|
||||
description = "Create a regional load balancer in this region."
|
||||
type = string
|
||||
default = null
|
||||
}
|
||||
|
||||
variable "health_checks_config_defaults" {
|
||||
description = "Auto-created health check default configuration."
|
||||
type = object({
|
||||
type = string # http https tcp ssl http2
|
||||
check = map(any) # actual health check block attributes
|
||||
options = map(number) # interval, thresholds, timeout
|
||||
logging = bool
|
||||
})
|
||||
default = {
|
||||
type = "http"
|
||||
logging = false
|
||||
options = {}
|
||||
check = {
|
||||
port_specification = "USE_SERVING_PORT"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
variable "health_checks_config" {
|
||||
description = "Custom health checks configuration."
|
||||
type = map(object({
|
||||
type = string # http https tcp ssl http2
|
||||
check = map(any) # actual health check block attributes
|
||||
options = map(number) # interval, thresholds, timeout
|
||||
logging = bool
|
||||
}))
|
||||
default = {}
|
||||
}
|
||||
|
||||
variable "backend_services_config" {
|
||||
description = "The backends services configuration."
|
||||
type = map(object({
|
||||
@@ -154,18 +109,100 @@ variable "backend_services_config" {
|
||||
default = {}
|
||||
}
|
||||
|
||||
variable "url_map_config" {
|
||||
description = "The url-map configuration."
|
||||
variable "forwarding_rule_config" {
|
||||
description = "Regional forwarding rule configurations."
|
||||
type = object({
|
||||
default_service = string
|
||||
default_route_action = any
|
||||
default_url_redirect = map(any)
|
||||
header_action = any
|
||||
host_rules = list(any)
|
||||
path_matchers = list(any)
|
||||
tests = list(map(string))
|
||||
ip_protocol = string
|
||||
ip_version = string
|
||||
load_balancing_scheme = string
|
||||
port_range = string
|
||||
network_tier = string
|
||||
network = string
|
||||
})
|
||||
default = null
|
||||
default = {
|
||||
load_balancing_scheme = "EXTERNAL_MANAGED"
|
||||
ip_protocol = "TCP"
|
||||
ip_version = "IPV4"
|
||||
network_tier = "STANDARD"
|
||||
network = "default"
|
||||
# If not specified, 80 for https = false, 443 otherwise
|
||||
port_range = null
|
||||
}
|
||||
}
|
||||
|
||||
variable "global_forwarding_rule_config" {
|
||||
description = "Global forwarding rule configurations."
|
||||
type = object({
|
||||
ip_protocol = string
|
||||
ip_version = string
|
||||
load_balancing_scheme = string
|
||||
port_range = string
|
||||
|
||||
})
|
||||
default = {
|
||||
load_balancing_scheme = "EXTERNAL"
|
||||
ip_protocol = "TCP"
|
||||
ip_version = "IPV4"
|
||||
# If not specified, 80 for https = false, 443 otherwise
|
||||
port_range = null
|
||||
}
|
||||
}
|
||||
|
||||
variable "health_checks_config" {
|
||||
description = "Custom health checks configuration."
|
||||
type = map(object({
|
||||
type = string # http https tcp ssl http2
|
||||
check = map(any) # actual health check block attributes
|
||||
options = map(number) # interval, thresholds, timeout
|
||||
logging = bool
|
||||
}))
|
||||
default = {}
|
||||
}
|
||||
|
||||
variable "health_checks_config_defaults" {
|
||||
description = "Auto-created health check default configuration."
|
||||
type = object({
|
||||
type = string # http https tcp ssl http2
|
||||
check = map(any) # actual health check block attributes
|
||||
options = map(number) # interval, thresholds, timeout
|
||||
logging = bool
|
||||
})
|
||||
default = {
|
||||
type = "http"
|
||||
logging = false
|
||||
options = {}
|
||||
check = {
|
||||
port_specification = "USE_SERVING_PORT"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
variable "https" {
|
||||
description = "Whether to enable HTTPS."
|
||||
type = bool
|
||||
default = false
|
||||
}
|
||||
|
||||
variable "name" {
|
||||
description = "Load balancer name."
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "project_id" {
|
||||
description = "Project id."
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "region" {
|
||||
description = "Create a regional load balancer in this region."
|
||||
type = string
|
||||
default = null
|
||||
}
|
||||
|
||||
variable "reserve_ip_address" {
|
||||
description = "Whether to reserve a static global IP address."
|
||||
type = bool
|
||||
default = false
|
||||
}
|
||||
|
||||
variable "ssl_certificates_config" {
|
||||
@@ -205,53 +242,16 @@ variable "target_proxy_https_config" {
|
||||
default = null
|
||||
}
|
||||
|
||||
variable "global_forwarding_rule_config" {
|
||||
description = "Global forwarding rule configurations."
|
||||
variable "url_map_config" {
|
||||
description = "The url-map configuration."
|
||||
type = object({
|
||||
ip_protocol = string
|
||||
ip_version = string
|
||||
load_balancing_scheme = string
|
||||
port_range = string
|
||||
|
||||
default_service = string
|
||||
default_route_action = any
|
||||
default_url_redirect = map(any)
|
||||
header_action = any
|
||||
host_rules = list(any)
|
||||
path_matchers = list(any)
|
||||
tests = list(map(string))
|
||||
})
|
||||
default = {
|
||||
load_balancing_scheme = "EXTERNAL"
|
||||
ip_protocol = "TCP"
|
||||
ip_version = "IPV4"
|
||||
# If not specified, 80 for https = false, 443 otherwise
|
||||
port_range = null
|
||||
}
|
||||
}
|
||||
|
||||
variable "forwarding_rule_config" {
|
||||
description = "Regional forwarding rule configurations."
|
||||
type = object({
|
||||
ip_protocol = string
|
||||
ip_version = string
|
||||
load_balancing_scheme = string
|
||||
port_range = string
|
||||
network_tier = string
|
||||
network = string
|
||||
})
|
||||
default = {
|
||||
load_balancing_scheme = "EXTERNAL_MANAGED"
|
||||
ip_protocol = "TCP"
|
||||
ip_version = "IPV4"
|
||||
network_tier = "STANDARD"
|
||||
network = "default"
|
||||
# If not specified, 80 for https = false, 443 otherwise
|
||||
port_range = null
|
||||
}
|
||||
}
|
||||
|
||||
variable "https" {
|
||||
description = "Whether to enable HTTPS."
|
||||
type = bool
|
||||
default = false
|
||||
}
|
||||
|
||||
variable "reserve_ip_address" {
|
||||
description = "Whether to reserve a static global IP address."
|
||||
type = bool
|
||||
default = false
|
||||
default = null
|
||||
}
|
||||
|
||||
@@ -146,8 +146,8 @@ module "ilb" {
|
||||
| [forwarding_rule_address](outputs.tf#L37) | Forwarding rule address. | |
|
||||
| [forwarding_rule_id](outputs.tf#L42) | Forwarding rule id. | |
|
||||
| [forwarding_rule_self_link](outputs.tf#L47) | Forwarding rule self link. | |
|
||||
| [group_self_links](outputs.tf#L57) | Optional unmanaged instance group self links. | |
|
||||
| [groups](outputs.tf#L52) | Optional unmanaged instance group resources. | |
|
||||
| [group_self_links](outputs.tf#L52) | Optional unmanaged instance group self links. | |
|
||||
| [groups](outputs.tf#L59) | Optional unmanaged instance group resources. | |
|
||||
| [health_check](outputs.tf#L64) | Auto-created health-check resource. | |
|
||||
| [health_check_self_id](outputs.tf#L69) | Auto-created health-check self id. | |
|
||||
| [health_check_self_link](outputs.tf#L74) | Auto-created health-check self link. | |
|
||||
|
||||
@@ -49,11 +49,6 @@ output "forwarding_rule_self_link" {
|
||||
value = google_compute_forwarding_rule.default.self_link
|
||||
}
|
||||
|
||||
output "groups" {
|
||||
description = "Optional unmanaged instance group resources."
|
||||
value = google_compute_instance_group.unmanaged
|
||||
}
|
||||
|
||||
output "group_self_links" {
|
||||
description = "Optional unmanaged instance group self links."
|
||||
value = {
|
||||
@@ -61,6 +56,11 @@ output "group_self_links" {
|
||||
}
|
||||
}
|
||||
|
||||
output "groups" {
|
||||
description = "Optional unmanaged instance group resources."
|
||||
value = google_compute_instance_group.unmanaged
|
||||
}
|
||||
|
||||
output "health_check" {
|
||||
description = "Auto-created health-check resource."
|
||||
value = try(google_compute_health_check.default.0, null)
|
||||
|
||||
@@ -178,8 +178,8 @@ healthchecks:
|
||||
| [project_id](variables.tf#L114) | Project id of the project that holds the network. | <code>string</code> | ✓ | |
|
||||
| [default_rules_config](variables.tf#L17) | Optionally created convenience rules. Set the variable or individual members to null to disable. | <code title="object({ admin_ranges = optional(list(string)) disabled = optional(bool, false) http_ranges = optional(list(string), [ "35.191.0.0/16", "130.211.0.0/22", "209.85.152.0/22", "209.85.204.0/22"] ) http_tags = optional(list(string), ["http-server"]) https_ranges = optional(list(string), [ "35.191.0.0/16", "130.211.0.0/22", "209.85.152.0/22", "209.85.204.0/22"] ) https_tags = optional(list(string), ["https-server"]) ssh_ranges = optional(list(string), ["35.235.240.0/20"]) ssh_tags = optional(list(string), ["ssh"]) })">object({…})</code> | | <code>{}</code> |
|
||||
| [egress_rules](variables.tf#L37) | List of egress rule definitions, default to deny action. | <code title="map(object({ deny = optional(bool, true) description = optional(string) destination_ranges = optional(list(string)) disabled = optional(bool, false) enable_logging = optional(object({ include_metadata = optional(bool) })) priority = optional(number, 1000) sources = optional(list(string)) targets = optional(list(string)) use_service_accounts = optional(bool, false) rules = optional(list(object({ protocol = string ports = optional(list(string)) })), [{ protocol = "all" }]) }))">map(object({…}))</code> | | <code>{}</code> |
|
||||
| [factories_config](variables.tf#L83) | Paths to data files and folders that enable factory functionality. | <code title="object({ cidr_tpl_file = optional(string) rules_folder = string })">object({…})</code> | | <code>null</code> |
|
||||
| [ingress_rules](variables.tf#L60) | List of ingress rule definitions, default to allow action. | <code title="map(object({ deny = optional(bool, false) description = optional(string) disabled = optional(bool, false) enable_logging = optional(object({ include_metadata = optional(bool) })) priority = optional(number, 1000) source_ranges = optional(list(string)) sources = optional(list(string)) targets = optional(list(string)) use_service_accounts = optional(bool, false) rules = optional(list(object({ protocol = string ports = optional(list(string)) })), [{ protocol = "all" }]) }))">map(object({…}))</code> | | <code>{}</code> |
|
||||
| [factories_config](variables.tf#L60) | Paths to data files and folders that enable factory functionality. | <code title="object({ cidr_tpl_file = optional(string) rules_folder = string })">object({…})</code> | | <code>null</code> |
|
||||
| [ingress_rules](variables.tf#L69) | List of ingress rule definitions, default to allow action. | <code title="map(object({ deny = optional(bool, false) description = optional(string) disabled = optional(bool, false) enable_logging = optional(object({ include_metadata = optional(bool) })) priority = optional(number, 1000) source_ranges = optional(list(string)) sources = optional(list(string)) targets = optional(list(string)) use_service_accounts = optional(bool, false) rules = optional(list(object({ protocol = string ports = optional(list(string)) })), [{ protocol = "all" }]) }))">map(object({…}))</code> | | <code>{}</code> |
|
||||
| [named_ranges](variables.tf#L92) | Define mapping of names to ranges that can be used in custom rules. | <code>map(list(string))</code> | | <code title="{ any = ["0.0.0.0/0"] dns-forwarders = ["35.199.192.0/19"] health-checkers = [ "35.191.0.0/16", "130.211.0.0/22", "209.85.152.0/22", "209.85.204.0/22" ] iap-forwarders = ["35.235.240.0/20"] private-googleapis = ["199.36.153.8/30"] restricted-googleapis = ["199.36.153.4/30"] rfc1918 = ["10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"] }">{…}</code> |
|
||||
|
||||
## Outputs
|
||||
|
||||
@@ -57,6 +57,15 @@ variable "egress_rules" {
|
||||
nullable = false
|
||||
}
|
||||
|
||||
variable "factories_config" {
|
||||
description = "Paths to data files and folders that enable factory functionality."
|
||||
type = object({
|
||||
cidr_tpl_file = optional(string)
|
||||
rules_folder = string
|
||||
})
|
||||
default = null
|
||||
}
|
||||
|
||||
variable "ingress_rules" {
|
||||
description = "List of ingress rule definitions, default to allow action."
|
||||
type = map(object({
|
||||
@@ -80,15 +89,6 @@ variable "ingress_rules" {
|
||||
nullable = false
|
||||
}
|
||||
|
||||
variable "factories_config" {
|
||||
description = "Paths to data files and folders that enable factory functionality."
|
||||
type = object({
|
||||
cidr_tpl_file = optional(string)
|
||||
rules_folder = string
|
||||
})
|
||||
default = null
|
||||
}
|
||||
|
||||
variable "named_ranges" {
|
||||
description = "Define mapping of names to ranges that can be used in custom rules."
|
||||
type = map(list(string))
|
||||
|
||||
@@ -50,15 +50,15 @@ output "dev-folders" {
|
||||
|
||||
| name | description | type | required | default |
|
||||
|---|---|:---:|:---:|:---:|
|
||||
| [parent](variables.tf#L17) | Parent folder or organization in 'folders/folder_id' or 'organizations/org_id' format. | <code>string</code> | ✓ | |
|
||||
| [filter](variables.tf#L26) | A string filter as defined in the [REST API](https://cloud.google.com/resource-manager/reference/rest/v1/projects/list#query-parameters). | <code>string</code> | | <code>"lifecycleState:ACTIVE"</code> |
|
||||
| [parent](variables.tf#L23) | Parent folder or organization in 'folders/folder_id' or 'organizations/org_id' format. | <code>string</code> | ✓ | |
|
||||
| [filter](variables.tf#L17) | A string filter as defined in the [REST API](https://cloud.google.com/resource-manager/reference/rest/v1/projects/list#query-parameters). | <code>string</code> | | <code>"lifecycleState:ACTIVE"</code> |
|
||||
|
||||
## Outputs
|
||||
|
||||
| name | description | sensitive |
|
||||
|---|---|:---:|
|
||||
| [folders](outputs.tf#L17) | Map of folders attributes keyed by folder id. | |
|
||||
| [project_numbers](outputs.tf#L27) | List of project numbers. | |
|
||||
| [projects](outputs.tf#L22) | Map of projects attributes keyed by projects id. | |
|
||||
| [project_numbers](outputs.tf#L22) | List of project numbers. | |
|
||||
| [projects](outputs.tf#L27) | Map of projects attributes keyed by projects id. | |
|
||||
|
||||
<!-- END TFDOC -->
|
||||
|
||||
@@ -19,12 +19,12 @@ output "folders" {
|
||||
value = local.all_folders
|
||||
}
|
||||
|
||||
output "projects" {
|
||||
description = "Map of projects attributes keyed by projects id."
|
||||
value = local.projects
|
||||
}
|
||||
|
||||
output "project_numbers" {
|
||||
description = "List of project numbers."
|
||||
value = [for _, v in local.projects : v.number]
|
||||
}
|
||||
|
||||
output "projects" {
|
||||
description = "Map of projects attributes keyed by projects id."
|
||||
value = local.projects
|
||||
}
|
||||
|
||||
@@ -14,6 +14,12 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
variable "filter" {
|
||||
description = "A string filter as defined in the [REST API](https://cloud.google.com/resource-manager/reference/rest/v1/projects/list#query-parameters)."
|
||||
type = string
|
||||
default = "lifecycleState:ACTIVE"
|
||||
}
|
||||
|
||||
variable "parent" {
|
||||
description = "Parent folder or organization in 'folders/folder_id' or 'organizations/org_id' format."
|
||||
type = string
|
||||
@@ -22,9 +28,3 @@ variable "parent" {
|
||||
error_message = "Parent must be of the form folders/folder_id or organizations/organization_id."
|
||||
}
|
||||
}
|
||||
|
||||
variable "filter" {
|
||||
description = "A string filter as defined in the [REST API](https://cloud.google.com/resource-manager/reference/rest/v1/projects/list#query-parameters)."
|
||||
type = string
|
||||
default = "lifecycleState:ACTIVE"
|
||||
}
|
||||
Reference in New Issue
Block a user