How do I do progressive delivery for Zipkin with Argo CD?

Progressive delivery for Zipkin using Argo CD allows you to gradually roll out new features to a subset of users while monitoring performance and user feedback. This process helps mitigate risks associated with deploying new changes. Here’s how you can set up progressive delivery for Zipkin with Argo CD.

Prerequisites

  • An existing Zipkin deployment
  • Argo CD installed and configured
  • Helm installed for managing Kubernetes applications

Steps to Implement Progressive Delivery

  1. Create a Feature Branch:

    Create a feature branch in your version control system with the new changes for Zipkin.

  2. Update Helm Chart:

    Update the Helm chart values to reflect the new feature in your Zipkin deployment.

  3. Configure Argo CD:

    Use Argo CD to manage your Zipkin application. You can define a new application in Argo CD that points to your feature branch.

  4. Set Up Progressive Rollout:

    Leverage the Argo Rollouts controller to define a progressive rollout strategy for your changes. This includes defining a canary service and specifying the desired traffic percentage that will initially receive the new version.

  5. Monitor and Adjust:

    Monitor the performance and logs of Zipkin. Based on your observations, you may increase the traffic to the new version gradually.

Example Configuration


apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
  name: zipkin-rollout
spec:
  replicas: 5
  strategy:
    canary:
      steps:
        - setWeight: 10
        - pause: { duration: 10s }
        - setWeight: 50
        - pause: { duration: 30s }
        - setWeight: 100
  selector:
    matchLabels:
      app: zipkin
  template:
    metadata:
      labels:
        app: zipkin
    spec:
      containers:
        - name: zipkin
          image: openzipkin/zipkin:latest
          ports:
            - containerPort: 9411
    

progressive delivery Zipkin Argo CD Kubernetes