feat: drop the manual CRD step from the deploy path #53
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/drop-manual-crd-step"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Completes the work started in #49 and fixed in #50: no CRD step before merging a
Renovate chart bump.
Why this is safe now
#50 was verified in-cluster before this PR was written:
Completed(76s, 95s, 78s)prometheuses.monitoring.coreos.com,clustersecretstores.external-secrets.ioand
proxyclasses.tailscale.comall carry nolast-applied-configurationannotation — proof they went in server-side,which is the property
372c452established ArgoCD's own apply cannot deliverexternal-secrets,kube-prometheus-stackandtailscale-operatorstayedSynced/Healthy throughout
So the mechanism replacing the scripts is known to work, not assumed to.
What this removes
scripts/11-install-external-secrets-crds.sh,scripts/15-install-kube-prometheus-stack-crds.shandscripts/18-install-tailscale-crds.sh.The instructions to run them lived in more places than the scripts themselves:
README.mdrun-all.sh" tablegitops/argocd-apps/× 6external-secrets,kube-prometheus-stack,tailscale-operator, plustailscale-config,monitoring-targets,monitoring-alertsscripts/run-all.shrenovate.jsonprBodyNotesinstructing a script that would no longer existdocs/07,docs/10,docs/11,docs/14Removing the numbered step in
docs/10-secrets.mdrenumbered the rest, whichbroke two in-text cross-references (
step 5,step 3) — both repointed.external-secrets loses its sha256 bundle pin along with the script. The CRDs
are rendered from the chart now, so there is no checksum for a human to
recompute and paste into a branch before merging.
promtool parity
mise.tomlpinspromtoolso a rule it accepts is a rule Prometheus accepts —docs/07-monitoring.mdstates that outright, and nothing enforced it.scripts/ci/check-promtool-parity.shcompares the pin against the Prometheusimage in the already-rendered chart, and
render-applications.shfails when theydisagree. No new network calls: the render is already there.
Renovate keeps
promtooldisabled deliberately. The version is internal to thechart, not a dependency Renovate can see, so left enabled it would track the
latest Prometheus release and drift from what the chart deploys. The PR note now
says to set it by hand, and CI prints the value to use.
Note on the first version of that check
It passed all six of its unit tests and found zero Prometheus images in the
real render. The chart emits
image: "quay.io/..."quoted; the pattern excludeda quote in that position, and the hand-written fixture left it bare. Fixture and
code agreed with each other and not with the chart. The fixture now carries the
shape that actually ships, with a separate case for the bare form — and the
check is wired into the real pipeline in the same PR, which is what exposed it.
Verification
39 bats tests, all 24 pre-commit hooks, and
render-applications.shpass.render-applications.shprintspromtool 3.14.0 matches the rendered Prometheus 3.14.0, and fails with both versions named whenmise.tomlis edited to drift.