Everything the adapter writes is under the prefix dispatch.phpboyscout.uk/, except three Kueue
keys it is required to use: the labels kueue.x-k8s.io/queue-name and
kueue.x-k8s.io/priority-class, and the annotation kueue.x-k8s.io/admission-gated-by. All writes
use the field manager dispatch.phpboyscout.uk/adapter, and every update after creation carries
the object's UID and resourceVersion as a precondition.
dispatch.phpboyscout.uk/admission: A, "0" at creation
volumes
dispatch-credential-<i> for each credential (a Secret volume, defaultMode 0400, optional: true); dispatch-publish when publish is set (an image volume with pullPolicy: IfNotPresent, or an emptyDir under the init container route)
node container mounts
each credential at its mountPath, read-only; dispatch-publish at /opt/dispatch, read-only
init container (init container route only)
the named container, with DISPATCH_PUBLISH_DEST=/opt/dispatch and the volume mounted there
dispatch's own gate, which is read from the TrainJob alone, and other parties' gates
kueue.x-k8s.io/admission-gated-by
annotation on a Workload
other parties' gates
node.kubernetes.io/unreachable, node.kubernetes.io/not-ready, node.kubernetes.io/out-of-service, and the site's nodeLossTaints
taints on a Node a pod ran on
telling node loss from another taint eviction; out-of-service alone also means the node's processes are gone, for Ceased and for a pod that the pod garbage collector deleted
Keys in the configured labels and annotations are refused when they begin with
dispatch.phpboyscout.uk/, kueue.x-k8s.io/, trainer.kubeflow.org/ or jobset.sigs.k8s.io/.