Skip to content

Commit e2ecef1

Browse files
authored
add kubevirt live migration optimize (#4773) (#4874)
--------- Signed-off-by: clyi <clyi@alauda.io>
1 parent 7bc30db commit e2ecef1

File tree

11 files changed

+372
-231
lines changed

11 files changed

+372
-231
lines changed

charts/kube-ovn/templates/controller-deploy.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ spec:
139139
- --enable-anp={{- .Values.func.ENABLE_ANP }}
140140
- --ovsdb-con-timeout={{- .Values.func.OVSDB_CON_TIMEOUT }}
141141
- --ovsdb-inactivity-timeout={{- .Values.func.OVSDB_INACTIVITY_TIMEOUT }}
142+
- --enable-live-migration-optimize={{- .Values.func.ENABLE_LIVE_MIGRATION_OPTIMIZE }}
142143
securityContext:
143144
runAsUser: {{ include "kubeovn.runAsUser" . }}
144145
privileged: false

charts/kube-ovn/templates/ovn-CR.yaml

+8
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,14 @@ rules:
207207
verbs:
208208
- approve
209209
- sign
210+
- apiGroups:
211+
- kubevirt.io
212+
resources:
213+
- virtualmachineinstancemigrations
214+
verbs:
215+
- "list"
216+
- "watch"
217+
- "get"
210218
---
211219
apiVersion: rbac.authorization.k8s.io/v1
212220
kind: ClusterRole

charts/kube-ovn/values.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ func:
7777
SET_VXLAN_TX_OFF: false
7878
OVSDB_CON_TIMEOUT: 3
7979
OVSDB_INACTIVITY_TIMEOUT: 10
80+
ENABLE_LIVE_MIGRATION_OPTIMIZE: true
8081

8182
ipv4:
8283
POD_CIDR: "10.16.0.0/16"

dist/images/install.sh

+16
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ ENABLE_ANP=${ENABLE_ANP:-false}
4444
SET_VXLAN_TX_OFF=${SET_VXLAN_TX_OFF:-false}
4545
OVSDB_CON_TIMEOUT=${OVSDB_CON_TIMEOUT:-3}
4646
OVSDB_INACTIVITY_TIMEOUT=${OVSDB_INACTIVITY_TIMEOUT:-10}
47+
ENABLE_LIVE_MIGRATION_OPTIMIZE=${ENABLE_LIVE_MIGRATION_OPTIMIZE:-true}
4748

4849
# debug
4950
DEBUG_WRAPPER=${DEBUG_WRAPPER:-}
@@ -3211,6 +3212,20 @@ rules:
32113212
verbs:
32123213
- approve
32133214
- sign
3215+
- apiGroups:
3216+
- kubevirt.io
3217+
resources:
3218+
- virtualmachineinstancemigrations
3219+
verbs:
3220+
- "list"
3221+
- "watch"
3222+
- "get"
3223+
- apiGroups:
3224+
- apiextensions.k8s.io
3225+
resources:
3226+
- customresourcedefinitions
3227+
verbs:
3228+
- get
32143229
---
32153230
apiVersion: rbac.authorization.k8s.io/v1
32163231
kind: ClusterRoleBinding
@@ -4329,6 +4344,7 @@ spec:
43294344
- --enable-anp=$ENABLE_ANP
43304345
- --ovsdb-con-timeout=$OVSDB_CON_TIMEOUT
43314346
- --ovsdb-inactivity-timeout=$OVSDB_INACTIVITY_TIMEOUT
4347+
- --enable-live-migration-optimize=$ENABLE_LIVE_MIGRATION_OPTIMIZE
43324348
securityContext:
43334349
runAsUser: ${RUN_AS_USER}
43344350
privileged: false

go.mod

+60-58
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
module github.com/kubeovn/kube-ovn
22

3-
go 1.23.4
3+
go 1.23.3
44

55
require (
66
github.com/Microsoft/go-winio v0.6.2
7-
github.com/Microsoft/hcsshim v0.12.9
7+
github.com/Microsoft/hcsshim v0.12.7
88
github.com/bhendo/go-powershell v0.0.0-20190719160123-219e7fb4e41e
99
github.com/cenkalti/backoff/v4 v4.3.0
1010
github.com/cnf/structhash v0.0.0-20201127153200-e1b16c1ebc08
11-
github.com/containerd/containerd v1.7.23
11+
github.com/containerd/containerd v1.7.22
1212
github.com/containernetworking/cni v1.2.3
1313
github.com/containernetworking/plugins v1.6.0
14-
github.com/docker/docker v27.4.0+incompatible
14+
github.com/docker/docker v27.3.1+incompatible
1515
github.com/emicklei/go-restful/v3 v3.12.1
1616
github.com/evanphx/json-patch/v5 v5.9.0
1717
github.com/go-logr/stdr v1.2.2
@@ -25,7 +25,7 @@ require (
2525
github.com/mdlayher/arp v0.0.0-20220512170110-6706a2966875
2626
github.com/moby/sys/mountinfo v0.7.2
2727
github.com/onsi/ginkgo/v2 v2.22.0
28-
github.com/onsi/gomega v1.35.1
28+
github.com/onsi/gomega v1.36.0
2929
github.com/osrg/gobgp/v3 v3.31.0
3030
github.com/ovn-org/libovsdb v0.7.0
3131
github.com/parnurzeal/gorequest v0.3.0
@@ -35,23 +35,26 @@ require (
3535
github.com/scylladb/go-set v1.0.2
3636
github.com/sirupsen/logrus v1.9.3
3737
github.com/spf13/pflag v1.0.5
38-
github.com/stretchr/testify v1.9.0
38+
github.com/stretchr/testify v1.10.0
3939
github.com/vishvananda/netlink v1.3.0
4040
go.uber.org/mock v0.5.0
4141
golang.org/x/mod v0.22.0
42-
golang.org/x/sys v0.28.0
42+
golang.org/x/sys v0.27.0
4343
golang.org/x/time v0.8.0
4444
google.golang.org/grpc v1.68.0
4545
google.golang.org/protobuf v1.35.2
46-
gopkg.in/k8snetworkplumbingwg/multus-cni.v4 v4.1.4
47-
k8s.io/api v0.31.4
48-
k8s.io/apimachinery v0.31.4
49-
k8s.io/client-go v1.5.2
46+
gopkg.in/k8snetworkplumbingwg/multus-cni.v4 v4.1.3
47+
k8s.io/api v0.31.3
48+
k8s.io/apiextensions-apiserver v0.31.3
49+
k8s.io/apimachinery v0.31.3
50+
k8s.io/client-go v12.0.0+incompatible
5051
k8s.io/klog/v2 v2.130.1
51-
k8s.io/kubernetes v1.31.4
52+
k8s.io/kubernetes v1.31.3
5253
k8s.io/utils v0.0.0-20241104163129-6fe5fd82f078
5354
kernel.org/pub/linux/libs/security/libcap/cap v1.2.72
54-
kubevirt.io/client-go v1.3.1
55+
kubevirt.io/api v1.4.0
56+
kubevirt.io/client-go v1.4.0
57+
kubevirt.io/kubevirt v1.4.0
5558
sigs.k8s.io/controller-runtime v0.19.2
5659
sigs.k8s.io/network-policy-api v0.1.5
5760
)
@@ -68,10 +71,8 @@ require (
6871
github.com/cespare/xxhash/v2 v2.3.0 // indirect
6972
github.com/containerd/cgroups/v3 v3.0.3 // indirect
7073
github.com/containerd/continuity v0.4.3 // indirect
71-
github.com/containerd/errdefs v0.3.0 // indirect
72-
github.com/containerd/errdefs/pkg v0.3.0 // indirect
74+
github.com/containerd/errdefs v0.1.0 // indirect
7375
github.com/containerd/log v0.1.0 // indirect
74-
github.com/containerd/typeurl/v2 v2.2.0 // indirect
7576
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
7677
github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect
7778
github.com/eapache/channels v1.1.0 // indirect
@@ -91,6 +92,7 @@ require (
9192
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
9293
github.com/godbus/dbus/v5 v5.1.0 // indirect
9394
github.com/gogo/protobuf v1.3.2 // indirect
95+
github.com/golang/glog v1.2.2 // indirect
9496
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
9597
github.com/golang/mock v1.6.0 // indirect
9698
github.com/golang/protobuf v1.5.4 // indirect
@@ -130,7 +132,7 @@ require (
130132
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect
131133
github.com/nxadm/tail v1.4.11 // indirect
132134
github.com/opencontainers/go-digest v1.0.0 // indirect
133-
github.com/openshift/api v0.0.0-20231207204216-5efc6fca4b2d // indirect
135+
github.com/openshift/api v0.0.0 // indirect
134136
github.com/openshift/client-go v3.9.0+incompatible // indirect
135137
github.com/openshift/custom-resource-status v1.1.2 // indirect
136138
github.com/pelletier/go-toml/v2 v2.2.3 // indirect
@@ -166,13 +168,13 @@ require (
166168
go.opentelemetry.io/proto/otlp v1.3.1 // indirect
167169
go.uber.org/multierr v1.11.0 // indirect
168170
go.uber.org/zap v1.27.0 // indirect
169-
golang.org/x/exp v0.0.0-20241217172543-b2144cdd0a67 // indirect
170-
golang.org/x/net v0.33.0 // indirect
171+
golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c // indirect
172+
golang.org/x/net v0.31.0 // indirect
171173
golang.org/x/oauth2 v0.24.0 // indirect
172-
golang.org/x/sync v0.10.0 // indirect
173-
golang.org/x/term v0.27.0 // indirect
174-
golang.org/x/text v0.21.0 // indirect
175-
golang.org/x/tools v0.28.0 // indirect
174+
golang.org/x/sync v0.9.0 // indirect
175+
golang.org/x/term v0.26.0 // indirect
176+
golang.org/x/text v0.20.0 // indirect
177+
golang.org/x/tools v0.27.0 // indirect
176178
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
177179
google.golang.org/genproto/googleapis/api v0.0.0-20241118233622-e639e219e697 // indirect
178180
google.golang.org/genproto/googleapis/rpc v0.0.0-20241118233622-e639e219e697 // indirect
@@ -183,12 +185,11 @@ require (
183185
gopkg.in/yaml.v2 v2.4.0 // indirect
184186
gopkg.in/yaml.v3 v3.0.1 // indirect
185187
gotest.tools/v3 v3.0.2 // indirect
186-
k8s.io/apiextensions-apiserver v0.31.4 // indirect
187-
k8s.io/apiserver v0.31.4 // indirect
188-
k8s.io/component-base v0.31.4 // indirect
189-
k8s.io/kube-openapi v0.31.4 // indirect
188+
k8s.io/apiserver v0.31.3 // indirect
189+
k8s.io/component-base v0.31.3 // indirect
190+
k8s.io/kube-aggregator v0.26.4 // indirect
191+
k8s.io/kube-openapi v0.31.3 // indirect
190192
kernel.org/pub/linux/libs/security/libcap/psx v1.2.72 // indirect
191-
kubevirt.io/api v1.4.0 // indirect
192193
kubevirt.io/containerized-data-importer-api v1.58.1 // indirect
193194
kubevirt.io/controller-lifecycle-operator-sdk/api v0.0.0-20220329064328-f3cc58c6ed90 // indirect
194195
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.1 // indirect
@@ -199,36 +200,37 @@ require (
199200

200201
replace (
201202
github.com/mdlayher/arp => github.com/kubeovn/arp v0.0.0-20240218024213-d9612a263f68
202-
github.com/openshift/client-go => github.com/openshift/client-go v0.0.1
203+
github.com/openshift/api => github.com/openshift/api v0.0.0-20191219222812-2987a591a72c
204+
github.com/openshift/client-go => github.com/openshift/client-go v0.0.0-20210112165513-ebc401615f47
203205
github.com/ovn-org/libovsdb => github.com/kubeovn/libovsdb v0.0.0-20240814054845-978196448fb2
204-
k8s.io/api => k8s.io/api v0.31.4
205-
k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.31.4
206-
k8s.io/apimachinery => k8s.io/apimachinery v0.31.4
207-
k8s.io/apiserver => k8s.io/apiserver v0.31.4
208-
k8s.io/cli-runtime => k8s.io/cli-runtime v0.31.4
209-
k8s.io/client-go => k8s.io/client-go v0.31.4
210-
k8s.io/cloud-provider => k8s.io/cloud-provider v0.31.4
211-
k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.31.4
212-
k8s.io/code-generator => k8s.io/code-generator v0.31.4
213-
k8s.io/component-base => k8s.io/component-base v0.31.4
214-
k8s.io/component-helpers => k8s.io/component-helpers v0.31.4
215-
k8s.io/controller-manager => k8s.io/controller-manager v0.31.4
216-
k8s.io/cri-api => k8s.io/cri-api v0.31.4
217-
k8s.io/cri-client => k8s.io/cri-client v0.31.4
218-
k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.31.4
219-
k8s.io/dynamic-resource-allocation => k8s.io/dynamic-resource-allocation v0.31.4
220-
k8s.io/endpointslice => k8s.io/endpointslice v0.31.4
221-
k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.31.4
222-
k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.31.4
206+
k8s.io/api => k8s.io/api v0.31.3
207+
k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.31.3
208+
k8s.io/apimachinery => k8s.io/apimachinery v0.31.3
209+
k8s.io/apiserver => k8s.io/apiserver v0.31.3
210+
k8s.io/cli-runtime => k8s.io/cli-runtime v0.31.3
211+
k8s.io/client-go => k8s.io/client-go v0.31.3
212+
k8s.io/cloud-provider => k8s.io/cloud-provider v0.31.3
213+
k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.31.3
214+
k8s.io/code-generator => k8s.io/code-generator v0.31.3
215+
k8s.io/component-base => k8s.io/component-base v0.31.3
216+
k8s.io/component-helpers => k8s.io/component-helpers v0.31.3
217+
k8s.io/controller-manager => k8s.io/controller-manager v0.31.3
218+
k8s.io/cri-api => k8s.io/cri-api v0.31.3
219+
k8s.io/cri-client => k8s.io/cri-client v0.31.3
220+
k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.31.3
221+
k8s.io/dynamic-resource-allocation => k8s.io/dynamic-resource-allocation v0.31.3
222+
k8s.io/endpointslice => k8s.io/endpointslice v0.31.3
223+
k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.31.3
224+
k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.31.3
223225
k8s.io/kube-openapi => k8s.io/kube-openapi v0.0.0-20240812233141-91dab695df6f
224-
k8s.io/kube-proxy => k8s.io/kube-proxy v0.31.4
225-
k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.31.4
226-
k8s.io/kubectl => k8s.io/kubectl v0.31.4
227-
k8s.io/kubelet => k8s.io/kubelet v0.31.4
228-
k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.31.4
229-
k8s.io/metrics => k8s.io/metrics v0.31.4
230-
k8s.io/mount-utils => k8s.io/mount-utils v0.31.4
231-
k8s.io/pod-security-admission => k8s.io/pod-security-admission v0.31.4
232-
k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.31.4
233-
kubevirt.io/client-go => github.com/kubeovn/kubevirt-client-go v0.0.0-20240823060554-65405ba5499d
226+
k8s.io/kube-proxy => k8s.io/kube-proxy v0.31.3
227+
k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.31.3
228+
k8s.io/kubectl => k8s.io/kubectl v0.31.3
229+
k8s.io/kubelet => k8s.io/kubelet v0.31.3
230+
k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.31.3
231+
k8s.io/metrics => k8s.io/metrics v0.31.3
232+
k8s.io/mount-utils => k8s.io/mount-utils v0.31.3
233+
k8s.io/pod-security-admission => k8s.io/pod-security-admission v0.31.3
234+
k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.31.3
235+
kubevirt.io/client-go => github.com/kubeovn/kubevirt-client-go v0.0.0-20241128091559-882afb5db2f6
234236
)

0 commit comments

Comments
 (0)