Skip to content

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.