Skip to content

Commit b4ebad4

Browse files
authored
[descheduler] properly support the graduated name of KubeVirtRelieveAndMigrate profile (#3807)
Import a fresher descheduler operator. Consume KubeVirtRelieveAndMigrate and DevKubeVirtRelieveAndMigrate with the p[roper names. Consider the obsolete and not load aware LifecycleAndUtilization as still supported because it's still supported on the descheduler side. Signed-off-by: Simone Tiraboschi <[email protected]>
1 parent d164d27 commit b4ebad4

File tree

7 files changed

+55
-26
lines changed

7 files changed

+55
-26
lines changed

controllers/descheduler/descheduler_controller.go

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -101,13 +101,9 @@ func (r *ReconcileDescheduler) isDeschedulerMisconfigured(ctx context.Context) (
101101
return false, err
102102
}
103103

104-
// TODO: modify this once deschedulerv1.RelieveAndMigrate will graduate, loosing
105-
// the "Dev" prefix, and will be "KubeVirtRelieveAndMigrate", then we will need
106-
// to change it to:
107-
// misconfiguredDescheduler = slices.Contains(instance.Spec.Profiles, deschedulerv1.RelieveAndMigrate)
108104
return !slices.ContainsFunc(instance.Spec.Profiles, func(profile deschedulerv1.DeschedulerProfile) bool {
109105
switch profile {
110-
case deschedulerv1.RelieveAndMigrate, "KubeVirtRelieveAndMigrate":
106+
case deschedulerv1.KubeVirtRelieveAndMigrate, deschedulerv1.DevKubeVirtRelieveAndMigrate, deschedulerv1.LifecycleAndUtilization:
111107
return true
112108
}
113109
return false

controllers/descheduler/descheduler_controller_test.go

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ var _ = Describe("DeschedulerController", func() {
9191
},
9292
BeTrue(),
9393
),
94-
Entry("should set the metric to false for the KubeDescheduler with a valid configuration",
94+
Entry("should set the metric to false for the KubeDescheduler with a valid configuration - LifecycleAndUtilization",
9595
[]client.Object{
9696
&deschedulerv1.KubeDescheduler{
9797
ObjectMeta: metav1.ObjectMeta{
@@ -100,7 +100,23 @@ var _ = Describe("DeschedulerController", func() {
100100
},
101101
Spec: deschedulerv1.KubeDeschedulerSpec{
102102
Profiles: []deschedulerv1.DeschedulerProfile{
103-
deschedulerv1.RelieveAndMigrate,
103+
deschedulerv1.LifecycleAndUtilization,
104+
},
105+
},
106+
},
107+
},
108+
BeFalse(),
109+
),
110+
Entry("should set the metric to false for the KubeDescheduler with a valid configuration - DevKubeVirtRelieveAndMigrate",
111+
[]client.Object{
112+
&deschedulerv1.KubeDescheduler{
113+
ObjectMeta: metav1.ObjectMeta{
114+
Name: hcoutil.DeschedulerCRName,
115+
Namespace: hcoutil.DeschedulerNamespace,
116+
},
117+
Spec: deschedulerv1.KubeDeschedulerSpec{
118+
Profiles: []deschedulerv1.DeschedulerProfile{
119+
deschedulerv1.DevKubeVirtRelieveAndMigrate,
104120
},
105121
ProfileCustomizations: &deschedulerv1.ProfileCustomizations{
106122
DevDeviationThresholds: &deschedulerv1.AsymmetricLowDeviationThreshold,
@@ -112,6 +128,22 @@ var _ = Describe("DeschedulerController", func() {
112128
},
113129
BeFalse(),
114130
),
131+
Entry("should set the metric to false for the KubeDescheduler with a valid configuration - KubeVirtRelieveAndMigrate",
132+
[]client.Object{
133+
&deschedulerv1.KubeDescheduler{
134+
ObjectMeta: metav1.ObjectMeta{
135+
Name: hcoutil.DeschedulerCRName,
136+
Namespace: hcoutil.DeschedulerNamespace,
137+
},
138+
Spec: deschedulerv1.KubeDeschedulerSpec{
139+
Profiles: []deschedulerv1.DeschedulerProfile{
140+
deschedulerv1.KubeVirtRelieveAndMigrate,
141+
},
142+
},
143+
},
144+
},
145+
BeFalse(),
146+
),
115147
)
116148
})
117149
})

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ require (
1818
github.com/onsi/ginkgo/v2 v2.23.4
1919
github.com/onsi/gomega v1.37.0
2020
github.com/openshift/api v3.9.1-0.20190517100836-d5b34b957e91+incompatible
21-
github.com/openshift/cluster-kube-descheduler-operator v0.0.0-20250410114548-481d56a6c34e
21+
github.com/openshift/cluster-kube-descheduler-operator v0.0.0-20251008211450-f537ae654848
2222
github.com/openshift/custom-resource-status v1.1.2
2323
github.com/openshift/library-go v0.0.0-20250725103737-7f9bc3eb865a
2424
github.com/operator-framework/api v0.32.0

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -284,8 +284,8 @@ github.com/opencontainers/runtime-spec v1.2.1 h1:S4k4ryNgEpxW1dzyqffOmhI1BHYcjzU
284284
github.com/opencontainers/runtime-spec v1.2.1/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
285285
github.com/openshift/api v0.0.0-20250409155250-8fcc4e71758a h1:d2WEiysc+Gx51E5pQUvB5CHuXiUTsuZdKZNPHkGAZZg=
286286
github.com/openshift/api v0.0.0-20250409155250-8fcc4e71758a/go.mod h1:yk60tHAmHhtVpJQo3TwVYq2zpuP70iJIFDCmeKMIzPw=
287-
github.com/openshift/cluster-kube-descheduler-operator v0.0.0-20250410114548-481d56a6c34e h1:6wOQeIqOIoNdT+28OdECxT0TQ9NxkIzV7veI+IjOvUg=
288-
github.com/openshift/cluster-kube-descheduler-operator v0.0.0-20250410114548-481d56a6c34e/go.mod h1:wl2qvwuZU+YWNingOkAzabrH5BJwd4OhUH5FAtOG00U=
287+
github.com/openshift/cluster-kube-descheduler-operator v0.0.0-20251008211450-f537ae654848 h1:s700PiKhx3YqMQjR+T8EHLTkIw8sl9kgoWFfiSeEVMk=
288+
github.com/openshift/cluster-kube-descheduler-operator v0.0.0-20251008211450-f537ae654848/go.mod h1:ei7BM+Y5K/THP2aLOpQVvd1vk5O3ZtomO9/wvW9PNFs=
289289
github.com/openshift/custom-resource-status v1.1.2 h1:C3DL44LEbvlbItfd8mT5jWrqPfHnSOQoQf/sypqA6A4=
290290
github.com/openshift/custom-resource-status v1.1.2/go.mod h1:DB/Mf2oTeiAmVVX1gN+NEqweonAPY0TKUwADizj8+ZA=
291291
github.com/openshift/library-go v0.0.0-20250725103737-7f9bc3eb865a h1:wZ0M/4DgILzW+8NKcARzBSG7w/BlSjtjQlBUj/VCk+0=

pkg/util/cluster_test.go

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ var _ = Describe("test clusterInfo", func() {
214214

215215
DescribeTable(
216216
"check Init on openshift, with KubeDescheduler CRD with a CR for it ...",
217-
func(deschedulerCR *deschedulerv1.KubeDescheduler, expectedIsDeschedulerMisconfigured bool) {
217+
func(deschedulerCR *deschedulerv1.KubeDescheduler) {
218218
cl := fake.NewClientBuilder().
219219
WithScheme(testScheme).
220220
WithObjects(clusterVersion, infrastructure, ingress, apiServer, dns, ipv4network, deschedulerCRD, deschedulerNamespace, deschedulerCR).
@@ -235,18 +235,17 @@ var _ = Describe("test clusterInfo", func() {
235235
},
236236
Spec: deschedulerv1.KubeDeschedulerSpec{},
237237
},
238-
true,
239238
),
240239
Entry(
241-
"with KubeVirt specific profile",
240+
"with KubeVirt specific profile - KubeVirtRelieveAndMigrate",
242241
&deschedulerv1.KubeDescheduler{
243242
ObjectMeta: metav1.ObjectMeta{
244243
Name: DeschedulerCRName,
245244
Namespace: DeschedulerNamespace,
246245
},
247246
Spec: deschedulerv1.KubeDeschedulerSpec{
248247
Profiles: []deschedulerv1.DeschedulerProfile{
249-
deschedulerv1.RelieveAndMigrate,
248+
deschedulerv1.KubeVirtRelieveAndMigrate,
250249
},
251250
ProfileCustomizations: &deschedulerv1.ProfileCustomizations{
252251
DevDeviationThresholds: &deschedulerv1.AsymmetricLowDeviationThreshold,
@@ -255,7 +254,6 @@ var _ = Describe("test clusterInfo", func() {
255254
},
256255
},
257256
},
258-
false,
259257
),
260258
Entry(
261259
"with obsolete configuration",
@@ -273,7 +271,6 @@ var _ = Describe("test clusterInfo", func() {
273271
},
274272
},
275273
},
276-
true,
277274
),
278275
Entry(
279276
"with wrong configuration 1",
@@ -288,7 +285,6 @@ var _ = Describe("test clusterInfo", func() {
288285
},
289286
},
290287
},
291-
true,
292288
),
293289
Entry(
294290
"with wrong configuration 2",
@@ -305,7 +301,6 @@ var _ = Describe("test clusterInfo", func() {
305301
},
306302
},
307303
},
308-
true,
309304
),
310305
Entry(
311306
"with wrong configuration 3",
@@ -324,7 +319,6 @@ var _ = Describe("test clusterInfo", func() {
324319
Mode: "testvalue",
325320
},
326321
},
327-
true,
328322
),
329323
Entry(
330324
"with configuration tuned for KubeVirt but with a wrong name",
@@ -339,7 +333,6 @@ var _ = Describe("test clusterInfo", func() {
339333
},
340334
},
341335
},
342-
false,
343336
),
344337
Entry(
345338
"with configuration tuned for KubeVirt but in the wrong namespace",
@@ -354,7 +347,6 @@ var _ = Describe("test clusterInfo", func() {
354347
},
355348
},
356349
},
357-
false,
358350
),
359351
)
360352

vendor/github.com/openshift/cluster-kube-descheduler-operator/pkg/apis/descheduler/v1/types_descheduler.go

Lines changed: 12 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/modules.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -289,8 +289,8 @@ github.com/openshift/api/operator/v1
289289
github.com/openshift/api/quota/v1
290290
github.com/openshift/api/route/v1
291291
github.com/openshift/api/security/v1
292-
# github.com/openshift/cluster-kube-descheduler-operator v0.0.0-20250410114548-481d56a6c34e
293-
## explicit; go 1.23.3
292+
# github.com/openshift/cluster-kube-descheduler-operator v0.0.0-20251008211450-f537ae654848
293+
## explicit; go 1.24.2
294294
github.com/openshift/cluster-kube-descheduler-operator/pkg/apis/descheduler/v1
295295
# github.com/openshift/custom-resource-status v1.1.2
296296
## explicit; go 1.12

0 commit comments

Comments
 (0)