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.
| Label | Description |
|---|---|
nova.elotl.co/cluster.provider | Cloud provider, such as aws, gce, or azure |
nova.elotl.co/cluster.region | Cloud region, such as us-east-1 or us-central1 |
nova.elotl.co/cluster.zone | Cloud provider zone, such as us-east-1a |
nova.elotl.co/cluster.version | Kubernetes 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.
| Label | Description |
|---|---|
nova.elotl.co/target-cluster | Indicates the workload cluster selected by Nova |
Grouping Labels
Nova may create internal grouping resources when workloads are grouped by policy.
| Label | Description |
|---|---|
nova.elotl.co/matching-policy | Identifies the SchedulePolicy managing the group |
Users typically define grouping behavior through SchedulePolicy rather than modifying generated grouping resources directly.
Annotations
| Annotation | Description |
|---|---|
nova.elotl.co/cluster | Directly places an object on the named workload cluster |
nova.elotl.co/cluster.original-name | Set by Nova on special namespaces where scheduled objects reside |
nova.elotl.co/spread-onto | Used 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