Skip to content

feat: run k3s in CI for self-contained Zarf deploy test - #9

Merged
RuBiCK merged 1 commit into
mainfrom
feat/k3s-in-ci-deploy
Jun 15, 2026
Merged

feat: run k3s in CI for self-contained Zarf deploy test#9
RuBiCK merged 1 commit into
mainfrom
feat/k3s-in-ci-deploy

Conversation

@RuBiCK

@RuBiCK RuBiCK commented Jun 15, 2026

Copy link
Copy Markdown
Owner

Summary

Replaces the external cluster dependency (KUBECONFIG_B64 secret) with an ephemeral k3s cluster running directly on the GitHub Actions ubuntu runner. No secrets or external access needed.

Deploy job flow

Start k3s (v1.29.4) on runner
  └─ zarf init          (~421 MB init package, installs internal registry + agent)
       └─ Pre-deploy state snapshot
            └─ zarf package deploy
                 └─ Post-deploy fixes (namespace label, registry secret, rollout restart)
                      └─ Verify: assert running tags == expected sha-XXXXXXX

Architecture TODOs (documented inline)

For real production air-gap delivery, replace the k3s-in-CI step with:

  • Option A — Upload tarball to S3, grant target environment read access
  • Option B — USB transfer (see ZARF.md § Air-Gap USB Deployment)

Expected duration

Step Estimate
Start k3s ~30s
zarf init (download + install) ~3-5 min
zarf package deploy ~30s
Post-deploy + verify ~2 min
Total ~8-10 min

🤖 Generated with Claude Code

Replaces the external cluster dependency (KUBECONFIG_B64 secret) with an
ephemeral k3s cluster running directly on the GitHub Actions ubuntu runner.

Deploy job now:
1. Starts k3s v1.29.4 on the runner
2. Runs zarf init (pulls init package ~421MB, installs internal registry + agent)
3. Deploys the Zarf tarball
4. Applies post-deploy fixes (namespace label, registry secret, rollout restart)
5. Asserts running image tags match the expected sha-XXXXXXX

No external secrets or cluster access required — the test is fully
self-contained in CI. TODO comments document Option A (S3 handoff) and
Option B (USB transfer) for real production air-gap delivery.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@RuBiCK
RuBiCK merged commit d2678ac into main Jun 15, 2026
2 checks passed
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