Skip to main content
Version: v0.9.0

Backpropagation

Overview

Backpropagation in Nova is a critical feature designed to increase visibility into workload clusters from the Nova Control Plane. Essentially, it allows objects that are created within workload clusters to be reflected back to the Nova Control Plane, providing a unified view of all your workloads across multiple clusters.

What is Backpropagation?

When you create an object, such as a Deployment, in the Nova Control Plane, that object is scheduled onto one or multiple workload clusters based on your specified SchedulePolicies. Once this happens, the workload clusters recognize the Deployment and create their own associated objects like ReplicaSets, Pods, etc.

The process of backpropagating these additional objects back to the Nova Control Plane is what we refer to as Backpropagation. This ensures you have full visibility and control over all your workloads, regardless of the cluster they reside in.

Example: Understanding Backpropagation with Deployment

Let's take a Deployment object as an example to better understand how backpropagation works in Nova.

1. Create a Deployment in Nova Control Plane

kubectl apply -f my-deployment.yaml

2. Deployment Scheduling

The Deployment is scheduled onto workload clusters based on SchedulePolicies.

3. Backpropagation in Action

kubectl get pods nginx-7fb96c846b-cghsx -o=jsonpath='{.metadata.labels}' | jq

The output will look something like this:

{
"app": "nginx",
"nova.elotl.co/backpropagated.origin": "kind-workload-1",
"pod-template-hash": "7fb96c846b"
}

The nova.elotl.co/backpropagated.origin label indicates the workload cluster where the object is actually running, offering you visibility into the system's distributed nature.

Limitations

As of now, Nova's Backpropagation feature does not support StatefulSets. Our dev team is actively working on incorporating this functionality and it will be available as soon as possible.