Skip to content

[casting] Azure Container Apps with Terraform #83

@Nageshbansal

Description

@Nageshbansal

Deployment platform

aca

Deployment mode

containerapp

Deployment flavor

terraform

Why this Casting?

Azure Container Apps users currently follow a long manual az CLI guide with 6 YAML files and multiple config uploads. A Foundry casting would generate the entire Terraform module including the Azure VM for TelemetryStore/TelemetryKeeper and Container Apps for stateless components (SigNoz, Ingester, Migrator). Benefits platform engineers deploying SigNoz on Azure who want reproducible, version-controlled infrastructure.

Proposed Casting configuration

apiVersion: v1alpha1
  metadata:
    name: signoz
    annotations:
      foundry.signoz.io/aca/subscription-id: <subscription-id>
      foundry.signoz.io/aca/resource-group: <resource-group>
      foundry.signoz.io/aca/location: eastus
      foundry.signoz.io/aca/storage-account: <storage-account-name>
  spec:
    deployment:
      platform: aca
      mode: containerapp
      flavor: terraform

Expected Pours structure

pours/deployment/
    main.tf.json
    variables.tf.json
    terraform.tfvars.json
    module/
      main.tf.json
      variables.tf.json
      outputs.tf.json
      telemetrykeeper.tf.json
      telemetrystore.tf.json
      telemetrystore_migrator.tf.json
      metastore.tf.json
      signoz.tf.json
      ingester.tf.json
      telemetrykeeper/
        clickhousekeeper/
          keeper-0.yaml
      telemetrystore/
        clickhouse/
          config.yaml
          functions.yaml
      ingester/
        ingester.yaml
        opamp.yaml

Tooling requirements

  • Terraform for deploying
  • Azure CLI (az) for authentication

References

Additional context

ACA's storage options (EmptyDir, Azure Files SMB) aren't suitable for ClickHouse data workloads. The Terraform module should provision an Azure VM with managed disk for TelemetryStore/TelemeteryKeeper, while using Container Apps for stateless components (SigNoz, Ingester, Migrator). This hybrid approach gives persistence without leaving ACA entirely.

Metadata

Metadata

Assignees

No one assigned

    Labels

    castingIssues related to casting.enhancementNew feature or requesthelp wantedExtra attention is needed

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions