Skip to content

The jobrunner Role gets its RoleBinding — a Role without one is furniture - #2070

Open
rbuergi wants to merge 2 commits into
mainfrom
fix/jobrunner-rolebinding
Open

The jobrunner Role gets its RoleBinding — a Role without one is furniture#2070
rbuergi wants to merge 2 commits into
mainfrom
fix/jobrunner-rolebinding

Conversation

@rbuergi

@rbuergi rbuergi commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Found during the first live operator enablement (2026-08-22): jobrunner.yaml ships the ServiceAccount, the token Secret and the Role — and no RoleBinding, so the portal's token 403s on its first CreateJob. From the mesh that reads as a misconfigured operator, not a missing binding.

Verified on the cluster with SubjectAccessReview: create-jobs-in-memex-ops false before, true after; delete-namespaces stays false (the boundary the three-principal design promises). Applied live already; this lands the same binding in the manifest so the next cluster doesn't rediscover it.

…ture

Applied live on the cluster 2026-08-22 during the first operator enablement, where
the gap surfaced: SubjectAccessReview for create-jobs answered false until the
binding existed (true after; delete-namespaces stays false — the boundary the
three-principal design promises).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings August 22, 2026 13:07
@rbuergi
rbuergi enabled auto-merge August 22, 2026 13:07

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds the missing Kubernetes RoleBinding for the hosting-jobrunner ServiceAccount so the portal-held token can actually exercise the existing namespaced Role permissions in memex-ops (fixing the observed 403 on the first CreateJob during operator enablement).

Changes:

  • Add a namespaced RoleBinding that binds ServiceAccount/hosting-jobrunner to Role/hosting-jobrunner in memex-ops.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

…ps placement was unmountable

A pod can only mount Secrets from its own namespace. The RoleBinding in memex-ops
names the foreign SA, which is exactly what scopes the portal-held credential to
jobs-only power in memex-ops while staying mountable in the portal's namespace.
Both defects (no binding; wrong namespace) were found in the first live enablement,
2026-08-22, and verified fixed with SubjectAccessReviews.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Test Results (shard 3)

    9 files  ±0      9 suites  ±0   4m 58s ⏱️ +11s
1 649 tests ±0  1 643 ✅ ±0  6 💤 ±0  0 ❌ ±0 
2 131 runs  ±0  2 125 ✅ ±0  6 💤 ±0  0 ❌ ±0 

Results for commit aa0a6fc. ± Comparison against base commit d9effcd.

@github-actions

Copy link
Copy Markdown

Test Results (shard 0)

1 230 tests  ±0   1 230 ✅ ±0   12m 22s ⏱️ +8s
    9 suites ±0       0 💤 ±0 
    9 files   ±0       0 ❌ ±0 

Results for commit aa0a6fc. ± Comparison against base commit d9effcd.

@github-actions

Copy link
Copy Markdown

Test Results (shard 4)

2 109 tests  ±0   1 809 ✅  - 2   9m 17s ⏱️ -1s
    9 suites ±0     298 💤 ±0 
    9 files   ±0       2 ❌ +2 

For more details on these failures, see this check.

Results for commit aa0a6fc. ± Comparison against base commit d9effcd.

@github-actions

Copy link
Copy Markdown

Test Results (shard 5)

1 233 tests  ±0   1 232 ✅ ±0   7m 13s ⏱️ +4s
   10 suites ±0       1 💤 ±0 
   10 files   ±0       0 ❌ ±0 

Results for commit aa0a6fc. ± Comparison against base commit d9effcd.

@github-actions

Copy link
Copy Markdown

Test Results (shard 2)

3 224 tests  ±0   3 224 ✅ ±0   8m 22s ⏱️ +9s
    8 suites ±0       0 💤 ±0 
    8 files   ±0       0 ❌ ±0 

Results for commit aa0a6fc. ± Comparison against base commit d9effcd.

@github-actions

Copy link
Copy Markdown

Test Results (shard 1)

1 748 tests  ±0   1 748 ✅ ±0   9m 6s ⏱️ +8s
   10 suites ±0       0 💤 ±0 
   10 files   ±0       0 ❌ ±0 

Results for commit aa0a6fc. ± Comparison against base commit d9effcd.

@github-actions

Copy link
Copy Markdown

Test Results

    55 files  ±0      55 suites  ±0   51m 20s ⏱️ +40s
11 193 tests ±0  10 886 ✅  - 2  305 💤 ±0  2 ❌ +2 
11 675 runs  ±0  11 368 ✅  - 2  305 💤 ±0  2 ❌ +2 

For more details on these failures, see this check.

Results for commit aa0a6fc. ± Comparison against base commit d9effcd.

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.

2 participants