Skip to content

chore(ci): keep 2.18 image releases working with read-only defaults - #15028

Merged
jeffspahr merged 2 commits into
kubeflow:release-2.18from
jeffspahr:codex/actions-least-privilege-release-2-18
Oct 21, 2026
Merged

jeffspahr merged 2 commits into
kubeflow:release-2.18from
jeffspahr:codex/actions-least-privilege-release-2-18

Conversation

@jeffspahr

@jeffspahr jeffspahr commented Oct 21, 2026 •

Copy link
Copy Markdown
Collaborator

Problem

The release-2.18 image-release dispatcher calls reusable build and manifest workflows without explicit GITHUB_TOKEN grants. Once the repository default becomes read-only, those callees cannot elevate the caller's token, which would break image publication.

Change

  • Grant the build caller only contents: read, packages: write, attestations: write, and id-token: write; grant manifest promotion only contents: read and packages: write.
  • Remove the unused manifest OIDC grant and broad secrets: inherit pass-through. Both callees use the automatically available GITHUB_TOKEN.
  • Add a CI regression guard for caller/callee scopes and the existing dry-run gates, and trigger it when either release workflow changes.
  • Keep manifest digest references in a Bash array so each remains a separate imagetools argument, while clearing the pre-existing whitespace and ShellCheck failures exposed by this PR.

The 13-image legacy inventory, architecture exclusions, release inputs, and dry-run/no-push behavior are unchanged. Manifest publication still passes each validated digest as its own source argument.

Validation

  • The focused release-workflow permission tests pass.
  • The changed-file pre-commit hooks, including actionlint, pass; git diff --check passes.
  • A mocked Docker invocation confirms two valid digests remain separate arguments for both versioned and latest tags, invalid filenames are skipped, and set_latest=false omits the second invocation. No image was published.
  • All 13 Dockerfile/context paths exist.

Rollout

Follow-up to #15006, alongside the merged release-2.17 caller backport #15027 and the separate 2.17 manifest cleanup #15030. Do not lower repository token defaults until the workflow backports merge and representative CI and release dry runs pass. This PR does not change repository settings or publish images/packages.

Checklist:

  • Commits are DCO signed off.
  • PR title follows the repository convention.

Signed-off-by: Jeff Spahr <spahrj@gmail.com>
@github-actions

github-actions Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Contributor Report for @jeffspahr

Metric Value
Kubeflow org member Yes
Issues opened in kubeflow/pipelines 360
Merged PRs in kubeflow/pipelines 298
GitHub account age 3470 days (created 2017-04-21)
PR comments in kubeflow/pipelines 1515

@zazulam

zazulam commented Oct 21, 2026

Copy link
Copy Markdown
Collaborator

/lgtm
/approve

@google-oss-prow

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: zazulam

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Signed-off-by: Jeff Spahr <spahrj@gmail.com>
@google-oss-prow google-oss-prow Bot removed the lgtm label Oct 21, 2026
@google-oss-prow

Copy link
Copy Markdown

New changes are detected. LGTM label has been removed.

@google-oss-prow google-oss-prow Bot added size/L and removed size/M labels Oct 21, 2026
@jeffspahr
jeffspahr merged commit cd18326 into kubeflow:release-2.18 Oct 21, 2026
187 of 224 checks passed
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.

2 participants