Skip to content

ci: migrate Flux diagnostics to the shared diagnose-flux composite#46

Merged
devantler merged 1 commit into
mainfrom
claude/migrate-diagnose-flux-composite
Jun 27, 2026
Merged

ci: migrate Flux diagnostics to the shared diagnose-flux composite#46
devantler merged 1 commit into
mainfrom
claude/migrate-diagnose-flux-composite

Conversation

@devantler

Copy link
Copy Markdown
Contributor

🤖 Generated by the Daily AI Assistant

What

Replace the three copy-pasted 🩺 Diagnose Flux on failure blocks with the shared devantler-tech/actions/diagnose-flux@v7.1.0 composite (extracted in actions #368, released as v7.1.0):

File Job Before After
.github/workflows/ci.yaml system-test ~76-line inline block (richest variant) pinned uses:
.github/workflows/ci.yaml deploy-prod ~36-line reduced block pinned uses:
.github/workflows/cd.yaml deploy-prod ~36-line reduced block pinned uses:

Net −124 lines.

Why

The diagnostics step was duplicated and had already drifted: the two prod-deploy copies lacked the Nodes / All pods / failing-&-CrashLooping-pod-log / failing-Jobs dumps and used shorter --tail values — so the prod-deploy failure paths emitted strictly worse diagnostics than the system-test path, exactly when good diagnostics matter most. The composite is byte-identical to the (richest) system-test variant, parameterised only by a kustomizations input whose default (infrastructure-controllers infrastructure apps) matches all three previous inline lists. So:

  • system-test path → behaviour-preserving (identical commands).
  • both deploy-prod paths → strict diagnostics upgrade (now inherit the full pod/Jobs dump); the failure-gated if: conditions (steps.reconcile.outcome/.conclusion) are preserved verbatim.

The env: HCLOUD_TOKEN previously set on the two prod diagnose steps was vestigialksail.prod.yaml is a Talos distribution (context: admin@prod, client-cert kubeconfig), so the kubectl/jq-only diagnostics need no Hetzner token. (HCLOUD_TOKEN is still used by the real reconcile/deploy steps.)

Validation

  • actionlint .github/workflows/ci.yaml .github/workflows/cd.yaml → clean (exit 0).
  • Composite pinned to the full-length SHA of v7.1.0 (e182f22…, ruleset-compliant), verified to contain diagnose-flux/action.yaml.
  • The diagnose steps run only on failure(), so PR CI (green path) does not exercise them; correctness rests on the composite being a verified superset of the proven inline blocks.

Part of actions #367. The 4th callsite (devantler-tech/platform deploy-prod action) is intentionally left for a separate change (maintainer-hot live-prod repo).

Replace the three copy-pasted '🩺 Diagnose Flux on failure' blocks
(ci.yaml system-test + deploy-prod, cd.yaml deploy-prod) with the
shared devantler-tech/actions/diagnose-flux@v7.1.0 composite extracted
in devantler-tech/actions#368. The two prod-deploy paths previously
carried a reduced variant (no nodes/all-pods/failing-pod/Jobs dump,
shorter --tail) and now inherit the richest diagnostics, so the paths
can never drift again. The HCLOUD_TOKEN env on the prod diagnose steps
was vestigial — kubectl uses the Talos cert-based admin@prod kubeconfig.

Part of devantler-tech/actions#367.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@devantler devantler marked this pull request as ready for review June 27, 2026 09:48
@devantler devantler requested a review from a team as a code owner June 27, 2026 09:48
@devantler devantler merged commit 007656c into main Jun 27, 2026
11 checks passed
@devantler devantler deleted the claude/migrate-diagnose-flux-composite branch June 27, 2026 10:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant