Skip to content

fix(k8s): honor externally managed service accounts - #244

Closed
geisbruch wants to merge 2 commits into
mainfrom
fix/external-service-account
Closed

geisbruch wants to merge 2 commits into
mainfrom
fix/external-service-account

Conversation

@geisbruch

@geisbruch geisbruch commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Kubernetes Custom needs an explicit way to select an IaC-owned ServiceAccount without enabling its IAM role/ServiceAccount lifecycle manager.

Add the optional service_account_name scope capability and emit it in the deployment context. Empty/unset preserves current behavior. Inherited account provider defaults are deliberately ignored, so this opt-in does not change the identity of other scopes. Reject conflicting managed-IAM ownership and invalid Kubernetes names.

This lets UI plugins Stage select the role and ServiceAccount declared in nullplatform/iac-null-runtime#115. Configure service_account_name=ui-plugins-stage on that scope only after the infrastructure has been applied; leave managed IAM disabled.

Validation: shell syntax check, JSON schema extraction/validation and all 84 deployment context tests passed. Six new tests exercise the real context builder: explicit selection, ignoring inherited defaults, both legacy paths, conflicting ownership and invalid names. The initial PR revision also passed the repository's complete Unit Tests, Go tests and ShellCheck; the updated CI reruns those checks.

@geisbruch geisbruch closed this Sep 7, 2026
@geisbruch
geisbruch deleted the fix/external-service-account branch September 7, 2026 12:52
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