Merge branch 'master' into lcaggio/shieldedfolder

This commit is contained in:
lcaggio 2023-02-01 00:28:01 +01:00 committed by GitHub
commit 3995ec1550
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
111 changed files with 374 additions and 282 deletions

View File

@ -60,14 +60,14 @@ Do the following to verify that everything works as expected.
|---|---|:---:|:---:|:---:|
| [envgroups](variables.tf#L24) | Environment groups (NAME => [HOSTNAMES]). | <code>map&#40;list&#40;string&#41;&#41;</code> | ✓ | |
| [environments](variables.tf#L30) | Environments. | <code title="map&#40;object&#40;&#123;&#10; display_name &#61; optional&#40;string&#41;&#10; description &#61; optional&#40;string&#41;&#10; node_config &#61; optional&#40;object&#40;&#123;&#10; min_node_count &#61; optional&#40;number&#41;&#10; max_node_count &#61; optional&#40;number&#41;&#10; &#125;&#41;&#41;&#10; iam &#61; optional&#40;map&#40;list&#40;string&#41;&#41;&#41;&#10; envgroups &#61; list&#40;string&#41;&#10;&#125;&#41;&#41;">map&#40;object&#40;&#123;&#8230;&#125;&#41;&#41;</code> | ✓ | |
| [instances](variables.tf#L45) | Instance. | <code title="map&#40;object&#40;&#123;&#10; display_name &#61; optional&#40;string&#41;&#10; description &#61; optional&#40;string&#41;&#10; region &#61; string&#10; environments &#61; list&#40;string&#41;&#10; psa_ip_cidr_range &#61; string&#10; disk_encryption_key &#61; optional&#40;string&#41;&#10; consumer_accept_list &#61; optional&#40;list&#40;string&#41;&#41;&#10;&#125;&#41;&#41;">map&#40;object&#40;&#123;&#8230;&#125;&#41;&#41;</code> | ✓ | |
| [project_id](variables.tf#L91) | Project ID. | <code>string</code> | ✓ | |
| [psc_config](variables.tf#L97) | PSC configuration. | <code>map&#40;string&#41;</code> | ✓ | |
| [instances](variables.tf#L45) | Instance. | <code title="map&#40;object&#40;&#123;&#10; display_name &#61; optional&#40;string&#41;&#10; description &#61; optional&#40;string&#41;&#10; region &#61; string&#10; environments &#61; list&#40;string&#41;&#10; runtime_ip_cidr_range &#61; string&#10; troubleshooting_ip_cidr_range &#61; string&#10; disk_encryption_key &#61; optional&#40;string&#41;&#10; consumer_accept_list &#61; optional&#40;list&#40;string&#41;&#41;&#10;&#125;&#41;&#41;">map&#40;object&#40;&#123;&#8230;&#125;&#41;&#41;</code> | ✓ | |
| [project_id](variables.tf#L92) | Project ID. | <code>string</code> | ✓ | |
| [psc_config](variables.tf#L98) | PSC configuration. | <code>map&#40;string&#41;</code> | ✓ | |
| [datastore_name](variables.tf#L17) | Datastore. | <code>string</code> | | <code>&#34;gcs&#34;</code> |
| [organization](variables.tf#L59) | Apigee organization. | <code title="object&#40;&#123;&#10; display_name &#61; optional&#40;string, &#34;Apigee organization created by tf module&#34;&#41;&#10; description &#61; optional&#40;string, &#34;Apigee organization created by tf module&#34;&#41;&#10; authorized_network &#61; optional&#40;string, &#34;vpc&#34;&#41;&#10; runtime_type &#61; optional&#40;string, &#34;CLOUD&#34;&#41;&#10; billing_type &#61; optional&#40;string&#41;&#10; database_encryption_key &#61; optional&#40;string&#41;&#10; analytics_region &#61; optional&#40;string, &#34;europe-west1&#34;&#41;&#10;&#125;&#41;">object&#40;&#123;&#8230;&#125;&#41;</code> | | <code title="&#123;&#10;&#125;">&#123;&#8230;&#125;</code> |
| [path](variables.tf#L75) | Bucket path. | <code>string</code> | | <code>&#34;&#47;analytics&#34;</code> |
| [project_create](variables.tf#L82) | Parameters for the creation of the new project. | <code title="object&#40;&#123;&#10; billing_account_id &#61; string&#10; parent &#61; string&#10;&#125;&#41;">object&#40;&#123;&#8230;&#125;&#41;</code> | | <code>null</code> |
| [vpc_create](variables.tf#L103) | Boolean flag indicating whether the VPC should be created or not. | <code>bool</code> | | <code>true</code> |
| [organization](variables.tf#L60) | Apigee organization. | <code title="object&#40;&#123;&#10; display_name &#61; optional&#40;string, &#34;Apigee organization created by tf module&#34;&#41;&#10; description &#61; optional&#40;string, &#34;Apigee organization created by tf module&#34;&#41;&#10; authorized_network &#61; optional&#40;string, &#34;vpc&#34;&#41;&#10; runtime_type &#61; optional&#40;string, &#34;CLOUD&#34;&#41;&#10; billing_type &#61; optional&#40;string&#41;&#10; database_encryption_key &#61; optional&#40;string&#41;&#10; analytics_region &#61; optional&#40;string, &#34;europe-west1&#34;&#41;&#10;&#125;&#41;">object&#40;&#123;&#8230;&#125;&#41;</code> | | <code title="&#123;&#10;&#125;">&#123;&#8230;&#125;</code> |
| [path](variables.tf#L76) | Bucket path. | <code>string</code> | | <code>&#34;&#47;analytics&#34;</code> |
| [project_create](variables.tf#L83) | Parameters for the creation of the new project. | <code title="object&#40;&#123;&#10; billing_account_id &#61; string&#10; parent &#61; string&#10;&#125;&#41;">object&#40;&#123;&#8230;&#125;&#41;</code> | | <code>null</code> |
| [vpc_create](variables.tf#L104) | Boolean flag indicating whether the VPC should be created or not. | <code>bool</code> | | <code>true</code> |
## Outputs

View File

@ -68,9 +68,12 @@ module "vpc" {
region = k
}]
psa_config = {
ranges = {
for k, v in var.instances : "apigee-${k}" => v.psa_ip_cidr_range
}
ranges = merge({ for k, v in var.instances :
"apigee-runtime-${k}" => v.runtime_ip_cidr_range
}, { for k, v in var.instances :
"apigee-troubleshooting-${k}" => v.troubleshooting_ip_cidr_range
}
)
}
}

View File

@ -15,7 +15,8 @@ instances = {
instance-ew1 = {
region = "europe-west1"
environments = ["apis-test"]
psa_ip_cidr_range = "10.0.4.0/22"
runtime_ip_cidr_range = "10.0.4.0/22"
troubleshooting_ip_cidr_range = "10.1.1.0/28"
}
}
psc_config = {

View File

@ -45,13 +45,14 @@ variable "environments" {
variable "instances" {
description = "Instance."
type = map(object({
display_name = optional(string)
description = optional(string)
region = string
environments = list(string)
psa_ip_cidr_range = string
disk_encryption_key = optional(string)
consumer_accept_list = optional(list(string))
display_name = optional(string)
description = optional(string)
region = string
environments = list(string)
runtime_ip_cidr_range = string
troubleshooting_ip_cidr_range = string
disk_encryption_key = optional(string)
consumer_accept_list = optional(list(string))
}))
nullable = false
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -46,18 +46,19 @@ Do the following to verify that everything works as expected.
| name | description | type | required | default |
|---|---|:---:|:---:|:---:|
| [apigee_project_id](variables.tf#L17) | Project ID. | <code>string</code> | ✓ | |
| [billing_account_id](variables.tf#L47) | Parameters for the creation of the new project. | <code>string</code> | ✓ | |
| [hostname](variables.tf#L52) | Host name. | <code>string</code> | ✓ | |
| [onprem_project_id](variables.tf#L57) | Project ID. | <code>string</code> | ✓ | |
| [parent](variables.tf#L75) | Parent (organizations/organizationID or folders/folderID). | <code>string</code> | ✓ | |
| [billing_account_id](variables.tf#L53) | Parameters for the creation of the new project. | <code>string</code> | ✓ | |
| [hostname](variables.tf#L58) | Host name. | <code>string</code> | ✓ | |
| [onprem_project_id](variables.tf#L63) | Project ID. | <code>string</code> | ✓ | |
| [parent](variables.tf#L81) | Parent (organizations/organizationID or folders/folderID). | <code>string</code> | ✓ | |
| [apigee_proxy_only_subnet_ip_cidr_range](variables.tf#L23) | Subnet IP CIDR range. | <code>string</code> | | <code>&#34;10.2.1.0&#47;24&#34;</code> |
| [apigee_psa_ip_cidr_range](variables.tf#L29) | Apigee PSA IP CIDR range. | <code>string</code> | | <code>&#34;10.0.4.0&#47;22&#34;</code> |
| [apigee_psc_subnet_ip_cidr_range](variables.tf#L35) | Subnet IP CIDR range. | <code>string</code> | | <code>&#34;10.2.2.0&#47;24&#34;</code> |
| [apigee_psc_subnet_ip_cidr_range](variables.tf#L29) | Subnet IP CIDR range. | <code>string</code> | | <code>&#34;10.2.2.0&#47;24&#34;</code> |
| [apigee_runtime_ip_cidr_range](variables.tf#L35) | Apigee PSA IP CIDR range. | <code>string</code> | | <code>&#34;10.0.4.0&#47;22&#34;</code> |
| [apigee_subnet_ip_cidr_range](variables.tf#L41) | Subnet IP CIDR range. | <code>string</code> | | <code>&#34;10.2.0.0&#47;24&#34;</code> |
| [onprem_proxy_only_subnet_ip_cidr_range](variables.tf#L63) | Subnet IP CIDR range. | <code>string</code> | | <code>&#34;10.1.1.0&#47;24&#34;</code> |
| [onprem_subnet_ip_cidr_range](variables.tf#L69) | Subnet IP CIDR range. | <code>string</code> | | <code>&#34;10.1.0.0&#47;24&#34;</code> |
| [region](variables.tf#L80) | Region. | <code>string</code> | | <code>&#34;europe-west1&#34;</code> |
| [zone](variables.tf#L86) | Zone. | <code>string</code> | | <code>&#34;europe-west1-c&#34;</code> |
| [apigee_troubleshooting_ip_cidr_range](variables.tf#L47) | Apigee PSA IP CIDR range. | <code>string</code> | | <code>&#34;10.1.0.0&#47;28&#34;</code> |
| [onprem_proxy_only_subnet_ip_cidr_range](variables.tf#L69) | Subnet IP CIDR range. | <code>string</code> | | <code>&#34;10.1.1.0&#47;24&#34;</code> |
| [onprem_subnet_ip_cidr_range](variables.tf#L75) | Subnet IP CIDR range. | <code>string</code> | | <code>&#34;10.1.0.0&#47;24&#34;</code> |
| [region](variables.tf#L86) | Region. | <code>string</code> | | <code>&#34;europe-west1&#34;</code> |
| [zone](variables.tf#L92) | Zone. | <code>string</code> | | <code>&#34;europe-west1-c&#34;</code> |
## Outputs

View File

@ -57,7 +57,8 @@ module "apigee_vpc" {
}]
psa_config = {
ranges = {
"apigee" = var.apigee_psa_ip_cidr_range
"apigee-runtime" = var.apigee_runtime_ip_cidr_range
"apigee-troubleshooting" = var.apigee_troubleshooting_ip_cidr_range
}
}
}
@ -79,9 +80,10 @@ module "apigee" {
}
instances = {
instance-1 = {
region = var.region
environments = [local.environment]
psa_ip_cidr_range = var.apigee_psa_ip_cidr_range
region = var.region
environments = [local.environment]
runtime_ip_cidr_range = var.apigee_runtime_ip_cidr_range
troubleshooting_ip_cidr_range = var.apigee_troubleshooting_ip_cidr_range
}
}
endpoint_attachments = {

View File

@ -26,24 +26,30 @@ variable "apigee_proxy_only_subnet_ip_cidr_range" {
default = "10.2.1.0/24"
}
variable "apigee_psa_ip_cidr_range" {
description = "Apigee PSA IP CIDR range."
type = string
default = "10.0.4.0/22"
}
variable "apigee_psc_subnet_ip_cidr_range" {
description = "Subnet IP CIDR range."
type = string
default = "10.2.2.0/24"
}
variable "apigee_runtime_ip_cidr_range" {
description = "Apigee PSA IP CIDR range."
type = string
default = "10.0.4.0/22"
}
variable "apigee_subnet_ip_cidr_range" {
description = "Subnet IP CIDR range."
type = string
default = "10.2.0.0/24"
}
variable "apigee_troubleshooting_ip_cidr_range" {
description = "Apigee PSA IP CIDR range."
type = string
default = "10.1.0.0/28"
}
variable "billing_account_id" {
description = "Parameters for the creation of the new project."
type = string

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -115,7 +115,7 @@ module "gke-fleet" {
vpc_self_link = "projects/prj-host/global/networks/prod-0"
}
}
# tftest modules=7 resources=26
# tftest modules=7 resources=27
```
## GKE Fleet
@ -224,7 +224,7 @@ module "gke" {
}
}
# tftest modules=8 resources=37
# tftest modules=8 resources=38
```
<!-- TFDOC OPTS files:1 -->

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -44,14 +44,16 @@ module "apigee" {
}
instances = {
instance-test-ew1 = {
region = "europe-west1"
environments = ["apis-test"]
psa_ip_cidr_range = "10.0.4.0/22"
region = "europe-west1"
environments = ["apis-test"]
runtime_ip_cidr_range = "10.0.4.0/22"
troubleshooting_ip_cidr_range = "10.1.1.0.0/28"
}
instance-prod-ew3 = {
region = "europe-west3"
environments = ["apis-prod"]
psa_ip_cidr_range = "10.0.5.0/22"
region = "europe-west3"
environments = ["apis-prod"]
runtime_ip_cidr_range = "10.0.8.0/22"
troubleshooting_ip_cidr_range = "10.1.16.0/28"
}
}
endpoint_attachments = {
@ -141,9 +143,10 @@ module "apigee" {
project_id = "my-project"
instances = {
instance-test-ew1 = {
region = "europe-west1"
environments = ["apis-test"]
psa_ip_cidr_range = "10.0.4.0/22"
region = "europe-west1"
environments = ["apis-test"]
runtime_ip_cidr_range = "10.0.4.0/22"
troubleshooting_ip_cidr_range = "10.1.1.0/28"
}
}
}
@ -173,12 +176,12 @@ module "apigee" {
| name | description | type | required | default |
|---|---|:---:|:---:|:---:|
| [project_id](variables.tf#L77) | Project ID. | <code>string</code> | ✓ | |
| [project_id](variables.tf#L78) | Project ID. | <code>string</code> | ✓ | |
| [endpoint_attachments](variables.tf#L17) | Endpoint attachments. | <code title="map&#40;object&#40;&#123;&#10; region &#61; string&#10; service_attachment &#61; string&#10;&#125;&#41;&#41;">map&#40;object&#40;&#123;&#8230;&#125;&#41;&#41;</code> | | <code>null</code> |
| [envgroups](variables.tf#L26) | Environment groups (NAME => [HOSTNAMES]). | <code>map&#40;list&#40;string&#41;&#41;</code> | | <code>null</code> |
| [environments](variables.tf#L32) | Environments. | <code title="map&#40;object&#40;&#123;&#10; display_name &#61; optional&#40;string&#41;&#10; description &#61; optional&#40;string, &#34;Terraform-managed&#34;&#41;&#10; deployment_type &#61; optional&#40;string&#41;&#10; api_proxy_type &#61; optional&#40;string&#41;&#10; node_config &#61; optional&#40;object&#40;&#123;&#10; min_node_count &#61; optional&#40;number&#41;&#10; max_node_count &#61; optional&#40;number&#41;&#10; &#125;&#41;&#41;&#10; iam &#61; optional&#40;map&#40;list&#40;string&#41;&#41;&#41;&#10; envgroups &#61; list&#40;string&#41;&#10;&#125;&#41;&#41;">map&#40;object&#40;&#123;&#8230;&#125;&#41;&#41;</code> | | <code>null</code> |
| [instances](variables.tf#L49) | Instances. | <code title="map&#40;object&#40;&#123;&#10; display_name &#61; optional&#40;string&#41;&#10; description &#61; optional&#40;string, &#34;Terraform-managed&#34;&#41;&#10; region &#61; string&#10; environments &#61; list&#40;string&#41;&#10; psa_ip_cidr_range &#61; string&#10; disk_encryption_key &#61; optional&#40;string&#41;&#10; consumer_accept_list &#61; optional&#40;list&#40;string&#41;&#41;&#10;&#125;&#41;&#41;">map&#40;object&#40;&#123;&#8230;&#125;&#41;&#41;</code> | | <code>null</code> |
| [organization](variables.tf#L63) | Apigee organization. If set to null the organization must already exist. | <code title="object&#40;&#123;&#10; display_name &#61; optional&#40;string&#41;&#10; description &#61; optional&#40;string, &#34;Terraform-managed&#34;&#41;&#10; authorized_network &#61; optional&#40;string&#41;&#10; runtime_type &#61; optional&#40;string, &#34;CLOUD&#34;&#41;&#10; billing_type &#61; optional&#40;string&#41;&#10; database_encryption_key &#61; optional&#40;string&#41;&#10; analytics_region &#61; optional&#40;string, &#34;europe-west1&#34;&#41;&#10;&#125;&#41;">object&#40;&#123;&#8230;&#125;&#41;</code> | | <code>null</code> |
| [instances](variables.tf#L49) | Instances. | <code title="map&#40;object&#40;&#123;&#10; display_name &#61; optional&#40;string&#41;&#10; description &#61; optional&#40;string, &#34;Terraform-managed&#34;&#41;&#10; region &#61; string&#10; environments &#61; list&#40;string&#41;&#10; runtime_ip_cidr_range &#61; string&#10; troubleshooting_ip_cidr_range &#61; string&#10; disk_encryption_key &#61; optional&#40;string&#41;&#10; consumer_accept_list &#61; optional&#40;list&#40;string&#41;&#41;&#10;&#125;&#41;&#41;">map&#40;object&#40;&#123;&#8230;&#125;&#41;&#41;</code> | | <code>null</code> |
| [organization](variables.tf#L64) | Apigee organization. If set to null the organization must already exist. | <code title="object&#40;&#123;&#10; display_name &#61; optional&#40;string&#41;&#10; description &#61; optional&#40;string, &#34;Terraform-managed&#34;&#41;&#10; authorized_network &#61; optional&#40;string&#41;&#10; runtime_type &#61; optional&#40;string, &#34;CLOUD&#34;&#41;&#10; billing_type &#61; optional&#40;string&#41;&#10; database_encryption_key &#61; optional&#40;string&#41;&#10; analytics_region &#61; optional&#40;string, &#34;europe-west1&#34;&#41;&#10;&#125;&#41;">object&#40;&#123;&#8230;&#125;&#41;</code> | | <code>null</code> |
## Outputs

View File

@ -93,7 +93,7 @@ resource "google_apigee_instance" "instances" {
description = each.value.description
location = each.value.region
org_id = local.org_id
ip_range = each.value.psa_ip_cidr_range
ip_range = "${each.value.runtime_ip_cidr_range},${each.value.troubleshooting_ip_cidr_range}"
disk_encryption_key_name = each.value.disk_encryption_key
consumer_accept_list = each.value.consumer_accept_list
}

View File

@ -49,13 +49,14 @@ variable "environments" {
variable "instances" {
description = "Instances."
type = 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))
display_name = optional(string)
description = optional(string, "Terraform-managed")
region = string
environments = list(string)
runtime_ip_cidr_range = string
troubleshooting_ip_cidr_range = string
disk_encryption_key = optional(string)
consumer_accept_list = optional(list(string))
}))
default = null
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -91,38 +91,37 @@ module "cluster-autopilot" {
master_ipv4_cidr_block = "192.168.0.0/28"
}
enable_features = {
autopilot = true
autopilot = true
workload_identity = false
}
}
# tftest modules=1 resources=1 inventory=autopilot.yaml
```
<!-- BEGIN TFDOC -->
## Variables
| name | description | type | required | default |
|---|---|:---:|:---:|:---:|
| [location](variables.tf#L117) | Cluster zone or region. | <code>string</code> | ✓ | |
| [name](variables.tf#L174) | Cluster name. | <code>string</code> | ✓ | |
| [project_id](variables.tf#L200) | Cluster project id. | <code>string</code> | ✓ | |
| [vpc_config](variables.tf#L217) | VPC-level configuration. | <code title="object&#40;&#123;&#10; network &#61; string&#10; subnetwork &#61; string&#10; master_ipv4_cidr_block &#61; optional&#40;string&#41;&#10; secondary_range_blocks &#61; optional&#40;object&#40;&#123;&#10; pods &#61; string&#10; services &#61; string&#10; &#125;&#41;&#41;&#10; secondary_range_names &#61; optional&#40;object&#40;&#123;&#10; pods &#61; string&#10; services &#61; string&#10; &#125;&#41;, &#123; pods &#61; &#34;pods&#34;, services &#61; &#34;services&#34; &#125;&#41;&#10; master_authorized_ranges &#61; optional&#40;map&#40;string&#41;&#41;&#10;&#125;&#41;">object&#40;&#123;&#8230;&#125;&#41;</code> | ✓ | |
| [location](variables.tf#L118) | Cluster zone or region. | <code>string</code> | ✓ | |
| [name](variables.tf#L175) | Cluster name. | <code>string</code> | ✓ | |
| [project_id](variables.tf#L201) | Cluster project id. | <code>string</code> | ✓ | |
| [vpc_config](variables.tf#L218) | VPC-level configuration. | <code title="object&#40;&#123;&#10; network &#61; string&#10; subnetwork &#61; string&#10; master_ipv4_cidr_block &#61; optional&#40;string&#41;&#10; secondary_range_blocks &#61; optional&#40;object&#40;&#123;&#10; pods &#61; string&#10; services &#61; string&#10; &#125;&#41;&#41;&#10; secondary_range_names &#61; optional&#40;object&#40;&#123;&#10; pods &#61; string&#10; services &#61; string&#10; &#125;&#41;, &#123; pods &#61; &#34;pods&#34;, services &#61; &#34;services&#34; &#125;&#41;&#10; master_authorized_ranges &#61; optional&#40;map&#40;string&#41;&#41;&#10;&#125;&#41;">object&#40;&#123;&#8230;&#125;&#41;</code> | ✓ | |
| [cluster_autoscaling](variables.tf#L17) | Enable and configure limits for Node Auto-Provisioning with Cluster Autoscaler. | <code title="object&#40;&#123;&#10; auto_provisioning_defaults &#61; optional&#40;object&#40;&#123;&#10; boot_disk_kms_key &#61; optional&#40;string&#41;&#10; image_type &#61; optional&#40;string&#41;&#10; oauth_scopes &#61; optional&#40;list&#40;string&#41;&#41;&#10; service_account &#61; optional&#40;string&#41;&#10; &#125;&#41;&#41;&#10; cpu_limits &#61; optional&#40;object&#40;&#123;&#10; min &#61; number&#10; max &#61; number&#10; &#125;&#41;&#41;&#10; mem_limits &#61; optional&#40;object&#40;&#123;&#10; min &#61; number&#10; max &#61; number&#10; &#125;&#41;&#41;&#10;&#125;&#41;">object&#40;&#123;&#8230;&#125;&#41;</code> | | <code>null</code> |
| [description](variables.tf#L38) | Cluster description. | <code>string</code> | | <code>null</code> |
| [enable_addons](variables.tf#L44) | Addons enabled in the cluster (true means enabled). | <code title="object&#40;&#123;&#10; cloudrun &#61; optional&#40;bool, false&#41;&#10; config_connector &#61; optional&#40;bool, false&#41;&#10; dns_cache &#61; optional&#40;bool, false&#41;&#10; gce_persistent_disk_csi_driver &#61; optional&#40;bool, false&#41;&#10; gcp_filestore_csi_driver &#61; optional&#40;bool, false&#41;&#10; gke_backup_agent &#61; optional&#40;bool, false&#41;&#10; horizontal_pod_autoscaling &#61; optional&#40;bool, false&#41;&#10; http_load_balancing &#61; optional&#40;bool, false&#41;&#10; istio &#61; optional&#40;object&#40;&#123;&#10; enable_tls &#61; bool&#10; &#125;&#41;&#41;&#10; kalm &#61; optional&#40;bool, false&#41;&#10; network_policy &#61; optional&#40;bool, false&#41;&#10;&#125;&#41;">object&#40;&#123;&#8230;&#125;&#41;</code> | | <code title="&#123;&#10; horizontal_pod_autoscaling &#61; true&#10; http_load_balancing &#61; true&#10;&#125;">&#123;&#8230;&#125;</code> |
| [enable_features](variables.tf#L68) | Enable cluster-level features. Certain features allow configuration. | <code title="object&#40;&#123;&#10; autopilot &#61; optional&#40;bool, false&#41;&#10; binary_authorization &#61; optional&#40;bool, false&#41;&#10; cloud_dns &#61; optional&#40;object&#40;&#123;&#10; provider &#61; optional&#40;string&#41;&#10; scope &#61; optional&#40;string&#41;&#10; domain &#61; optional&#40;string&#41;&#10; &#125;&#41;&#41;&#10; database_encryption &#61; optional&#40;object&#40;&#123;&#10; state &#61; string&#10; key_name &#61; string&#10; &#125;&#41;&#41;&#10; dataplane_v2 &#61; optional&#40;bool, false&#41;&#10; groups_for_rbac &#61; optional&#40;string&#41;&#10; intranode_visibility &#61; optional&#40;bool, false&#41;&#10; l4_ilb_subsetting &#61; optional&#40;bool, false&#41;&#10; pod_security_policy &#61; optional&#40;bool, false&#41;&#10; resource_usage_export &#61; optional&#40;object&#40;&#123;&#10; dataset &#61; string&#10; enable_network_egress_metering &#61; optional&#40;bool&#41;&#10; enable_resource_consumption_metering &#61; optional&#40;bool&#41;&#10; &#125;&#41;&#41;&#10; shielded_nodes &#61; optional&#40;bool, false&#41;&#10; tpu &#61; optional&#40;bool, false&#41;&#10; upgrade_notifications &#61; optional&#40;object&#40;&#123;&#10; topic_id &#61; optional&#40;string&#41;&#10; &#125;&#41;&#41;&#10; vertical_pod_autoscaling &#61; optional&#40;bool, false&#41;&#10; workload_identity &#61; optional&#40;bool, false&#41;&#10;&#125;&#41;">object&#40;&#123;&#8230;&#125;&#41;</code> | | <code title="&#123;&#10; workload_identity &#61; true&#10;&#125;">&#123;&#8230;&#125;</code> |
| [issue_client_certificate](variables.tf#L105) | Enable issuing client certificate. | <code>bool</code> | | <code>false</code> |
| [labels](variables.tf#L111) | Cluster resource labels. | <code>map&#40;string&#41;</code> | | <code>null</code> |
| [logging_config](variables.tf#L122) | Logging configuration. | <code>list&#40;string&#41;</code> | | <code>&#91;&#34;SYSTEM_COMPONENTS&#34;&#93;</code> |
| [maintenance_config](variables.tf#L128) | Maintenance window configuration. | <code title="object&#40;&#123;&#10; daily_window_start_time &#61; optional&#40;string&#41;&#10; recurring_window &#61; optional&#40;object&#40;&#123;&#10; start_time &#61; string&#10; end_time &#61; string&#10; recurrence &#61; string&#10; &#125;&#41;&#41;&#10; maintenance_exclusions &#61; optional&#40;list&#40;object&#40;&#123;&#10; name &#61; string&#10; start_time &#61; string&#10; end_time &#61; string&#10; scope &#61; optional&#40;string&#41;&#10; &#125;&#41;&#41;&#41;&#10;&#125;&#41;">object&#40;&#123;&#8230;&#125;&#41;</code> | | <code title="&#123;&#10; daily_window_start_time &#61; &#34;03:00&#34;&#10; recurring_window &#61; null&#10; maintenance_exclusion &#61; &#91;&#93;&#10;&#125;">&#123;&#8230;&#125;</code> |
| [max_pods_per_node](variables.tf#L151) | Maximum number of pods per node in this cluster. | <code>number</code> | | <code>110</code> |
| [min_master_version](variables.tf#L157) | Minimum version of the master, defaults to the version of the most recent official release. | <code>string</code> | | <code>null</code> |
| [monitoring_config](variables.tf#L163) | Monitoring components. | <code title="object&#40;&#123;&#10; enable_components &#61; optional&#40;list&#40;string&#41;&#41;&#10; managed_prometheus &#61; optional&#40;bool&#41;&#10;&#125;&#41;">object&#40;&#123;&#8230;&#125;&#41;</code> | | <code title="&#123;&#10; enable_components &#61; &#91;&#34;SYSTEM_COMPONENTS&#34;&#93;&#10;&#125;">&#123;&#8230;&#125;</code> |
| [node_locations](variables.tf#L179) | Zones in which the cluster's nodes are located. | <code>list&#40;string&#41;</code> | | <code>&#91;&#93;</code> |
| [private_cluster_config](variables.tf#L186) | Private cluster configuration. | <code title="object&#40;&#123;&#10; enable_private_endpoint &#61; optional&#40;bool&#41;&#10; master_global_access &#61; optional&#40;bool&#41;&#10; peering_config &#61; optional&#40;object&#40;&#123;&#10; export_routes &#61; optional&#40;bool&#41;&#10; import_routes &#61; optional&#40;bool&#41;&#10; project_id &#61; optional&#40;string&#41;&#10; &#125;&#41;&#41;&#10;&#125;&#41;">object&#40;&#123;&#8230;&#125;&#41;</code> | | <code>null</code> |
| [release_channel](variables.tf#L205) | Release channel for GKE upgrades. | <code>string</code> | | <code>null</code> |
| [tags](variables.tf#L211) | Network tags applied to nodes. | <code>list&#40;string&#41;</code> | | <code>null</code> |
| [enable_features](variables.tf#L68) | Enable cluster-level features. Certain features allow configuration. | <code title="object&#40;&#123;&#10; autopilot &#61; optional&#40;bool, false&#41;&#10; binary_authorization &#61; optional&#40;bool, false&#41;&#10; cloud_dns &#61; optional&#40;object&#40;&#123;&#10; provider &#61; optional&#40;string&#41;&#10; scope &#61; optional&#40;string&#41;&#10; domain &#61; optional&#40;string&#41;&#10; &#125;&#41;&#41;&#10; database_encryption &#61; optional&#40;object&#40;&#123;&#10; state &#61; string&#10; key_name &#61; string&#10; &#125;&#41;&#41;&#10; dataplane_v2 &#61; optional&#40;bool, false&#41;&#10; gateway_api &#61; optional&#40;bool, false&#41;&#10; groups_for_rbac &#61; optional&#40;string&#41;&#10; intranode_visibility &#61; optional&#40;bool, false&#41;&#10; l4_ilb_subsetting &#61; optional&#40;bool, false&#41;&#10; pod_security_policy &#61; optional&#40;bool, false&#41;&#10; resource_usage_export &#61; optional&#40;object&#40;&#123;&#10; dataset &#61; string&#10; enable_network_egress_metering &#61; optional&#40;bool&#41;&#10; enable_resource_consumption_metering &#61; optional&#40;bool&#41;&#10; &#125;&#41;&#41;&#10; shielded_nodes &#61; optional&#40;bool, false&#41;&#10; tpu &#61; optional&#40;bool, false&#41;&#10; upgrade_notifications &#61; optional&#40;object&#40;&#123;&#10; topic_id &#61; optional&#40;string&#41;&#10; &#125;&#41;&#41;&#10; vertical_pod_autoscaling &#61; optional&#40;bool, false&#41;&#10; workload_identity &#61; optional&#40;bool, true&#41;&#10;&#125;&#41;">object&#40;&#123;&#8230;&#125;&#41;</code> | | <code title="&#123;&#10; workload_identity &#61; true&#10;&#125;">&#123;&#8230;&#125;</code> |
| [issue_client_certificate](variables.tf#L106) | Enable issuing client certificate. | <code>bool</code> | | <code>false</code> |
| [labels](variables.tf#L112) | Cluster resource labels. | <code>map&#40;string&#41;</code> | | <code>null</code> |
| [logging_config](variables.tf#L123) | Logging configuration. | <code>list&#40;string&#41;</code> | | <code>&#91;&#34;SYSTEM_COMPONENTS&#34;&#93;</code> |
| [maintenance_config](variables.tf#L129) | Maintenance window configuration. | <code title="object&#40;&#123;&#10; daily_window_start_time &#61; optional&#40;string&#41;&#10; recurring_window &#61; optional&#40;object&#40;&#123;&#10; start_time &#61; string&#10; end_time &#61; string&#10; recurrence &#61; string&#10; &#125;&#41;&#41;&#10; maintenance_exclusions &#61; optional&#40;list&#40;object&#40;&#123;&#10; name &#61; string&#10; start_time &#61; string&#10; end_time &#61; string&#10; scope &#61; optional&#40;string&#41;&#10; &#125;&#41;&#41;&#41;&#10;&#125;&#41;">object&#40;&#123;&#8230;&#125;&#41;</code> | | <code title="&#123;&#10; daily_window_start_time &#61; &#34;03:00&#34;&#10; recurring_window &#61; null&#10; maintenance_exclusion &#61; &#91;&#93;&#10;&#125;">&#123;&#8230;&#125;</code> |
| [max_pods_per_node](variables.tf#L152) | Maximum number of pods per node in this cluster. | <code>number</code> | | <code>110</code> |
| [min_master_version](variables.tf#L158) | Minimum version of the master, defaults to the version of the most recent official release. | <code>string</code> | | <code>null</code> |
| [monitoring_config](variables.tf#L164) | Monitoring components. | <code title="object&#40;&#123;&#10; enable_components &#61; optional&#40;list&#40;string&#41;&#41;&#10; managed_prometheus &#61; optional&#40;bool&#41;&#10;&#125;&#41;">object&#40;&#123;&#8230;&#125;&#41;</code> | | <code title="&#123;&#10; enable_components &#61; &#91;&#34;SYSTEM_COMPONENTS&#34;&#93;&#10;&#125;">&#123;&#8230;&#125;</code> |
| [node_locations](variables.tf#L180) | Zones in which the cluster's nodes are located. | <code>list&#40;string&#41;</code> | | <code>&#91;&#93;</code> |
| [private_cluster_config](variables.tf#L187) | Private cluster configuration. | <code title="object&#40;&#123;&#10; enable_private_endpoint &#61; optional&#40;bool&#41;&#10; master_global_access &#61; optional&#40;bool&#41;&#10; peering_config &#61; optional&#40;object&#40;&#123;&#10; export_routes &#61; optional&#40;bool&#41;&#10; import_routes &#61; optional&#40;bool&#41;&#10; project_id &#61; optional&#40;string&#41;&#10; &#125;&#41;&#41;&#10;&#125;&#41;">object&#40;&#123;&#8230;&#125;&#41;</code> | | <code>null</code> |
| [release_channel](variables.tf#L206) | Release channel for GKE upgrades. | <code>string</code> | | <code>null</code> |
| [tags](variables.tf#L212) | Network tags applied to nodes. | <code>list&#40;string&#41;</code> | | <code>null</code> |
## Outputs

View File

@ -197,6 +197,13 @@ resource "google_container_cluster" "cluster" {
}
}
dynamic "gateway_api_config" {
for_each = var.enable_features.gateway_api ? [""] : []
content {
channel = "CHANNEL_STANDARD"
}
}
maintenance_policy {
dynamic "daily_maintenance_window" {
for_each = (

View File

@ -80,6 +80,7 @@ variable "enable_features" {
key_name = string
}))
dataplane_v2 = optional(bool, false)
gateway_api = optional(bool, false)
groups_for_rbac = optional(string)
intranode_visibility = optional(bool, false)
l4_ilb_subsetting = optional(bool, false)
@ -95,7 +96,7 @@ variable "enable_features" {
topic_id = optional(string)
}))
vertical_pod_autoscaling = optional(bool, false)
workload_identity = optional(bool, false)
workload_identity = optional(bool, true)
})
default = {
workload_identity = true

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -119,7 +119,7 @@ module "hub" {
}
}
# tftest modules=4 resources=15
# tftest modules=4 resources=16
```
## Multi-cluster mesh on GKE
@ -307,7 +307,7 @@ module "hub" {
| [clusters](variables.tf#L17) | Clusters members of this GKE Hub in name => id format. | <code>map&#40;string&#41;</code> | | <code>&#123;&#125;</code> |
| [configmanagement_clusters](variables.tf#L24) | Config management features enabled on specific sets of member clusters, in config name => [cluster name] format. | <code>map&#40;list&#40;string&#41;&#41;</code> | | <code>&#123;&#125;</code> |
| [configmanagement_templates](variables.tf#L31) | Sets of config management configurations that can be applied to member clusters, in config name => {options} format. | <code title="map&#40;object&#40;&#123;&#10; binauthz &#61; bool&#10; config_sync &#61; object&#40;&#123;&#10; git &#61; object&#40;&#123;&#10; gcp_service_account_email &#61; string&#10; https_proxy &#61; string&#10; policy_dir &#61; string&#10; secret_type &#61; string&#10; sync_branch &#61; string&#10; sync_repo &#61; string&#10; sync_rev &#61; string&#10; sync_wait_secs &#61; number&#10; &#125;&#41;&#10; prevent_drift &#61; string&#10; source_format &#61; string&#10; &#125;&#41;&#10; hierarchy_controller &#61; object&#40;&#123;&#10; enable_hierarchical_resource_quota &#61; bool&#10; enable_pod_tree_labels &#61; bool&#10; &#125;&#41;&#10; policy_controller &#61; object&#40;&#123;&#10; audit_interval_seconds &#61; number&#10; exemptable_namespaces &#61; list&#40;string&#41;&#10; log_denies_enabled &#61; bool&#10; referential_rules_enabled &#61; bool&#10; template_library_installed &#61; bool&#10; &#125;&#41;&#10; version &#61; string&#10;&#125;&#41;&#41;">map&#40;object&#40;&#123;&#8230;&#125;&#41;&#41;</code> | | <code>&#123;&#125;</code> |
| [features](variables.tf#L66) | Enable and configue fleet features. | <code title="object&#40;&#123;&#10; appdevexperience &#61; bool&#10; configmanagement &#61; bool&#10; identityservice &#61; bool&#10; multiclusteringress &#61; string&#10; multiclusterservicediscovery &#61; bool&#10; servicemesh &#61; bool&#10;&#125;&#41;">object&#40;&#123;&#8230;&#125;&#41;</code> | | <code title="&#123;&#10; appdevexperience &#61; false&#10; configmanagement &#61; false&#10; identityservice &#61; false&#10; multiclusteringress &#61; null&#10; servicemesh &#61; false&#10; multiclusterservicediscovery &#61; false&#10;&#125;">&#123;&#8230;&#125;</code> |
| [features](variables.tf#L66) | Enable and configue fleet features. | <code title="object&#40;&#123;&#10; appdevexperience &#61; optional&#40;bool, false&#41;&#10; configmanagement &#61; optional&#40;bool, false&#41;&#10; identityservice &#61; optional&#40;bool, false&#41;&#10; multiclusteringress &#61; optional&#40;string, null&#41;&#10; multiclusterservicediscovery &#61; optional&#40;bool, false&#41;&#10; servicemesh &#61; optional&#40;bool, false&#41;&#10;&#125;&#41;">object&#40;&#123;&#8230;&#125;&#41;</code> | | <code title="&#123;&#10; appdevexperience &#61; false&#10; configmanagement &#61; false&#10; identityservice &#61; false&#10; multiclusteringress &#61; null&#10; servicemesh &#61; false&#10; multiclusterservicediscovery &#61; false&#10;&#125;">&#123;&#8230;&#125;</code> |
| [workload_identity_clusters](variables.tf#L92) | Clusters that will use Fleet Workload Identity. | <code>list&#40;string&#41;</code> | | <code>&#91;&#93;</code> |
## Outputs

View File

@ -66,12 +66,12 @@ variable "configmanagement_templates" {
variable "features" {
description = "Enable and configue fleet features."
type = object({
appdevexperience = bool
configmanagement = bool
identityservice = bool
multiclusteringress = string
multiclusterservicediscovery = bool
servicemesh = bool
appdevexperience = optional(bool, false)
configmanagement = optional(bool, false)
identityservice = optional(bool, false)
multiclusteringress = optional(string, null)
multiclusterservicediscovery = optional(bool, false)
servicemesh = optional(bool, false)
})
default = {
appdevexperience = false

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -214,6 +214,66 @@ module "glb-0" {
}
# tftest modules=1 resources=6
```
#### Managed Instance Groups
This example shows how to use the module with a manage instance group as backend:
```hcl
module "win-template" {
source = "./fabric/modules/compute-vm"
project_id = "myprj"
zone = "europe-west8-a"
name = "win-template"
instance_type = "n2d-standard-2"
create_template = true
boot_disk = {
image = "projects/windows-cloud/global/images/windows-server-2019-dc-v20221214"
type = "pd-balanced"
size = 70
}
network_interfaces = [{
network = var.vpc.self_link
subnetwork = var.subnet.self_link
nat = false
addresses = null
}]
}
module "win-mig" {
source = "./fabric/modules/compute-mig"
project_id = "myprj"
location = "europe-west8-a"
name = "win-mig"
instance_template = module.win-template.template.self_link
autoscaler_config = {
max_replicas = 3
min_replicas = 1
cooldown_period = 30
scaling_signals = {
cpu_utilization = {
target = 0.80
}
}
}
named_ports = {
http = 80
}
}
module "glb-0" {
source = "./fabric/modules/net-glb"
project_id = "myprj"
name = "glb-test-0"
backend_service_configs = {
default = {
backends = [
{ backend = module.win-mig.group_manager.instance_group }
]
}
}
}
# tftest modules=3 resources=8
```
#### Storage Buckets
@ -529,7 +589,6 @@ The module also allows managing managed and self-managed SSL certificates via th
THe [HTTPS example above](#minimal-https-examples) shows how to configure manage certificated, the following example shows how to use an unmanaged (or self managed) certificate. The example uses Terraform resource for the key and certificate so that the we don't depend on external files when running tests, in real use the key and certificate are generally provided via external files read by the Terraform `file()` function.
```hcl
resource "tls_private_key" "default" {
algorithm = "RSA"
rsa_bits = 4096

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -45,6 +45,8 @@ locals {
# TODO: jit?
gke-mcs = "service-%s@gcp-sa-mcsd"
monitoring-notifications = "service-%s@gcp-sa-monitoring-notification"
multicluster-ingress = "service-%s@gcp-sa-multiclusteringress"
multicluster-discovery = "service-%s@gcp-sa-mcsd"
notebooks = "service-%s@gcp-sa-notebooks"
pubsub = "service-%s@gcp-sa-pubsub"
secretmanager = "service-%s@gcp-sa-secretmanager"
@ -73,6 +75,7 @@ locals {
"artifactregistry.googleapis.com",
"cloudasset.googleapis.com",
"gkehub.googleapis.com",
"multiclusteringress.googleapis.com",
"pubsub.googleapis.com",
"secretmanager.googleapis.com",
"sqladmin.googleapis.com",

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

View File

@ -17,11 +17,11 @@ terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
google-beta = {
source = "hashicorp/google-beta"
version = ">= 4.47.0" # tftest
version = ">= 4.48.0" # tftest
}
}
}

Some files were not shown because too many files have changed in this diff Show More