https://github.com/kostis-codefresh/multi-service-argo-rollouts-example
Example with Argo Rollouts with many services
https://github.com/kostis-codefresh/multi-service-argo-rollouts-example
Last synced: about 1 year ago
JSON representation
Example with Argo Rollouts with many services
- Host: GitHub
- URL: https://github.com/kostis-codefresh/multi-service-argo-rollouts-example
- Owner: kostis-codefresh
- Created: 2023-08-24T16:06:37.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-07-01T14:07:27.000Z (almost 2 years ago)
- Last Synced: 2025-03-19T01:41:43.709Z (about 1 year ago)
- Language: Go
- Homepage: https://codefresh.io/blog/multi-service-progressive-delivery-with-argo-rollouts/
- Size: 146 KB
- Stars: 4
- Watchers: 1
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Using Argo Rollouts with many microservices
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/

## Run only the backend manually
Install [GoLang](https://go.dev/) locally
```
cd src/interest
APP_VERSION=1.2 go run .
```
You can now acces the backend at `http://localhost:8080`
## Run only the frontend manually
Install [GoLang](https://go.dev/) 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`
## Run both of them at the same time
Install [Docker compose](https://docs.docker.com/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.
## Run on Kubernetes as deployments
```
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`
## Run on Kubernetes as Rollouts (modern app)
```
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
```
## Run on Kubernetes as Rollouts (legacy app)
```
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
```