Repository navigation
feat(signal): add grouped certification controller - #949
Kevin Cho (chokevin) wants to merge 2 commits into
Conversation
|
Redacted: pre-publication environment-specific validation details were removed because they are outside the scope of this upstream controller PR. |
2 similar comments
|
Redacted: pre-publication environment-specific validation details were removed because they are outside the scope of this upstream controller PR. |
|
Redacted: pre-publication environment-specific validation details were removed because they are outside the scope of this upstream controller PR. |
|
Redacted: pre-publication environment-specific validation details were removed because they are outside the scope of this upstream controller PR. |
7 similar comments
|
Redacted: pre-publication environment-specific validation details were removed because they are outside the scope of this upstream controller PR. |
|
Redacted: pre-publication environment-specific validation details were removed because they are outside the scope of this upstream controller PR. |
|
Redacted: pre-publication environment-specific validation details were removed because they are outside the scope of this upstream controller PR. |
|
Redacted: pre-publication environment-specific validation details were removed because they are outside the scope of this upstream controller PR. |
|
Redacted: pre-publication environment-specific validation details were removed because they are outside the scope of this upstream controller PR. |
|
Redacted: pre-publication environment-specific validation details were removed because they are outside the scope of this upstream controller PR. |
|
Redacted: pre-publication environment-specific validation details were removed because they are outside the scope of this upstream controller PR. |
484e5c2 to
7b88e4e
Compare
|
Evidence: the 11-second recording shows the exact grouped-participant contract additions, then runs the focused multi-Node admission, rollback, backend identity, and recurring failure-domain tests. signal-grouped-evidence.mp4 |
|
The generic upstream participant backend adapter is now available as draft #963: #963 It is intentionally opened against |
Project Signal had no upstream control plane for admitting approved Nodes to operator-defined certification workflows, and the original implementation stopped at one participant. This change adds the generic Kubernetes controller and now admits bounded Node groups atomically, while intentionally leaving scripts, execution images, WorkflowTemplates, backend installation, and backend runner permissions to downstream operators.
CertificationProfileandCertificationRunAPIs with immutable execution inputs and generated CRDs.participants-jsoncontract to the operator-supplied Argo WorkflowTemplate.Inconclusive.The grouped contract treats participants as one certification boundary, not automatically as one distributed process group. Downstream analysis found that 13 of 15 current checks are independent per-Node diagnostics; the two MPI checks require a local OpenMPI launcher/worker pair on each tested Node rather than a cross-Node MPI world.
Read-only Dapple discovery confirmed that
kubeflow.org/v2beta1MPIJob and its Kueue integration are installed and operational, while the Trainer v2 TrainJob CRD/controller are absent. The downstream integration therefore targets MPIJob now. TrainJob remains a future adapter option behind the same upstream interface after a separately validated Trainer installation and MPI TrainingRuntime.No certification scripts, runner build recipe, bundled CertificationProfiles, WorkflowTemplates, hardware thresholds, captured hardware output, or environment-specific identifiers are published in this PR.
Verification
go test ./deploy/signal ./internal/signal ./cmd/project-signal-controllergo build ./cmd/project-signal-controllergolangci-lint run ./api/signal/v1alpha1 ./internal/signal ./cmd/project-signal-controllerwith 0 issuesmake signal-manifestsgit diff --checkThe upstream surface contains 26 changed files, 7,068 additions, and 9 deletions across two commits.
Risk
The main compatibility surface is the WorkflowTemplate interface. Existing single-participant templates can continue using
participants; grouped templates must consumeparticipants-jsonand publish completebackend-resourcesidentity coverage before aPassis accepted. Rollback is the previous controller commit plus CRD version.Review guide
api/signal/v1alpha1/for participant bounds, immutable snapshots, and backend resource identity status.internal/signal/controller.gofor deterministic selection, atomic reservations, orphan recovery, Workflow inputs, and fail-closed grouped completion.internal/signal/policy.gofor whole-group failure-domain accounting.internal/signal/controller_test.goandinternal/signal/policy_test.gofor multi-Node admission, partial rollback, restart recovery, backend coverage, and policy edge cases.deploy/signal/README.mdfor the public operator contract and MPIJob/TrainJob boundary.deploy/signal/manifest_test.gofor the upstream publication boundary.Scope boundary
This is generic controller infrastructure, not a published certification program. Operators remain responsible for reviewing and supplying scripts, images, policies, workload adapters, queue bindings, backend RBAC, cleanup behavior, and qualification evidence.