Example with Argo Rollouts with backend and frontend
Read the full blog post at https://codefresh.io/blog/multi-service-progressive-delivery-with-argo-rollouts/
Install GoLang locally
cd src/interest
APP_VERSION=1.2 go run .
You can now acces the backend at http://localhost:8080
Install GoLang locally
cd src/loan
APP_VERSION=1.4 PORT=9000 BACKEND_HOST=localhost go run .
You can now access the backend at http://localhost:9000
Install Docker compose (no need for local GoLang installation)
cd src
docker compose up
And now you can use the same URLs as above to access the services.
cd manifests/plain
kubectl create ns plain
kubectl apply -f . -n plain
kubectl port-forward svc/my-plain-backend-service 8000:8080 -n plain
kubectl port-forward svc/my-plain-frontend-service 9000:8080 -n plain
You can now access the backend at http://localhost:8000
and the backend at http://localhost:9000
cd manifests/modern
kubectl create ns modern
kubectl apply -f . -n modern
kubectl port-forward svc/backend-active 8000:8080 -n modern
kubectl port-forward svc/backend-preview 8050:8080 -n modern
kubectl port-forward svc/frontend-active 9000:8080 -n modern
kubectl port-forward svc/frontend-preview 9050:8080 -n modern
You can now access the backend at http://localhost:8000
(old) and http://localhost:8050
(new)
and the backend at http://localhost:9000
(old) and http://localhost:9050
(new)
To see what the rollouts are doing
kubectl-argo-rollouts get rollout my-frontend -n modern
kubectl-argo-rollouts get rollout my-backend -n modern
cd manifests/legacy
kubectl create ns legacy
kubectl apply -f . -n legacy
kubectl port-forward svc/backend-active 8000:8080 -n legacy
kubectl port-forward svc/backend-preview 8050:8080 -n legacy
kubectl port-forward svc/frontend-active 9000:8080 -n legacy
kubectl port-forward svc/frontend-preview 9050:8080 -n legacy
You can now access the backend at http://localhost:8000
(old) and http://localhost:8050
(new)
and the backend at http://localhost:9000
(old) and http://localhost:9050
(new)
To see what the rollouts are doing
kubectl-argo-rollouts get rollout my-frontend -n legacy
kubectl-argo-rollouts get rollout my-backend -n legacy