Skip to content

feat(jenkins-ps3-k8s): generate ps3-clouds from a shared catalog (ADR 0029)#93

Merged
nogueiraanderson merged 1 commit into
mainfrom
jenkins-ps3-clouds-templatization
Jun 2, 2026
Merged

feat(jenkins-ps3-k8s): generate ps3-clouds from a shared catalog (ADR 0029)#93
nogueiraanderson merged 1 commit into
mainfrom
jenkins-ps3-clouds-templatization

Conversation

@nogueiraanderson
Copy link
Copy Markdown
Collaborator

Change

  • ps3's ps3-clouds JCasC configScript is now generated from a shared catalog (resources/jenkins/clouds-catalog/) plus a per-master overlay, via scripts/render-clouds.py. ADR 0029 records the decision (shared catalog, per-master overlays, a dual JCasC/Groovy renderer, with Kustomize rejected and dynamic AMI resolution deferred).

Proof

  • Render-equivalent to the live running config: 4 clouds (hetzner, 2 amazonEC2, eC2Fleet), 70 template and serverTemplate slots, field-for-field identical (0 diffs against the live ConfigMap). Init bodies are byte-faithful and the Sprig iamInstanceProfile is preserved, so no account id enters git and the reload is a semantic no-op.
  • New just clouds-render-check drift gate (in validate) keeps the catalog and the committed configScript in sync. yaml-lint, helm-render, trivy, actionlint, and zizmor pass.

Rollout

  • ps3 is the canary testbed (ADR 0025). Production masters get the full GO/NO-GO and live-canary path later.

… 0029)

- Add resources/jenkins/clouds-catalog (catalog + ps3 overlay) and scripts/render-clouds.py:
  one generator resolves catalog + per-master overlay into a canonical cloud model and
  serializes the ps3-clouds JCasC configScript.
- Regenerate the ps3-clouds configScript from the catalog. Render-equivalent to the live
  config: 4 clouds (hetzner + 2 amazonEC2 + eC2Fleet), 70 template/serverTemplate slots,
  field-for-field identical. The Sprig iamInstanceProfile is preserved (account id stays
  out of git) and init bodies are byte-faithful.
- Add the clouds-render-check drift gate to the just ci validate chain.
- Ignore the data-only clouds-catalog dir from yamllint (gated by clouds-render-check).
- ADR 0029 records the decision: shared catalog + per-master overlays + dual renderer;
  Kustomize rejected; dynamic AMI resolution deferred.
@nogueiraanderson nogueiraanderson force-pushed the jenkins-ps3-clouds-templatization branch from 81220ac to ee8eae7 Compare June 2, 2026 22:44
@nogueiraanderson nogueiraanderson merged commit 990e59c into main Jun 2, 2026
4 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