diff --git a/modules/gke-cluster/README.md b/modules/gke-cluster/README.md index 4617cae0..33fb2ffd 100644 --- a/modules/gke-cluster/README.md +++ b/modules/gke-cluster/README.md @@ -68,44 +68,44 @@ module "cluster-1" { | name | description | type | required | default | |---|---|:---:|:---:|:---:| -| [location](variables.tf#L159) | Cluster zone or region. | string | ✓ | | -| [name](variables.tf#L226) | Cluster name. | string | ✓ | | -| [network](variables.tf#L231) | Name or self link of the VPC used for the cluster. Use the self link for Shared VPC. | string | ✓ | | -| [project_id](variables.tf#L275) | Cluster project id. | string | ✓ | | -| [secondary_range_pods](variables.tf#L298) | Subnet secondary range name used for pods. | string | ✓ | | -| [secondary_range_services](variables.tf#L303) | Subnet secondary range name used for services. | string | ✓ | | -| [subnetwork](variables.tf#L308) | VPC subnetwork name or self link. | string | ✓ | | -| [addons](variables.tf#L17) | Addons enabled in the cluster (true means enabled). | object({…}) | | {…} | -| [authenticator_security_group](variables.tf#L51) | RBAC security group for Google Groups for GKE, format is gke-security-groups@yourdomain.com. | string | | null | -| [cluster_autoscaling](variables.tf#L57) | Enable and configure limits for Node Auto-Provisioning with Cluster Autoscaler. | object({…}) | | {…} | -| [database_encryption](variables.tf#L75) | Enable and configure GKE application-layer secrets encryption. | object({…}) | | {…} | -| [default_max_pods_per_node](variables.tf#L89) | Maximum number of pods per node in this cluster. | number | | 110 | -| [description](variables.tf#L95) | Cluster description. | string | | null | -| [dns_config](variables.tf#L101) | Configuration for Using Cloud DNS for GKE. | object({…}) | | null | -| [enable_autopilot](variables.tf#L111) | Create cluster in autopilot mode. With autopilot there's no need to create node-pools and some features are not supported (e.g. setting default_max_pods_per_node). | bool | | false | -| [enable_binary_authorization](variables.tf#L117) | Enable Google Binary Authorization. | bool | | null | -| [enable_dataplane_v2](variables.tf#L123) | Enable Dataplane V2 on the cluster, will disable network_policy addons config. | bool | | false | -| [enable_intranode_visibility](variables.tf#L129) | Enable intra-node visibility to make same node pod to pod traffic visible. | bool | | null | -| [enable_l4_ilb_subsetting](variables.tf#L135) | Enable L4ILB Subsetting. | bool | | null | -| [enable_shielded_nodes](variables.tf#L141) | Enable Shielded Nodes features on all nodes in this cluster. | bool | | null | -| [enable_tpu](variables.tf#L147) | Enable Cloud TPU resources in this cluster. | bool | | null | -| [labels](variables.tf#L153) | Cluster resource labels. | map(string) | | null | -| [logging_config](variables.tf#L164) | Logging configuration (enabled components). | list(string) | | null | -| [logging_service](variables.tf#L170) | Logging service (disable with an empty string). | string | | "logging.googleapis.com/kubernetes" | -| [maintenance_config](variables.tf#L176) | Maintenance window configuration. | object({…}) | | {…} | -| [master_authorized_ranges](variables.tf#L202) | External Ip address ranges that can access the Kubernetes cluster master through HTTPS. | map(string) | | {} | -| [min_master_version](variables.tf#L208) | Minimum version of the master, defaults to the version of the most recent official release. | string | | null | -| [monitoring_config](variables.tf#L214) | Monitoring configuration (enabled components). | list(string) | | null | -| [monitoring_service](variables.tf#L220) | Monitoring service (disable with an empty string). | string | | "monitoring.googleapis.com/kubernetes" | -| [node_locations](variables.tf#L236) | Zones in which the cluster's nodes are located. | list(string) | | [] | -| [notification_config](variables.tf#L242) | GKE Cluster upgrade notifications via PubSub. | bool | | false | -| [peering_config](variables.tf#L248) | Configure peering with the master VPC for private clusters. | object({…}) | | null | -| [pod_security_policy](variables.tf#L258) | Enable the PodSecurityPolicy feature. | bool | | null | -| [private_cluster_config](variables.tf#L264) | Enable and configure private cluster, private nodes must be true if used. | object({…}) | | null | -| [release_channel](variables.tf#L280) | Release channel for GKE upgrades. | string | | null | -| [resource_usage_export_config](variables.tf#L286) | Configure the ResourceUsageExportConfig feature. | object({…}) | | {…} | -| [vertical_pod_autoscaling](variables.tf#L313) | Enable the Vertical Pod Autoscaling feature. | bool | | null | -| [workload_identity](variables.tf#L319) | Enable the Workload Identity feature. | bool | | true | +| [location](variables.tf#L161) | Cluster zone or region. | string | ✓ | | +| [name](variables.tf#L228) | Cluster name. | string | ✓ | | +| [network](variables.tf#L233) | Name or self link of the VPC used for the cluster. Use the self link for Shared VPC. | string | ✓ | | +| [project_id](variables.tf#L277) | Cluster project id. | string | ✓ | | +| [secondary_range_pods](variables.tf#L300) | Subnet secondary range name used for pods. | string | ✓ | | +| [secondary_range_services](variables.tf#L305) | Subnet secondary range name used for services. | string | ✓ | | +| [subnetwork](variables.tf#L310) | VPC subnetwork name or self link. | string | ✓ | | +| [addons](variables.tf#L17) | Addons enabled in the cluster (true means enabled). | object({…}) | | {…} | +| [authenticator_security_group](variables.tf#L53) | RBAC security group for Google Groups for GKE, format is gke-security-groups@yourdomain.com. | string | | null | +| [cluster_autoscaling](variables.tf#L59) | Enable and configure limits for Node Auto-Provisioning with Cluster Autoscaler. | object({…}) | | {…} | +| [database_encryption](variables.tf#L77) | Enable and configure GKE application-layer secrets encryption. | object({…}) | | {…} | +| [default_max_pods_per_node](variables.tf#L91) | Maximum number of pods per node in this cluster. | number | | 110 | +| [description](variables.tf#L97) | Cluster description. | string | | null | +| [dns_config](variables.tf#L103) | Configuration for Using Cloud DNS for GKE. | object({…}) | | null | +| [enable_autopilot](variables.tf#L113) | Create cluster in autopilot mode. With autopilot there's no need to create node-pools and some features are not supported (e.g. setting default_max_pods_per_node). | bool | | false | +| [enable_binary_authorization](variables.tf#L119) | Enable Google Binary Authorization. | bool | | null | +| [enable_dataplane_v2](variables.tf#L125) | Enable Dataplane V2 on the cluster, will disable network_policy addons config. | bool | | false | +| [enable_intranode_visibility](variables.tf#L131) | Enable intra-node visibility to make same node pod to pod traffic visible. | bool | | null | +| [enable_l4_ilb_subsetting](variables.tf#L137) | Enable L4ILB Subsetting. | bool | | null | +| [enable_shielded_nodes](variables.tf#L143) | Enable Shielded Nodes features on all nodes in this cluster. | bool | | null | +| [enable_tpu](variables.tf#L149) | Enable Cloud TPU resources in this cluster. | bool | | null | +| [labels](variables.tf#L155) | Cluster resource labels. | map(string) | | null | +| [logging_config](variables.tf#L166) | Logging configuration (enabled components). | list(string) | | null | +| [logging_service](variables.tf#L172) | Logging service (disable with an empty string). | string | | "logging.googleapis.com/kubernetes" | +| [maintenance_config](variables.tf#L178) | Maintenance window configuration. | object({…}) | | {…} | +| [master_authorized_ranges](variables.tf#L204) | External Ip address ranges that can access the Kubernetes cluster master through HTTPS. | map(string) | | {} | +| [min_master_version](variables.tf#L210) | Minimum version of the master, defaults to the version of the most recent official release. | string | | null | +| [monitoring_config](variables.tf#L216) | Monitoring configuration (enabled components). | list(string) | | null | +| [monitoring_service](variables.tf#L222) | Monitoring service (disable with an empty string). | string | | "monitoring.googleapis.com/kubernetes" | +| [node_locations](variables.tf#L238) | Zones in which the cluster's nodes are located. | list(string) | | [] | +| [notification_config](variables.tf#L244) | GKE Cluster upgrade notifications via PubSub. | bool | | false | +| [peering_config](variables.tf#L250) | Configure peering with the master VPC for private clusters. | object({…}) | | null | +| [pod_security_policy](variables.tf#L260) | Enable the PodSecurityPolicy feature. | bool | | null | +| [private_cluster_config](variables.tf#L266) | Enable and configure private cluster, private nodes must be true if used. | object({…}) | | null | +| [release_channel](variables.tf#L282) | Release channel for GKE upgrades. | string | | null | +| [resource_usage_export_config](variables.tf#L288) | Configure the ResourceUsageExportConfig feature. | object({…}) | | {…} | +| [vertical_pod_autoscaling](variables.tf#L315) | Enable the Vertical Pod Autoscaling feature. | bool | | null | +| [workload_identity](variables.tf#L321) | Enable the Workload Identity feature. | bool | | true | ## Outputs diff --git a/modules/gke-cluster/main.tf b/modules/gke-cluster/main.tf index f82279bf..64762b67 100644 --- a/modules/gke-cluster/main.tf +++ b/modules/gke-cluster/main.tf @@ -96,6 +96,9 @@ resource "google_container_cluster" "cluster" { config_connector_config { enabled = var.addons.config_connector_config } + gke_backup_agent_config { + enabled = var.addons.gke_backup_agent_config + } } # TODO(ludomagno): support setting address ranges instead of range names diff --git a/modules/gke-cluster/variables.tf b/modules/gke-cluster/variables.tf index 487aff53..67939020 100644 --- a/modules/gke-cluster/variables.tf +++ b/modules/gke-cluster/variables.tf @@ -30,6 +30,7 @@ variable "addons" { gcp_filestore_csi_driver_config = bool config_connector_config = bool kalm_config = bool + gke_backup_agent_config = bool }) default = { cloudrun_config = false @@ -45,6 +46,7 @@ variable "addons" { gcp_filestore_csi_driver_config = false config_connector_config = false kalm_config = false + gke_backup_agent_config = false } }