Skip to content
CNPEGitOps and Continuous DeliverySingle nodeHard

Progressive delivery: an Argo Rollouts canary with a manual gate

Scenario cnpe-git-003 · about 18 minutes · 9 points · 7 grader checks

Replace the storefront Deployment with an Argo Rollout that sends 20% of the pods to a new version, waits for a human, then completes; ship podinfo 6.17.0 through it.

  • argo-rollouts
  • canary
  • progressive-delivery
  • rollout
  • continuous-delivery

What you will practise

  • Convert a Deployment into an Argo Rollout with canary steps
  • Pause a canary indefinitely and promote it
  • Read Rollout status: phase, stable and current pod hash, step index

Start this lab

With the CLI installed and signed in, this command provisions a single node cluster on your Mac, applies the scenario setup and prints the task below.

goldenkube start cnpe-git-003

Task

The task text exactly as the CLI shows it. Solve it on the cluster, then run goldenkube submit.

Argo Rollouts runs in namespace "argo-rollouts". In namespace "store" the Deployment "frontend" (5 replicas of ghcr.io/stefanprodan/podinfo:6.16.0) sits behind the Service "frontend". 1. Replace it with an Argo Rollout "frontend" in "store": same labels, selector and pod template, 5 replicas, canary strategy with exactly these steps: set weight 20, pause until promoted, set weight 100. 2. Once the Rollout is healthy on 6.16.0, remove the Deployment (or scale it to 0) so the Service only reaches pods of the Rollout. 3. Release ghcr.io/stefanprodan/podinfo:6.17.0 through the Rollout: let it stop at the pause, then promote it to completion.

Requirements and details

Certification
CNPE · Certified Cloud Native Platform Engineer
Domain
GitOps and Continuous Delivery
Difficulty
Hard
Cluster topology
Single node
Cluster features
None beyond the base cluster
Recommended time
18 minutes
Points
9
Grader checks
7
Kubernetes version
1.35
Minimum CLI version
0.1.0
Scenario version
1
Published

Grading runs locally: 7 state checks read your cluster when you submit; the scenario passes when every check passes. Hints, the reference solution and the check definitions are available only inside the CLI, not on this page.

CNPEGitOps and Continuous DeliveryMedium

GitOps with Argo CD: an automated Application from the platform repo

The shop manifests live in the in-cluster Git server. Deliver them with an Argo CD Application that creates its namespace, prunes and heals drift.

Single node · ~15 min · 10 points

  • argocd
  • gitops
  • application
  • self-heal
  • gitea
  • continuous-delivery

goldenkube start cnpe-git-001

CNPEGitOps and Continuous DeliveryHard

GitOps with Flux: reconcile infra from Git and fix the broken manifest

The infra repository should be reconciled by Flux, but one manifest in it does not apply. Wire up the GitRepository and Kustomization, then fix the repository so the reconciliation turns Ready.

Single node · ~18 min · 10 points

  • flux
  • gitops
  • kustomization
  • gitrepository
  • gitea
  • continuous-delivery

goldenkube start cnpe-git-002

CNPEGitOps and Continuous DeliveryHard

CI/CD with Tekton: a two-task release pipeline passing a result

Build a Tekton Pipeline whose first Task emits the release version as a result and whose second Task publishes it into the staging namespace with kubectl, then run it.

Single node · ~18 min · 9 points

  • tekton
  • pipeline
  • ci-cd
  • task-results
  • serviceaccount
  • continuous-delivery

goldenkube start cnpe-git-004

CNPEGitOps and Continuous DeliveryMedium

Progressive delivery: blue/green with a preview service and manual promotion

Run checkout as an Argo Rollout with a blue/green strategy, verify the new version on the preview Service, then switch the active Service by promoting.

Single node · ~15 min · 8 points

  • argo-rollouts
  • blue-green
  • progressive-delivery
  • preview
  • continuous-delivery

goldenkube start cnpe-git-005

Independent community project, not affiliated with or endorsed by CNCF or The Linux Foundation. Lab results are practice feedback, not an exam score.