Cluster Topology
How ArgoCD is deployed across Titanbay’s GKE clusters
ArgoCD is our declarative, GitOps continuous delivery tool for Kubernetes. It serves as the foundation for managing all infrastructure and platform deployments across Titanbay’s GKE clusters.
Titanbay uses ArgoCD to implement GitOps principles across all Kubernetes environments. ArgoCD watches our Git repositories and automatically synchronises the desired state defined in manifests to the live state in our clusters.
| Concept | Description |
|---|---|
| Application | A group of Kubernetes resources defined by a manifest in Git |
| AppProject | A logical grouping of Applications with RBAC controls |
| ApplicationSet | A template that generates Applications dynamically |
| Sync | The process of making live state match the desired Git state |
ArgoCD is deployed across 4 GKE clusters with a hub-and-spoke architecture:
graph TD
subgraph hub["Infra Management Cluster (Hub)"]
argocd_ha["ArgoCD HA<br/>Self-managing<br/>Manages all clusters"]
end
subgraph dev["TB Platform Dev"]
argocd_dev["ArgoCD (Helm)<br/>Managed by Hub"]
end
subgraph qa["TB Platform QA"]
argocd_qa["ArgoCD (Helm)<br/>Managed by Hub"]
end
subgraph prod["TB Platform Prod"]
argocd_prod["ArgoCD (Helm)<br/>Managed by Hub"]
end
argocd_ha --> argocd_dev
argocd_ha --> argocd_qa
argocd_ha --> argocd_prod| Cluster | Purpose | ArgoCD Mode | Managed By |
|---|---|---|---|
| Infra Management | Central infrastructure services, Config Connector, monitoring | HA (standalone manifest) | Self-managed |
| TB Platform Dev | Development environment for Titanbay platform | Helm chart | Infra Management ArgoCD |
| TB Platform QA | QA/Staging environment | Helm chart | Infra Management ArgoCD |
| TB Platform Prod | Production environment | Helm chart | Infra Management ArgoCD |
ArgoCD manifests are organised under k8s/infra-services/argocd/:
argocd/
├── base/ # Core ArgoCD manifests for infra-mgmt cluster
│ ├── argocd-ha-3.2.1.yaml # HA ArgoCD standalone manifest
│ ├── argocd-image-updater-*.yaml # Image Updater configuration
│ ├── pod-disruption-budgets.yaml # PDBs for high availability
│ └── ...
├── overlays/
│ └── infra-platform-cluster/ # Infra management cluster overlay
│ ├── apps/ # ArgoCD Applications (app-of-apps)
│ ├── application-sets/ # ApplicationSets for dynamic generation
│ ├── projects/ # AppProject definitions
│ └── patches/ # Cluster-specific patches
└── tb-platform/ # ArgoCD for tb-platform clusters
├── base/ # Helm-based ArgoCD configuration
│ └── argocd-helm.yaml # Helm chart Application
└── overlays/
├── tb-platform-dev/ # Dev cluster overlay
├── tb-platform-qa/ # QA cluster overlay
└── tb-platform-prod/ # Prod cluster overlay
ArgoCD Projects provide logical groupings with RBAC controls:
| Project | Purpose | Key Permissions |
|---|---|---|
infra-services | Infrastructure services on the management cluster | Full access to infra namespaces |
tb-platform-infra | Platform infrastructure managed from the hub | Deploy to tb-platform clusters |
tb-platform | Titanbay platform workloads | Deploy to tb-platform namespace |
tb-platform-resources | Platform resources | Deploy to tb-platform-resources namespace |
build-services | Build and CI/CD services | Deploy to build namespaces |
How ArgoCD is deployed across Titanbay’s GKE clusters
How ArgoCD maintains and updates itself on the Infra Management Cluster
Overview of all services managed by ArgoCD on the Infra Management Cluster