Repository navigation
feat(execution): constrain executor scheduling to operator profiles - #1988
Merged
Merged
Conversation
Co-authored-by: Mecatl <noreply@mecatl.dev>
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Scope
Add operator-controlled
nodeSelectorand boundedtolerationsto strict executor profiles. Profile scheduling is validated and included in the immutable digest only when nonempty; existing digests remain unchanged. Executor Pods receive profile scheduling and bounded default NoExecute tolerations, and reconciliation rejects unexpected selectors, tolerations, or affinity. RuntimeClasses that add admission scheduling fail profile preflight rather than silently changing profile identity. The chart schema and existing operator guide are updated in place.This is the requested narrow implementation-only slice from
mainat0c2dc2713. The broad untracked operations plan and ADR drafts are not a baseline or part of this PR. No CRD, public API, arbitrary Pod template, model-selected scheduling, or live cluster change is included. Retained Helm lifetime rejects profile changes; it does not adopt or rewrite allocations.Checks
task lint,task test,task test:race,task docs,task site:build: passed on the committed candidate (full test/race/docs in isolated clean worktrees so unrelated pre-existing untracked drafts do not enter test discovery).go run ./cmd/mecademo: passed (Read tool, permission ask/approval, Write result).Review covered Kubernetes operator/deployment, security, architecture, duplication, and test adequacy. Findings about RuntimeClass admission, configurable default-toleration duration, schema/profile mismatch, and chart lifecycle were addressed. The upstream Kubernetes DefaultTolerationSeconds admission implementation was checked for the exact key/effect matching used in the controller. Existing cluster admission is trusted as an operator-controlled component; the provider does not assert protection against a malicious mutating webhook.
Note: the first
task testin the original worktree failed on pre-existing untracked ADR 0370 and.worktrees/test discovery; it passed from the clean committed worktree. The first race run timed out at 600 seconds while tests were still passing; the rerun completed successfully.task site:buildpassed with existing Node engine and npm-audit warnings.