This repository defines the GitOps source of truth for Aurora's Kubernetes runtime, including platform components, shared infrastructure dependencies, and application workloads. It is designed to clearly separate local development, cluster-level platform concerns, and production-grade application delivery.
flowchart TD
subgraph Local Dev
direction TB
DEV_OVERLAY["k8s/overlays/dev"]
LOCAL_DEPS["Port-forwarded Services\n(Postgres, RabbitMQ, Redis)"]
DEV_APP["Aurora Apps\n(local Docker images optional)"]
DEV_OVERLAY --> DEV_APP
DEV_APP --> LOCAL_DEPS
end
subgraph CI/CD
direction TB
CI["Build & Test Aurora Images"]
IMAGE_REG["Docker Registry"]
CI --> IMAGE_REG
end
subgraph GitOps
direction TB
K8S_BASE["k8s/base"]
PROD_OVERLAY["k8s/overlays/prod"]
ARGOCD["ArgoCD"]
TF["Terraform (Optional)"]
PROD_OVERLAY --> ARGOCD
K8S_BASE --> PROD_OVERLAY
TF --> PROD_OVERLAY
ARGOCD --> PROD_CLUSTER["Prod K8s Cluster"]
end
subgraph Prod Cluster
direction TB
ISTIO_CP["Istio Control Plane\n(IngressGateway, Sidecars)"]
PROD_APP["Aurora Apps\n(prod images)"]
BACKING_SVC["Prod Services\n(Postgres, RabbitMQ, Redis)"]
ISTIO_CP --> PROD_APP
PROD_APP --> BACKING_SVC
end
IMAGE_REG --> PROD_OVERLAY
- Source code repos handle build & CI.
- This repo handles deployment state only.
dev→ local dependency simulation, port-forward friendly.prod→ real cluster services using*.svc.cluster.local.
- No Helm templating logic in apps.
- Git diff = actual runtime diff.
- Ingress, traffic routing, and security live in GitOps.
- Legacy API Gateway modules are removed.
aurora-gitops/
├── README.md
├── terraform/ # Optional infra-as-code supplement
│ ├── main.tf
│ ├── variables.tf
│ └── outputs.tf
├── k8s/
│ ├── base/ # All modules' base Kustomize configs
│ │ ├── kustomization.yaml
│ │ ├── postgres.yaml
│ │ └── rabbitmq.yaml
│ └── overlays/
│ ├── dev/ # Local development overlay
│ │ ├── kustomization.yaml
│ │ ├── namespace.yaml
│ │ └── patch-postgres.yaml
│ └── prod/ # Production overlay
│ ├── kustomization.yaml
│ ├── namespace.yaml
│ ├── patch-postgres.yaml
│ └── patch-rabbitmq.yaml
└── argo-applications/
├── dev-app.yaml # ArgoCD Application -> dev overlay
└── prod-app.yaml # ArgoCD Application -> prod overlay
- Base Kustomize manifests for apps and infra.
- Defines images, ports, and probes.
- Local development overlay.
- Default
application.ymlwithlocalhostdependencies. - Uses port-forwarded services only.
- Production overlay.
- Default
application-prod.ymlwithsvc.cluster.localservice discovery. - Deploys Aurora app images and stable backing services.
-
Defines which overlay to sync per environment using ArgoCD.
-
Example:
dev-app.yaml→ dev overlayprod-app.yaml→ prod overlay
- Infrastructure provisioning for cloud or local clusters.
- Can be used to deploy namespaces, storage, or cluster components if desired.
- Build images, run tests, push image tags.
- No direct cluster deployment.
- Declare which image version to deploy in overlays.
- ArgoCD syncs clusters automatically from Git.
- Ensures environment isolation, auditability, and rollbacks.
- Developer starts local Aurora services (dev overlay).
- Uses
infra/local-depsvia port-forward for dependencies. - CI builds Aurora images and pushes to registry.
- GitOps repo updated with new image tags.
- ArgoCD syncs the production cluster (prod overlay).
- Clear mental model between build, deployment, and runtime.
- Clean separation between local dev and prod clusters.
- Easy Istio traffic experiments in prod and dev.
- Git diffs reflect actual runtime changes, simplifying rollbacks.