Skip to content

fix(ci): restore runner os:admin so talosctl image pull works - #4090

Merged
Tanguille merged 1 commit into
mainfrom
fix/runner-talos-image-pull-admin
Jul 20, 2026
Merged

fix(ci): restore runner os:admin so talosctl image pull works#4090
Tanguille merged 1 commit into
mainfrom
fix/runner-talos-image-pull-admin

Conversation

@Tanguille

Copy link
Copy Markdown
Owner

os:operator (#4088) is rejected by the Talos kubernetesTalosAPIAccess allowlist (allowedRoles: [os:admin, os:reader] in talos/patches/controller/kubernetes-talos-api-access.yaml), so the SA controller mints no talosconfig (ErrRolesNotAllowed) and image-pull stays broken. os:admin is the only allowlisted role that can pull images without a machine-config change. Fixes the image-pull failures on #4084/#4085/#4086 and #4073.

os:operator (#4088) is rejected by the kubernetesTalosAPIAccess allowlist
(allowedRoles: os:admin, os:reader), so the runner never gets a valid
talosconfig. os:admin is the only allowlisted role that can pull images.
@tanguille-cluster

Copy link
Copy Markdown
@@ spec.roles.0 @@
# talos.dev/v1alpha1/ServiceAccount/actions-runner-system/cluster-runner
! ± value change
- os:operator
+ os:admin

@Tanguille
Tanguille merged commit 24395c2 into main Jul 20, 2026
17 checks passed
@Tanguille
Tanguille deleted the fix/runner-talos-image-pull-admin branch July 20, 2026 20:05
@github-actions

Copy link
Copy Markdown

AI Automated Review

Analysis engine: qwen-3.6-fast@http://litellm.ai.svc.cluster.local/v1 (openai)

Recommendation: Approve

This PR correctly restores the os:admin role for the cluster-runner ServiceAccount to resolve Talos API access issues. The change is minimal, targeted, and aligns with the explicit allowlist defined in the cluster's Talos patches.

Change Analysis

  • File: kubernetes/apps/actions-runner-system/actions-runner-controller/runners/cluster/rbac.yaml
  • Change: Reverts the Talos API role from os:operator (introduced in PR 4088) back to os:admin.
  • Reasoning: The PR body states that os:operator is rejected by the kubernetesTalosAPIAccess allowlist, which only permits os:admin and os:reader. Since os:reader lacks write permissions required for image pulling, os:admin is the necessary role. This is confirmed by the presence of talos/patches/controller/kubernetes-talos-api-access.yaml in the repository impact scan, which explicitly lists allowedRoles: ["os:admin", "os:reader"].

Required Checks

  1. Review auth flow for regression:
    • Verified: The previous attempt (PR 4088) used os:operator, which caused authentication failures (ErrRolesNotAllowed) because it was not in the allowlist. Reverting to os:admin restores functionality. While os:admin grants broader privileges than os:operator, it is the least-privileged role that works within the current cluster constraints. No new auth flows are introduced; this corrects a broken one.
  2. Verify session token handling is correct:
    • Verified: The PR modifies the static RBAC configuration for the ServiceAccount. It does not alter runtime code, secret generation logic, or token rotation mechanisms. The Actions Runner Controller will continue to mint talosconfig files based on the SA's assigned roles. Since the role is now allowed by the patch, token issuance should succeed.

Standards Compliance

  • Follows Conventional Commit title format.
  • Changes are scoped to a single file.
  • Aligns with repository-specific Talos configuration constraints found in talos/patches/.

Unknowns

  • None. The constraint is clearly documented in the repository's Talos patches.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant