Lab & Completion
What You Will Produce
On your own kind cluster: what on the platform can change by itself, and what only through Git. The list of what is out of date, read from the platform’s dependency dashboard. The check that the tests run the versions the charts in Git install - passing, and then failing for a chart set one release back. A drain of the worker asked as a dry run, with the budgets that would block it named. And a chart upgrade read as concrete changes before anyone makes it.
Before You Start
The baseline from Chapter 00 must be clean:
flux --context kind-sre-control-plane get kustomizations -A # every row READY=True and SUSPENDED=False
kubectl --context kind-sre-control-plane get pods -A --no-headers | grep -vE 'Running|Completed' # prints nothing
make smoke-test # 9/9
You need helm, gh (signed in), yq, jq and kubeconform (make check-tools lists them all), and network access to the charts’ repositories and GitHub. Your fork must be up to date: if tests/tool-versions.test.sh does not exist in your clone, open your fork on GitHub, click Sync fork → Update branch, then git switch main && git pull.
The Lab in Three Parts
- A. Verify - what can move by itself, what is out of date, that the tests run the chart versions pinned in Git, and what the next Kubernetes would refuse.
- B. Break & Fix - a drain as a dry run and the budgets that block it; a version gap caught by the check; an upgrade read before it is made.
- C. Rollback & Cleanup - nothing cordoned, no lab branch, the baseline.
Done When
- you can say which parts of the platform change by themselves and which only through a pull request, and why the nodes do not update on their own (A2)
- you read the pending updates from the dependency dashboard (A3)
-
tests/tool-versions.test.shpassed onmain(A4) - the manifests passed against the next Kubernetes version with
schemas=checked, and you can name one deprecated API the cluster still uses (A5) - the same check refused a removed API, with
exit 1, and the file is gone (A6) - your prediction was written before B2 (B1)
- the drain dry run named the budgets that would block it, and you can say what one worker costs during maintenance (B2)
- the version check failed for the chart set one release back, and the branch was thrown away (B3)
- you listed the image changes of the 3.7.1 -> 3.9.1 upgrade and decided about the
:latestimage (B4) - nothing is cordoned and the baseline is clean (C1-C2)
Knowledge Check
Before finishing this chapter, complete the Quiz.