Multi-Cluster
How Kuberise.io supports multiple clusters and environments.
Cluster Concept
Each cluster gets its own:
app-of-apps/values-<cluster>.yaml— which tools are enabledvalues/<cluster>/— cluster-specific configuration
All clusters share the same charts in charts/ and the same external chart references in app-of-apps/values.yaml.
Scenarios
Single Cluster (Local Development)
For local development with minikube, KIND, k3d, etc. — all platform services and applications run in one cluster.
app-of-apps/
values.yaml # defaults
values-onprem.yaml # enables tools for local cluster
values/
onprem/platform/ # local cluster configuration
Platform + Application Clusters
A typical production setup separates platform services from application workloads:
- Platform cluster — hosts shared tools (ArgoCD, Grafana, Keycloak, etc.)
- Application clusters — host business applications (dev, test, prod)
app-of-apps/
values.yaml
values-shared.yaml # platform cluster
values/
shared/platform/ # shared cluster config
Multiple Platform Clusters
For higher security, separate platform clusters per environment:
app-of-apps/
values.yaml
values-nonprod.yaml # non-production platform
values-prod.yaml # production platform
values/
nonprod/platform/
prod/platform/
Cluster Naming Convention
Cluster names follow the pattern: [environment]-[type]-[provider]-[region]
Examples: prod-app-aws-frankfurt, dev-shared-onprem-one, acc-app-gcp-groningen
Running install.sh Per Cluster
Each cluster requires its own install.sh invocation:
./scripts/install.sh k3d-shared shared <REPO_URL> main shared.kuberise.dev
./scripts/install.sh k3d-dev dev <REPO_URL> main dev.kuberise.dev