Skip to content

fix(execution): project security material from independent Secrets - #1985

Merged
JAORMX merged 5 commits into
mainfrom
fix/native-execution-security-projections
Sep 29, 2026
Merged

JAORMX merged 5 commits into
mainfrom
fix/native-execution-security-projections

Conversation

@JAORMX

@JAORMX JAORMX commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

Scope

Follow-up to merged #1984 (fix/native-execution-private-registry), now targeting main. This PR changes only the draft execution chart and its existing operator guide:

  • Opt-in provider.securitySources maps explicit keys from up to eight pre-existing Secrets to unique basenames in the provider's projected security directory (32 mappings total). Reject missing manifest file mappings, duplicate sources/keys/destinations, unsafe paths, and collision with ConfigMap-owned manifest.json without reading or rendering Secret contents.
  • Keep provider.securitySecretName as the mutually exclusive, unchanged single-Secret path; it still projects all keys so operators can stage rotation material.
  • Keep mapping changes possible while allocations survive: populate new Secret keys, quiesce and add mappings with the old manifest, then publish a higher-generation manifest naming the new immutable files. The existing runtime authority high-water ledger and per-RPC peer checks remain unchanged. Switching legacy/multi-source mode with retained allocations is still rejected by the existing lifetime identity.
  • Test actual Helm render/lookup paths for both modes, invalid mappings, redacted failures, and retained allocation staging; update the existing operator guide in place. No new Secret or provider RBAC resource is created.

This is a narrow follow-up to private image pulls, not a general Pod configuration or authority redesign. No Kubernetes cluster or real Secret was accessed.

Verification

  • go test ./deploy/helm/mecatl-execution ./internal/adapter/executioncontroller -count=1 — pass.
  • go test ./deploy/helm/mecatl-execution -race -count=1 — pass.
  • task lint, Helm lint, task site:build, and synthetic multi-Secret helm template | kubeconform -strict (17 valid resources) — pass.
  • task docs — pass on the conflict-resolved integration commit 2a2099794 in a clean worktree (the primary checkout contains unrelated untracked docs).
  • task test and task test:race — not green in clean throwaway checkouts: unrelated TestMicroVMEnvironments_Scenario3_SourceStateCaptureIsExactOrFails fails when Git cannot launch an empty external diff command (cannot run : No such file or directory). No race was reported; CI must independently verify the stacked commit.

No live-cluster projection/rotation qualification, published-artifact verification, or human security approval is claimed. The conflict with main is resolved in merge commit 2a2099794; the PR diff remains six scoped files. Humans alone merge.

JAORMX and others added 2 commits September 28, 2026 14:50
…r identity

Co-authored-by: Mecatl <noreply@mecatl.dev>
Co-authored-by: Mecatl <noreply@mecatl.dev>
JAORMX and others added 2 commits September 28, 2026 15:30
Base automatically changed from fix/native-execution-private-registry to main September 28, 2026 13:11
Co-authored-by: Mecatl <noreply@mecatl.dev>
@JAORMX
JAORMX merged commit 0c2dc27 into main Sep 29, 2026
70 of 71 checks passed
@JAORMX
JAORMX deleted the fix/native-execution-security-projections branch September 29, 2026 06:21
This was referenced Sep 29, 2026
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