Skip to content
CNPEGitOps and Continuous DeliverySingle nodeHard

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

Scenario cnpe-git-002 · about 18 minutes · 10 points · 6 grader checks

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.

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

What you will practise

  • Create a Flux GitRepository and Kustomization
  • Read Kustomization conditions to find an apply failure
  • Fix the source of truth in Git instead of the cluster

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-002

Task

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

Flux runs in namespace "flux-system". The Git repository http://gitea.git.svc.cluster.local:3000/gk/infra.git (branch "main", public for reading) holds the manifests of the "edge" stack in the directory "infra". A working copy with push access is checked out at /root/infra on exam-cp1. 1. Create a GitRepository "infra" in "flux-system" for that repository and branch, polled every minute. 2. Create a Kustomization "infra" in "flux-system" that applies the path "./infra" from that source every minute and prunes objects removed from Git. 3. The repository contains a manifest that cannot be applied. Fix it in Git (commit and push to "main"; do not apply it by hand) so that the Kustomization becomes Ready and the Deployment "edge-proxy" in namespace "edge" runs its 2 replicas.

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
10
Grader checks
6
Kubernetes version
1.35
Minimum CLI version
0.1.0
Scenario version
1
Published

Grading runs locally: 6 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

Progressive delivery: an Argo Rollouts canary with a manual gate

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.

Single node · ~18 min · 9 points

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

goldenkube start cnpe-git-003

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.