diff --git a/hack/terraform/gcp/internal-loadbalancer/.terraform.lock.hcl b/hack/terraform/gcp/internal-loadbalancer/.terraform.lock.hcl deleted file mode 100644 index 0d570b42c6..0000000000 --- a/hack/terraform/gcp/internal-loadbalancer/.terraform.lock.hcl +++ /dev/null @@ -1,56 +0,0 @@ -# This file is maintained automatically by "terraform init". -# Manual edits may be lost in future updates. - -provider "registry.terraform.io/hashicorp/google" { - version = "4.83.0" - constraints = "4.83.0" - hashes = [ - "h1:04Dbo1eT5GovugyMTr78SetNLLXBVhzMeo67Noyu85o=", - "h1:BOrMAGh1FwA290rqwOHJKdfYOhOyqcKiqunZ6K/qA6k=", - "h1:QXESvZlpwchznnilwGfL5nwbYTNlJLl4RyV5TXjKZVY=", - "h1:SmoEOGxSXmrWceJP4YVmpgdsnEk01OCZhwEUUViy0c0=", - "h1:cWBKJt7QJ+MKerSq73qFICJkIsxHn1JepalZzR/eRk4=", - "h1:dPId6xBo8+uET30DqkB400hKbMGR60NoxMkw1FFzvjA=", - "h1:jvTOwFMz4iyq/4AjU6QjTOlL5R0etYt98tC7D/6eE1M=", - "h1:lvCQfxljF0bY15qI78bxl9d1pW6o60WcyNp9ZQcx3DU=", - "h1:nyeDdFmfYBFj3+Ng6IwfdSgo+D4fsCAbbTPmwPidQC8=", - "h1:qx6znUIkV7pzjp1MgoLLUT+3hyv5zYbSdVho+JUUBKk=", - "h1:x9rGt85+aTXPVhTtNJ4bdV5Wy3uJDJbVg+D0e0h/uiY=", - ] -} - -provider "registry.terraform.io/hashicorp/google-beta" { - version = "4.83.0" - constraints = "4.83.0" - hashes = [ - "h1:3NSnmqqgbaGSbpiMzxTZJTdCoGH6jqUUktjrwPr+NgE=", - "h1:900wOs1aRWQpEhv0058PEZCWk40ywG6NqHwuFlw+/p4=", - "h1:Ewmi/ROl5YEvLf8BHgGrnlVkxjlia0fKyXLSFkcmGps=", - "h1:IX3g+ndU9l8BQ/qU13yDk4vQuTxxUvyhYXBSTXmu1SQ=", - "h1:J8MwreN/KrmeOWCVjbCm749EdeD/WnngXRIxPNbIBH4=", - "h1:Y5OvzqSSPnELV+N5bPShZ2cjFqEynGoBRFFmf3F1M1U=", - "h1:hxulmxS/QJyusZNl53N7bjwhVShQo7JxGuq5Tht08ZE=", - "h1:qTXF/bRgloSMKhhzypno+9qP6Eno6qmNfEt9b5eMXRE=", - "h1:tfTOCk0TCOeGfyeh8HX7MC2aYcsidgRykK9Wfqn1o8k=", - "h1:uKmM3fJQyowwBV5qlAl4+qteXbsCEkwmGAwxaci+9cw=", - "h1:uNQaNKcKbbU0uF3tHWEfGwqnG00oGX3bIi8aQe+ITFI=", - ] -} - -provider "registry.terraform.io/hashicorp/random" { - version = "3.5.1" - constraints = "3.5.1" - hashes = [ - "h1:0ULxM8/DscMzfiDWg1yclBf/39U44wQmlx745BfYZ80=", - "h1:3hjTP5tQBspPcFAJlfafnWrNrKnr7J4Cp0qB9jbqf30=", - "h1:6FVyQ/aG6tawPam6B+oFjgdidKd83uG9n7dOSQ66HBA=", - "h1:6ePAACdONiMGe1j5pwUc0gpDFt82y/ka0zRimMg/geM=", - "h1:BD3Y4CcrGHb9sx+Bl5V8M2PSyw23mykzXSwj+/6FhHA=", - "h1:HGeb7Tajn7HZwX0MhrdyL57LoCSz5GMcI2wbHs12D4U=", - "h1:IL9mSatmwov+e0+++YX2V6uel+dV6bn+fC/cnGDK3Ck=", - "h1:JiENkIxSWc32/2Dtd1n4CWY3ow/PHvAeGhdgcOLpWZM=", - "h1:MROYZuKGTuaTNf2FgbwCgSVpteQW25ubnb+Xfok2jvk=", - "h1:VSnd9ZIPyfKHOObuQCaKfnjIHRtR7qTw19Rz8tJxm+k=", - "h1:sZ7MTSD4FLekNN2wSNFGpM+5slfvpm5A/NLVZiB7CO0=", - ] -} diff --git a/hack/terraform/gcp/internal-loadbalancer/main.tf b/hack/terraform/gcp/internal-loadbalancer/main.tf deleted file mode 100644 index fcdc84782c..0000000000 --- a/hack/terraform/gcp/internal-loadbalancer/main.tf +++ /dev/null @@ -1,292 +0,0 @@ -terraform { - required_providers { - google = { - source = "hashicorp/google" - version = "4.83.0" - } - random = { - source = "hashicorp/random" - version = "3.5.1" - } - google-beta = { - source = "hashicorp/google-beta" - version = "4.83.0" - } - } -} - -provider "google" { - project = var.project - region = var.region - zone = var.zone -} - -provider "google-beta" { - project = var.project - region = var.region - zone = var.zone -} - -locals { - uid = random_id.uid.hex - name = "${var.name}-${local.uid}" - initSecretHash = random_password.initSecret.bcrypt_hash - labels = { constellation-uid = local.uid } - ports_node_range = "30000-32767" - ports_kubernetes = "6443" - ports_bootstrapper = "9000" - ports_konnectivity = "8132" - ports_verify = "30081" - ports_recovery = "9999" - ports_debugd = "4000" - cidr_vpc_subnet_nodes = "192.168.178.0/24" - cidr_vpc_subnet_pods = "10.10.0.0/16" - cidr_vpc_subnet_public = "10.11.0.0/16" - cidr_vpc_subnet_ilb = "10.12.0.0/16" - kube_env = "AUTOSCALER_ENV_VARS: kube_reserved=cpu=1060m,memory=1019Mi,ephemeral-storage=41Gi;node_labels=;os=linux;os_distribution=cos;evictionHard=" -} - -resource "random_id" "uid" { - byte_length = 4 -} - -resource "random_password" "initSecret" { - length = 32 - special = true - override_special = "_%@" -} - -resource "google_compute_network" "vpc_network" { - name = local.name - description = "Constellation VPC network" - auto_create_subnetworks = false - mtu = 8896 -} - - -resource "google_compute_subnetwork" "vpc_subnetwork_backend" { - name = "${local.name}-be" - description = "Constellation backend VPC subnetwork" - network = google_compute_network.vpc_network.id - ip_cidr_range = local.cidr_vpc_subnet_nodes - secondary_ip_range = [ - { - range_name = local.name, - ip_cidr_range = local.cidr_vpc_subnet_pods, - } - ] -} - -# backed subnet -resource "google_compute_subnetwork" "ilb_subnet" { - name = "${local.name}-ilb" - ip_cidr_range = local.cidr_vpc_subnet_ilb - region = var.region - purpose = "REGIONAL_MANAGED_PROXY" - role = "ACTIVE" - network = google_compute_network.vpc_network.id -} - -resource "google_compute_subnetwork" "vpc_subnetwork_public" { - name = "${local.name}-pub" - description = "Constellation public VPC subnetwork" - network = google_compute_network.vpc_network.id - ip_cidr_range = local.cidr_vpc_subnet_public -} - -resource "google_compute_router" "vpc_router" { - name = local.name - description = "Constellation VPC router" - network = google_compute_network.vpc_network.id -} - -resource "google_compute_router_nat" "vpc_router_nat" { - name = local.name - router = google_compute_router.vpc_router.name - nat_ip_allocate_option = "AUTO_ONLY" - source_subnetwork_ip_ranges_to_nat = "ALL_SUBNETWORKS_ALL_IP_RANGES" -} - -resource "google_compute_firewall" "firewall_external" { - name = local.name - description = "Constellation VPC firewall" - network = google_compute_network.vpc_network.id - source_ranges = ["0.0.0.0/0"] - direction = "INGRESS" - - allow { - protocol = "tcp" - ports = flatten([ - local.ports_node_range, - local.ports_bootstrapper, - local.ports_kubernetes, - local.ports_konnectivity, - local.ports_recovery, - var.debug ? [local.ports_debugd] : [], - ]) - } - -} - -resource "google_compute_firewall" "firewall_internal_nodes" { - name = "${local.name}-nodes" - description = "Constellation VPC firewall" - network = google_compute_network.vpc_network.id - source_ranges = [local.cidr_vpc_subnet_nodes] - direction = "INGRESS" - - allow { protocol = "tcp" } - allow { protocol = "udp" } - allow { protocol = "icmp" } -} - -resource "google_compute_firewall" "firewall_internal_pods" { - name = "${local.name}-pods" - description = "Constellation VPC firewall" - network = google_compute_network.vpc_network.id - source_ranges = [local.cidr_vpc_subnet_pods] - direction = "INGRESS" - - allow { protocol = "tcp" } - allow { protocol = "udp" } - allow { protocol = "icmp" } -} - -module "instance_group_control_plane" { - source = "./modules/instance_group" - name = local.name - role = "ControlPlane" - uid = local.uid - instance_type = var.instance_type - instance_count = var.control_plane_count - image_id = var.image_id - disk_size = var.state_disk_size - disk_type = var.state_disk_type - network = google_compute_network.vpc_network.id - subnetwork = google_compute_subnetwork.vpc_subnetwork_backend.id - alias_ip_range_name = google_compute_subnetwork.vpc_subnetwork.secondary_ip_range[0].range_name - kube_env = local.kube_env - debug = var.debug - named_ports = flatten([ - { name = "kubernetes", port = local.ports_kubernetes }, - { name = "bootstrapper", port = local.ports_bootstrapper }, - { name = "verify", port = local.ports_verify }, - { name = "konnectivity", port = local.ports_konnectivity }, - { name = "recovery", port = local.ports_recovery }, - var.debug ? [{ name = "debugd", port = local.ports_debugd }] : [], - ]) - labels = local.labels - init_secret_hash = local.initSecretHash -} - -module "instance_group_worker" { - source = "./modules/instance_group" - name = "${local.name}-1" - role = "Worker" - uid = local.uid - instance_type = var.instance_type - instance_count = var.worker_count - image_id = var.image_id - disk_size = var.state_disk_size - disk_type = var.state_disk_type - network = google_compute_network.vpc_network.id - subnetwork = google_compute_subnetwork.vpc_subnetwork_backend.id - alias_ip_range_name = google_compute_subnetwork.vpc_subnetwork.secondary_ip_range[0].range_name - kube_env = local.kube_env - debug = var.debug - labels = local.labels - init_secret_hash = local.initSecretHash -} - -resource "google_compute_address" "loadbalancer_ip" { - name = local.name - region = var.region - subnetwork = google_compute_subnetwork.vpc_subnetwork_backend.id - purpose = "SHARED_LOADBALANCER_VIP" - address_type = "INTERNAL" -} - -module "loadbalancer_kube" { - source = "./modules/internal_loadbalancer" - name = local.name - port_name = "kubernetes" - region = var.region - network = google_compute_network.vpc_network.id - backend_subnet = google_compute_subnetwork.vpc_subnetwork_backend.id - health_check = "HTTPS" - backend_instance_group = module.instance_group_control_plane.instance_group - ip_address = google_compute_address.loadbalancer_ip.self_link - port = local.ports_kubernetes - frontend_labels = merge(local.labels, { constellation-use = "kubernetes" }) -} - -module "loadbalancer_boot" { - source = "./modules/internal_loadbalancer" - name = local.name - port_name = "bootstrapper" - region = var.region - network = google_compute_network.vpc_network.id - backend_subnet = google_compute_subnetwork.vpc_subnetwork_backend.id - health_check = "TCP" - backend_instance_group = module.instance_group_control_plane.instance_group - ip_address = google_compute_address.loadbalancer_ip.self_link - port = local.ports_bootstrapper - frontend_labels = merge(local.labels, { constellation-use = "bootstrapper" }) -} - -module "loadbalancer_verify" { - source = "./modules/internal_loadbalancer" - name = local.name - port_name = "verify" - region = var.region - network = google_compute_network.vpc_network.id - backend_subnet = google_compute_subnetwork.vpc_subnetwork_backend.id - health_check = "TCP" - backend_instance_group = module.instance_group_control_plane.instance_group - ip_address = google_compute_address.loadbalancer_ip.self_link - port = local.ports_verify - frontend_labels = merge(local.labels, { constellation-use = "verify" }) -} - -module "loadbalancer_konnectivity" { - source = "./modules/internal_loadbalancer" - name = local.name - port_name = "konnectivity" - region = var.region - network = google_compute_network.vpc_network.id - backend_subnet = google_compute_subnetwork.vpc_subnetwork_backend.id - health_check = "TCP" - backend_instance_group = module.instance_group_control_plane.instance_group - ip_address = google_compute_address.loadbalancer_ip.self_link - port = local.ports_konnectivity - frontend_labels = merge(local.labels, { constellation-use = "konnectivity" }) -} - -module "loadbalancer_recovery" { - source = "./modules/internal_loadbalancer" - name = local.name - port_name = "recovery" - region = var.region - network = google_compute_network.vpc_network.id - backend_subnet = google_compute_subnetwork.vpc_subnetwork_backend.id - health_check = "TCP" - backend_instance_group = module.instance_group_control_plane.instance_group - ip_address = google_compute_address.loadbalancer_ip.self_link - port = local.ports_recovery - frontend_labels = merge(local.labels, { constellation-use = "recovery" }) -} - -module "loadbalancer_debugd" { - count = var.debug ? 1 : 0 // only deploy debugd in debug mode - source = "./modules/internal_loadbalancer" - name = local.name - port_name = "debugd" - region = var.region - network = google_compute_network.vpc_network.id - backend_subnet = google_compute_subnetwork.vpc_subnetwork_backend.id - health_check = "TCP" - backend_instance_group = module.instance_group_control_plane.instance_group - ip_address = google_compute_address.loadbalancer_ip.self_link - port = local.ports_debugd - frontend_labels = merge(local.labels, { constellation-use = "debugd" }) -} diff --git a/hack/terraform/gcp/internal-loadbalancer/modules/instance_group/main.tf b/hack/terraform/gcp/internal-loadbalancer/modules/instance_group/main.tf deleted file mode 100644 index 35db8a8504..0000000000 --- a/hack/terraform/gcp/internal-loadbalancer/modules/instance_group/main.tf +++ /dev/null @@ -1,128 +0,0 @@ -terraform { - required_providers { - google = { - source = "hashicorp/google" - version = "4.83.0" - } - google-beta = { - source = "hashicorp/google-beta" - version = "4.83.0" - } - } -} - -locals { - role_dashed = var.role == "ControlPlane" ? "control-plane" : "worker" - name = "${var.name}-${local.role_dashed}" - state_disk_name = "state-disk" -} - -resource "google_compute_instance_template" "template" { - name = local.name - machine_type = var.instance_type - tags = ["constellation-${var.uid}"] // Note that this is also applied as a label - labels = merge(var.labels, { constellation-role = local.role_dashed }) - - confidential_instance_config { - enable_confidential_compute = true - } - - disk { - disk_size_gb = 10 - source_image = var.image_id - auto_delete = true - boot = true - mode = "READ_WRITE" - } - - disk { - disk_size_gb = var.disk_size - disk_type = var.disk_type - auto_delete = true - device_name = local.state_disk_name // This name is used by disk mapper to find the disk - boot = false - mode = "READ_WRITE" - type = "PERSISTENT" - } - - metadata = { - kube-env = var.kube_env - constellation-init-secret-hash = var.init_secret_hash - serial-port-enable = var.debug ? "TRUE" : "FALSE" - } - - network_interface { - network = var.network - subnetwork = var.subnetwork - alias_ip_range { - ip_cidr_range = "/24" - subnetwork_range_name = var.alias_ip_range_name - } - } - - scheduling { - on_host_maintenance = "TERMINATE" - } - - service_account { - scopes = [ - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/servicecontrol", - "https://www.googleapis.com/auth/service.management.readonly", - "https://www.googleapis.com/auth/devstorage.read_only", - "https://www.googleapis.com/auth/logging.write", - "https://www.googleapis.com/auth/monitoring.write", - "https://www.googleapis.com/auth/trace.append", - "https://www.googleapis.com/auth/cloud-platform", - ] - } - - shielded_instance_config { - enable_secure_boot = true - enable_vtpm = true - enable_integrity_monitoring = true - } -} - -resource "google_compute_instance_group_manager" "instance_group_manager" { - provider = google-beta - name = local.name - description = "Instance group manager for Constellation" - base_instance_name = local.name - target_size = var.instance_count - - dynamic "stateful_disk" { - for_each = var.role == "ControlPlane" ? [1] : [] - content { - device_name = local.state_disk_name - delete_rule = "ON_PERMANENT_INSTANCE_DELETION" - } - } - - dynamic "stateful_internal_ip" { - for_each = var.role == "ControlPlane" ? [1] : [] - content { - interface_name = "nic0" - delete_rule = "ON_PERMANENT_INSTANCE_DELETION" - } - } - - version { - instance_template = google_compute_instance_template.template.id - } - - dynamic "named_port" { - for_each = toset(var.named_ports) - content { - name = named_port.value.name - port = named_port.value.port - } - } - - lifecycle { - ignore_changes = [ - target_size, # required. autoscaling modifies the instance count externally - version, # required. update procedure modifies the instance template externally - ] - } -} diff --git a/hack/terraform/gcp/internal-loadbalancer/modules/instance_group/outputs.tf b/hack/terraform/gcp/internal-loadbalancer/modules/instance_group/outputs.tf deleted file mode 100644 index 66f793fb08..0000000000 --- a/hack/terraform/gcp/internal-loadbalancer/modules/instance_group/outputs.tf +++ /dev/null @@ -1,3 +0,0 @@ -output "instance_group" { - value = google_compute_instance_group_manager.instance_group_manager.instance_group -} diff --git a/hack/terraform/gcp/internal-loadbalancer/modules/instance_group/variables.tf b/hack/terraform/gcp/internal-loadbalancer/modules/instance_group/variables.tf deleted file mode 100644 index 5b5f55e6cb..0000000000 --- a/hack/terraform/gcp/internal-loadbalancer/modules/instance_group/variables.tf +++ /dev/null @@ -1,86 +0,0 @@ -variable "name" { - type = string - description = "Base name of the instance group." -} - -variable "role" { - type = string - description = "The role of the instance group." - validation { - condition = contains(["ControlPlane", "Worker"], var.role) - error_message = "The role has to be 'ControlPlane' or 'Worker'." - } -} - -variable "uid" { - type = string - description = "UID of the cluster. This is used for tags." -} - -variable "labels" { - type = map(string) - default = {} - description = "Labels to apply to the instance group." -} - -variable "instance_type" { - type = string - description = "Instance type for the nodes." -} - -variable "instance_count" { - type = number - description = "Number of instances in the instance group." -} - -variable "image_id" { - type = string - description = "Image ID for the nodes." -} - -variable "disk_size" { - type = number - description = "Disk size for the nodes, in GB." -} - -variable "disk_type" { - type = string - description = "Disk type for the nodes. Has to be 'pd-standard' or 'pd-ssd'." -} - -variable "network" { - type = string - description = "Name of the network to use." -} - -variable "subnetwork" { - type = string - description = "Name of the subnetwork to use." -} - -variable "kube_env" { - type = string - description = "Kubernetes env." -} - -variable "init_secret_hash" { - type = string - description = "Hash of the init secret." -} - -variable "named_ports" { - type = list(object({ name = string, port = number })) - default = [] - description = "Named ports for the instance group." -} - -variable "debug" { - type = bool - default = false - description = "Enable debug mode. This will enable serial port access on the instances." -} - -variable "alias_ip_range_name" { - type = string - description = "Name of the alias IP range to use." -} diff --git a/hack/terraform/gcp/internal-loadbalancer/modules/internal_loadbalancer/main.tf b/hack/terraform/gcp/internal-loadbalancer/modules/internal_loadbalancer/main.tf deleted file mode 100644 index 97af781caf..0000000000 --- a/hack/terraform/gcp/internal-loadbalancer/modules/internal_loadbalancer/main.tf +++ /dev/null @@ -1,75 +0,0 @@ -terraform { - required_providers { - google = { - source = "hashicorp/google" - version = "4.83.0" - } - } -} - -locals { - name = "${var.name}-${var.port_name}" -} - -# forwarding rule -resource "google_compute_forwarding_rule" "forwarding" { - name = local.name - network = var.network - subnetwork = var.backend_subnet - region = var.region - ip_address = var.ip_address - ip_protocol = "TCP" - load_balancing_scheme = "INTERNAL_MANAGED" - port_range = var.port - allow_global_access = true - target = google_compute_region_target_tcp_proxy.proxy.id - labels = var.frontend_labels -} - -resource "google_compute_region_backend_service" "backend" { - name = local.name - region = var.region - port_name = var.port_name - protocol = "TCP" - load_balancing_scheme = "INTERNAL_MANAGED" - - backend { - group = var.backend_instance_group - balancing_mode = "UTILIZATION" - capacity_scaler = 1.0 - } - - - health_checks = [google_compute_region_health_check.health.id] - timeout_sec = 240 -} - -resource "google_compute_region_target_tcp_proxy" "proxy" { - provider = google-beta - name = local.name - region = var.region - backend_service = google_compute_region_backend_service.backend.id -} - -resource "google_compute_region_health_check" "health" { - name = local.name - region = var.region - check_interval_sec = 1 - timeout_sec = 1 - - dynamic "tcp_health_check" { - for_each = var.health_check == "TCP" ? [1] : [] - content { - port = var.port - } - } - - dynamic "https_health_check" { - for_each = var.health_check == "HTTPS" ? [1] : [] - content { - host = "" - port = var.port - request_path = "/readyz" - } - } -} diff --git a/hack/terraform/gcp/internal-loadbalancer/modules/internal_loadbalancer/variables.tf b/hack/terraform/gcp/internal-loadbalancer/modules/internal_loadbalancer/variables.tf deleted file mode 100644 index 6b7d559273..0000000000 --- a/hack/terraform/gcp/internal-loadbalancer/modules/internal_loadbalancer/variables.tf +++ /dev/null @@ -1,54 +0,0 @@ -variable "name" { - type = string - description = "Base name of the load balancer." -} - -variable "region" { - type = string - description = "The region where the load balancer will be created." -} - -variable "network" { - type = string - description = "The network to which all network resources will be attached." -} - -variable "backend_subnet" { - type = string - description = "The subnet to which all backend network resources will be attached." -} - -variable "health_check" { - type = string - description = "The type of the health check. 'HTTPS' or 'TCP'." - validation { - condition = contains(["HTTPS", "TCP"], var.health_check) - error_message = "Health check must be either 'HTTPS' or 'TCP'." - } -} - -variable "port" { - type = string - description = "The port on which to listen for incoming traffic." -} - -variable "port_name" { - type = string - description = "Name of backend port. The same name should appear in the instance groups referenced by this service." -} - -variable "backend_instance_group" { - type = string - description = "The URL of the instance group resource from which the load balancer will direct traffic." -} - -variable "ip_address" { - type = string - description = "The IP address that this forwarding rule serves." -} - -variable "frontend_labels" { - type = map(string) - default = {} - description = "Labels to apply to the forwarding rule." -} diff --git a/hack/terraform/gcp/internal-loadbalancer/outputs.tf b/hack/terraform/gcp/internal-loadbalancer/outputs.tf deleted file mode 100644 index 6045ebbf93..0000000000 --- a/hack/terraform/gcp/internal-loadbalancer/outputs.tf +++ /dev/null @@ -1,8 +0,0 @@ -output "ip" { - value = google_compute_address.loadbalancer_ip.address -} - -output "initSecret" { - value = random_password.initSecret.result - sensitive = true -} diff --git a/hack/terraform/gcp/internal-loadbalancer/variables.tf b/hack/terraform/gcp/internal-loadbalancer/variables.tf deleted file mode 100644 index bce6e5612e..0000000000 --- a/hack/terraform/gcp/internal-loadbalancer/variables.tf +++ /dev/null @@ -1,58 +0,0 @@ -variable "name" { - type = string - default = "constell" - description = "Base name of the cluster." -} - -variable "control_plane_count" { - type = number - description = "The number of control plane nodes to deploy." -} - -variable "worker_count" { - type = number - description = "The number of worker nodes to deploy." -} - -variable "state_disk_size" { - type = number - default = 30 - description = "The size of the state disk in GB." -} - -variable "project" { - type = string - description = "The GCP project to deploy the cluster in." -} - -variable "region" { - type = string - description = "The GCP region to deploy the cluster in." -} - -variable "zone" { - type = string - description = "The GCP zone to deploy the cluster in." -} - -variable "instance_type" { - type = string - description = "The GCP instance type to deploy." -} - -variable "state_disk_type" { - type = string - default = "pd-ssd" - description = "The type of the state disk." -} - -variable "image_id" { - type = string - description = "The GCP image to use for the cluster nodes." -} - -variable "debug" { - type = bool - default = false - description = "Enable debug mode. This opens up a debugd port that can be used to deploy a custom bootstrapper." -}