Add targeted node filtering to deploy reconciliation - #3283
Conversation
150ed22 to
16b5742
Compare
|
Rebased this branch onto current Current head: During runner validation, the rebase exposed a failing unit test in Final validation completed on the real lab runners:
|
7606ce0 to
382d13a
Compare
|
@orrious what is the goal of this PR? can you explain the use case where you would need this feature? |
382d13a to
cad84ce
Compare
cad84ce to
74bf496
Compare
|
@orrious clab deploy/apply should anyhow only touch nodes that needs a recreate/restart. So the node-filter will only introduce breaking nodes/links. The thing is, some kinds need a recreate to get new or deleted interfaces on the remote link. So I am not sure what the PR will solve. But pls let me know if I miss the point. |
Goal and use case
Allow part of an already-running lab to be reconciled without disrupting unrelated nodes.
A typical use case is a large lab where one device under test or traffic-generator node must be added or recreated while preserving the control-plane state, container IDs, links, and runtime state of the rest of the topology. The existing
--node-filterflag already identifies the intended target set; this change applies that selection safely during reconciliation.Behavior
clab deploy --node-filterand theclab applyalias to add or recreate selected nodeswait-forandnetwork-mode: container:<provider>The branch has been rebased onto current
mainand now contains only the filtered-apply implementation and its follow-up fixes; unrelated stacked PR commits have been removed.Validation
go test ./core ./types ./nodesgo test ./runtime/podmanmake docs