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 enabled
  • values/<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