fleet/infrastructure/loadtesting/terraform/infra/signoz.tf
Victor Lyuboslavsky e4e3c3f9ff
Fix issues with OTEL SigNoz deployments for loadtests (#34694)
SigNoz converted from child module to standalone root module with
independent state.

  **Critical Impact**

  Deployment order is now required:
  1. Deploy infrastructure/loadtesting/terraform/signoz/ FIRST
  2. Then deploy infrastructure/loadtesting/terraform/infra/

  Communication between modules via Terraform remote state.

  **Key Configuration Changes**

  - SigNoz creates its own EKS cluster: signoz-${workspace}
- Instance type: t3.xlarge (upgraded from t3.large for resource
headroom)
  - ClickHouse disk: 200Gi (was 20Gi) with 2-day retention
  - Resource limits configured to prevent OOMKills during loadtest
  - wait_for_jobs = false to avoid Helm deployment deadlock


<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #32331
2025-10-23 12:49:36 -05:00

38 lines
1.5 KiB
HCL

# SigNoz deployment for OpenTelemetry tracing
# SigNoz is deployed as a separate Terraform root module
# This reads its outputs via remote state
# Read SigNoz deployment from remote state
data "terraform_remote_state" "signoz" {
count = var.enable_otel ? 1 : 0
backend = "s3"
config = {
bucket = "fleet-terraform-state20220408141538466600000002"
key = "loadtesting/loadtesting/signoz/terraform.tfstate"
workspace_key_prefix = "loadtesting"
region = "us-east-2"
encrypt = true
kms_key_id = "9f98a443-ffd7-4dbe-a9c3-37df89b2e42a"
dynamodb_table = "tf-remote-state-lock"
assume_role = {
role_arn = "arn:aws:iam::353365949058:role/terraform-loadtesting"
}
}
workspace = terraform.workspace
}
# Outputs from SigNoz remote state
output "signoz_cluster_name" {
description = "SigNoz EKS cluster name"
value = var.enable_otel ? try(data.terraform_remote_state.signoz[0].outputs.cluster_name, "SigNoz not deployed yet") : null
}
output "signoz_otel_collector_endpoint" {
description = "Internal OTLP collector endpoint for Fleet"
value = var.enable_otel ? try(data.terraform_remote_state.signoz[0].outputs.otel_collector_endpoint, "SigNoz not deployed yet") : null
}
output "signoz_configure_kubectl" {
description = "Command to configure kubectl for SigNoz"
value = var.enable_otel ? try(data.terraform_remote_state.signoz[0].outputs.configure_kubectl, "SigNoz not deployed yet") : null
}