Skip to main content
Version: v1.5

Labels and Annotations

Nova uses labels and annotations to control placement behavior, expose workload cluster metadata, and help users verify where workloads are placed.

This page summarizes Nova-specific labels and annotations that may appear on workload clusters, workloads, and Nova-managed resources.

Workload Cluster Labels

Workload cluster labels can be used in SchedulePolicy selectors to choose a subset of workload clusters.

Nova automatically sets several labels on Cluster objects.

LabelDescription
nova.elotl.co/cluster.providerCloud provider, such as aws, gce, or azure
nova.elotl.co/cluster.regionCloud region, such as us-east-1 or us-central1
nova.elotl.co/cluster.zoneCloud provider zone, such as us-east-1a
nova.elotl.co/cluster.versionKubernetes version, such as v1.35.0

Example: Select Workload Clusters by Region

spec:
clusterSelector:
matchLabels:
nova.elotl.co/cluster.region: "us-east-1"

Example: Select Workload Clusters by Provider

spec:
clusterSelector:
matchLabels:
nova.elotl.co/cluster.provider: "aws"

Custom Workload Cluster Labels

Users can also add custom labels to Cluster objects.

For example, if on-premises workload clusters are labeled with on-prem: "true", a policy can target them like this:

spec:
clusterSelector:
matchLabels:
on-prem: "true"

Workload Placement Labels

Nova may set labels on scheduled objects to indicate placement information.

LabelDescription
nova.elotl.co/target-clusterIndicates the workload cluster selected by Nova

Grouping Labels

Nova may create internal grouping resources when workloads are grouped by policy.

LabelDescription
nova.elotl.co/matching-policyIdentifies the SchedulePolicy managing the group

Users typically define grouping behavior through SchedulePolicy rather than modifying generated grouping resources directly.

Annotations

AnnotationDescription
nova.elotl.co/clusterDirectly places an object on the named workload cluster
nova.elotl.co/cluster.original-nameSet by Nova on special namespaces where scheduled objects reside
nova.elotl.co/spread-ontoUsed for objects managed by spread scheduling

Annotation-based Placement

The nova.elotl.co/cluster annotation directly selects a workload cluster:

metadata:
annotations:
nova.elotl.co/cluster: workload-dev-1

Spread Annotation Example

Objects managed by spread scheduling may include an annotation like this:

metadata:
annotations:
nova.elotl.co/spread-onto: "wlc-1=50%,wlc-2=50%::Divide"

or:

metadata:
annotations:
nova.elotl.co/spread-onto: "wlc-1,wlc-2::Duplicate"

Example Output

You can inspect a scheduled object to verify placement:

kubectl --context=nova get deployment nginx -o yaml

Example output:

metadata:
labels:
nova.elotl.co/target-cluster: workload-dev-1