Tip
As part of an enterprise subscription, we provide exclusive documentation on how to effectively operate and run WunderGraph Cosmo on all common container platforms such as EKS, GKE, AKS, Fargate, and Google Cloud Run. This includes migration support and configuration guidance. Don't spend time tinkering with its internals; let us do the heavy lifting for you. Contact us for more information.
- A running Kubernetes cluster, with PV provisioner support + ingress controller
- Minikube
- Requires enabling
minikube addons enable ingress
- Requires enabling
- Minikube
- Helm 3.2.0+ installed locally
- Kapp installed locally
- Kubectl installed locally
# Add bitnami repo to install dependencies like postgresql, keycloak and clickhouse
helm repo add bitnami https://charts.bitnami.com/bitnami
# Install the helm dependencies (Only needed once)
helm repo add bitnami https://charts.bitnami.com/bitnami && \
helm dependency build ./cosmo
Ensure you have selected the right Kubernetes cluster with:
kubectl cluster-info
For local development we're assuming you are building the container images locally rather than consuming the released versions from the container repository.
If you are running the kubernetes instances locally:
make docker-build-minikube # If you're running k8s on the same CPU architecture as locally
# If your cluster runs on a linux/amd64 architecture please update the Makefile accordingly
For development, we recommend installing the Helm chart with Kapp the following command:
make dev
The provisioning will take a few seconds to bootstrap the whole cluster and seed the database with a default user and organization.
We run several Kubernetes jobs to run migrations. While we provide Helm hook support to run migrations, we recommend to use Kapp because it is more powerful in coordinating the deployment.
Minikube will automatically expose the ingress controller on your local machine. You can get the IP with minikube ip
.
Now, add the following entries to your /etc/hosts
file and replace the IP with the IP you get from the previous step.
192.168.49.2 studio.wundergraph.local
192.168.49.2 controlplane.wundergraph.local
192.168.49.2 router.wundergraph.local
192.168.49.2 keycloak.wundergraph.local
192.168.49.2 otelcollector.wundergraph.local
192.168.49.2 graphqlmetrics.wundergraph.local
192.168.49.2 cdn.wundergraph.local
Minikube needs to set up a tunnel to expose the ingress controller in your local machine. Add the following
entries to /etc/hosts
:
127.0.0.1 studio.wundergraph.local
127.0.0.1 controlplane.wundergraph.local
127.0.0.1 router.wundergraph.local
127.0.0.1 keycloak.wundergraph.local
127.0.0.1 otelcollector.wundergraph.local
127.0.0.1 graphqlmetrics.wundergraph.local
127.0.0.1 cdn.wundergraph.local
Then start minikube tunnel
and leave it running. It might ask for your root password in order to open
the tunnel on privileged ports.
Open http://studio.wundergraph.local in your browser and login with the default credentials:
Username: [email protected]
Password: wunder@123
In the global.seed.apiKey
of your values.yaml
we defined your API key. You can use this API key to authenticate with the Cosmo CLI.
export COSMO_API_KEY="cosmo_669b576aaadc10ee1ae81d9193425705"
export COSMO_API_URL="http://controlplane.wundergraph.local"
npx wgc -h
Enable ingress addon before deploying the Helm chart:
minikube addons enable ingress
make docs