diff --git a/scaletest/terraform/action/coder_traffic.tf b/scaletest/terraform/action/coder_traffic.tf index bea829427af82..b477f3847a6d6 100644 --- a/scaletest/terraform/action/coder_traffic.tf +++ b/scaletest/terraform/action/coder_traffic.tf @@ -5,23 +5,20 @@ locals { traffic_types = { ssh = { - wait_duration = "0m" - duration = "30m" - job_timeout = "35m" + duration = "30m" + job_timeout = "35m" flags = [ "--ssh", ] } webterminal = { - wait_duration = "5m" - duration = "25m" - job_timeout = "30m" - flags = [] + duration = "25m" + job_timeout = "30m" + flags = [] } app = { - wait_duration = "10m" - duration = "20m" - job_timeout = "25m" + duration = "20m" + job_timeout = "25m" flags = [ "--app=wsec", ] @@ -34,19 +31,14 @@ resource "time_sleep" "wait_baseline" { kubernetes_job.create_workspaces_primary, kubernetes_job.create_workspaces_europe, kubernetes_job.create_workspaces_asia, + helm_release.prometheus_chart_primary, + helm_release.prometheus_chart_europe, + helm_release.prometheus_chart_asia, ] create_duration = local.wait_baseline_duration } -resource "time_sleep" "wait_traffic" { - for_each = local.traffic_types - - depends_on = [time_sleep.wait_baseline] - - create_duration = local.traffic_types[each.key].wait_duration -} - resource "kubernetes_job" "workspace_traffic_primary" { provider = kubernetes.primary @@ -106,7 +98,7 @@ resource "kubernetes_job" "workspace_traffic_primary" { create = local.traffic_types[each.key].job_timeout } - depends_on = [time_sleep.wait_baseline, time_sleep.wait_traffic[each.key]] + depends_on = [time_sleep.wait_baseline] } resource "kubernetes_job" "workspace_traffic_europe" { @@ -169,7 +161,7 @@ resource "kubernetes_job" "workspace_traffic_europe" { create = local.traffic_types[each.key].job_timeout } - depends_on = [time_sleep.wait_baseline, time_sleep.wait_traffic[each.key]] + depends_on = [time_sleep.wait_baseline] } resource "kubernetes_job" "workspace_traffic_asia" { @@ -232,5 +224,5 @@ resource "kubernetes_job" "workspace_traffic_asia" { create = local.traffic_types[each.key].job_timeout } - depends_on = [time_sleep.wait_baseline, time_sleep.wait_traffic[each.key]] + depends_on = [time_sleep.wait_baseline] } diff --git a/scaletest/terraform/action/gcp_clusters.tf b/scaletest/terraform/action/gcp_clusters.tf index c41d06c6c1c83..5681ff8b44ce5 100644 --- a/scaletest/terraform/action/gcp_clusters.tf +++ b/scaletest/terraform/action/gcp_clusters.tf @@ -10,21 +10,21 @@ locals { url = "http://${var.name}-scaletest.${var.cloudflare_domain}" region = "us-east1" zone = "us-east1-c" - cidr = "10.200.0.0/24" + subnet = "scaletest" } europe = { subdomain = "${var.name}-europe-scaletest" url = "http://${var.name}-europe-scaletest.${var.cloudflare_domain}" region = "europe-west1" zone = "europe-west1-b" - cidr = "10.201.0.0/24" + subnet = "scaletest" } asia = { subdomain = "${var.name}-asia-scaletest" url = "http://${var.name}-asia-scaletest.${var.cloudflare_domain}" region = "asia-southeast1" zone = "asia-southeast1-a" - cidr = "10.202.0.0/24" + subnet = "scaletest" } } node_pools = { @@ -72,8 +72,8 @@ resource "google_container_cluster" "cluster" { name = "${var.name}-${each.key}" location = each.value.zone project = var.project_id - network = google_compute_network.vpc.name - subnetwork = google_compute_subnetwork.subnet[each.key].name + network = local.vpc_name + subnetwork = local.subnet_name networking_mode = "VPC_NATIVE" default_max_pods_per_node = 256 ip_allocation_policy { # Required with networking_mode=VPC_NATIVE diff --git a/scaletest/terraform/action/gcp_db.tf b/scaletest/terraform/action/gcp_db.tf index 0443fa771fe65..9eb17464e1ce9 100644 --- a/scaletest/terraform/action/gcp_db.tf +++ b/scaletest/terraform/action/gcp_db.tf @@ -23,7 +23,7 @@ resource "google_sql_database_instance" "db" { ip_configuration { ipv4_enabled = false - private_network = google_compute_network.vpc.id + private_network = local.vpc_id } insights_config { diff --git a/scaletest/terraform/action/gcp_vpc.tf b/scaletest/terraform/action/gcp_vpc.tf index c9fd412aa3cb4..10624edaddf91 100644 --- a/scaletest/terraform/action/gcp_vpc.tf +++ b/scaletest/terraform/action/gcp_vpc.tf @@ -1,20 +1,7 @@ - -resource "google_compute_network" "vpc" { - project = var.project_id - name = var.name - auto_create_subnetworks = "false" - depends_on = [ - google_project_service.api["compute.googleapis.com"] - ] -} - -resource "google_compute_subnetwork" "subnet" { - for_each = local.deployments - name = "${var.name}-${each.key}" - project = var.project_id - region = each.value.region - network = google_compute_network.vpc.name - ip_cidr_range = each.value.cidr +locals { + vpc_name = "scaletest" + vpc_id = "projects/${var.project_id}/global/networks/${local.vpc_name}" + subnet_name = "scaletest" } resource "google_compute_address" "coder" { @@ -32,11 +19,11 @@ resource "google_compute_global_address" "sql_peering" { purpose = "VPC_PEERING" address_type = "INTERNAL" prefix_length = 16 - network = google_compute_network.vpc.id + network = local.vpc_name } resource "google_service_networking_connection" "private_vpc_connection" { - network = google_compute_network.vpc.id + network = local.vpc_id service = "servicenetworking.googleapis.com" reserved_peering_ranges = [google_compute_global_address.sql_peering.name] } diff --git a/scaletest/terraform/action/prometheus.tf b/scaletest/terraform/action/prometheus.tf new file mode 100644 index 0000000000000..de22a5c949684 --- /dev/null +++ b/scaletest/terraform/action/prometheus.tf @@ -0,0 +1,118 @@ +locals { + prometheus_helm_repo = "https://prometheus-community.github.io/helm-charts" + prometheus_helm_chart = "kube-prometheus-stack" + prometheus_release_name = "prometheus" + prometheus_remote_write_send_interval = "15s" + prometheus_remote_write_metrics_regex = ".*" +} + +resource "helm_release" "prometheus_chart_primary" { + provider = helm.primary + + repository = local.prometheus_helm_repo + chart = local.prometheus_helm_chart + name = local.prometheus_release_name + namespace = kubernetes_namespace.coder_primary.metadata.0.name + values = [templatefile("${path.module}/prometheus_helm_values.tftpl", { + nodepool = google_container_node_pool.node_pool["primary_misc"].name, + cluster = "primary", + prometheus_remote_write_url = var.prometheus_remote_write_url, + prometheus_remote_write_metrics_regex = local.prometheus_remote_write_metrics_regex, + prometheus_remote_write_send_interval = local.prometheus_remote_write_send_interval, + })] +} + +resource "kubectl_manifest" "pod_monitor_primary" { + provider = kubectl.primary + + yaml_body = <