Skip to content

chore(helm): expose SPIFFE values; migrate env values files to house naming - #72

Merged
PenguinzTech merged 1 commit into
v2.1.xfrom
chore/helm-spiffe-values
Jul 27, 2026
Merged

chore(helm): expose SPIFFE values; migrate env values files to house naming#72
PenguinzTech merged 1 commit into
v2.1.xfrom
chore/helm-spiffe-values

Conversation

@PenguinzTech

Copy link
Copy Markdown
Contributor

Closes the gap documented in #64's SPIRE README: spiffe.{enabled,trustDomain,xfccHeader} now exposed as chart values (wired to the real env vars the manager reads; env block omitted entirely when disabled), README updated to the values-based flow. Also migrates env values files to house naming: values-beta.ymlbeta.yml, values-prod.ymlproduction.yml, new alpha.yml (NodePort + localhost:32000 + minimal resources) and gamma.yml (beta tier); deleted stale never-loaded values.yml; service type/nodePort and imagePullPolicy templated to support alpha; fixed the stale reference in scripts/deploy-beta.sh.

Validation: helm lint clean; helm template green for all four env files, each also with --set spiffe.enabled=true.
Not touched: docs/standards/*.md still reference old filenames — those files are centrally managed and off-limits per repo policy; flagging for the standards repo.


Stack note: Part 2 of the Helm stack — depends on #64 (chore/helm-pdb-hpa-spire); auto-retargets as the stack merges.

🤖 Generated with Claude Code

…naming

Task 1 — SPIFFE:
- values.yaml: add spiffe.{enabled,trustDomain,xfccHeader} (default off),
  matching the real env vars manager/backend/app/config.py reads
  (SPIFFE_ENABLED/SPIFFE_TRUST_DOMAIN/SPIFFE_XFCC_HEADER). manager is the
  only service that reads them (grep across dns-server/app and
  manager/backend/app confirmed no other consumer; manager-scheduler runs
  supercronic cron jobs only, never the inbound XFCC auth path in
  middleware/auth.py, so it's intentionally left unwired).
- manager-deployment.yml: render SPIFFE_ENABLED/SPIFFE_TRUST_DOMAIN/
  SPIFFE_XFCC_HEADER only when spiffe.enabled is true (omit entirely when
  false) — config.py already defaults SPIFFE_ENABLED to "false" when the
  var is unset, so omission and an explicit "false" are behaviorally
  identical; omitting keeps the manifest clean when the feature is off.
- k8s/helm/spire/README.md: replace the interim `kubectl set env` step
  with the values-based flow (values file or `--set spiffe.enabled=true`).

Task 2 — values file naming migration:
- git mv values-beta.yml -> beta.yml, values-prod.yml -> production.yml.
- Deleted k8s/helm/squawk/values.yml: stray duplicate of values.yaml,
  missing the manager/jwt/networkPolicy/pdb/autoscaling/spiffe blocks added
  since — Helm never auto-loads *.yml (only values.yaml), and no
  script/workflow referenced it. Confirmed dead via repo-wide grep.
- Added alpha.yml: localhost:32000 registry, alpha-latest tags,
  IfNotPresent pull policy, 1 replica, minimal resources, autoscaling off,
  and NodePort exposure with fixed ports (dns-server 30080, squawk-client
  30053, dhcp-server 30081, ntp-server 30082/30446/30123 for
  http/nts-ke/ntp-udp). Scoped NodePort to the services meant to be reached
  from localhost directly; k8s-dns (in-cluster CoreDNS target only),
  valkey, and manager stay ClusterIP per their existing NetworkPolicy
  intent. Required templating `service.type`/`nodePort` (previously
  hardcoded ClusterIP) into dns-server/dhcp-server/ntp-server/squawk-client
  Service templates, and `image.pullPolicy` (previously hardcoded Always)
  into dns-server/squawk-client/k8s-dns Deployments — dhcp-server/
  ntp-server/manager were already IfNotPresent unconditionally.
- Added gamma.yml: mirrors the beta.yml tier (1 replica, minimal
  resources) per the house standard. Used tag: latest rather than a
  gamma-<epoch64> tag since there's no real CI-built gamma image yet to
  reference (unlike beta.yml's dnsServer, which carries a real historical
  epoch) — CI/deploy tooling should `--set` the actual tag at deploy time.
- Updated scripts/deploy-beta.sh: values-beta.yaml -> beta.yml (this
  reference was already stale — the file was values-beta.yml, not .yaml).
- docs/standards/KUBERNETES.md and docs/standards/ARCHITECTURE.md still
  show values-beta.yaml/values-prod.yaml — left untouched, these are
  centralized template files this repo's CLAUDE.md forbids editing.

Validated: helm lint + helm template (all 4 env files, plus
--set spiffe.enabled=true on each) all pass clean.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@PenguinzTech PenguinzTech self-assigned this Jul 26, 2026

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @PenguinzTech, you have reached your weekly rate limit of 500000 diff characters.

Please try again later or upgrade to continue using Sourcery

@PenguinzTech
PenguinzTech changed the base branch from chore/helm-pdb-hpa-spire to v2.1.x July 27, 2026 01:12
@PenguinzTech
PenguinzTech merged commit cc2ba93 into v2.1.x Jul 27, 2026
3 of 4 checks passed
PenguinzTech added a commit that referenced this pull request Jul 27, 2026
Process error: after merging #74 (SSO) into v2.1.x, I deleted my LOCAL
feature/sso-oidc-login branch ref but never deleted or retargeted the
REMOTE branch/PR. #76 (SAML)'s base silently remained
feature/sso-oidc-login instead of v2.1.x, so `gh pr merge 76` merged
SAML into that orphaned remote branch -- completely disconnected from
v2.1.x. GitHub still shows PR #76 as MERGED, but v2.1.x itself never
received any of it (confirmed: alembic versions/ was missing
012_add_saml_providers.py and 013_add_saml_assertion_ids.py entirely).

Nothing was lost -- the fully-resolved SAML merge commit (d7ffab1,
carrying all of #76's conflict resolution work) still existed on the
orphaned branch. Merged it into the actual v2.1.x tip here: clean, no
conflicts (SAML's changes are manager/backend-only; v2.1.x's only
change since d7ffab1's parent was #72's Helm-only work).

Verified: 19 alembic migrations, single linear head
(013_add_saml_assertion_ids). Full manager suite: 361/361 passing.

Co-Authored-By: Claude Fable 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