fleet/infrastructure/loadtesting/terraform/eks-vpc
Victor Lyuboslavsky aef9b8400c
Added terraform files for Signoz OTEL backend. (#34058)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #32331 

This PR allows us to run loadtest with SigNoz OTEL backend by adding
`-var=enable_otel=true`
SigNoz is deployed via Helm chart.

Enhancements needed (in future PR):
- put SigNoz UI behind VPN
- combine the new eks-vpc with shared fleet-vpc
- make SigNoz shared, so multiple loadtests use the same instance? (But
what about updating to it to latest version?)

Next steps:
- Enable SigNoz in Dogfood environment
- SigNoz by default [keeps 15 days of logs and
traces](https://signoz.io/docs/userguide/retention-period), which is
quite a bit. How much would that cost us and should we reduce it?

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- New Features
- Optional OpenTelemetry tracing with SigNoz via a new enable_otel flag.
- Conditional deployment of a SigNoz stack (managed EKS, storage,
Helm-based apps) with internal OTLP collector endpoint.
- New outputs to retrieve OTLP endpoint, cluster name, and a kubectl
configuration command.

- Documentation
  - Added guidance for deploying and using SigNoz with load testing.
  - Updated examples to include -var=enable_otel=true.

- Chores
- Introduced required providers to support Helm and Kubernetes
resources.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-10-10 21:53:04 -05:00
..
main.tf Added terraform files for Signoz OTEL backend. (#34058) 2025-10-10 21:53:04 -05:00
outputs.tf Added terraform files for Signoz OTEL backend. (#34058) 2025-10-10 21:53:04 -05:00
README.md Added terraform files for Signoz OTEL backend. (#34058) 2025-10-10 21:53:04 -05:00

EKS VPC for Fleet Loadtesting

Dedicated VPC for EKS workloads (SigNoz) with proper Kubernetes tags.

Architecture

  • CIDR: 10.20.0.0/16
  • Subnets: 2 AZs (us-east-2a, us-east-2b)
    • Private: 10.20.1.0/24, 10.20.2.0/24
    • Public: 10.20.101.0/24, 10.20.102.0/24
  • NAT: Single NAT gateway (cost optimization)
  • Tags: Pre-configured for EKS/Kubernetes

Usage

This VPC is deployed per workspace:

cd infrastructure/loadtesting/terraform/eks-vpc
terraform workspace new <workspace_name>
terraform apply

The VPC outputs are consumed by the SigNoz module via terraform remote state.

Why Separate VPC?

  • EKS requires specific subnet tags (kubernetes.io/cluster/*)
  • Can't modify shared fleet-vpc tags (different terraform state)
  • Avoids VPC limit issues (dedicated EKS VPC)
  • Clean separation of concerns