terraform/variables.tf (170 lines of code) (raw):

# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. variable "project_id" { description = "The Google Cloud project ID" type = string } variable "region" { default = "europe-west1" description = "The region for clusters" type = string } variable "zones" { default = [] description = "Cluster nodes will be created in each of the following zones. These zones need to be in the region specified by the 'region' variable." type = list(string) } variable "google_artifact_registry_location" { default = "europe" description = "The default location where to create Artifact Registry repositories." type = string } variable "cluster_name" { default = "tp-w" description = "The GKE cluster name" type = string } variable "tenant_names" { default = ["fltenant1"] description = "Set of named tenants to be created in the cluster. Each tenant gets a dedicated resources." type = list(string) } variable "master_ipv4_cidr_block" { description = "The IP range in CIDR notation to use for the hosted master network" default = "10.0.0.0/28" type = string } variable "cluster_default_pool_machine_type" { description = "The machine type for a default node pool" default = "e2-standard-4" type = string } variable "cluster_default_pool_min_nodes" { description = "The min number of nodes in the default node pool" default = 1 type = number } variable "cluster_default_pool_max_nodes" { description = "The max number of nodes in the default node pool" default = 5 type = number } variable "cluster_gke_release_channel" { default = "REGULAR" description = "Release channel of the GKE cluster" type = string } variable "cluster_regional" { default = true description = "Set to true to provision a regional GKE cluster" type = bool } variable "cluster_tenant_pool_machine_type" { description = "The machine type for a tenant node pool" default = "e2-standard-4" type = string } variable "cluster_tenant_pool_min_nodes" { description = "The min number of nodes in the tenant node pool" default = 1 type = number } variable "cluster_tenant_pool_max_nodes" { description = "The max number of nodes in the tenant node pool" default = 5 type = number } variable "cluster_secrets_keyname" { description = "The name of the Cloud KMS key used to encrypt cluster secrets" default = "clusterSecretsKey" type = string } variable "enable_confidential_nodes" { description = "Enable Confidential Nodes to ensure end-to-end confidentiality. It is also necessary to use VM families that support this feature, such as **N2D** or **C2D**" default = false type = bool } variable "acm_version" { description = "Config Management version" default = "" type = string } variable "acm_branch" { default = "main" description = "Name of the Git branch in the repository that Config Sync will sync with" type = string } variable "acm_dir" { default = "configsync" description = "The directory in the repository that Config Sync will sync with" type = string } variable "acm_repository_url" { description = "The URL of the repository that Config Sync will sync with" type = string } variable "acm_secret_type" { description = "Secret type to authenticate with the Config Sync Git repository. Ref: https://cloud.google.com/kubernetes-engine/enterprise/config-sync/docs/how-to/installing-config-sync#git-creds-secret" type = string } variable "acm_source_repository_fqdns" { description = "FQDNs of source repository for Config Sync to allow in the Network Firewall Policy" type = list(string) } variable "acm_repository_path" { description = "Path to the Config Management repository on the local machine" type = string } variable "gke_rbac_security_group_domain" { default = null description = "Domain of the Google Group to assign RBAC permissions. For more information, refer to https://cloud.google.com/kubernetes-engine/docs/how-to/google-groups-rbac" type = string } variable "cross_device" { description = "Enable cross device infrastructure deployment" type = bool default = false } variable "nvflare" { description = "Enable nvflare infrastructure deployment" type = bool default = false } variable "spanner_instance_config" { description = "Multi region config value for the Spanner Instance. Example: 'nam10' for North America." type = string default = "regional-europe-west1" } variable "spanner_processing_units" { description = "Spanner's compute capacity. 1000 processing units = 1 node and must be set as a multiple of 100." type = number default = 1000 } variable "cross_device_workloads_kubernetes_namespace" { description = "Namespace of SA where the cross-device workload will be deployed" type = string default = "main" } variable "nvflare_namespace" { description = "Namespace of SA where the cross-device workload will be deployed" type = string default = "fltenant1" } variable "workspace_bucket_name" { description = "Bucket name that will contain nvflare workspace" default = "" type = string } # Distributed TensorFlow Federated example variables variable "distributed_tff_example" { description = "Set this to true to provision cloud resources for the distributed TensorFlow Federated example" default = false type = bool } variable "distributed_tff_example_worker_1_address" { description = "IP address of the first worker in the distributed TensorFlow Federated example" default = "" type = string } variable "distributed_tff_example_worker_2_address" { description = "IP address of the second worker in the distributed TensorFlow Federated example" default = "" type = string }