Skip to content

Commit d29324b

Browse files
authored
Bump controller-runtime to v0.17.0 (#2785)
- Bump controller-runtime to v0.17.0 - Introduce a few minor fixes for new fakeclient behaviour, see: kubernetes-sigs/controller-runtime#2633 Signed-off-by: Simone Tiraboschi <[email protected]>
1 parent bef108b commit d29324b

File tree

33 files changed

+534
-170
lines changed

33 files changed

+534
-170
lines changed

controllers/commontestutils/testClient.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ func (c *HcoTestClient) InitiateCreateErrors(f FakeWriteErrorGenerator) {
128128
}
129129

130130
func (c *HcoTestClient) Scheme() *runtime.Scheme {
131-
return &runtime.Scheme{}
131+
return c.client.Scheme()
132132
}
133133

134134
func (c *HcoTestClient) RESTMapper() meta.RESTMapper {

controllers/hyperconverged/hyperconverged_controller_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -726,7 +726,7 @@ var _ = Describe("HyperconvergedController", func() {
726726
hco.Spec.Workloads = hcov1beta1.HyperConvergedConfig{NodePlacement: commontestutils.NewNodePlacement()}
727727
existingResource, err := operands.NewKubeVirt(hco, namespace)
728728
Expect(err).ToNot(HaveOccurred())
729-
existingResource.Kind = kubevirtcorev1.KubeVirtGroupVersionKind.Kind // necessary for metrics
729+
existingResource.APIVersion, existingResource.Kind = kubevirtcorev1.KubeVirtGroupVersionKind.ToAPIVersionAndKind() // necessary for metrics
730730

731731
// now, modify KV's node placement
732732
existingResource.Spec.Infra.NodePlacement.Tolerations = append(hco.Spec.Infra.NodePlacement.Tolerations, corev1.Toleration{

controllers/hyperconverged/testUtils_test.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,6 @@ func getBasicDeployment() *BasicExpected {
242242
expectedCDI, err := operands.NewCDI(hco)
243243
ExpectWithOffset(1, err).ToNot(HaveOccurred())
244244
expectedCDI.Status.Conditions = getGenericCompletedConditions()
245-
expectedCDI.Kind = cdiv1beta1.CDIGroupVersionKind.Kind
246245
res.cdi = expectedCDI
247246

248247
expectedCNA, err := operands.NewNetworkAddons(hco)

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ require (
3939
kubevirt.io/controller-lifecycle-operator-sdk/api v0.2.4
4040
kubevirt.io/managed-tenant-quota v1.2.0
4141
kubevirt.io/ssp-operator/api v0.19.0
42-
sigs.k8s.io/controller-runtime v0.16.3
42+
sigs.k8s.io/controller-runtime v0.17.0
4343
sigs.k8s.io/controller-tools v0.14.0
4444
)
4545

go.sum

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec
260260
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
261261
github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
262262
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
263-
go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
263+
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
264264
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
265265
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
266266
go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo=
@@ -465,8 +465,8 @@ kubevirt.io/managed-tenant-quota v1.2.0 h1:AE+rmmVfwzvUrWlBfplr/Mhw60YDDEI3j0/Ty
465465
kubevirt.io/managed-tenant-quota v1.2.0/go.mod h1:oiTB7mMAOXacveW9rbZYoWieMxKvnF+vEyueEN+KCEQ=
466466
kubevirt.io/ssp-operator/api v0.19.0 h1:K1sBY1nIdQO1CoUkYRuz6CepZU97u4dlhqv1ldRyaxs=
467467
kubevirt.io/ssp-operator/api v0.19.0/go.mod h1:7lHBbaTsT5pBgrvipn+ZaoQR4t6TQHMlbcq2Wh5o714=
468-
sigs.k8s.io/controller-runtime v0.16.3 h1:2TuvuokmfXvDUamSx1SuAOO3eTyye+47mJCigwG62c4=
469-
sigs.k8s.io/controller-runtime v0.16.3/go.mod h1:j7bialYoSn142nv9sCOJmQgDXQXxnroFU4VnX/brVJ0=
468+
sigs.k8s.io/controller-runtime v0.17.0 h1:fjJQf8Ukya+VjogLO6/bNX9HE6Y2xpsO5+fyS26ur/s=
469+
sigs.k8s.io/controller-runtime v0.17.0/go.mod h1:+MngTvIQQQhfXtwfdGw/UOQ/aIaqsYywfCINOtwMO/s=
470470
sigs.k8s.io/controller-tools v0.14.0 h1:rnNoCC5wSXlrNoBKKzL70LNJKIQKEzT6lloG6/LF73A=
471471
sigs.k8s.io/controller-tools v0.14.0/go.mod h1:TV7uOtNNnnR72SpzhStvPkoS/U5ir0nMudrkrC4M9Sc=
472472
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=

pkg/util/util.go

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package util
22

33
import (
44
"context"
5-
"encoding/json"
65
"errors"
76
"fmt"
87
"os"
@@ -23,6 +22,7 @@ import (
2322
"k8s.io/client-go/tools/reference"
2423
"k8s.io/utils/ptr"
2524
"sigs.k8s.io/controller-runtime/pkg/client"
25+
"sigs.k8s.io/controller-runtime/pkg/client/apiutil"
2626
)
2727

2828
// ForceRunModeEnv indicates if the operator should be forced to run in either local
@@ -79,13 +79,26 @@ var GetOperatorNamespace = func(logger logr.Logger) (string, error) {
7979

8080
// ToUnstructured converts an arbitrary object (which MUST obey the
8181
// k8s object conventions) to an Unstructured
82-
func ToUnstructured(obj interface{}) (*unstructured.Unstructured, error) {
83-
b, err := json.Marshal(obj)
84-
if err != nil {
85-
return nil, err
82+
func ToUnstructured(obj runtime.Object, c client.Client) (*unstructured.Unstructured, error) {
83+
apiVersion, kind := obj.GetObjectKind().GroupVersionKind().ToAPIVersionAndKind()
84+
if apiVersion == "" || kind == "" {
85+
gvk, err := apiutil.GVKForObject(obj, c.Scheme())
86+
if err != nil {
87+
return nil, err
88+
}
89+
ta, err := meta.TypeAccessor(obj)
90+
if err != nil {
91+
return nil, err
92+
}
93+
ta.SetKind(gvk.Kind)
94+
ta.SetAPIVersion(gvk.GroupVersion().String())
8695
}
96+
8797
u := &unstructured.Unstructured{}
88-
if err := json.Unmarshal(b, u); err != nil {
98+
var err error
99+
u.Object, err = runtime.DefaultUnstructuredConverter.ToUnstructured(obj)
100+
101+
if err != nil {
89102
return nil, err
90103
}
91104
return u, nil
@@ -99,15 +112,16 @@ func GetRuntimeObject(ctx context.Context, c client.Client, obj client.Object) e
99112

100113
// ComponentResourceRemoval removes the resource `obj` if it exists and belongs to the HCO
101114
// with wait=true it will wait, (util ctx timeout, please set it!) for the resource to be effectively deleted
102-
func ComponentResourceRemoval(ctx context.Context, c client.Client, obj interface{}, hcoName string, logger logr.Logger, dryRun bool, wait bool, protectNonHCOObjects bool) (bool, error) {
103-
resource, err := ToUnstructured(obj)
115+
func ComponentResourceRemoval(ctx context.Context, c client.Client, obj client.Object, hcoName string, logger logr.Logger, dryRun bool, wait bool, protectNonHCOObjects bool) (bool, error) {
116+
117+
logger.Info("Removing resource", "name", obj.GetName(), "namespace", obj.GetNamespace(), "GVK", obj.GetObjectKind().GroupVersionKind(), "dryRun", dryRun)
118+
119+
resource, err := ToUnstructured(obj, c)
104120
if err != nil {
105121
logger.Error(err, "Failed to convert object to Unstructured")
106122
return false, err
107123
}
108124

109-
logger.Info("Removing resource", "name", resource.GetName(), "namespace", resource.GetNamespace(), "GVK", resource.GetObjectKind().GroupVersionKind(), "dryRun", dryRun)
110-
111125
ok, err := getResourceForDeletion(ctx, c, resource, logger)
112126
if !ok {
113127
return false, err

tests/vendor/github.com/kubevirt/hyperconverged-cluster-operator/pkg/util/util.go

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

vendor/modules.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -692,8 +692,8 @@ kubevirt.io/managed-tenant-quota/staging/src/kubevirt.io/managed-tenant-quota-ap
692692
# kubevirt.io/ssp-operator/api v0.19.0
693693
## explicit; go 1.20
694694
kubevirt.io/ssp-operator/api/v1beta2
695-
# sigs.k8s.io/controller-runtime v0.16.3
696-
## explicit; go 1.20
695+
# sigs.k8s.io/controller-runtime v0.17.0
696+
## explicit; go 1.21
697697
sigs.k8s.io/controller-runtime
698698
sigs.k8s.io/controller-runtime/pkg/builder
699699
sigs.k8s.io/controller-runtime/pkg/cache
@@ -722,6 +722,7 @@ sigs.k8s.io/controller-runtime/pkg/internal/log
722722
sigs.k8s.io/controller-runtime/pkg/internal/objectutil
723723
sigs.k8s.io/controller-runtime/pkg/internal/recorder
724724
sigs.k8s.io/controller-runtime/pkg/internal/source
725+
sigs.k8s.io/controller-runtime/pkg/internal/syncs
725726
sigs.k8s.io/controller-runtime/pkg/leaderelection
726727
sigs.k8s.io/controller-runtime/pkg/log
727728
sigs.k8s.io/controller-runtime/pkg/log/zap

vendor/sigs.k8s.io/controller-runtime/.golangci.yml

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

vendor/sigs.k8s.io/controller-runtime/RELEASE.md

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

0 commit comments

Comments
 (0)