Repository navigation
ateapi: Remove sandbox_class from Worker spec - #2922
Merged
Zoe Zhao (zoez7) merged 2 commits intoOct 21, 2026
Merged
Zoe Zhao (zoez7) merged 2 commits into
Zoe Zhao (zoez7) merged 2 commits into
Conversation
Shrutiya Mohan (shrutiyam-glitch)
force-pushed
the
remove-sandbox-class
branch
from
October 19, 2026 23:31
abb4a02 to
5989d57
Compare
Shrutiya Mohan (shrutiyam-glitch)
marked this pull request as ready for review
October 19, 2026 23:32
Shrutiya Mohan (shrutiyam-glitch)
force-pushed
the
remove-sandbox-class
branch
from
October 19, 2026 23:55
5989d57 to
0348735
Compare
Zoe Zhao (zoez7)
previously approved these changes
Oct 20, 2026
Zoe Zhao (zoez7)
removed this pull request from the merge queue due to a manual request
Oct 20, 2026
Now that each worker reports its runtime (including sandbox_class) in WorkerStatus.default_runtime via RegisterWorker, carrying sandbox_class on the Worker spec duplicated that state across CreateWorker and RegisterWorker. Remove sandbox_class from the Worker message, stop copying the WorkerPool's default sandbox class onto Worker in ate-controller's worker syncer and fake-workersync, and read the worker's sandbox class from status.default_runtime.sandbox_class in scheduling, RegisterWorker validation, actor lifecycle logs/metrics, and kubectl-ate.
…nt and drop fakeWorker.sandboxClass
Shrutiya Mohan (shrutiyam-glitch)
force-pushed
the
remove-sandbox-class
branch
from
October 20, 2026 23:50
1e1dbad to
b3699d4
Compare
Zoe Zhao (zoez7)
enabled auto-merge
October 20, 2026 23:53
Zoe Zhao (zoez7)
approved these changes
Oct 20, 2026
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.
Follow up after #2879
Removes
sandbox_classfrom theWorkerspec (ateapipb.Worker) and reads the worker's sandbox class fromWorker.status.default_runtime.sandbox_class.Each worker already reports its
default_runtime(includingsandbox_class) toWorkerService.RegisterWorkerviaateletalongside its capacity before it can take any actors. Carryingsandbox_classon theWorkerspec requiredate-controllerto copy it from theWorkerPoolonCreateWorkerand duplicated what the worker itself reports inWorkerStatus. Usingstatus.default_runtime.sandbox_classas the single source of truth removes that duplication acrossate-controller,ate-api-server,fake-workersync, andkubectl-ate.Behavior changes
Class is fixed by the first registration.
RegisterWorkerrecords the class from the first report and refuses a later report with a differentdefault_runtime.sandbox_class(restorable runtimes must match it too). The pool's declared class no longer cross-checks the worker's report: the pod's shape comes from the pool, and the report is the pod's own authenticated statement. The proto comments onWorkerStatus.default_runtimeandRegisterWorkerRequest.default_runtimedocument this.Before a worker registers it has no class.
kubectl ate get/top workersshow an empty CLASS for it and--sandbox-classfilters it out;ate.workerpool.workerscounts it underate.sandbox.class=unknown(registry note updated). The scheduler never placed on such a worker, and still doesn't:Appliesrejects an empty class, which also covers the "no default runtime" guard ateapi, atelet: remove sandbox_assets from Run and Restore RPCs #2879 added, so that guard is folded into the class check.Tests pass
Appropriate changes to documentation are included in the PR