Canary Deployments with Argo Rollouts and Istio

A canary deployment is more complex than a blue-green deployment. It requires a service mesh to route traffic to the canary version of the application. In this example, we will use Istio.

Requirements

  • Istio

  • ArgoCD

  • Argo Rollouts

  • Prometheus (required for analysis templates)

Configuration

Create a service definition:

apiVersion: v1
kind: Service
metadata:
  name: demo-app
spec:
  selector:
    app: demo-app
  ports:
    - name: http-web
      appProtocol: http
      port: 80

Create a destination rule definition:

Create a virtual service definition with destination routing rules:

Create a gateway definition:

Create an analysis template

Create a rollout resource with the following configuration:

A rollout configuration encapulates a replicaset definition. No need to write both the rollout and the replicaset.

Last updated