Pin credentialed periodics to the dedicated node pool - #1228
Conversation
Any periodic carrying a credential preset now gets a nodeSelector and toleration for the dedicated=credentialed-jobs node pool, injected in Periodics — the single point through which every generated periodic passes — so no generator can accidentally schedule a credentialed job onto the shared worker pool, where presubmits run unreviewed PR code in privileged (dind) pods and can poison the node-local hostPath build caches. The pool itself is added by cert-manager/infrastructure#89. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: Richard Wall <richard@the-moon.net>
|
/hold Until cert-manager/infrastructure#89 is merged and applied; the nodeSelector matches no node until the pool exists. |
|
/unhold |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: inteon The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
@wallrj: Updated the
DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
Pins every periodic which carries a credential preset (currently the
*-issuers-venafiperiodics on master, release-1.20 and release-1.21) to the dedicateddedicated=credentialed-jobsnode pool added by cert-manager/infrastructure#89, by injecting the matchingnodeSelectorand toleration in prowgen'sPeriodics()— the single point through which every generated periodic passes. This mirrors the shape of the presubmit credential guard inaddPresubmit(): the next generated credentialed job cannot silently land back on the shared worker pool, where presubmits run unreviewed PR code in privileged (dind) pods and can poison the node-local hostPath build caches.The taint key/value contract is defined in cert-manager/infrastructure
gcp/modules/gcp-cluster/main.tf; the comment oncredentialPresetsinpkg/context.gopoints there.Verified with
go test ./...,make verify(regenerated output matches the committed files) and prowcheckconfig --strict(passes).Hold until infrastructure#89 is merged and applied: until the node pool exists, the injected
nodeSelectormatches no node and the Venafi periodics would sit Pending.with claude fable-5