Tested versions¶
The adapter supports exactly this set. It is the set the design was checked against and the set the kind test suite runs.
| Component | Version | API group-version the adapter uses |
|---|---|---|
| Kubernetes | 1.37 | v1, coordination.k8s.io/v1 |
| Kubeflow Trainer | v2.3.0 | trainer.kubeflow.org/v1alpha1 |
| JobSet | v0.12.0 | jobset.x-k8s.io/v1alpha2 |
| Kueue | v0.20.1 | kueue.x-k8s.io/v1beta2 |
Kueue is needed only in Kueue mode, and its group-version is checked only then. In plain mode, Kueue may be absent; if it is installed, it must not manage jobs that name no queue.
The tests run on kind, on a cluster of one control-plane node and two
workers, with each component installed from a manifest kept in the repository
(internal/kindtest/testdata/manifests) and cmd/dispatch-admission deployed in it. They run
go/dispatch's backend conformance suite against the adapter in both modes, and cluster cases of
the adapter's own.
Run the conformance suite against kind says how to
run them and what each case checks.
What preflight checks, and what it cannot¶
At Factory, the adapter refuses a cluster that does not serve the group-versions in the table
above, with ErrUnsupported. It cannot read the controllers' versions. A namespace user cannot
read the Trainer, JobSet or Kueue deployments, so the matrix is documented and tested rather than
detected. A different release that serves the same group-versions is not refused, and is not
tested.
Other versions in the build¶
| Version | |
|---|---|
| Go | 1.27.2 (go.mod) |
k8s.io/client-go |
v0.37.1 |
| go/dispatch | the pseudo-version in go.mod |
| busybox, for the test job | 1.38.0 |
| kind, for the test cluster | v0.33.0, with its default node image (Kubernetes 1.37.0) |
The test cluster's kind.yaml pins no node image, so the suite runs whatever node image the kind
binary defaults to.
Where the cluster must give image volumes¶
The default publish route uses an image volume, which is on by default in Kubernetes 1.37 and
needs no configuration there. Clusters below 1.35, or a container runtime that mounts image volumes
noexec, need the init container route. See Mount the publish
image.