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.providerCluster cloud provider, likeaws,gce, etc. Nova sets this label automatically.nova.elotl.co/cluster.regionCluster cloud region, likeus-east-1,us-central1, etc. Nova sets this label automatically.nova.elotl.co/cluster.versionCluster Kubernetes version, for examplev1.23.1. Nova sets this label automatically.nova.elotl.co/cluster.zoneCluster cloud provider zone, likeus-east-1aorus-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-policySet 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/backpropagatedSet 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.originSet 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-clusterSet 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/clusterSetting 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-nameSet by Nova on a special namespace where Schedule objects reside. For clustermy-cluster, Nova will create a namespaceelotl-cluster-<hash>and will setmy-clusteras the value of this annotation.nova.elotl.co/spread-ontoSet by Nova on the objects managed by Schedule Policy with.spec.SpreadConstraintsdefined. 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.