Skip to content

B.6.6 — production Helm charts: Temporal cluster + NATS JetStream (event-driven-eu)#41

Merged
Bogala merged 6 commits into
mainfrom
b6-6-helm
Jul 12, 2026
Merged

B.6.6 — production Helm charts: Temporal cluster + NATS JetStream (event-driven-eu)#41
Bogala merged 6 commits into
mainfrom
b6-6-helm

Conversation

@Bogala

@Bogala Bogala commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Summary

Ships the production Kubernetes Helm charts that B.6.6
(docs/new-archetypes-plan.md §6.1) promises for the event-driven-eu
archetype — the counterpart to the dev-only docker-compose backbone B.6.2
shipped. Authored under
.forge/templates/archetypes/event-driven-eu/1.0.0/infra/k8s/ as Forge Helm
values overlays on the upstream charts (the B.8.7 Zitadel / B.8.4 Envoy
chart-referenced-hybrid convention — upstream chart + values-forge.yaml
overlay + docs; this repo vendors no self-authored Chart.yaml).

  • temporal-cluster/ — deploys the four Temporal server roles
    (history / matching / frontend / worker) on a Postgres-backed
    persistence + visibility store (server.config.persistence.datastores.*.sql,
    pluginName: postgres12, DB password by existingSecret — never inlined; no
    removed Cassandra sub-chart), with the schema-setup Job wired via Helm hooks.
  • nats-jetstream/ — a 3-node clustered NATS with JetStream (RAFT
    quorum, file-store PVCs) + monitoring; the README documents runtime
    durable-consumer / queue-group provisioning.
  • T1 / T2 / T3 self-host EU compliance posture per chart (citing
    .forge/standards/global/compliance-tiers.md) + an infra/k8s/README.md index.

Verify-then-pin LIVE (helm show chart, 2026-07-10): temporal/temporal
1.5.0 / server 1.31.1; nats/nats 2.14.2. Both overlays are
helm template-validated (Temporal → 4 server Deployments + schema Job with
Postgres datastores; NATS → 3-replica StatefulSet + 20Gi JetStream PVC + RAFT
routes).

No re-pin: the temporalio-sdk / temporalio-client client crate pin
(0.5.0 in backend/Cargo.toml) is untouched and orthogonal to the server
cluster version — guarded by the harness (T-007).

Additive: the B.6.2 dev backbone and backend/Cargo.toml are byte-unchanged
(only forward-reference wording in infra/README/infra/CLAUDE was updated to
point at the shipped charts). The schema stays candidate / scaffoldable:false
(promotion is B.6.7).

Test plan

  • .forge/scripts/tests/b6-6.test.sh (new, 13 L1 + 1 L2), registered in
    forge-ci.yml. TDD RED-first (committed before the templates), then GREEN.
    • 14/14 pass at --level 1,2 (L2 = live helm template of both overlays).
  • Coupling: b6-2.test.sh --level 1,2 stays 13/13 (the scaffold-plan ↔
    tree bijection + overlay render-clean + cargo check all green with the 5 new
    templates registered).
  • Regression sweep — all green: foundations, scaffolder, b6-1, b6-2,
    b6-6, b7-2, b7-6, b8-1, g1 (forge-ci self-consistency), j7, j8,
    k4, k5.
  • forge-ci.yml + scaffold-plan.yaml YAML-validated.

Parallel-lane note: CHANGELOG.md, .github/workflows/forge-ci.yml, and
scaffold-plan.yaml will likely conflict with the sibling B.6.x PRs at merge —
expected, resolved centrally.

🤖 Generated with Claude Code

Bogala and others added 6 commits July 10, 2026 13:29
Proposal/specs/design/tasks/.forge.yaml for B.6.6 — production Temporal
cluster + NATS JetStream Helm charts (docs/new-archetypes-plan.md §6.1).
Chart-referenced-hybrid convention (values overlay on upstream chart, no
vendored Chart.yaml) per the B.8.7 Zitadel / B.8.4 Envoy precedent.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Structure/grep + yaml.safe_load L1 assertions for the Temporal + NATS
overlays (four roles, Postgres datastores, no removed cassandra/persistence
shapes, 3-node RAFT + JetStream PVC, T2/T3 docs, no crate re-pin, scaffold
coverage, no committed secrets) + a skip-pass L2 `helm template` render.
Mirrors b8-4.test.sh / b6-2.test.sh. RED before the templates land.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…erlays

infra/k8s/temporal-cluster/ — values overlay deploying the four Temporal
server roles (history/matching/frontend/worker) on a Postgres-backed
persistence+visibility store (pluginName postgres12, existingSecret; no
Cassandra), schema-setup Job via Helm hooks. Pins: chart temporal/temporal
1.5.0, server 1.31.1 (verify-then-pin LIVE; helm template-validated).

infra/k8s/nats-jetstream/ — values overlay for a 3-node RAFT cluster with
JetStream file-store PVCs + monitor; README documents durable-consumer /
queue-group provisioning. Pin: chart nats/nats 2.14.2 (helm template-validated).

Each README carries a T1/T2/T3 self-host EU posture citing compliance-tiers.md;
infra/k8s/README.md indexes both. No temporalio-sdk/async-nats re-pin (the
client pin stays in backend/Cargo.toml).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Register the 5 new infra/k8s templates in event-driven-eu/scaffold-plan.yaml
(preserving the b6-2 tree<->plan bijection), add b6-6.test.sh --level 1 to
forge-ci.yml, update infra/README + infra/CLAUDE forward-references (now point
at the shipped infra/k8s/ charts), and add the CHANGELOG [Unreleased] entry.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
verify.sh's change-yaml schema check requires a full timeline when
status is archived — the archive commit omitted the archived date.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
… CI line budget

Three sibling B.6 bricks merged first (#39 standards, #42 Hermes-Async,
#40 CI templates) and touched the same shared files. Conflicts in:
- .github/workflows/forge-ci.yml (harness registration insertion point) —
  merged into one consolidated b6-1..b6-6 block.
- CHANGELOG.md ([Unreleased] entries) — kept all bullets, B.6.4/B.6.5/B.6.6
  in module order.

The merged forge-ci.yml landed at 381 lines, one over the NFR-CI-002/
NFR-T51-005 380-line budget (t5-1.test.sh caught it) — condensed the b6-6
harness comment from 3 to 2 lines to land exactly at 380.

Re-ran b6-6 (13/13), b6-5 (9/9), t5-1.test.sh CI line-budget (17/17,
380/380 lines), verify.sh (537/0), constitution-linter.sh (PASS 79/0) —
all green post-merge.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@Bogala Bogala merged commit bbe3080 into main Jul 12, 2026
7 checks passed
@Bogala Bogala deleted the b6-6-helm branch July 12, 2026 10:52
Bogala added a commit that referenced this pull request Jul 12, 2026
…6-6) + trim CI line budget

Four sibling B.6 bricks merged first (#39, #42, #40, #41) and touched the
same shared files. Conflicts in:
- .forge/specs/event-driven-eu.md (both sides appended an archived-brick
  section at the same point) — kept both sections, reordered numerically
  (B.6.4, B.6.5, B.6.9). Note: B.6.3 and B.6.6 never added their own
  section to this consolidated spec doc (pre-existing gap, not introduced
  here — flagging for awareness, not fixing on their behalf).
- .forge/standards/REVIEW.md (ledger entries at the same insertion point)
  — kept both, ordered by actual landing order (b6-3 merged before b6-9).
- .forge/standards/index.yml (both sides appended entries at the same
  point) — kept both blocks, B.6.3 before B.6.9.
- CHANGELOG.md ([Unreleased] entries) — kept all four bullets in module
  order (B.6.4, B.6.5, B.6.6, B.6.9).
.github/workflows/forge-ci.yml auto-merged cleanly but landed at 384
lines (4 over the 380 budget, t5-1.test.sh caught it) — condensed the
b7-5/b6-9 harness-registration comments from 2x3 lines to 2 lines total.

Re-ran b6-9 (20/20), b7-5 (19/19), i6 (16/16), b6-3 (7/7), t5-1.test.sh
CI line-budget (17/17, 380/380 lines), verify.sh (544/0),
constitution-linter.sh (PASS 80/0) — all green post-merge.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Bogala added a commit that referenced this pull request Jul 12, 2026
… trim CI line budget

Final B.6 fan-out brick. Five sibling bricks merged first (#39, #42, #40,
#41, #44) and touched the same shared files. Conflicts in:
- .forge/standards/REVIEW.md (ledger entries at the same insertion
  point) — kept all three, reordered by actual landing order (b6-3,
  b6-9, then b6-10 last).
- .github/workflows/forge-ci.yml (harness registration insertion point)
  — merged into one consolidated b6-1..b6-10 block.
- CHANGELOG.md ([Unreleased] entries) — kept all five bullets in module
  order (B.6.4, B.6.5, B.6.6, B.6.9, B.6.10).

The merged forge-ci.yml landed at 382 lines (2 over the 380 budget,
t5-1.test.sh caught it) — condensed two harness-registration comment
blocks to free 4 lines, landing at 378/380.

Re-ran b6-10 (12/12), b7-9 (15/15), i3 (18/18), i2 (14/14), t5-1.test.sh
CI line-budget (17/17, 378/380 lines), verify.sh (551/0),
constitution-linter.sh (PASS 81/0) — all green post-merge.

This is the last of the 6 step-2 B.6 fan-out bricks (B.6.3/4/5/6/9/10).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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