Nova-specific Labels and Annotations
Nova uses certain labels and annotations with predefined meanings that can be used in the SchedulePolicy CRD by the user and are also used by Nova under the hood.
Labels
Custom Cluster labels
Cluster labels can be used in a SchedulePolicy spec.clusterSelector to select a subset of all clusters.
nova.elotl.co/cluster.provider
Cluster cloud provider, likeaws
,gce
, etc. Nova sets this label automatically.nova.elotl.co/cluster.region
Cluster cloud region, likeus-east-1
,us-central1
, etc. Nova sets this label automatically.nova.elotl.co/cluster.version
Cluster Kubernetes version, for examplev1.23.1
. Nova sets this label automatically.nova.elotl.co/cluster.zone
Cluster cloud provider zone, likeus-east-1a
orus-central1-c
. Nova sets this label automatically.
Custom ScheduleGroup labels
A ScheduleGroup is a CRD that is created by Nova to group together all Kubernetes resources that will be scheduled together on the same cluster.
nova.elotl.co/matching-policy
Set by Nova on the ScheduleGroup CR. Value is the name of the SchedulePolicy which is managing this ScheduleGroup.
Other Kubernetes resource labels
nova.elotl.co/backpropagated
Set on objects not directly scheduled by Nova, but owned by objects scheduled by Nova (e.g. on Pods owned by a Replicaset that was scheduled by Nova).nova.elotl.co/backpropagated.origin
Set on objects not directly scheduled by Nova, but owned by objects scheduled by Nova (e.g. on Pods owned by a Replicaset that was scheduled by Nova). Label value is Cluster name.nova.elotl.co/target-cluster
Set by Nova on scheduled objects. This is used to help user verify the target cluster on which Nova scheduled a given object.
Annotations
nova.elotl.co/cluster
Setting this annotation on any Kubernetes object will make Nova schedule this object on the target cluster whose name equals this annotation's value.nova.elotl.co/cluster.original-name
Set by Nova on a special namespace where Schedule objects reside. For clustermy-cluster
, Nova will create a namespaceelotl-cluster-<hash>
and will setmy-cluster
as the value of this annotation.nova.elotl.co/spread-onto
Set by Nova on the objects managed by Schedule Policy with.spec.SpreadConstraints
defined. It can be also added on the object directly by user. Examples of valid values are:<cluster-name-1>=50%,<cluster-name-2>=50%::Divide
,<cluster-name-1>,<cluster-name-2>::Duplicate
.