Skip to main content
Version: v0.9.0

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, like aws, gce, etc. Nova sets this label automatically.
  • nova.elotl.co/cluster.region Cluster cloud region, like us-east-1, us-central1, etc. Nova sets this label automatically.
  • nova.elotl.co/cluster.version Cluster Kubernetes version, for example v1.23.1. Nova sets this label automatically.
  • nova.elotl.co/cluster.zone Cluster cloud provider zone, like us-east-1a or us-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 cluster my-cluster, Nova will create a namespace elotl-cluster-<hash> and will set my-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.