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": "wlc-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.