A complete example of deploying an Apollo Supergraph (Router + Subgraphs) for both local development and Kubernetes deployment.
This project demonstrates how to set up and deploy an Apollo Supergraph with:
- Apollo Router - GraphQL gateway that routes requests to subgraphs
- Subgraphs - Three GraphQL services (Products, Reviews, Users) in a monolithic Node.js application
- Multiple deployment options — local development, Kubernetes (raw manifests), or Kubernetes (Apollo GraphOS Operator)
📖 SETUP.md contains the complete guide to get this running.
Tasks are run with Just. Run just to list all recipes.
| Goal | Commands |
|---|---|
| Local dev | just setup-env → just run-local → just test products |
| K8s (manifests) | just k8s setup → just k8s deploy → just test k8s |
| K8s (operator) | just k8s setup → just operator setup → just operator deploy → just test products |
The setup guide includes prerequisites, all three deployment paths, testing, and troubleshooting.
Three deployment modes (see ARCHITECTURE.md):
| Mode | Just module | K8s namespace | Router managed by |
|---|---|---|---|
| Local | just run-local |
— | Rover dev |
| K8s manifests | just k8s … |
apollo-supergraph |
Raw Deployment + ConfigMap |
| K8s operator | just operator … |
apollo-supergraph-operator |
GraphOS Operator CRDs |
The two Kubernetes paths use separate namespaces and can run on the same minikube cluster; only port-forward one Router to localhost:4000 at a time.
🤖 AGENTS.md — build commands, guardrails, and where to change code (also see router/AGENTS.md and subgraphs/AGENTS.md).