CNPEPlatform APIs and Self-Service CapabilitiesHard
Expose app configuration as a Crossplane v2 namespaced composite API: define the XRD, write a pipeline Composition with patch-and-transform, and provision the first composite.
Single node · ~20 min · 10 points
- crossplane
- composition
- xrd
- self-service
- platform-api
- function-patch-and-transform
goldenkube start cnpe-api-002
CNPEGitOps and Continuous DeliveryHard
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
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
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
CNPEObservability and OperationsHard
Ship only the shop namespace's container logs: run the OpenTelemetry Collector as a DaemonSet with the filelog receiver on the node's pod log files and print the records with the debug exporter.
Single node · ~18 min · 9 points
- opentelemetry
- logging
- filelog
- daemonset
- hostpath
- observability
goldenkube start cnpe-obs-003
CNPESecurity and Policy EnforcementHard
Move the bank and frontend workloads into the Istio mesh and require mutual TLS for every workload in bank, so meshed clients still reach the ledger while plaintext clients are refused.
Single node · ~16 min · 11 points
- istio
- service-mesh
- mtls
- peerauthentication
- zero-trust
- security
goldenkube start cnpe-sec-001
CNPESecurity and Policy EnforcementHard
Produce a CycloneDX SBOM for an image from the node's containerd store with Trivy and publish it as a ConfigMap, then restrict the registries Pods in a namespace may pull from with an OPA Gatekeeper ConstraintTemplate and Constraint.
Single node · ~18 min · 10 points
- supply-chain
- sbom
- cyclonedx
- trivy
- gatekeeper
- opa
- rego
- security
goldenkube start cnpe-sec-003