Skip to content

Commit

Permalink
poc, kubevirt: Support post copy live migration
Browse files Browse the repository at this point in the history
Signed-off-by: Enrique Llorente <ellorent@redhat.com>
  • Loading branch information
qinqon committed Mar 3, 2023
1 parent a0c4f4e commit e584c39
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 2 deletions.
1 change: 1 addition & 0 deletions go-controller/pkg/kubevirt/kubevirt.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ const (
NodeNameLabel = "kubevirt.io/nodeName"
IPPoolNameAnnotation = "kubevirt.io/ipPoolName"
AllowPodBridgeNetworkLiveMigrationAnnotation = "kubevirt.io/allow-pod-bridge-network-live-migration"
MigrationTargetStartTimestamp = "kubevirt.io/migration-target-start-timestamp"
)

type IPConfig struct {
Expand Down
5 changes: 3 additions & 2 deletions go-controller/pkg/ovn/kubevirt.go
Original file line number Diff line number Diff line change
Expand Up @@ -125,8 +125,9 @@ func (oc *DefaultNetworkController) enroutePodAddressesToNode(pod *kapi.Pod) err

func (oc *DefaultNetworkController) enrouteVirtualMachine(pod *kapi.Pod) error {
targetNode := pod.Labels[kubevirt.NodeNameLabel]
// There is no live migration or live migration has finished
if targetNode == "" || targetNode == pod.Spec.NodeName {
targetStartTimestamp := pod.Labels[kubevirt.MigrationTargetStartTimestamp]
// No live migration or target node was reached || qemu is already ready
if targetNode == pod.Spec.NodeName || targetStartTimestamp != "" {
if err := oc.enroutePodAddressesToNode(pod); err != nil {
return fmt.Errorf("failed enroutePodAddressesToNode for %s/%s: %w", pod.Namespace, pod.Name, err)
}
Expand Down

0 comments on commit e584c39

Please sign in to comment.