diff --git a/assets/dist/delivery-flow.svg b/assets/dist/delivery-flow.svg new file mode 100644 index 0000000..3cf459e --- /dev/null +++ b/assets/dist/delivery-flow.svg @@ -0,0 +1,113 @@ + diff --git a/build.sh b/build.sh index 0e65e8b..5df0a4f 100755 --- a/build.sh +++ b/build.sh @@ -13,7 +13,8 @@ cd -- "$here" for f in pilot/arc.tpl.html pilot/manifest-gitops.json pilot/manifest-supply.json \ pilot/manifest-helm.json gsap.min.js st.min.js \ assets/dist/course-VI-gitops.webp assets/dist/course-VII-supply-chain.webp \ - assets/dist/course-VIII-helm-press.webp assets/dist/appendix-dependency-ledger.webp; do + assets/dist/course-VIII-helm-press.webp assets/dist/appendix-dependency-ledger.webp \ + assets/dist/delivery-flow.svg; do [[ -f "$f" ]] || { printf 'missing source: %s\n' "$f" >&2; exit 1; } done diff --git a/pilot/arc.tpl.html b/pilot/arc.tpl.html index 2a67690..6eefc8e 100644 --- a/pilot/arc.tpl.html +++ b/pilot/arc.tpl.html @@ -6,6 +6,15 @@
+ +Course II taught the reconciliation loop: desired versus actual, fix the difference, repeat. +
C-II taught the reconciliation loop: desired versus actual, fix the difference, repeat. ArgoCD is the same habit applied to delivery. An Application names a repo, a path and a revision - watch this branch of this repository - and the controller renders what it finds there, compares it against the live cluster, and syncs the difference. The deploy button is a @@ -44,7 +53,7 @@ it back, and what leaves git leaves the cluster. Rollback is git revert, which is why commit hygiene is an operational skill.
Field note. Fighting the reconciler over SSH is arm-wrestling a - machine that does not get tired - Course II's warning, now with a face. The fix is always + machine that does not get tired - C-II's warning, now with a face. The fix is always upstream, in git.
Git holds everything except secrets - a secret in git is published, forever, to everyone who @@ -57,7 +66,7 @@
Delivery stops being an event and becomes a property: the cluster is always converging on what the repository says. "Who deployed this?" becomes "who merged this?" - and that question always has an answer.
-Pre-reads: Course II · +
Pre-reads: C-II · Kubernetes concepts · git + pull requests Further: Argo CD · @@ -117,7 +126,7 @@
Names that can move are convenient exactly until they move. Address content by what it is, and the supply chain stops being a chain of trust and becomes a chain of arithmetic.
-Pre-reads: Course I · +
Pre-reads: C-I · Kubernetes images Further: zot · Azure Container Registry · @@ -164,7 +173,7 @@ one values file: names, addresses, sizes, flags. The context is deliberately values-only; the moment it carries its own manifests there are two owners for one object, and they will disagree. One value can feed many rendered artefacts - an address appearing in the app config, - the network attachment and two policies renders from one field, so the copies cannot diverge.
+ the network attachment and two policies renders from one field, so the copies cannot diverge - the lived version is BLOG in the key above.The chart owns the shape. The context owns the numbers.
A template that renders whatever it is given just moves the failure downstream. The grown-up @@ -176,7 +185,7 @@
Fleet consistency is not a discipline problem, it is a construction problem. Divergence stops being something you police and becomes something the tooling cannot express.
-Pre-reads: Course II · +
Pre-reads: C-II · Kubernetes objects Further: Helm docs · chart template guide · @@ -245,6 +254,27 @@
The whole arc · end to end
+Every course above is one stretch of the same journey. Here is the full run, + drawn in the house blueprint style: the change lane, the shape lane, the artefact lane and + the secret lane, all converging on one running workload.
+