Infrastructure
Angzarr uses modular Helm charts for Kubernetes and OpenTofu for cloud infrastructure. Each database and message bus is deployed separately from the core application using official images.
Deployment Modes
Section titled “Deployment Modes”| Mode | Infrastructure | Best For |
|---|---|---|
| Standalone | SQLite + Channel bus | Development, testing |
| Local K8s | Kind + Helm | Integration testing |
| GCP Cloud Run | Cloud SQL + Pub/Sub | Serverless production |
| GCP GKE | Cloud SQL + Helm | K8s production on GCP |
| AWS Fargate | RDS + SNS/SQS | Serverless production on AWS |
| AWS EKS | RDS + Helm | K8s production on AWS |
See OpenTofu for complete deployment guides for each target.
Available Charts
Section titled “Available Charts”| Chart | Description | Operator |
|---|---|---|
postgres | PostgreSQL event store | CloudNative-PG |
rabbitmq | RabbitMQ message bus | RabbitMQ Cluster Operator |
kafka | Kafka message bus | Strimzi |
nats | NATS message bus | - |
redis | Redis cache | - |
All charts use official upstream images, not Bitnami.
Deployment Order
Section titled “Deployment Order”- Deploy operators (for PostgreSQL and RabbitMQ)
- Deploy infrastructure charts
- Deploy core angzarr chart with applications
# Create namespacekubectl create namespace angzarr
# Deploy operatorshelm install angzarr-operators ./deploy/k8s/helm/operators -n operators --create-namespace
# Deploy databasehelm install angzarr-db ./deploy/k8s/helm/postgres -n angzarr
# Deploy message bushelm install angzarr-mq ./deploy/k8s/helm/rabbitmq -n angzarr
# Deploy applicationhelm install angzarr ./deploy/k8s/helm/angzarr -n angzarr \ -f ./deploy/k8s/helm/angzarr/values-rust.yamlPostgreSQL Configuration
Section titled “PostgreSQL Configuration”Uses CloudNative-PG operator with official PostgreSQL image.
values.yaml
Section titled “values.yaml”name: angzarr-dbimage: repository: ghcr.io/cloudnative-pg/postgresql tag: "16.4"instances: 1database: name: angzarr owner: angzarrstorage: size: 8GiConnection String
Section titled “Connection String”CloudNative-PG creates services: <name>-rw (read-write), <name>-ro (read-only).
# In angzarr valuesstorage: postgres: uri: "postgres://angzarr:<password>@angzarr-db-rw:5432/angzarr"RabbitMQ Configuration
Section titled “RabbitMQ Configuration”Uses RabbitMQ Cluster Operator with official RabbitMQ image.
values.yaml
Section titled “values.yaml”name: angzarr-mqimage: repository: rabbitmq tag: "4.1-management"replicas: 1storage: size: 1GiConnection String
Section titled “Connection String”# In angzarr valuesmessaging: type: amqp amqp: url: "amqp://guest:guest@angzarr-mq:5672/%2F"Kafka Configuration
Section titled “Kafka Configuration”Uses Strimzi operator with official Apache Kafka image.
values.yaml
Section titled “values.yaml”name: angzarr-kafkaversion: "3.9.0"kafka: replicas: 1 storage: size: 2Gicontroller: replicas: 1Connection String
Section titled “Connection String”# In angzarr valuesmessaging: type: kafka kafka: bootstrapServers: "angzarr-kafka-kafka-bootstrap:9092"Kind Deployment
Section titled “Kind Deployment”For local development with Kind:
# Create cluster and deploy infrastructurejust -f deploy/kind/justfile up
# Or step by step:just -f deploy/kind/justfile createjust -f deploy/kind/justfile infra-standardjust -f deploy/kind/justfile frameworkWhy Modular Charts?
Section titled “Why Modular Charts?”- Independent lifecycle — Upgrade databases without redeploying apps
- Official images — No third-party wrappers or Bitnami dependencies
- Flexibility — Choose only the infrastructure you need
- Production parity — Same charts for dev and prod
- Clear dependencies — Explicit deployment order
OpenTofu
Section titled “OpenTofu”For cloud infrastructure provisioning, angzarr provides OpenTofu modules supporting multiple deployment targets.
See OpenTofu for complete deployment guides including:
- Standalone mode
- Local Kubernetes (Kind)
- GCP Cloud Run
- GCP GKE
- AWS Fargate
- AWS EKS
Quick Reference
Section titled “Quick Reference”# GCP Cloud Runcd deploy/tofu/environments/gcp && tofu apply
# AWS Fargatecd deploy/tofu/environments/aws-staging && tofu applyWhy OpenTofu
Section titled “Why OpenTofu”- Open source — Community-driven fork of Terraform
- Compatible — Works with existing Terraform providers
- No license restrictions — BSL-free
Next Steps
Section titled “Next Steps”- OpenTofu — Cloud deployment guides (GCP, AWS, K8s)
- Observability — Monitoring and tracing
- Databases — Database configuration details