Part 1
We first wrap all these steps (https://github.com/DDMAL/Rodan/wiki/Working-on-Rodan) with k8s.
The yml file is here: https://github.com/DDMAL/Rodan/blob/k8s-local-test/kubernetes-local.yml
Steps to deploy locally on Mac mini
Prerequisites (one-time)
# Install gettext for envsubst
brew install gettext
brew link --force gettext
# Enable Kubernetes in Docker Desktop:
# Docker Desktop → Settings → Kubernetes → Enable Kubernetes → Apply & Restart
# Confirm context is pointing at Docker Desktop
kubectl config use-context docker-desktop
Deploy
cd /path/to/local/Rodan
export RODAN_SRC=/path/to/local/Rodan
envsubst < kubernetes-local.yml | kubectl apply -f -
Wait for pods
kubectl get pods -n rodan-local -w
Wait until all 10 pods show Running. Takes about 1-2 minutes.
Start services (each in its own terminal tab)
Tab 1 — Rodan API:
kubectl exec -it -n rodan-local deploy/rodan-main -- /run/start
Tab 2 — Celery (core tasks):
kubectl exec -it -n rodan-local deploy/celery -- /run/start-celery
Tab 3 — Python3 jobs:
kubectl exec -it -n rodan-local deploy/py3-celery -- /run/start-celery
Access at http://localhost:/api
Stop
kubectl delete namespace rodan-local
Current it still looks like this
Mac mini
└── Docker Desktop (runs the Kubernetes node)
└── Kubernetes cluster
├── pod: nginx → container from ddmal/nginx
├── pod: rodan-main → container from ddmal/rodan-main
├── pod: celery → container from ddmal/rodan-main
├── pod: py3-celery → container from ddmal/rodan-python3-celery
├── pod: postgres → container from ddmal/postgres-plpython
└── ...
Part 1
We first wrap all these steps (https://github.com/DDMAL/Rodan/wiki/Working-on-Rodan) with k8s.
The yml file is here: https://github.com/DDMAL/Rodan/blob/k8s-local-test/kubernetes-local.yml
Steps to deploy locally on Mac mini
Prerequisites (one-time)
Deploy
Wait for pods
Wait until all 10 pods show Running. Takes about 1-2 minutes.
Start services (each in its own terminal tab)
Access at http://localhost:/api
Stop
Current it still looks like this