Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,7 @@ Then perform the following commands on the root folder:
| enable\_gcfs | Enable image streaming on cluster level. | `bool` | `false` | no |
| enable\_identity\_service | (Optional) Enable the Identity Service component, which allows customers to use external identity providers with the K8S API. | `bool` | `false` | no |
| enable\_intranode\_visibility | Whether Intra-node visibility is enabled for this cluster. This makes same node pod to pod traffic visible for VPC network | `bool` | `false` | no |
| enable\_k8s\_beta\_apis | (Optional) - List of Kubernetes Beta APIs to enable in cluster. | `list(string)` | `[]` | no |
| enable\_kubernetes\_alpha | Whether to enable Kubernetes Alpha features for this cluster. Note that when this option is enabled, the cluster cannot be upgraded and will be automatically deleted after 30 days. | `bool` | `false` | no |
| enable\_l4\_ilb\_subsetting | Enable L4 ILB Subsetting on the cluster | `bool` | `false` | no |
| enable\_mesh\_certificates | Controls the issuance of workload mTLS certificates. When enabled the GKE Workload Identity Certificates controller and node agent will be deployed in the cluster. Requires Workload Identity. | `bool` | `false` | no |
Expand Down
7 changes: 7 additions & 0 deletions autogen/main/cluster.tf.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,13 @@ resource "google_container_cluster" "primary" {
network = "projects/${local.network_project_id}/global/networks/${var.network}"
deletion_protection = var.deletion_protection

dynamic "enable_k8s_beta_apis" {
for_each = length(var.enable_k8s_beta_apis) > 0 ? [1] : []
content {
enabled_apis = var.enable_k8s_beta_apis
}
}

{% if autopilot_cluster != true %}
dynamic "network_policy" {
for_each = local.cluster_network_policy
Expand Down
6 changes: 6 additions & 0 deletions autogen/main/variables.tf.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -399,6 +399,12 @@ variable "network_tags" {
default = []
}

variable "enable_k8s_beta_apis" {
description = "(Optional) - List of Kubernetes Beta APIs to enable in cluster."
type = list(string)
default = []
}

{% if autopilot_cluster != true %}
variable "stub_domains" {
type = map(list(string))
Expand Down
7 changes: 7 additions & 0 deletions cluster.tf
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,13 @@ resource "google_container_cluster" "primary" {
network = "projects/${local.network_project_id}/global/networks/${var.network}"
deletion_protection = var.deletion_protection

dynamic "enable_k8s_beta_apis" {
for_each = length(var.enable_k8s_beta_apis) > 0 ? [1] : []
content {
enabled_apis = var.enable_k8s_beta_apis
}
}

dynamic "network_policy" {
for_each = local.cluster_network_policy

Expand Down
3 changes: 3 additions & 0 deletions metadata.display.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,9 @@ spec:
enable_intranode_visibility:
name: enable_intranode_visibility
title: Enable Intranode Visibility
enable_k8s_beta_apis:
name: enable_k8s_beta_apis
title: Enable K8s Beta Apis
enable_kubernetes_alpha:
name: enable_kubernetes_alpha
title: Enable Kubernetes Alpha
Expand Down
4 changes: 4 additions & 0 deletions metadata.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -393,6 +393,10 @@ spec:
description: (Optional) - List of network tags applied to auto-provisioned node pools.
varType: list(string)
defaultValue: []
- name: enable_k8s_beta_apis
description: (Optional) - List of Kubernetes Beta APIs to enable in cluster.
varType: list(string)
defaultValue: []
- name: stub_domains
description: Map of stub domains and their resolvers to forward DNS queries for a certain domain to an external DNS server
varType: map(list(string))
Expand Down
1 change: 1 addition & 0 deletions modules/beta-autopilot-private-cluster/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ Then perform the following commands on the root folder:
| enable\_confidential\_nodes | An optional flag to enable confidential node config. | `bool` | `false` | no |
| enable\_cost\_allocation | Enables Cost Allocation Feature and the cluster name and namespace of your GKE workloads appear in the labels field of the billing export to BigQuery | `bool` | `false` | no |
| enable\_fqdn\_network\_policy | Enable FQDN Network Policies on the cluster | `bool` | `null` | no |
| enable\_k8s\_beta\_apis | (Optional) - List of Kubernetes Beta APIs to enable in cluster. | `list(string)` | `[]` | no |
| enable\_l4\_ilb\_subsetting | Enable L4 ILB Subsetting on the cluster | `bool` | `false` | no |
| enable\_multi\_networking | Whether multi-networking is enabled for this cluster | `bool` | `null` | no |
| enable\_network\_egress\_export | Whether to enable network egress metering for this cluster. If enabled, a daemonset will be created in the cluster to meter network egress traffic. | `bool` | `false` | no |
Expand Down
7 changes: 7 additions & 0 deletions modules/beta-autopilot-private-cluster/cluster.tf
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,13 @@ resource "google_container_cluster" "primary" {
network = "projects/${local.network_project_id}/global/networks/${var.network}"
deletion_protection = var.deletion_protection

dynamic "enable_k8s_beta_apis" {
for_each = length(var.enable_k8s_beta_apis) > 0 ? [1] : []
content {
enabled_apis = var.enable_k8s_beta_apis
}
}


dynamic "release_channel" {
for_each = local.release_channel
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,9 @@ spec:
enable_fqdn_network_policy:
name: enable_fqdn_network_policy
title: Enable Fqdn Network Policy
enable_k8s_beta_apis:
name: enable_k8s_beta_apis
title: Enable K8s Beta Apis
enable_l4_ilb_subsetting:
name: enable_l4_ilb_subsetting
title: Enable L4 Ilb Subsetting
Expand Down
4 changes: 4 additions & 0 deletions modules/beta-autopilot-private-cluster/metadata.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,10 @@ spec:
description: (Optional) - List of network tags applied to auto-provisioned node pools.
varType: list(string)
defaultValue: []
- name: enable_k8s_beta_apis
description: (Optional) - List of Kubernetes Beta APIs to enable in cluster.
varType: list(string)
defaultValue: []
- name: create_service_account
description: Defines if service account specified to run nodes should be created.
varType: bool
Expand Down
6 changes: 6 additions & 0 deletions modules/beta-autopilot-private-cluster/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,12 @@ variable "network_tags" {
default = []
}

variable "enable_k8s_beta_apis" {
description = "(Optional) - List of Kubernetes Beta APIs to enable in cluster."
type = list(string)
default = []
}



variable "create_service_account" {
Expand Down
1 change: 1 addition & 0 deletions modules/beta-autopilot-public-cluster/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ Then perform the following commands on the root folder:
| enable\_confidential\_nodes | An optional flag to enable confidential node config. | `bool` | `false` | no |
| enable\_cost\_allocation | Enables Cost Allocation Feature and the cluster name and namespace of your GKE workloads appear in the labels field of the billing export to BigQuery | `bool` | `false` | no |
| enable\_fqdn\_network\_policy | Enable FQDN Network Policies on the cluster | `bool` | `null` | no |
| enable\_k8s\_beta\_apis | (Optional) - List of Kubernetes Beta APIs to enable in cluster. | `list(string)` | `[]` | no |
| enable\_l4\_ilb\_subsetting | Enable L4 ILB Subsetting on the cluster | `bool` | `false` | no |
| enable\_multi\_networking | Whether multi-networking is enabled for this cluster | `bool` | `null` | no |
| enable\_network\_egress\_export | Whether to enable network egress metering for this cluster. If enabled, a daemonset will be created in the cluster to meter network egress traffic. | `bool` | `false` | no |
Expand Down
7 changes: 7 additions & 0 deletions modules/beta-autopilot-public-cluster/cluster.tf
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,13 @@ resource "google_container_cluster" "primary" {
network = "projects/${local.network_project_id}/global/networks/${var.network}"
deletion_protection = var.deletion_protection

dynamic "enable_k8s_beta_apis" {
for_each = length(var.enable_k8s_beta_apis) > 0 ? [1] : []
content {
enabled_apis = var.enable_k8s_beta_apis
}
}


dynamic "release_channel" {
for_each = local.release_channel
Expand Down
3 changes: 3 additions & 0 deletions modules/beta-autopilot-public-cluster/metadata.display.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,9 @@ spec:
enable_fqdn_network_policy:
name: enable_fqdn_network_policy
title: Enable Fqdn Network Policy
enable_k8s_beta_apis:
name: enable_k8s_beta_apis
title: Enable K8s Beta Apis
enable_l4_ilb_subsetting:
name: enable_l4_ilb_subsetting
title: Enable L4 Ilb Subsetting
Expand Down
4 changes: 4 additions & 0 deletions modules/beta-autopilot-public-cluster/metadata.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,10 @@ spec:
description: (Optional) - List of network tags applied to auto-provisioned node pools.
varType: list(string)
defaultValue: []
- name: enable_k8s_beta_apis
description: (Optional) - List of Kubernetes Beta APIs to enable in cluster.
varType: list(string)
defaultValue: []
- name: create_service_account
description: Defines if service account specified to run nodes should be created.
varType: bool
Expand Down
6 changes: 6 additions & 0 deletions modules/beta-autopilot-public-cluster/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,12 @@ variable "network_tags" {
default = []
}

variable "enable_k8s_beta_apis" {
description = "(Optional) - List of Kubernetes Beta APIs to enable in cluster."
type = list(string)
default = []
}



variable "create_service_account" {
Expand Down
1 change: 1 addition & 0 deletions modules/beta-private-cluster-update-variant/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,7 @@ Then perform the following commands on the root folder:
| enable\_gcfs | Enable image streaming on cluster level. | `bool` | `false` | no |
| enable\_identity\_service | (Optional) Enable the Identity Service component, which allows customers to use external identity providers with the K8S API. | `bool` | `false` | no |
| enable\_intranode\_visibility | Whether Intra-node visibility is enabled for this cluster. This makes same node pod to pod traffic visible for VPC network | `bool` | `false` | no |
| enable\_k8s\_beta\_apis | (Optional) - List of Kubernetes Beta APIs to enable in cluster. | `list(string)` | `[]` | no |
| enable\_kubernetes\_alpha | Whether to enable Kubernetes Alpha features for this cluster. Note that when this option is enabled, the cluster cannot be upgraded and will be automatically deleted after 30 days. | `bool` | `false` | no |
| enable\_l4\_ilb\_subsetting | Enable L4 ILB Subsetting on the cluster | `bool` | `false` | no |
| enable\_mesh\_certificates | Controls the issuance of workload mTLS certificates. When enabled the GKE Workload Identity Certificates controller and node agent will be deployed in the cluster. Requires Workload Identity. | `bool` | `false` | no |
Expand Down
7 changes: 7 additions & 0 deletions modules/beta-private-cluster-update-variant/cluster.tf
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,13 @@ resource "google_container_cluster" "primary" {
network = "projects/${local.network_project_id}/global/networks/${var.network}"
deletion_protection = var.deletion_protection

dynamic "enable_k8s_beta_apis" {
for_each = length(var.enable_k8s_beta_apis) > 0 ? [1] : []
content {
enabled_apis = var.enable_k8s_beta_apis
}
}

dynamic "network_policy" {
for_each = local.cluster_network_policy

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,9 @@ spec:
enable_intranode_visibility:
name: enable_intranode_visibility
title: Enable Intranode Visibility
enable_k8s_beta_apis:
name: enable_k8s_beta_apis
title: Enable K8s Beta Apis
enable_kubernetes_alpha:
name: enable_kubernetes_alpha
title: Enable Kubernetes Alpha
Expand Down
4 changes: 4 additions & 0 deletions modules/beta-private-cluster-update-variant/metadata.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -359,6 +359,10 @@ spec:
description: (Optional) - List of network tags applied to auto-provisioned node pools.
varType: list(string)
defaultValue: []
- name: enable_k8s_beta_apis
description: (Optional) - List of Kubernetes Beta APIs to enable in cluster.
varType: list(string)
defaultValue: []
- name: stub_domains
description: Map of stub domains and their resolvers to forward DNS queries for a certain domain to an external DNS server
varType: map(list(string))
Expand Down
6 changes: 6 additions & 0 deletions modules/beta-private-cluster-update-variant/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -376,6 +376,12 @@ variable "network_tags" {
default = []
}

variable "enable_k8s_beta_apis" {
description = "(Optional) - List of Kubernetes Beta APIs to enable in cluster."
type = list(string)
default = []
}

variable "stub_domains" {
type = map(list(string))
description = "Map of stub domains and their resolvers to forward DNS queries for a certain domain to an external DNS server"
Expand Down
1 change: 1 addition & 0 deletions modules/beta-private-cluster/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,7 @@ Then perform the following commands on the root folder:
| enable\_gcfs | Enable image streaming on cluster level. | `bool` | `false` | no |
| enable\_identity\_service | (Optional) Enable the Identity Service component, which allows customers to use external identity providers with the K8S API. | `bool` | `false` | no |
| enable\_intranode\_visibility | Whether Intra-node visibility is enabled for this cluster. This makes same node pod to pod traffic visible for VPC network | `bool` | `false` | no |
| enable\_k8s\_beta\_apis | (Optional) - List of Kubernetes Beta APIs to enable in cluster. | `list(string)` | `[]` | no |
| enable\_kubernetes\_alpha | Whether to enable Kubernetes Alpha features for this cluster. Note that when this option is enabled, the cluster cannot be upgraded and will be automatically deleted after 30 days. | `bool` | `false` | no |
| enable\_l4\_ilb\_subsetting | Enable L4 ILB Subsetting on the cluster | `bool` | `false` | no |
| enable\_mesh\_certificates | Controls the issuance of workload mTLS certificates. When enabled the GKE Workload Identity Certificates controller and node agent will be deployed in the cluster. Requires Workload Identity. | `bool` | `false` | no |
Expand Down
7 changes: 7 additions & 0 deletions modules/beta-private-cluster/cluster.tf
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,13 @@ resource "google_container_cluster" "primary" {
network = "projects/${local.network_project_id}/global/networks/${var.network}"
deletion_protection = var.deletion_protection

dynamic "enable_k8s_beta_apis" {
for_each = length(var.enable_k8s_beta_apis) > 0 ? [1] : []
content {
enabled_apis = var.enable_k8s_beta_apis
}
}

dynamic "network_policy" {
for_each = local.cluster_network_policy

Expand Down
3 changes: 3 additions & 0 deletions modules/beta-private-cluster/metadata.display.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,9 @@ spec:
enable_intranode_visibility:
name: enable_intranode_visibility
title: Enable Intranode Visibility
enable_k8s_beta_apis:
name: enable_k8s_beta_apis
title: Enable K8s Beta Apis
enable_kubernetes_alpha:
name: enable_kubernetes_alpha
title: Enable Kubernetes Alpha
Expand Down
4 changes: 4 additions & 0 deletions modules/beta-private-cluster/metadata.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -359,6 +359,10 @@ spec:
description: (Optional) - List of network tags applied to auto-provisioned node pools.
varType: list(string)
defaultValue: []
- name: enable_k8s_beta_apis
description: (Optional) - List of Kubernetes Beta APIs to enable in cluster.
varType: list(string)
defaultValue: []
- name: stub_domains
description: Map of stub domains and their resolvers to forward DNS queries for a certain domain to an external DNS server
varType: map(list(string))
Expand Down
6 changes: 6 additions & 0 deletions modules/beta-private-cluster/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -376,6 +376,12 @@ variable "network_tags" {
default = []
}

variable "enable_k8s_beta_apis" {
description = "(Optional) - List of Kubernetes Beta APIs to enable in cluster."
type = list(string)
default = []
}

variable "stub_domains" {
type = map(list(string))
description = "Map of stub domains and their resolvers to forward DNS queries for a certain domain to an external DNS server"
Expand Down
1 change: 1 addition & 0 deletions modules/beta-public-cluster-update-variant/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,7 @@ Then perform the following commands on the root folder:
| enable\_gcfs | Enable image streaming on cluster level. | `bool` | `false` | no |
| enable\_identity\_service | (Optional) Enable the Identity Service component, which allows customers to use external identity providers with the K8S API. | `bool` | `false` | no |
| enable\_intranode\_visibility | Whether Intra-node visibility is enabled for this cluster. This makes same node pod to pod traffic visible for VPC network | `bool` | `false` | no |
| enable\_k8s\_beta\_apis | (Optional) - List of Kubernetes Beta APIs to enable in cluster. | `list(string)` | `[]` | no |
| enable\_kubernetes\_alpha | Whether to enable Kubernetes Alpha features for this cluster. Note that when this option is enabled, the cluster cannot be upgraded and will be automatically deleted after 30 days. | `bool` | `false` | no |
| enable\_l4\_ilb\_subsetting | Enable L4 ILB Subsetting on the cluster | `bool` | `false` | no |
| enable\_mesh\_certificates | Controls the issuance of workload mTLS certificates. When enabled the GKE Workload Identity Certificates controller and node agent will be deployed in the cluster. Requires Workload Identity. | `bool` | `false` | no |
Expand Down
7 changes: 7 additions & 0 deletions modules/beta-public-cluster-update-variant/cluster.tf
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,13 @@ resource "google_container_cluster" "primary" {
network = "projects/${local.network_project_id}/global/networks/${var.network}"
deletion_protection = var.deletion_protection

dynamic "enable_k8s_beta_apis" {
for_each = length(var.enable_k8s_beta_apis) > 0 ? [1] : []
content {
enabled_apis = var.enable_k8s_beta_apis
}
}

dynamic "network_policy" {
for_each = local.cluster_network_policy

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,9 @@ spec:
enable_intranode_visibility:
name: enable_intranode_visibility
title: Enable Intranode Visibility
enable_k8s_beta_apis:
name: enable_k8s_beta_apis
title: Enable K8s Beta Apis
enable_kubernetes_alpha:
name: enable_kubernetes_alpha
title: Enable Kubernetes Alpha
Expand Down
4 changes: 4 additions & 0 deletions modules/beta-public-cluster-update-variant/metadata.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -359,6 +359,10 @@ spec:
description: (Optional) - List of network tags applied to auto-provisioned node pools.
varType: list(string)
defaultValue: []
- name: enable_k8s_beta_apis
description: (Optional) - List of Kubernetes Beta APIs to enable in cluster.
varType: list(string)
defaultValue: []
- name: stub_domains
description: Map of stub domains and their resolvers to forward DNS queries for a certain domain to an external DNS server
varType: map(list(string))
Expand Down
6 changes: 6 additions & 0 deletions modules/beta-public-cluster-update-variant/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -376,6 +376,12 @@ variable "network_tags" {
default = []
}

variable "enable_k8s_beta_apis" {
description = "(Optional) - List of Kubernetes Beta APIs to enable in cluster."
type = list(string)
default = []
}

variable "stub_domains" {
type = map(list(string))
description = "Map of stub domains and their resolvers to forward DNS queries for a certain domain to an external DNS server"
Expand Down
1 change: 1 addition & 0 deletions modules/beta-public-cluster/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,7 @@ Then perform the following commands on the root folder:
| enable\_gcfs | Enable image streaming on cluster level. | `bool` | `false` | no |
| enable\_identity\_service | (Optional) Enable the Identity Service component, which allows customers to use external identity providers with the K8S API. | `bool` | `false` | no |
| enable\_intranode\_visibility | Whether Intra-node visibility is enabled for this cluster. This makes same node pod to pod traffic visible for VPC network | `bool` | `false` | no |
| enable\_k8s\_beta\_apis | (Optional) - List of Kubernetes Beta APIs to enable in cluster. | `list(string)` | `[]` | no |
| enable\_kubernetes\_alpha | Whether to enable Kubernetes Alpha features for this cluster. Note that when this option is enabled, the cluster cannot be upgraded and will be automatically deleted after 30 days. | `bool` | `false` | no |
| enable\_l4\_ilb\_subsetting | Enable L4 ILB Subsetting on the cluster | `bool` | `false` | no |
| enable\_mesh\_certificates | Controls the issuance of workload mTLS certificates. When enabled the GKE Workload Identity Certificates controller and node agent will be deployed in the cluster. Requires Workload Identity. | `bool` | `false` | no |
Expand Down
7 changes: 7 additions & 0 deletions modules/beta-public-cluster/cluster.tf
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,13 @@ resource "google_container_cluster" "primary" {
network = "projects/${local.network_project_id}/global/networks/${var.network}"
deletion_protection = var.deletion_protection

dynamic "enable_k8s_beta_apis" {
for_each = length(var.enable_k8s_beta_apis) > 0 ? [1] : []
content {
enabled_apis = var.enable_k8s_beta_apis
}
}

dynamic "network_policy" {
for_each = local.cluster_network_policy

Expand Down
3 changes: 3 additions & 0 deletions modules/beta-public-cluster/metadata.display.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,9 @@ spec:
enable_intranode_visibility:
name: enable_intranode_visibility
title: Enable Intranode Visibility
enable_k8s_beta_apis:
name: enable_k8s_beta_apis
title: Enable K8s Beta Apis
enable_kubernetes_alpha:
name: enable_kubernetes_alpha
title: Enable Kubernetes Alpha
Expand Down
Loading