[Lauro Fialho Müller] GitOps in Practice with Argo CD and Argo Rollouts [ENG, 2026]: Argo Rollouts: First Deployment
Делаю:
2026.01.29
https://github.com/lm-academy/argo-rollouts-course/tree/main/first-rollout
$ cat << EOF | kubectl apply -f -
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: simple-color-app
spec:
replicas: 5
selector:
matchLabels:
app: simple-color-app
strategy:
canary:
steps:
- setWeight: 20
- pause: {}
template:
metadata:
labels:
app: simple-color-app
spec:
containers:
- name: app
image: lmacademy/simple-color-app:1.0.0
env:
- name: APP_COLOR
value: 'orange'
EOF
$ cat << EOF | kubectl apply -f -
apiVersion: v1
kind: Service
metadata:
name: simple-color-app
spec:
type: NodePort
ports:
- port: 3000
targetPort: 3000
selector:
app: simple-color-app
EOF
$ kubectl argo rollouts list rollouts
$ kubectl argo rollouts get rollout simple-color-app
http://localhost:3100/rollouts/default
$ kubectl port-forward svc/simple-color-app -n default 3000:3000
http://localhost:3000/
$ cd ~/tmp
$ git clone https://github.com/lm-academy/argo-rollouts-course.git
$ cd argo-rollouts-course
$ ./test-requests.sh http://localhost:3000/ 10
🚀 Sending requests to http://localhost:3000/ (Count: 10, Sleep: 0.5s)
---------------------------------------------------
[1] Response: Rollout Demo: orange
[2] Response: Rollout Demo: orange
[3] Response: Rollout Demo: orange
[4] Response: Rollout Demo: orange
[5] Response: Rollout Demo: orange
[6] Response: Rollout Demo: orange
[7] Response: Rollout Demo: orange
[8] Response: Rollout Demo: orange
[9] Response: Rollout Demo: orange
[10] Response: Rollout Demo: orange
---------------------------------------------------
Done.
$ ./test-requests.sh http://localhost:3000/ -1 0.2
$ cat << EOF | kubectl apply -f -
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: simple-color-app
spec:
replicas: 5
selector:
matchLabels:
app: simple-color-app
strategy:
canary:
steps:
- setWeight: 20
- pause: {}
template:
metadata:
labels:
app: simple-color-app
spec:
containers:
- name: app
image: lmacademy/simple-color-app:1.0.0
env:
- name: APP_COLOR
value: 'purple'
EOF
$ kubectl argo rollouts get rollout simple-color-app
$ kubectl argo rollouts promote simple-color-app