Argo Rollouts
Definition
Argo Rollouts is a Kubernetes controller and set of CRDs (Custom Resource Definitions) that provide advanced deployment capabilities such as blue-green deployments, canary releases, and progressive delivery strategies. It enhances the Kubernetes native deployment mechanisms by allowing more control over the rollout process, enabling features like automated analysis, traffic shaping, and rollback capabilities.
Secure Settings Example
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: secure-rollout
spec:
replicas: 3
strategy:
canary:
steps:
- setWeight: 20
- pause: {}
- setWeight: 50
- pause: { duration: 600 }
revisionHistoryLimit: 5
progressDeadlineSeconds: 600
podTemplate:
spec:
containers:
- name: my-app
image: myapp:1.0
securityContext:
runAsNonRoot: true
readOnlyRootFilesystem: true
Insecure Settings Example
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: insecure-rollout
spec:
replicas: 3
strategy:
canary:
steps:
- setWeight: 100
revisionHistoryLimit: 1
progressDeadlineSeconds: 300
podTemplate:
spec:
containers:
- name: my-app
image: myapp:1.0
securityContext:
runAsNonRoot: false
readOnlyRootFilesystem: false