# Deploy the full Cosmo stack to any Kubernetes cluster

A production-grade Helm umbrella chart packages every Cosmo component. Deploy locally with Minikube or to any cloud Kubernetes service with a single command.

## The problem

## Deploying a multi-service platform to Kubernetes is complex

Writing and maintaining custom Kubernetes manifests for every platform component takes significant engineering time and creates configuration that drifts across environments.

### Custom Kubernetes manifests drift over time

Maintaining individual Deployment, Service, and ConfigMap resources for a multi-service platform is time-consuming. They diverge between environments and become difficult to upgrade.

### Multi-component coordination is error-prone

A federation platform has many interdependent services. Connecting them correctly, in the right startup order, with compatible configuration, is complex to manage manually.

### Consistent environments across dev and production are hard

Local development setups drift from staging and production. Teams need identical deployment processes across all environments to catch issues early.

## Our solution

## One chart, full platform

The Cosmo umbrella Helm chart handles component ordering, inter-service networking, and storage integration. Deploy the complete platform with one command.

### How deployment works

1. The Cosmo Helm chart is an umbrella chart containing six platform sub-charts.
2. Storage components integrate via external Bitnami Helm charts: PostgreSQL, Keycloak, ClickHouse, Minio, Redis.
3. Configure a values.yaml for your target environment—development defaults or production-grade settings.
4. Run helm install against your cluster (EKS, AKS, GKE, Minikube, or on-premises).
5. Each sub-chart can be configured independently or disabled if you bring external services.
6. Upgrade components with helm upgrade and revert with helm rollback; handle database migrations per the chart documentation.

## Before & After

| Before Cosmo Helm | With Cosmo Helm |
| --- | --- |
| Write and maintain custom Kubernetes manifests for each component | Single helm install command deploys the full platform |
| Manual configuration of each service and its dependencies | Pre-configured defaults with environment-specific overrides |
| Inconsistent deployments across dev, staging, and production | Reproducible deployments using values files per environment |
| Undocumented configuration options | Auto-generated README with all options and defaults |

### What's in the umbrella chart

Platform sub-charts:
- Controlplane
- GraphQL
- Metrics
- OTEL Collector
- Studio
- Router
- CDN

Storage (Bitnami):
- PostgreSQL
- Keycloak
- ClickHouse
- Minio
- Redis

## How the Cosmo Helm chart works

### Prepare

Install Helm 3.8 or later and configure kubectl for your cluster. The chart supports EKS, AKS, GKE, Minikube, and any Kubernetes cluster.

### Configure

Create a values.yaml file with your environment-specific settings. For local development, use the defaults. For production, configure external databases and TLS.

### Deploy

Run helm install with your values file. The umbrella chart deploys all six platform sub-charts and Bitnami storage components in the correct order.

### Upgrade

Use helm upgrade for platform updates and helm rollback to revert to the previous release. Handle any required database migrations per the chart documentation.

## Chart features

### Built for production

Everything a production Kubernetes deployment needs is included.

### Universal Kubernetes support

Deploy to Amazon EKS, Azure AKS, Google GKE, or any Kubernetes cluster. Minikube is supported for local development and CI environments.

### Modular sub-chart architecture

Each platform component is a separate sub-chart. Disable components you replace with external services and configure each one independently.

### Helm-managed upgrades

Run helm upgrade for platform updates and helm rollback to revert to any previous release. Handle database migrations per the chart documentation.

### Auto-generated documentation

Every chart update regenerates the README with all configuration options and defaults. Configuration documentation is always current.

## Deploy Cosmo to Kubernetes

One Helm chart. Six sub-charts. Full platform. EKS, AKS, GKE, or on-premises.

## FAQ

## Kubernetes deployment questions

- Which Kubernetes providers does the Helm chart support?
- What are the six platform sub-charts?
- What storage components does the chart include?
- Can I use external databases instead of the Bitnami charts?
- How do I configure different environments?
- Where is the chart configuration documented? 
- Where can I find the Helm chart source?
 
Deep dive in the [Kubernetes deployment documentation](https://cosmo-docs.wundergraph.com/deployments-and-hosting/kubernetes).
