diff --git a/.govulncheck.yaml b/.govulncheck.yaml index 5b2fe040f..219bc58ba 100644 --- a/.govulncheck.yaml +++ b/.govulncheck.yaml @@ -1,61 +1 @@ -ignored-vulnerabilities: - # Panic when validating certificates with DSA public keys in crypto/x509 - # Found in: crypto/x509@go1.23.12 - # Fixed in: crypto/x509@go1.24.8 - - id: GO-2025-4013 - info: https://pkg.go.dev/vuln/GO-2025-4013 - silence-until: 2026-01-03 - # Lack of limit when parsing cookies can cause memory exhaustion in net/http - # Found in: net/http@go1.23.12 - # Fixed in: net/http@go1.24.8 - - id: GO-2025-4012 - info: https://pkg.go.dev/vuln/GO-2025-4012 - silence-until: 2026-01-03 - # Parsing DER payload can cause memory exhaustion in encoding/asn1 - # Found in: encoding/asn1@go1.23.12 - # Fixed in: encoding/asn1@go1.24.8 - - id: GO-2025-4011 - info: https://pkg.go.dev/vuln/GO-2025-4011 - silence-until: 2026-01-03 - # Insufficient validation of bracketed IPv6 hostnames in net/url - # Found in: net/url@go1.23.12 - # Fixed in: net/url@go1.24.8 - - id: GO-2025-4010 - info: https://pkg.go.dev/vuln/GO-2025-4010 - silence-until: 2026-01-03 - # Quadratic complexity when parsing some invalid inputs in encoding/pem - # Found in: encoding/pem@go1.23.12 - # Fixed in: encoding/pem@go1.24.8 - - id: GO-2025-4009 - info: https://pkg.go.dev/vuln/GO-2025-4009 - silence-until: 2026-01-03 - # ALPN negotiation error contains attacker controlled information in crypto/tls - # Found in: crypto/tls@go1.23.12 - # Fixed in: crypto/tls@go1.24.8 - - id: GO-2025-4008 - info: https://pkg.go.dev/vuln/GO-2025-4008 - silence-until: 2026-01-03 - # Quadratic complexity when checking name constraints in crypto/x509 - # Found in: crypto/x509@go1.23.12 - # Fixed in: crypto/x509@go1.24.9 - - id: GO-2025-4007 - info: https://pkg.go.dev/vuln/GO-2025-4007 - silence-until: 2026-01-03 - # Excessive CPU consumption in ParseAddress in net/mail - # Found in: net/mail@go1.23.12 - # Fixed in: net/mail@go1.24.8 - - id: GO-2025-4006 - info: https://pkg.go.dev/vuln/GO-2025-4006 - silence-until: 2026-01-03 - # Excessive resource consumption when printing error string for host certificate validation in crypto/x509 - # Found in: crypto/x509@go1.23.12 - # Fixed in: crypto/x509@go1.24.11 - - id: GO-2025-4155 - info: https://pkg.go.dev/vuln/GO-2025-4155 - silence-until: 2026-01-03 - # Improper application of excluded DNS name constraints when verifying wildcard names in crypto/x509 - # Found in: crypto/x509@go1.23.12 - # Fixed in: crypto/x509@go1.24.11 - - id: GO-2025-4175 - info: https://pkg.go.dev/vuln/GO-2025-4175 - silence-until: 2026-01-03 \ No newline at end of file +ignored-vulnerabilities: [] \ No newline at end of file diff --git a/README.adoc b/README.adoc index 9f01397a0..97715ca46 100644 --- a/README.adoc +++ b/README.adoc @@ -10,7 +10,7 @@ This is the CodeReady Toolchain Host Operator repository. It contains the OpenSh == Build -Requires Go version 1.23.x (1.23.12 or higher) - download for your development environment https://golang.org/dl/[here]. +Requires Go version 1.24.x (1.24.11 or higher) - download for your development environment https://golang.org/dl/[here]. This repository uses https://github.com/golang/go/wiki/Modules[Go modules]. diff --git a/config/crd/bases/toolchain.dev.openshift.com_bannedusers.yaml b/config/crd/bases/toolchain.dev.openshift.com_bannedusers.yaml index c493f98f0..bb25f8501 100644 --- a/config/crd/bases/toolchain.dev.openshift.com_bannedusers.yaml +++ b/config/crd/bases/toolchain.dev.openshift.com_bannedusers.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.17.3 + controller-gen.kubebuilder.io/version: v0.18.0 name: bannedusers.toolchain.dev.openshift.com spec: group: toolchain.dev.openshift.com diff --git a/config/crd/bases/toolchain.dev.openshift.com_masteruserrecords.yaml b/config/crd/bases/toolchain.dev.openshift.com_masteruserrecords.yaml index fa0d86ea3..05fc680dd 100644 --- a/config/crd/bases/toolchain.dev.openshift.com_masteruserrecords.yaml +++ b/config/crd/bases/toolchain.dev.openshift.com_masteruserrecords.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.17.3 + controller-gen.kubebuilder.io/version: v0.18.0 name: masteruserrecords.toolchain.dev.openshift.com spec: group: toolchain.dev.openshift.com diff --git a/config/crd/bases/toolchain.dev.openshift.com_notifications.yaml b/config/crd/bases/toolchain.dev.openshift.com_notifications.yaml index e7d60d149..2c0241fb1 100644 --- a/config/crd/bases/toolchain.dev.openshift.com_notifications.yaml +++ b/config/crd/bases/toolchain.dev.openshift.com_notifications.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.17.3 + controller-gen.kubebuilder.io/version: v0.18.0 name: notifications.toolchain.dev.openshift.com spec: group: toolchain.dev.openshift.com diff --git a/config/crd/bases/toolchain.dev.openshift.com_nstemplatetiers.yaml b/config/crd/bases/toolchain.dev.openshift.com_nstemplatetiers.yaml index db6fccc9a..8e3b1669c 100644 --- a/config/crd/bases/toolchain.dev.openshift.com_nstemplatetiers.yaml +++ b/config/crd/bases/toolchain.dev.openshift.com_nstemplatetiers.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.17.3 + controller-gen.kubebuilder.io/version: v0.18.0 name: nstemplatetiers.toolchain.dev.openshift.com spec: group: toolchain.dev.openshift.com diff --git a/config/crd/bases/toolchain.dev.openshift.com_proxyplugins.yaml b/config/crd/bases/toolchain.dev.openshift.com_proxyplugins.yaml index abfca0473..cc4544845 100644 --- a/config/crd/bases/toolchain.dev.openshift.com_proxyplugins.yaml +++ b/config/crd/bases/toolchain.dev.openshift.com_proxyplugins.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.17.3 + controller-gen.kubebuilder.io/version: v0.18.0 name: proxyplugins.toolchain.dev.openshift.com spec: group: toolchain.dev.openshift.com diff --git a/config/crd/bases/toolchain.dev.openshift.com_socialevents.yaml b/config/crd/bases/toolchain.dev.openshift.com_socialevents.yaml index aa6da5b63..72a431495 100644 --- a/config/crd/bases/toolchain.dev.openshift.com_socialevents.yaml +++ b/config/crd/bases/toolchain.dev.openshift.com_socialevents.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.17.3 + controller-gen.kubebuilder.io/version: v0.18.0 name: socialevents.toolchain.dev.openshift.com spec: group: toolchain.dev.openshift.com diff --git a/config/crd/bases/toolchain.dev.openshift.com_spacebindingrequests.yaml b/config/crd/bases/toolchain.dev.openshift.com_spacebindingrequests.yaml index 2d1a7b24e..0a2e69a8d 100644 --- a/config/crd/bases/toolchain.dev.openshift.com_spacebindingrequests.yaml +++ b/config/crd/bases/toolchain.dev.openshift.com_spacebindingrequests.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.17.3 + controller-gen.kubebuilder.io/version: v0.18.0 name: spacebindingrequests.toolchain.dev.openshift.com spec: group: toolchain.dev.openshift.com diff --git a/config/crd/bases/toolchain.dev.openshift.com_spacebindings.yaml b/config/crd/bases/toolchain.dev.openshift.com_spacebindings.yaml index e707e78bc..c15ffefa9 100644 --- a/config/crd/bases/toolchain.dev.openshift.com_spacebindings.yaml +++ b/config/crd/bases/toolchain.dev.openshift.com_spacebindings.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.17.3 + controller-gen.kubebuilder.io/version: v0.18.0 name: spacebindings.toolchain.dev.openshift.com spec: group: toolchain.dev.openshift.com diff --git a/config/crd/bases/toolchain.dev.openshift.com_spaceprovisionerconfigs.yaml b/config/crd/bases/toolchain.dev.openshift.com_spaceprovisionerconfigs.yaml index 49f50c3f9..88d33606d 100644 --- a/config/crd/bases/toolchain.dev.openshift.com_spaceprovisionerconfigs.yaml +++ b/config/crd/bases/toolchain.dev.openshift.com_spaceprovisionerconfigs.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.17.3 + controller-gen.kubebuilder.io/version: v0.18.0 name: spaceprovisionerconfigs.toolchain.dev.openshift.com spec: group: toolchain.dev.openshift.com diff --git a/config/crd/bases/toolchain.dev.openshift.com_spacerequests.yaml b/config/crd/bases/toolchain.dev.openshift.com_spacerequests.yaml index f117089de..921c688a7 100644 --- a/config/crd/bases/toolchain.dev.openshift.com_spacerequests.yaml +++ b/config/crd/bases/toolchain.dev.openshift.com_spacerequests.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.17.3 + controller-gen.kubebuilder.io/version: v0.18.0 name: spacerequests.toolchain.dev.openshift.com spec: group: toolchain.dev.openshift.com diff --git a/config/crd/bases/toolchain.dev.openshift.com_spaces.yaml b/config/crd/bases/toolchain.dev.openshift.com_spaces.yaml index 3b56a3d6e..ab8fa2a5e 100644 --- a/config/crd/bases/toolchain.dev.openshift.com_spaces.yaml +++ b/config/crd/bases/toolchain.dev.openshift.com_spaces.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.17.3 + controller-gen.kubebuilder.io/version: v0.18.0 name: spaces.toolchain.dev.openshift.com spec: group: toolchain.dev.openshift.com diff --git a/config/crd/bases/toolchain.dev.openshift.com_tiertemplaterevisions.yaml b/config/crd/bases/toolchain.dev.openshift.com_tiertemplaterevisions.yaml index 2974c4f80..e7fe9492e 100644 --- a/config/crd/bases/toolchain.dev.openshift.com_tiertemplaterevisions.yaml +++ b/config/crd/bases/toolchain.dev.openshift.com_tiertemplaterevisions.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.17.3 + controller-gen.kubebuilder.io/version: v0.18.0 name: tiertemplaterevisions.toolchain.dev.openshift.com spec: group: toolchain.dev.openshift.com diff --git a/config/crd/bases/toolchain.dev.openshift.com_tiertemplates.yaml b/config/crd/bases/toolchain.dev.openshift.com_tiertemplates.yaml index cc79d4916..9662a3b43 100644 --- a/config/crd/bases/toolchain.dev.openshift.com_tiertemplates.yaml +++ b/config/crd/bases/toolchain.dev.openshift.com_tiertemplates.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.17.3 + controller-gen.kubebuilder.io/version: v0.18.0 name: tiertemplates.toolchain.dev.openshift.com spec: group: toolchain.dev.openshift.com diff --git a/config/crd/bases/toolchain.dev.openshift.com_toolchainclusters.yaml b/config/crd/bases/toolchain.dev.openshift.com_toolchainclusters.yaml index 00f57fb39..b95ba89bb 100644 --- a/config/crd/bases/toolchain.dev.openshift.com_toolchainclusters.yaml +++ b/config/crd/bases/toolchain.dev.openshift.com_toolchainclusters.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.17.3 + controller-gen.kubebuilder.io/version: v0.18.0 name: toolchainclusters.toolchain.dev.openshift.com spec: group: toolchain.dev.openshift.com diff --git a/config/crd/bases/toolchain.dev.openshift.com_toolchainconfigs.yaml b/config/crd/bases/toolchain.dev.openshift.com_toolchainconfigs.yaml index 3b9d08a87..9d4e9ee53 100644 --- a/config/crd/bases/toolchain.dev.openshift.com_toolchainconfigs.yaml +++ b/config/crd/bases/toolchain.dev.openshift.com_toolchainconfigs.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.17.3 + controller-gen.kubebuilder.io/version: v0.18.0 name: toolchainconfigs.toolchain.dev.openshift.com spec: group: toolchain.dev.openshift.com diff --git a/config/crd/bases/toolchain.dev.openshift.com_toolchainstatuses.yaml b/config/crd/bases/toolchain.dev.openshift.com_toolchainstatuses.yaml index e56568b1b..23a320899 100644 --- a/config/crd/bases/toolchain.dev.openshift.com_toolchainstatuses.yaml +++ b/config/crd/bases/toolchain.dev.openshift.com_toolchainstatuses.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.17.3 + controller-gen.kubebuilder.io/version: v0.18.0 name: toolchainstatuses.toolchain.dev.openshift.com spec: group: toolchain.dev.openshift.com diff --git a/config/crd/bases/toolchain.dev.openshift.com_usersignups.yaml b/config/crd/bases/toolchain.dev.openshift.com_usersignups.yaml index 9c9a76610..5509075b5 100644 --- a/config/crd/bases/toolchain.dev.openshift.com_usersignups.yaml +++ b/config/crd/bases/toolchain.dev.openshift.com_usersignups.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.17.3 + controller-gen.kubebuilder.io/version: v0.18.0 name: usersignups.toolchain.dev.openshift.com spec: group: toolchain.dev.openshift.com diff --git a/config/crd/bases/toolchain.dev.openshift.com_usertiers.yaml b/config/crd/bases/toolchain.dev.openshift.com_usertiers.yaml index 01ac24d63..f31a1b612 100644 --- a/config/crd/bases/toolchain.dev.openshift.com_usertiers.yaml +++ b/config/crd/bases/toolchain.dev.openshift.com_usertiers.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.17.3 + controller-gen.kubebuilder.io/version: v0.18.0 name: usertiers.toolchain.dev.openshift.com spec: group: toolchain.dev.openshift.com diff --git a/config/scorecard/kustomization.yaml b/config/scorecard/kustomization.yaml index 50cd2d084..fcd601740 100644 --- a/config/scorecard/kustomization.yaml +++ b/config/scorecard/kustomization.yaml @@ -1,6 +1,6 @@ resources: - bases/config.yaml -patchesJson6902: +patches: - path: patches/basic.config.yaml target: group: scorecard.operatorframework.io @@ -13,4 +13,4 @@ patchesJson6902: version: v1alpha3 kind: Configuration name: config -#+kubebuilder:scaffold:patchesJson6902 +#+kubebuilder:scaffold:patches \ No newline at end of file diff --git a/controllers/deactivation/deactivation_controller.go b/controllers/deactivation/deactivation_controller.go index 8f9cc0576..011ea1377 100644 --- a/controllers/deactivation/deactivation_controller.go +++ b/controllers/deactivation/deactivation_controller.go @@ -49,7 +49,7 @@ type Reconciler struct { // Reconcile reads the state of the cluster for a MUR object and determines whether to trigger deactivation or requeue based on its current status // Note: // The Controller will requeue the Request to be processed again if the returned error is non-nil or -// Result.Requeue is true, otherwise upon completion it will remove the work from the queue. +// Result.RequeueAfter > 0 is true, otherwise upon completion it will remove the work from the queue. // nolint: gocyclo func (r *Reconciler) Reconcile(ctx context.Context, request ctrl.Request) (ctrl.Result, error) { logger := log.FromContext(ctx) diff --git a/controllers/deactivation/deactivation_controller_test.go b/controllers/deactivation/deactivation_controller_test.go index bcaaf4491..7876c7c2b 100644 --- a/controllers/deactivation/deactivation_controller_test.go +++ b/controllers/deactivation/deactivation_controller_test.go @@ -25,6 +25,7 @@ import ( murtest "github.com/codeready-toolchain/toolchain-common/pkg/test/masteruserrecord" metricstest "github.com/codeready-toolchain/toolchain-common/pkg/test/metrics" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -224,8 +225,7 @@ func TestReconcile(t *testing.T) { res, err := r.Reconcile(context.TODO(), req) // then require.NoError(t, err) - require.False(t, res.Requeue, "requeue should not be set") - require.Equal(t, time.Duration(0), res.RequeueAfter, "requeueAfter should not be set") + assert.Empty(t, res.RequeueAfter, "requeueAfter should not be set") assertThatUserSignupStateIsDeactivated(t, cl, username, false) }) @@ -238,8 +238,7 @@ func TestReconcile(t *testing.T) { res, err := r.Reconcile(context.TODO(), req) // then require.NoError(t, err) - require.False(t, res.Requeue, "requeue should not be set") - require.Equal(t, time.Duration(0), res.RequeueAfter, "requeueAfter should not be set") + assert.Empty(t, res.RequeueAfter, "requeueAfter should not be set") assertThatUserSignupStateIsDeactivated(t, cl, username, false) }) @@ -283,8 +282,7 @@ func TestReconcile(t *testing.T) { // then require.NoError(t, err) - require.False(t, res.Requeue, "requeue should not be set") - require.Equal(t, time.Duration(0), res.RequeueAfter, "requeueAfter should not be set") + assert.Empty(t, res.RequeueAfter, "requeueAfter should not be set") assertThatUserSignupStateIsDeactivated(t, cl, username, false) // Reload the userSignup @@ -332,7 +330,7 @@ func TestReconcile(t *testing.T) { // then require.NoError(t, err) - require.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) // Reload the userSignup require.NoError(t, cl.Get(context.TODO(), types.NamespacedName{Name: userSignupFoobar.Name, Namespace: operatorNamespace}, userSignupFoobar)) @@ -373,7 +371,7 @@ func TestReconcile(t *testing.T) { // then require.NoError(t, err) - require.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) // Reload the userSignup require.NoError(t, cl.Get(context.TODO(), types.NamespacedName{Name: userSignupFoobar.Name, Namespace: operatorNamespace}, userSignupFoobar)) @@ -428,7 +426,6 @@ func TestReconcile(t *testing.T) { // then require.NoError(t, err) - require.False(t, res.Requeue) // The RequeueAfter should be ~about 3 days... let's accept if it's within 1 hour of that require.WithinDuration(t, time.Now().Add(time.Duration(72)*time.Hour), time.Now().Add(res.RequeueAfter), time.Duration(1)*time.Hour) @@ -466,7 +463,7 @@ func TestReconcile(t *testing.T) { res, err := r.Reconcile(context.TODO(), req) // then require.NoError(t, err) - require.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) // Reload the userSignup require.NoError(t, cl.Get(context.TODO(), types.NamespacedName{Name: userSignupFoobar.Name, Namespace: operatorNamespace}, userSignupFoobar)) @@ -495,8 +492,7 @@ func TestReconcile(t *testing.T) { res, err := r.Reconcile(context.TODO(), req) // then require.NoError(t, err) - require.False(t, res.Requeue, "requeue should not be set") - require.Equal(t, time.Duration(0), res.RequeueAfter, "requeueAfter should not be set") + assert.Empty(t, res.RequeueAfter, "requeueAfter should not be set") }) }) }) @@ -515,8 +511,7 @@ func TestReconcile(t *testing.T) { res, err := r.Reconcile(context.TODO(), req) // then require.NoError(t, err) - require.False(t, res.Requeue, "requeue should not be set") - require.Equal(t, time.Duration(0), res.RequeueAfter, "requeue should not be set") + assert.Empty(t, res.RequeueAfter, "requeue should not be set") assertThatUserSignupStateIsDeactivated(t, cl, username, true) metricstest.AssertMetricsCounterEquals(t, 1, metrics.UserSignupAutoDeactivatedTotal) }) @@ -605,7 +600,7 @@ func TestReconcile(t *testing.T) { // then require.NoError(t, err) - require.False(t, res.Requeue) // no requeue since user should not be auto deactivated + assert.Empty(t, res.RequeueAfter) // no requeue since user should not be auto deactivated // Reload the userSignup require.NoError(t, cl.Get(context.TODO(), types.NamespacedName{Name: userSignupFoobar.Name, Namespace: operatorNamespace}, userSignupFoobar)) @@ -625,7 +620,7 @@ func TestReconcile(t *testing.T) { // The scheduled deactivation time should now be set to nil require.Nil(t, userSignupFoobar.Status.ScheduledDeactivationTimestamp) - require.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) }) }) @@ -724,8 +719,7 @@ func TestReconcile(t *testing.T) { // then require.Error(t, err) require.Contains(t, err.Error(), "usersignup get error") - require.False(t, res.Requeue, "requeue should not be set") - require.Equal(t, time.Duration(0), res.RequeueAfter, "requeueAfter should not be set") + assert.Empty(t, res.RequeueAfter, "requeueAfter should not be set") }) // cannot update UserSignup @@ -757,8 +751,7 @@ func TestReconcile(t *testing.T) { // then require.Error(t, err) require.Contains(t, err.Error(), "usersignup update error") - require.False(t, res.Requeue, "requeue should not be set") - require.Equal(t, time.Duration(0), res.RequeueAfter, "requeueAfter should not be set") + assert.Empty(t, res.RequeueAfter, "requeueAfter should not be set") assertThatUserSignupStateIsDeactivated(t, cl, username, false) }) }) diff --git a/controllers/masteruserrecord/masteruserrecord_controller.go b/controllers/masteruserrecord/masteruserrecord_controller.go index b457e5048..fdb83544a 100644 --- a/controllers/masteruserrecord/masteruserrecord_controller.go +++ b/controllers/masteruserrecord/masteruserrecord_controller.go @@ -70,7 +70,7 @@ type Reconciler struct { // and what is in the MasterUserRecord.Spec // Note: // The Controller will requeue the Request to be processed again if the returned error is non-nil or -// Result.Requeue is true, otherwise upon completion it will remove the work from the queue. +// Result.RequeueAfter > 0 is true, otherwise upon completion it will remove the work from the queue. func (r *Reconciler) Reconcile(ctx context.Context, request ctrl.Request) (ctrl.Result, error) { logger := log.FromContext(ctx) logger.Info("Reconciling MasterUserRecord") diff --git a/controllers/masteruserrecord/masteruserrecord_controller_test.go b/controllers/masteruserrecord/masteruserrecord_controller_test.go index 6d03fc88b..180f89041 100644 --- a/controllers/masteruserrecord/masteruserrecord_controller_test.go +++ b/controllers/masteruserrecord/masteruserrecord_controller_test.go @@ -71,7 +71,7 @@ func TestAddFinalizer(t *testing.T) { // then require.NoError(t, err) - require.False(t, result.Requeue) + assert.Empty(t, result.RequeueAfter) murtest.AssertThatMasterUserRecord(t, "john", hostClient). HasConditions(toBeNotReady(toolchainv1alpha1.MasterUserRecordProvisioningReason, "")). @@ -106,7 +106,7 @@ func TestAddFinalizer(t *testing.T) { // then require.NoError(t, err) - require.False(t, result.Requeue) + assert.Empty(t, result.RequeueAfter) murtest.AssertThatMasterUserRecord(t, "john", hostClient). HasConditions(toBeNotReady(toolchainv1alpha1.MasterUserRecordProvisioningReason, "")). @@ -143,7 +143,7 @@ func TestAddFinalizer(t *testing.T) { // then require.NoError(t, err) - require.False(t, result.Requeue) + assert.Empty(t, result.RequeueAfter) murtest.AssertThatMasterUserRecord(t, "john", hostClient). HasConditions(toBeProvisioned(), toBeProvisionedNotificationCreated()). @@ -1434,7 +1434,7 @@ func TestDisablingMasterUserRecord(t *testing.T) { // when res, err := cntrl.Reconcile(context.TODO(), newMurRequest(mur)) require.NoError(t, err) - assert.Equal(t, reconcile.Result{Requeue: false}, res) + assert.Equal(t, reconcile.Result{RequeueAfter: 0}, res) userAcc := &toolchainv1alpha1.UserAccount{} err = memberClient.Get(context.TODO(), types.NamespacedName{Name: mur.Name, Namespace: "toolchain-member-operator"}, userAcc) require.NoError(t, err) diff --git a/controllers/notification/notification_controller.go b/controllers/notification/notification_controller.go index 920a7b7c1..c03402bad 100644 --- a/controllers/notification/notification_controller.go +++ b/controllers/notification/notification_controller.go @@ -80,7 +80,6 @@ func (r *Reconciler) Reconcile(ctx context.Context, request ctrl.Request) (ctrl. return reconcile.Result{}, r.wrapErrorWithStatusUpdate(ctx, notification, r.setStatusNotificationDeletionFailed, err, "failed to delete notification") } return reconcile.Result{ - Requeue: true, RequeueAfter: requeueAfter, }, nil } @@ -105,7 +104,6 @@ func (r *Reconciler) Reconcile(ctx context.Context, request ctrl.Request) (ctrl. } return reconcile.Result{ - Requeue: true, RequeueAfter: config.Notifications().DurationBeforeNotificationDeletion(), }, r.updateStatus(ctx, notification, r.setStatusNotificationSent) } diff --git a/controllers/notification/notification_controller_test.go b/controllers/notification/notification_controller_test.go index f8d0f483e..de144ed86 100644 --- a/controllers/notification/notification_controller_test.go +++ b/controllers/notification/notification_controller_test.go @@ -58,7 +58,6 @@ func TestNotificationSuccess(t *testing.T) { // then require.NoError(t, err) - assert.True(t, result.Requeue) assert.Greater(t, cast.ToDuration("10s"), result.RequeueAfter) assert.Greater(t, result.RequeueAfter, cast.ToDuration("1s")) ntest.AssertThatNotification(t, notification.Name, cl). @@ -81,7 +80,7 @@ func TestNotificationSuccess(t *testing.T) { // then require.NoError(t, err) - assert.False(t, result.Requeue) + assert.Empty(t, result.RequeueAfter) AssertThatNotificationIsDeleted(t, cl, notification.Name) }) } @@ -110,7 +109,7 @@ func TestNotificationSentFailure(t *testing.T) { // then require.Error(t, err) - require.False(t, result.Requeue) + assert.Empty(t, result.RequeueAfter) assert.Equal(t, err.Error(), fmt.Sprintf("failed to delete notification: unable to delete Notification object '%s': error", notification.Name)) ntest.AssertThatNotification(t, notification.Name, cl). HasConditions(sentCond(), deletionCond(fmt.Sprintf("unable to delete Notification object '%s': error", notification.Name))) @@ -154,7 +153,7 @@ func TestNotificationDelivery(t *testing.T) { // then require.NoError(t, err) - require.True(t, result.Requeue) + assert.Positive(t, result.RequeueAfter) // Load the reconciled notification key := types.NamespacedName{ @@ -201,7 +200,7 @@ func TestNotificationDelivery(t *testing.T) { // then require.NoError(t, err) - require.True(t, result.Requeue) + assert.Positive(t, result.RequeueAfter) // Load the reconciled notification key := types.NamespacedName{ @@ -262,7 +261,7 @@ func TestNotificationDelivery(t *testing.T) { // then require.NoError(t, err) - require.True(t, result.Requeue) + assert.Positive(t, result.RequeueAfter) // Load the reconciled notification key := types.NamespacedName{ @@ -303,7 +302,7 @@ func TestNotificationDelivery(t *testing.T) { // then require.Error(t, err) - require.False(t, result.Requeue) + assert.Empty(t, result.RequeueAfter) require.Equal(t, "failed to send notification: delivery error", err.Error()) // Load the reconciled notification diff --git a/controllers/nstemplatetier/nstemplatetier_controller_test.go b/controllers/nstemplatetier/nstemplatetier_controller_test.go index e295d2653..f596a89bd 100644 --- a/controllers/nstemplatetier/nstemplatetier_controller_test.go +++ b/controllers/nstemplatetier/nstemplatetier_controller_test.go @@ -109,7 +109,7 @@ func TestReconcile(t *testing.T) { res, err = r.Reconcile(context.TODO(), req) // then require.NoError(t, err) - require.Equal(t, reconcile.Result{Requeue: false}, res) // no reconcile + require.Empty(t, res.RequeueAfter) // no reconcile // revisions are the same tiertest.AssertThatNSTemplateTier(t, "base1ns", cl). HasConditions( @@ -158,7 +158,7 @@ func TestReconcile(t *testing.T) { res, err = r.Reconcile(context.TODO(), req) // then require.NoError(t, err) - require.Equal(t, reconcile.Result{Requeue: false}, res) // no reconcile + require.Empty(t, res.RequeueAfter) // no reconcile // revisions are the same tiertest.AssertThatNSTemplateTier(t, "base1ns", cl). HasConditions( diff --git a/controllers/socialevent/socialevent_controller_test.go b/controllers/socialevent/socialevent_controller_test.go index 66f6aaf89..3fc4e1586 100644 --- a/controllers/socialevent/socialevent_controller_test.go +++ b/controllers/socialevent/socialevent_controller_test.go @@ -74,7 +74,7 @@ func TestReconcileSocialEvent(t *testing.T) { // then require.NoError(t, err) - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) // check the social event status socialeventtest.AssertThatSocialEvent(t, test.HostOperatorNs, event.Name, hostClient). HasStatusActivations(2). diff --git a/controllers/space/space_controller.go b/controllers/space/space_controller.go index fdd3f33cc..44bfb4813 100644 --- a/controllers/space/space_controller.go +++ b/controllers/space/space_controller.go @@ -109,7 +109,6 @@ func (r *Reconciler) Reconcile(ctx context.Context, request ctrl.Request) (ctrl. return ctrl.Result{}, err } else if requeueAfter > 0 { return ctrl.Result{ - Requeue: true, RequeueAfter: requeueAfter, }, nil } diff --git a/controllers/space/space_controller_test.go b/controllers/space/space_controller_test.go index 4ee85df6a..2bbdcbe5b 100644 --- a/controllers/space/space_controller_test.go +++ b/controllers/space/space_controller_test.go @@ -21,6 +21,7 @@ import ( murtest "github.com/codeready-toolchain/toolchain-common/pkg/test/masteruserrecord" nstemplatetsettest "github.com/codeready-toolchain/toolchain-common/pkg/test/nstemplateset" spacetest "github.com/codeready-toolchain/toolchain-common/pkg/test/space" + "github.com/spf13/cast" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -75,7 +76,7 @@ func TestCreateSpace(t *testing.T) { // then require.NoError(t, err) - assert.True(t, res.Requeue) // requeue requested explicitly when NSTemplateSet is created, even though watching the resource is enough to trigger a new reconcile loop + assert.Greater(t, res.RequeueAfter, cast.ToDuration("0s")) // requeue requested explicitly when NSTemplateSet is created, even though watching the resource is enough to trigger a new reconcile loop spacetest.AssertThatSpace(t, test.HostOperatorNs, "oddity", hostClient). Exists(). HasStatusTargetCluster("member-1"). @@ -114,7 +115,7 @@ func TestCreateSpace(t *testing.T) { // then require.NoError(t, err) - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) spacetest.AssertThatSpace(t, test.HostOperatorNs, "oddity", hostClient). Exists(). HasStatusTargetCluster("member-1"). @@ -153,7 +154,7 @@ func TestCreateSpace(t *testing.T) { // then require.NoError(t, err) - assert.Equal(t, reconcile.Result{Requeue: false}, res) // no requeue and status with new provisioned namespaces was updated + assert.Equal(t, reconcile.Result{RequeueAfter: 0}, res) // no requeue and status with new provisioned namespaces was updated spacetest.AssertThatSpace(t, test.HostOperatorNs, "oddity", hostClient). Exists(). HasStatusTargetCluster("member-1"). @@ -172,7 +173,7 @@ func TestCreateSpace(t *testing.T) { // then require.NoError(t, err) - assert.Equal(t, reconcile.Result{Requeue: false}, res) // no more requeue. + assert.Equal(t, reconcile.Result{RequeueAfter: 0}, res) // no more requeue. spacetest.AssertThatSpace(t, test.HostOperatorNs, "oddity", hostClient). Exists(). HasStatusTargetCluster("member-1"). @@ -202,7 +203,7 @@ func TestCreateSpace(t *testing.T) { // then require.NoError(t, err) // the lack of target member cluster is valid, hence no error is returned - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) spacetest.AssertThatSpace(t, test.HostOperatorNs, s.Name, hostClient). HasNoStatusTargetCluster(). HasStateLabel("pending"). @@ -226,7 +227,7 @@ func TestCreateSpace(t *testing.T) { // then require.NoError(t, err) // the lack of tierName is valid, hence no error is returned - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) spacetest.AssertThatSpace(t, test.HostOperatorNs, s.Name, hostClient). HasNoStatusTargetCluster(). HasStateLabel("pending"). @@ -309,7 +310,7 @@ func TestCreateSpace(t *testing.T) { // then require.NoError(t, err) // not an error, space simply doesn't exist :shrug: - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) AssertThatCountersAndMetrics(t). HaveSpacesForCluster("member-1", 0). HaveSpacesForCluster("member-2", 0) // no space is created @@ -335,7 +336,7 @@ func TestCreateSpace(t *testing.T) { // then require.EqualError(t, err, "unable to get the current Space: mock error") - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) AssertThatCountersAndMetrics(t). HaveSpacesForCluster("member-1", 0). HaveSpacesForCluster("member-2", 0) // no space is created since `spec.TargetCluster` field is not set @@ -360,7 +361,7 @@ func TestCreateSpace(t *testing.T) { // then require.EqualError(t, err, "mock error") - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) AssertThatCountersAndMetrics(t). HaveSpacesForCluster("member-1", 0). HaveSpacesForCluster("member-2", 0) // no space is created since `spec.TargetCluster` field is not set @@ -380,7 +381,7 @@ func TestCreateSpace(t *testing.T) { // then require.EqualError(t, err, "unknown target member cluster 'unknown'") - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) spacetest.AssertThatSpace(t, test.HostOperatorNs, s.Name, hostClient). HasStatusTargetCluster(""). // has empty target cluster since it wasn't provisioned HasStateLabel("cluster-assigned"). @@ -412,7 +413,7 @@ func TestCreateSpace(t *testing.T) { // then require.EqualError(t, err, "mock error") - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) spacetest.AssertThatSpace(t, test.HostOperatorNs, s.Name, hostClient). HasSpecTargetCluster("member-1"). HasConditions(spacetest.ProvisioningFailed("mock error")) @@ -444,7 +445,7 @@ func TestCreateSpace(t *testing.T) { // then require.EqualError(t, err, "mock error") - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) spacetest.AssertThatSpace(t, test.HostOperatorNs, s.Name, hostClient). HasStatusTargetCluster("member-1"). HasConditions(spacetest.UnableToCreateNSTemplateSet("mock error")) @@ -476,7 +477,7 @@ func TestCreateSpace(t *testing.T) { // then require.EqualError(t, err, "mock error") - assert.Equal(t, reconcile.Result{Requeue: false}, res) + assert.Equal(t, reconcile.Result{RequeueAfter: 0}, res) spacetest.AssertThatSpace(t, test.HostOperatorNs, s.Name, hostClient). HasStatusTargetCluster("member-1"). HasConditions(spacetest.UnableToCreateNSTemplateSet("mock error")) @@ -507,7 +508,7 @@ func TestCreateSpace(t *testing.T) { // then require.EqualError(t, err, "mock error") - assert.Equal(t, reconcile.Result{Requeue: false}, res) + assert.Equal(t, reconcile.Result{RequeueAfter: 0}, res) spacetest.AssertThatSpace(t, test.HostOperatorNs, s.Name, hostClient). HasNoStatusTargetCluster(). // not set HasNoConditions() // not set @@ -552,7 +553,7 @@ func TestCreateSpace(t *testing.T) { // then require.EqualError(t, err, "error setting provisioned namespaces: update error") - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) spacetest.AssertThatSpace(t, test.HostOperatorNs, s.Name, hostClient). HasStatusProvisionedNamespaces([]toolchainv1alpha1.SpaceNamespace(nil)) // unable to set list of namespaces }) @@ -587,7 +588,7 @@ func TestDeleteSpace(t *testing.T) { // then require.NoError(t, err) - assert.Equal(t, reconcile.Result{Requeue: false}, res) // no need to explicitly requeue while the NSTemplate is terminating + assert.Equal(t, reconcile.Result{RequeueAfter: 0}, res) // no need to explicitly requeue while the NSTemplate is terminating spacetest.AssertThatSpace(t, s.Namespace, s.Name, hostClient). Exists(). HasFinalizer(). // finalizer is still present while the NSTemplateSet is not fully deleted @@ -619,7 +620,7 @@ func TestDeleteSpace(t *testing.T) { // then require.NoError(t, err) - assert.Equal(t, reconcile.Result{Requeue: false}, res) // no need to explicitly requeue while the NSTemplate is terminating + assert.Equal(t, reconcile.Result{RequeueAfter: 0}, res) // no need to explicitly requeue while the NSTemplate is terminating // no changes spacetest.AssertThatSpace(t, s.Namespace, s.Name, hostClient). Exists(). @@ -654,7 +655,7 @@ func TestDeleteSpace(t *testing.T) { // then require.NoError(t, err) - assert.Equal(t, reconcile.Result{Requeue: false}, res) // no need to explicitly requeue while the NSTemplate is terminating + assert.Equal(t, reconcile.Result{RequeueAfter: 0}, res) // no need to explicitly requeue while the NSTemplate is terminating spacetest.AssertThatSpace(t, s.Namespace, s.Name, hostClient). Exists(). HasStatusTargetCluster("member-1"). @@ -745,7 +746,7 @@ func TestDeleteSpace(t *testing.T) { // then require.NoError(t, err) - assert.Equal(t, reconcile.Result{Requeue: false}, res) // no requeue needed + assert.Equal(t, reconcile.Result{RequeueAfter: 0}, res) // no requeue needed spacetest.AssertThatSpace(t, s.Namespace, s.Name, hostClient). DoesNotExist() nstemplatetsettest.AssertThatNSTemplateSet(t, test.MemberOperatorNs, "oddity", member1.Client). @@ -775,7 +776,7 @@ func TestDeleteSpace(t *testing.T) { // then require.EqualError(t, err, "cannot delete NSTemplateSet: unknown target member cluster: 'member-3'") - assert.Equal(t, reconcile.Result{Requeue: false}, res) // no requeue needed + assert.Equal(t, reconcile.Result{RequeueAfter: 0}, res) // no requeue needed spacetest.AssertThatSpace(t, s.Namespace, s.Name, hostClient). Exists(). HasFinalizer(). // finalizer is still there, until the error above is fixed @@ -817,7 +818,7 @@ func TestDeleteSpace(t *testing.T) { // then require.EqualError(t, err, "mock error") - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) spacetest.AssertThatSpace(t, test.HostOperatorNs, s.Name, hostClient). Exists(). HasFinalizer(). @@ -859,7 +860,7 @@ func TestDeleteSpace(t *testing.T) { // then require.EqualError(t, err, "NSTemplateSet deletion has not completed in over 1 minute") - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) spacetest.AssertThatSpace(t, test.HostOperatorNs, s.Name, hostClient). Exists(). HasFinalizer(). @@ -917,7 +918,6 @@ func TestUpdateSpaceTier(t *testing.T) { // then require.NoError(t, err) assert.Equal(t, reconcile.Result{ - Requeue: true, RequeueAfter: 1 * time.Second, }, res) // explicitly requeue while the NSTemplate update is triggered by its controller spacetest.AssertThatSpace(t, test.HostOperatorNs, "oddity", hostClient). @@ -951,7 +951,7 @@ func TestUpdateSpaceTier(t *testing.T) { // then require.NoError(t, err) - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) spacetest.AssertThatSpace(t, test.HostOperatorNs, "oddity", hostClient). Exists(). HasTier(otherTier.Name). @@ -979,7 +979,6 @@ func TestUpdateSpaceTier(t *testing.T) { // then require.NoError(t, err) assert.Equal(t, reconcile.Result{ - Requeue: true, RequeueAfter: 1 * time.Second, }, res) // requeue requested s := spacetest.AssertThatSpace(t, test.HostOperatorNs, "oddity", hostClient). @@ -1008,7 +1007,7 @@ func TestUpdateSpaceTier(t *testing.T) { // then require.NoError(t, err) - assert.Equal(t, reconcile.Result{Requeue: false}, res) // no more requeue. + assert.Equal(t, reconcile.Result{RequeueAfter: 0}, res) // no more requeue. spacetest.AssertThatSpace(t, test.HostOperatorNs, "oddity", hostClient). Exists(). HasStatusTargetCluster("member-1"). @@ -1058,7 +1057,6 @@ func TestUpdateSpaceTier(t *testing.T) { // then require.NoError(t, err) assert.Equal(t, reconcile.Result{ - Requeue: true, // explicitly requeue while the NSTemplateSet update is triggered by its controller RequeueAfter: 1 * time.Second, // requeued by 1s (since the last update happened a long time ago enough) }, res) s = spacetest.AssertThatSpace(t, test.HostOperatorNs, "oddity", hostClient). @@ -1096,7 +1094,7 @@ func TestUpdateSpaceTier(t *testing.T) { // then require.NoError(t, err) - assert.Equal(t, reconcile.Result{Requeue: false}, res) // no more requeue. + assert.Equal(t, reconcile.Result{RequeueAfter: 0}, res) // no more requeue. spacetest.AssertThatSpace(t, test.HostOperatorNs, "oddity", hostClient). Exists(). HasStatusTargetCluster("member-1"). @@ -1142,7 +1140,6 @@ func TestUpdateSpaceTier(t *testing.T) { // then require.NoError(t, err) - assert.True(t, res.Requeue) assert.LessOrEqual(t, res.RequeueAfter, 2*time.Second) // wait 2s for NSTemplateSet update to begin assert.LessOrEqual(t, time.Until(ctrl.NextScheduledUpdate), 2*time.Second) // check that the NSTemplateSet is not being updated @@ -1175,7 +1172,6 @@ func TestUpdateSpaceTier(t *testing.T) { // then require.NoError(t, err) - assert.True(t, res.Requeue) assert.LessOrEqual(t, res.RequeueAfter, time.Minute+(2*time.Second)) // wait 2s for NSTemplateSet update to begin assert.LessOrEqual(t, time.Until(ctrl.NextScheduledUpdate), time.Minute+(2*time.Second)) // check that the NSTemplateSet is not being updated @@ -1305,7 +1301,7 @@ func TestUpdateSpaceTier(t *testing.T) { // then require.NoError(t, err) - assert.False(t, res.Requeue) // no need to requeue since the NSTemplate is already up-to-date + assert.Empty(t, res.RequeueAfter) // no need to requeue since the NSTemplate is already up-to-date spacetest.AssertThatSpace(t, test.HostOperatorNs, "oddity", hostClient). Exists(). HasTier(base1nsTier.Name). @@ -1347,7 +1343,7 @@ func TestUpdateSpaceTier(t *testing.T) { // then require.NoError(t, err) - assert.True(t, res.Requeue) + assert.Greater(t, res.RequeueAfter, cast.ToDuration("0s")) spacetest.AssertThatSpace(t, test.HostOperatorNs, notReadySpace.Name, hostClient). HasConditions(spacetest.Updating()) nstemplatetsettest.AssertThatNSTemplateSet(t, test.MemberOperatorNs, notReadyTmplSet.Name, member1Client). @@ -1388,7 +1384,7 @@ func TestUpdateSpaceTier(t *testing.T) { // then require.NoError(t, err) - assert.True(t, res.Requeue) + assert.Greater(t, res.RequeueAfter, cast.ToDuration("0s")) spacetest.AssertThatSpace(t, test.HostOperatorNs, notReadySpace.Name, hostClient). HasConditions(spacetest.Updating()) // changed by controller nstemplatetsettest.AssertThatNSTemplateSet(t, test.MemberOperatorNs, notReadyTmplSet.Name, member1Client). @@ -1436,7 +1432,7 @@ func TestUpdateSpaceTier(t *testing.T) { // then require.EqualError(t, err, "mock error") - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) spacetest.AssertThatSpace(t, test.HostOperatorNs, s.Name, hostClient). Exists(). HasStatusTargetCluster("member-1"). @@ -1478,7 +1474,7 @@ func TestUpdateSpaceTier(t *testing.T) { // then require.EqualError(t, err, "mock error") - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) spacetest.AssertThatSpace(t, test.HostOperatorNs, "oddity", hostClient). Exists(). HasTier(otherTier.Name). @@ -1520,7 +1516,6 @@ func TestUpdateSpaceTier(t *testing.T) { // then require.Error(t, err, "The nstemplatier status.revisions is still not updated") assert.Equal(t, reconcile.Result{ - Requeue: false, RequeueAfter: 0, }, res) }) @@ -1584,7 +1579,7 @@ func TestUpdateSpaceRoles(t *testing.T) { // then require.NoError(t, err) - assert.True(t, res.Requeue) // expect a requeue since the NSTemplateSet was updated + assert.Greater(t, res.RequeueAfter, cast.ToDuration("0s")) // expect a requeue since the NSTemplateSet was updated // Space should be in "updating" state while the NSTemplateSet is being updated spacetest.AssertThatSpace(t, test.HostOperatorNs, s.Name, hostClient). HasConditions(spacetest.Updating()) @@ -1647,7 +1642,7 @@ func TestUpdateSpaceRoles(t *testing.T) { // then require.NoError(t, err) - assert.False(t, res.Requeue) // no requeue since the NSTemplateSet was not updated + assert.Empty(t, res.RequeueAfter) // no requeue since the NSTemplateSet was not updated spacetest.AssertThatSpace(t, test.HostOperatorNs, s.Name, hostClient). HasConditions(spacetest.Ready()) // NSTemplateSet should have an spaceRoles entry for the `mur` @@ -1703,7 +1698,7 @@ func TestUpdateSpaceRoles(t *testing.T) { // then require.NoError(t, err) - assert.True(t, res.Requeue) // expect a requeue since the NSTemplateSet was updated + assert.Greater(t, res.RequeueAfter, cast.ToDuration("0s")) // expect a requeue since the NSTemplateSet was updated // Space should be in "updating" state while the NSTemplateSet is being updated spacetest.AssertThatSpace(t, test.HostOperatorNs, s.Name, hostClient). HasConditions(spacetest.Updating()) @@ -1762,7 +1757,7 @@ func TestUpdateSpaceRoles(t *testing.T) { // then require.NoError(t, err) - assert.True(t, res.Requeue) // expect a requeue since the NSTemplateSet was updated + assert.Greater(t, res.RequeueAfter, cast.ToDuration("0s")) // expect a requeue since the NSTemplateSet was updated // Space should be in "updating" state while the NSTemplateSet is being updated spacetest.AssertThatSpace(t, test.HostOperatorNs, s.Name, hostClient). HasConditions(spacetest.Updating()) @@ -1807,7 +1802,7 @@ func TestRetargetSpace(t *testing.T) { // then require.NoError(t, err) - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) spacetest.AssertThatSpace(t, test.HostOperatorNs, s.Name, hostClient). HasFinalizer(). HasNoSpecTargetCluster(). @@ -1825,7 +1820,7 @@ func TestRetargetSpace(t *testing.T) { res, err := ctrl.Reconcile(context.TODO(), requestFor(s)) // then require.NoError(t, err) - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) spacetest.AssertThatSpace(t, test.HostOperatorNs, s.Name, hostClient). HasFinalizer(). HasNoSpecTargetCluster(). @@ -1862,7 +1857,7 @@ func TestRetargetSpace(t *testing.T) { // then require.NoError(t, err) - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) spacetest.AssertThatSpace(t, test.HostOperatorNs, s.Name, hostClient). HasFinalizer(). HasSpecTargetCluster("member-2"). @@ -1877,7 +1872,7 @@ func TestRetargetSpace(t *testing.T) { res, err := ctrl.Reconcile(context.TODO(), requestFor(s)) // then require.NoError(t, err) - assert.True(t, res.Requeue) // requeue requested explicitly when NSTemplateSet is created, even though watching the resource is enough to trigger a new reconcile loop + assert.Greater(t, res.RequeueAfter, cast.ToDuration("0s")) // requeue requested explicitly when NSTemplateSet is created, even though watching the resource is enough to trigger a new reconcile loop spacetest.AssertThatSpace(t, s.Namespace, s.Name, hostClient). HasFinalizer(). HasSpecTargetCluster("member-2"). @@ -1925,7 +1920,7 @@ func TestRetargetSpace(t *testing.T) { // then require.EqualError(t, err, "mock error") - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) spacetest.AssertThatSpace(t, test.HostOperatorNs, s.Name, hostClient). HasFinalizer(). HasSpecTargetCluster("member-2"). @@ -1958,7 +1953,7 @@ func TestRetargetSpace(t *testing.T) { // then require.EqualError(t, err, "mock error") - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) spacetest.AssertThatSpace(t, test.HostOperatorNs, s.Name, hostClient). HasFinalizer(). HasSpecTargetCluster("member-2"). diff --git a/controllers/spacecleanup/space_cleanup_controller.go b/controllers/spacecleanup/space_cleanup_controller.go index cb7ef1d7b..364c9a36a 100644 --- a/controllers/spacecleanup/space_cleanup_controller.go +++ b/controllers/spacecleanup/space_cleanup_controller.go @@ -70,48 +70,47 @@ func (r *Reconciler) Reconcile(ctx context.Context, request ctrl.Request) (ctrl. return reconcile.Result{}, nil } - requeue, requeueAfter, err := r.ensureDeletionIfNeeded(ctx, space) + requeueAfter, err := r.ensureDeletionIfNeeded(ctx, space) return ctrl.Result{ - Requeue: requeue, RequeueAfter: requeueAfter, }, err } -func (r *Reconciler) ensureDeletionIfNeeded(ctx context.Context, space *toolchainv1alpha1.Space) (bool, time.Duration, error) { +func (r *Reconciler) ensureDeletionIfNeeded(ctx context.Context, space *toolchainv1alpha1.Space) (time.Duration, error) { logger := log.FromContext(ctx) bindings := &toolchainv1alpha1.SpaceBindingList{} labelMatch := runtimeclient.MatchingLabels{toolchainv1alpha1.SpaceBindingSpaceLabelKey: space.Name} if err := r.Client.List(ctx, bindings, runtimeclient.InNamespace(space.Namespace), labelMatch); err != nil { - return false, 0, errs.Wrap(err, "unable to list SpaceBindings") + return 0, errs.Wrap(err, "unable to list SpaceBindings") } if len(bindings.Items) > 0 { logger.Info("Space has SpaceBindings - skipping...", "number-of-spacebindings", len(bindings.Items)) - return false, 0, nil + return 0, nil } // check if space has a parentSpace // in this case the deletion will be handled by the SR controller if found := r.hasParentSpaceSpec(space); found { // do not delete this space since has a parent-space set - return false, 0, nil + return 0, nil } timeSinceCreation := time.Since(space.GetCreationTimestamp().Time) if timeSinceCreation > deletionTimeThreshold { if err := r.Client.Delete(ctx, space); err != nil { - return false, 0, errs.Wrap(err, "unable to delete Space") + return 0, errs.Wrap(err, "unable to delete Space") } logger.Info("Space has been deleted") - return false, 0, nil + return 0, nil } requeueAfter := deletionTimeThreshold - timeSinceCreation logger.Info("Space is not ready for deletion yet", "requeue-after", requeueAfter, "created", space.CreationTimestamp) - return true, requeueAfter, nil + return requeueAfter, nil } // hasParentSpaceSpec verifies if there .spec.ParentSpace field is set in the current Space. diff --git a/controllers/spacecleanup/space_cleanup_controller_test.go b/controllers/spacecleanup/space_cleanup_controller_test.go index 80cca72e4..de61607f9 100644 --- a/controllers/spacecleanup/space_cleanup_controller_test.go +++ b/controllers/spacecleanup/space_cleanup_controller_test.go @@ -34,7 +34,7 @@ func TestCleanupSpace(t *testing.T) { // then require.NoError(t, err) - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) spacetest.AssertThatSpace(t, test.HostOperatorNs, space.Name, cl). DoesNotExist() }) @@ -49,7 +49,6 @@ func TestCleanupSpace(t *testing.T) { // then require.NoError(t, err) - assert.True(t, res.Requeue) assert.LessOrEqual(t, res.RequeueAfter, time.Second) spacetest.AssertThatSpace(t, test.HostOperatorNs, space.Name, cl). Exists() @@ -66,7 +65,7 @@ func TestCleanupSpace(t *testing.T) { // then require.NoError(t, err) - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) spacetest.AssertThatSpace(t, test.HostOperatorNs, space.Name, cl). Exists() }) @@ -81,7 +80,7 @@ func TestCleanupSpace(t *testing.T) { // then require.NoError(t, err) - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) spacetest.AssertThatSpace(t, test.HostOperatorNs, space.Name, cl). Exists() }) @@ -101,7 +100,7 @@ func TestCleanupSpace(t *testing.T) { // then require.NoError(t, err) - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) }) t.Run("with ParentSpace - Space shouldn't be deleted", func(t *testing.T) { @@ -121,7 +120,7 @@ func TestCleanupSpace(t *testing.T) { // then require.NoError(t, err) - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) spacetest.AssertThatSpace(t, test.HostOperatorNs, subSpace.Name, cl). Exists() }) @@ -145,7 +144,7 @@ func TestCleanupSpace(t *testing.T) { // then require.NoError(t, err) - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) spacetest.AssertThatSpace(t, test.HostOperatorNs, subSpace.Name, cl). Exists() }) @@ -163,7 +162,7 @@ func TestCleanupSpace(t *testing.T) { // then require.NoError(t, err) - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) spacetest.AssertThatSpace(t, test.HostOperatorNs, subSpace.Name, cl). Exists() }) @@ -183,7 +182,7 @@ func TestCleanupSpace(t *testing.T) { // then require.EqualError(t, err, "unable to get the current Space: some error") - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) cl.MockGet = nil spacetest.AssertThatSpace(t, test.HostOperatorNs, space.Name, cl). Exists() @@ -202,7 +201,7 @@ func TestCleanupSpace(t *testing.T) { // then require.EqualError(t, err, "unable to list SpaceBindings: some error") - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) spacetest.AssertThatSpace(t, test.HostOperatorNs, space.Name, cl). Exists() }) @@ -220,7 +219,7 @@ func TestCleanupSpace(t *testing.T) { // then require.EqualError(t, err, "unable to delete Space: some error") - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) spacetest.AssertThatSpace(t, test.HostOperatorNs, space.Name, cl). Exists() }) diff --git a/controllers/spaceprovisionerconfig/spaceprovisionerconfig_controller_test.go b/controllers/spaceprovisionerconfig/spaceprovisionerconfig_controller_test.go index 56e47d271..5abd87dce 100644 --- a/controllers/spaceprovisionerconfig/spaceprovisionerconfig_controller_test.go +++ b/controllers/spaceprovisionerconfig/spaceprovisionerconfig_controller_test.go @@ -371,7 +371,7 @@ func TestSpaceProvisionerConfigReEnqueing(t *testing.T) { // then require.NoError(t, reconcileErr) - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) assert.Empty(t, spc.Status.Conditions) }) t.Run("doesn't re-enqueue when object being deleted", func(t *testing.T) { @@ -387,7 +387,7 @@ func TestSpaceProvisionerConfigReEnqueing(t *testing.T) { // then require.NoError(t, reconcileErr) - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) assert.Empty(t, spc.Status.Conditions) }) t.Run("doesn't re-enqueue when ToolchainCluster not found", func(t *testing.T) { @@ -407,7 +407,7 @@ func TestSpaceProvisionerConfigReEnqueing(t *testing.T) { // then require.NoError(t, reconcileErr) - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) assert.NotEmpty(t, spc.Status.Conditions) }) } diff --git a/controllers/toolchainconfig/toolchainconfig_controller.go b/controllers/toolchainconfig/toolchainconfig_controller.go index 4d813130b..25fa2bfbc 100644 --- a/controllers/toolchainconfig/toolchainconfig_controller.go +++ b/controllers/toolchainconfig/toolchainconfig_controller.go @@ -76,7 +76,7 @@ type Reconciler struct { // and what is in the ToolchainConfig.Spec // Note: // The Controller will requeue the Request to be processed again if the returned error is non-nil or -// Result.Requeue is true, otherwise upon completion it will remove the work from the queue. +// Result.RequeueAfter > 0 is true, otherwise upon completion it will remove the work from the queue. func (r *Reconciler) Reconcile(ctx context.Context, request ctrl.Request) (ctrl.Result, error) { reqLogger := log.FromContext(ctx) reqLogger.Info("Reconciling ToolchainConfig") diff --git a/controllers/usersignup/usersignup_controller.go b/controllers/usersignup/usersignup_controller.go index f5efbad6a..279f926ed 100644 --- a/controllers/usersignup/usersignup_controller.go +++ b/controllers/usersignup/usersignup_controller.go @@ -87,7 +87,7 @@ type Reconciler struct { // and what is in the UserSignup.Spec // Note: // The Controller will requeue the Request to be processed again if the returned error is non-nil or -// Result.Requeue is true, otherwise upon completion it will remove the work from the queue. +// Result.RequeueAfter > 0 is true, otherwise upon completion it will remove the work from the queue. func (r *Reconciler) Reconcile(ctx context.Context, request ctrl.Request) (ctrl.Result, error) { logger := log.FromContext(ctx) logger.Info("Reconciling UserSignup") diff --git a/controllers/usersignup/usersignup_controller_test.go b/controllers/usersignup/usersignup_controller_test.go index ac952c6f5..a5d8871a0 100644 --- a/controllers/usersignup/usersignup_controller_test.go +++ b/controllers/usersignup/usersignup_controller_test.go @@ -976,7 +976,7 @@ func TestUnapprovedUserSignupWhenNoClusterReady(t *testing.T) { // then // it should not return an error but just wait for another reconcile triggered by updated ToolchainStatus require.NoError(t, err) - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) err = r.Client.Get(context.TODO(), types.NamespacedName{Name: userSignup.Name, Namespace: req.Namespace}, userSignup) require.NoError(t, err) t.Logf("usersignup status: %+v", userSignup.Status) @@ -1039,7 +1039,7 @@ func TestUserSignupFailedNoClusterWithCapacityAvailable(t *testing.T) { // then // it should not return an error but just wait for another reconcile triggered by updated ToolchainStatus require.NoError(t, err) - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) err = r.Client.Get(context.TODO(), types.NamespacedName{Name: userSignup.Name, Namespace: req.Namespace}, userSignup) require.NoError(t, err) t.Logf("usersignup status: %+v", userSignup.Status) @@ -4567,7 +4567,7 @@ func TestUserSignupLastTargetClusterAnnotation(t *testing.T) { // then require.NoError(t, err) - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) AssertThatUserSignup(t, req.Namespace, userSignup.Name, r.Client). HasAnnotation(toolchainv1alpha1.UserSignupLastTargetClusterAnnotationKey, "member1") murtest.AssertThatMasterUserRecords(t, r.Client).HaveCount(1) @@ -4589,7 +4589,7 @@ func TestUserSignupLastTargetClusterAnnotation(t *testing.T) { // then require.NoError(t, err) - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) AssertThatUserSignup(t, req.Namespace, userSignup.Name, r.Client).HasAnnotation(toolchainv1alpha1.UserSignupLastTargetClusterAnnotationKey, "member1") murtest.AssertThatMasterUserRecords(t, r.Client).HaveCount(1) murtest.AssertThatMasterUserRecord(t, userSignup.Name, r.Client).HasTargetCluster("member1") @@ -4615,7 +4615,7 @@ func TestUserSignupLastTargetClusterAnnotation(t *testing.T) { // then require.NoError(t, err) - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) AssertThatUserSignup(t, req.Namespace, userSignup.Name, r.Client). HasAnnotation(toolchainv1alpha1.UserSignupLastTargetClusterAnnotationKey, "member2") murtest.AssertThatMasterUserRecords(t, r.Client).HaveCount(1) @@ -4636,7 +4636,7 @@ func TestUserSignupLastTargetClusterAnnotation(t *testing.T) { // then require.NoError(t, err) - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) AssertThatUserSignup(t, req.Namespace, userSignup.Name, r.Client). HasAnnotation(toolchainv1alpha1.UserSignupLastTargetClusterAnnotationKey, "member1") murtest.AssertThatMasterUserRecords(t, r.Client).HaveCount(1) @@ -4671,7 +4671,7 @@ func TestUserSignupLastTargetClusterAnnotation(t *testing.T) { // then require.EqualError(t, err, "unable to update last target cluster annotation on UserSignup resource: error") - assert.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) AssertThatUserSignup(t, req.Namespace, userSignupName, cl). DoesNotHaveAnnotation(toolchainv1alpha1.UserSignupLastTargetClusterAnnotationKey) murtest.AssertThatMasterUserRecords(t, r.Client).HaveCount(0) diff --git a/controllers/usersignupcleanup/usersignup_cleanup_controller.go b/controllers/usersignupcleanup/usersignup_cleanup_controller.go index 2c5731c79..f8d9a49d1 100644 --- a/controllers/usersignupcleanup/usersignup_cleanup_controller.go +++ b/controllers/usersignupcleanup/usersignup_cleanup_controller.go @@ -56,7 +56,7 @@ type Reconciler struct { // and what is in the UserSignup.Spec // Note: // The Controller will requeue the Request to be processed again if the returned error is non-nil or -// Result.Requeue is true, otherwise upon completion it will remove the work from the queue. +// Result.RequeueAfter > 0 is true, otherwise upon completion it will remove the work from the queue. func (r *Reconciler) Reconcile(ctx context.Context, request ctrl.Request) (ctrl.Result, error) { reqLogger := log.FromContext(ctx) reqLogger.Info("Reconciling UserSignup") @@ -108,7 +108,6 @@ func (r *Reconciler) Reconcile(ctx context.Context, request ctrl.Request) (ctrl. // Requeue the reconciler to process this resource again after the threshold for unverified user deletion return reconcile.Result{ - Requeue: true, RequeueAfter: requeueAfter, }, nil } @@ -178,7 +177,6 @@ func (r *Reconciler) Reconcile(ctx context.Context, request ctrl.Request) (ctrl. // Requeue the reconciler to process this resource again after the threshold for deletion return reconcile.Result{ - Requeue: true, RequeueAfter: requeueAfter, }, nil } diff --git a/controllers/usersignupcleanup/usersignup_cleanup_controller_test.go b/controllers/usersignupcleanup/usersignup_cleanup_controller_test.go index 881836115..f6f00c548 100644 --- a/controllers/usersignupcleanup/usersignup_cleanup_controller_test.go +++ b/controllers/usersignupcleanup/usersignup_cleanup_controller_test.go @@ -208,7 +208,7 @@ func TestUserCleanup(t *testing.T) { err = r.Client.Get(context.Background(), key, userSignup) require.NoError(t, err) require.NotNil(t, userSignup) - require.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) }) t.Run("test that reactivated, unverified UserSignup long time ago is reset", func(t *testing.T) { @@ -251,7 +251,7 @@ func TestUserCleanup(t *testing.T) { err = r.Client.Get(context.Background(), key, userSignup) require.NoError(t, err) require.NotNil(t, userSignup) - require.False(t, res.Requeue) + assert.Empty(t, res.RequeueAfter) }) t.Run("test old deactivated UserSignup cleanup", func(t *testing.T) { @@ -419,7 +419,6 @@ func expectRequeue(t *testing.T, res reconcile.Result, margin int) { durLower := time.Duration(days(1460 - 1 - margin)) durUpper := time.Duration(days(1460 + 1 - margin)) - require.True(t, res.Requeue) require.Greater(t, res.RequeueAfter, durLower) require.Less(t, res.RequeueAfter, durUpper) } diff --git a/go.mod b/go.mod index 4dc2250ab..8dc9370a9 100644 --- a/go.mod +++ b/go.mod @@ -2,18 +2,18 @@ module github.com/codeready-toolchain/host-operator require ( cloud.google.com/go/recaptchaenterprise/v2 v2.13.0 - github.com/codeready-toolchain/api v0.0.0-20251008084914-06282b83d4cd - github.com/codeready-toolchain/toolchain-common v0.0.0-20251125180949-6ed5aeed75e4 + github.com/codeready-toolchain/api v0.0.0-20260108115150-4c6695ed18de + github.com/codeready-toolchain/toolchain-common v0.0.0-20260108130331-10ca562525fe github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/go-logr/logr v1.4.2 github.com/gofrs/uuid v4.4.0+incompatible github.com/mailgun/mailgun-go/v4 v4.8.1 - // using latest commit from 'github.com/openshift/api branch release-4.19' - github.com/openshift/api v0.0.0-20250903165707-ce7baf0afbc4 - // using latest commit from 'github.com/openshift/library-go branch release-4.19' - github.com/openshift/library-go v0.0.0-20250826065405-6d18d1191f49 // indirect + // using latest commit from 'github.com/openshift/api branch release-4.20' + github.com/openshift/api v0.0.0-20251202204302-1cb53e34ca33 + // using latest commit from 'github.com/openshift/library-go branch release-4.20' + github.com/openshift/library-go v0.0.0-20251110200504-2685cf1242fc // indirect github.com/pkg/errors v0.9.1 - github.com/prometheus/client_golang v1.19.1 + github.com/prometheus/client_golang v1.22.0 github.com/redhat-cop/operator-utils v1.3.8 github.com/segmentio/analytics-go/v3 v3.2.1 github.com/spf13/cast v1.3.1 @@ -21,33 +21,33 @@ require ( go.uber.org/zap v1.27.0 gopkg.in/h2non/gock.v1 v1.0.14 gopkg.in/yaml.v2 v2.4.0 - k8s.io/api v0.32.2 - k8s.io/apiextensions-apiserver v0.32.2 - k8s.io/apimachinery v0.32.2 - k8s.io/client-go v0.32.2 + k8s.io/api v0.33.4 + k8s.io/apiextensions-apiserver v0.33.4 + k8s.io/apimachinery v0.33.4 + k8s.io/client-go v0.33.4 k8s.io/klog v1.0.0 k8s.io/klog/v2 v2.130.1 - sigs.k8s.io/controller-runtime v0.20.4 - sigs.k8s.io/controller-tools v0.17.3 - sigs.k8s.io/kustomize/kustomize/v5 v5.5.0 + sigs.k8s.io/controller-runtime v0.21.0 + sigs.k8s.io/controller-tools v0.18.0 + sigs.k8s.io/kustomize/kustomize/v5 v5.6.0 ) require ( - k8s.io/kubectl v0.32.2 - k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 // indirect + k8s.io/kubectl v0.33.4 + k8s.io/utils v0.0.0-20241210054802-24370beab758 // indirect ) require ( github.com/go-bindata/go-bindata/v3 v3.1.3 - k8s.io/code-generator v0.32.2 + k8s.io/code-generator v0.33.4 k8s.io/gengo v0.0.0-20230829151522-9cce18d56c01 - k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f + k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff ) require ( cloud.google.com/go/auth v0.3.0 // indirect cloud.google.com/go/auth/oauth2adapt v0.2.2 // indirect - cloud.google.com/go/compute/metadata v0.3.0 // indirect + cloud.google.com/go/compute/metadata v0.5.0 // indirect github.com/BurntSushi/toml v1.3.2 // indirect github.com/Masterminds/goutils v1.1.1 // indirect github.com/Masterminds/semver/v3 v3.2.0 // indirect @@ -75,11 +75,10 @@ require ( github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/google/btree v1.1.3 // indirect - github.com/google/gnostic-models v0.6.8 // indirect + github.com/google/gnostic-models v0.6.9 // indirect github.com/google/go-cmp v0.7.0 // indirect github.com/google/go-github/v52 v52.0.0 // indirect github.com/google/go-querystring v1.1.0 // indirect - github.com/google/gofuzz v1.2.0 // indirect github.com/google/s2a-go v0.1.7 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect github.com/google/uuid v1.6.0 // indirect @@ -93,6 +92,7 @@ require ( github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/kisielk/errcheck v1.5.0 // indirect + github.com/kylelemons/godebug v1.1.0 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect @@ -105,7 +105,7 @@ require ( github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.55.0 // indirect + github.com/prometheus/common v0.62.0 // indirect github.com/prometheus/procfs v0.15.1 // indirect github.com/segmentio/backo-go v1.0.0 // indirect github.com/sergi/go-diff v1.2.0 // indirect @@ -115,41 +115,44 @@ require ( github.com/x448/float16 v0.8.4 // indirect github.com/xlab/treeprint v1.2.0 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0 // indirect - go.opentelemetry.io/otel v1.28.0 // indirect - go.opentelemetry.io/otel/metric v1.28.0 // indirect - go.opentelemetry.io/otel/trace v1.28.0 // indirect + go.opentelemetry.io/auto/sdk v1.1.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0 // indirect + go.opentelemetry.io/otel v1.33.0 // indirect + go.opentelemetry.io/otel/metric v1.33.0 // indirect + go.opentelemetry.io/otel/trace v1.33.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.36.0 // indirect + golang.org/x/crypto v0.45.0 // indirect golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f // indirect - golang.org/x/mod v0.23.0 // indirect - golang.org/x/net v0.38.0 // indirect + golang.org/x/mod v0.29.0 // indirect + golang.org/x/net v0.47.0 // indirect golang.org/x/oauth2 v0.27.0 // indirect - golang.org/x/sync v0.12.0 // indirect - golang.org/x/sys v0.31.0 // indirect - golang.org/x/term v0.30.0 // indirect - golang.org/x/text v0.23.0 // indirect - golang.org/x/time v0.7.0 // indirect - golang.org/x/tools v0.30.0 // indirect + golang.org/x/sync v0.18.0 // indirect + golang.org/x/sys v0.38.0 // indirect + golang.org/x/term v0.37.0 // indirect + golang.org/x/text v0.31.0 // indirect + golang.org/x/time v0.9.0 // indirect + golang.org/x/tools v0.38.0 // indirect + golang.org/x/tools/go/packages/packagestest v0.1.1-deprecated // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect google.golang.org/api v0.177.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240826202546-f6391c0de4c7 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240826202546-f6391c0de4c7 // indirect - google.golang.org/grpc v1.65.0 // indirect - google.golang.org/protobuf v1.36.1 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576 // indirect + google.golang.org/grpc v1.68.1 // indirect + google.golang.org/protobuf v1.36.5 // indirect gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/cli-runtime v0.32.2 // indirect - k8s.io/gengo/v2 v2.0.0-20240911193312-2b36238f13e9 // indirect - sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect - sigs.k8s.io/kustomize/api v0.18.0 // indirect - sigs.k8s.io/kustomize/cmd/config v0.15.0 // indirect - sigs.k8s.io/kustomize/kyaml v0.18.1 // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.4.2 // indirect + k8s.io/cli-runtime v0.33.4 // indirect + k8s.io/gengo/v2 v2.0.0-20250207200755-1244d31929d7 // indirect + sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect + sigs.k8s.io/kustomize/api v0.19.0 // indirect + sigs.k8s.io/kustomize/cmd/config v0.19.0 // indirect + sigs.k8s.io/kustomize/kyaml v0.19.0 // indirect + sigs.k8s.io/randfill v1.0.0 // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.6.0 // indirect sigs.k8s.io/yaml v1.4.0 // indirect ) -go 1.23.0 +go 1.24.4 -toolchain go1.23.12 +toolchain go1.24.11 diff --git a/go.sum b/go.sum index 54fdb1cc7..3601e3497 100644 --- a/go.sum +++ b/go.sum @@ -4,8 +4,8 @@ cloud.google.com/go/auth v0.3.0/go.mod h1:lBv6NKTWp8E3LPzmO1TbiiRKc4drLOfHsgmlH9 cloud.google.com/go/auth/oauth2adapt v0.2.2 h1:+TTV8aXpjeChS9M+aTtN/TjdQnzJvmzKFt//oWu7HX4= cloud.google.com/go/auth/oauth2adapt v0.2.2/go.mod h1:wcYjgpZI9+Yu7LyYBg4pqSiaRkfEK3GQcpb7C/uyF1Q= cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= -cloud.google.com/go/compute/metadata v0.3.0 h1:Tz+eQXMEqDIKRsmY3cHTL6FVaynIjX2QxYC4trgAKZc= -cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= +cloud.google.com/go/compute/metadata v0.5.0 h1:Zr0eK8JbFv6+Wi4ilXAR8FJ3wyNdpxHKJNPos6LTZOY= +cloud.google.com/go/compute/metadata v0.5.0/go.mod h1:aHnloV2TPI38yx4s9+wAZhHykWvVCfu7hQbF+9CWoiY= cloud.google.com/go/recaptchaenterprise/v2 v2.13.0 h1:+QG02kE63W13vXI+rwAxFF3EhGX6K7gXwFz9OKwKcHw= cloud.google.com/go/recaptchaenterprise/v2 v2.13.0/go.mod h1:jNYyn2ScR4DTg+VNhjhv/vJQdaU8qz+NpmpIzEE7HFQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= @@ -35,12 +35,10 @@ github.com/cloudflare/circl v1.1.0/go.mod h1:prBCrKB9DV4poKZY1l9zBXg2QJY7mvgRvtM github.com/cloudflare/circl v1.6.1 h1:zqIqSPIndyBh1bjLVVDHMPpVKqp8Su/V+6MeDzzQBQ0= github.com/cloudflare/circl v1.6.1/go.mod h1:uddAzsPgqdMAYatqJ0lsjX1oECcQLIlRpzZh3pJrofs= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/codeready-toolchain/api v0.0.0-20251008084914-06282b83d4cd h1:A6WOUwlUdgOf4PDzzgKvycRj4Pk+1F6npWV4YoPVFcM= -github.com/codeready-toolchain/api v0.0.0-20251008084914-06282b83d4cd/go.mod h1:TiQ/yNv3cGL4nxo3fgRtcHyYYuRf+nAgs6B1IAqvxOU= -github.com/codeready-toolchain/toolchain-common v0.0.0-20251121173236-e8b11c5f0284 h1:19VrHE1M0XtKvuZyh0yrFTGf4NC/Z2Js7a/LkF5pGaE= -github.com/codeready-toolchain/toolchain-common v0.0.0-20251121173236-e8b11c5f0284/go.mod h1:5i7k9O0yVftzJwsjSjJjoXMYtUPkiirVsEswuaC8/5I= -github.com/codeready-toolchain/toolchain-common v0.0.0-20251125180949-6ed5aeed75e4 h1:OZd7C6PZMc3BL5CD2NAHxWc1VKtuSjRUJtvEuFBVDEE= -github.com/codeready-toolchain/toolchain-common v0.0.0-20251125180949-6ed5aeed75e4/go.mod h1:5i7k9O0yVftzJwsjSjJjoXMYtUPkiirVsEswuaC8/5I= +github.com/codeready-toolchain/api v0.0.0-20260108115150-4c6695ed18de h1:rc39ZRUk2AyADzH+bt5On7V7qJz6syUrI4qNyCSXY3o= +github.com/codeready-toolchain/api v0.0.0-20260108115150-4c6695ed18de/go.mod h1:O/HyAcz6fynt3LXr8wTGaIXt+0v6BpkiJvDxNQDCqyA= +github.com/codeready-toolchain/toolchain-common v0.0.0-20260108130331-10ca562525fe h1:TOSa/kVCYoLXKX7B/uBLnJsi4Pnaf6nD9K0flumVr6o= +github.com/codeready-toolchain/toolchain-common v0.0.0-20260108130331-10ca562525fe/go.mod h1:rjveL3/1VJeHnDwhvWCEF5jCFRC4xAz93DQp1rKPn3Y= github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -125,8 +123,8 @@ github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg= github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= -github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= -github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= +github.com/google/gnostic-models v0.6.9 h1:MU/8wDLif2qCXZmzncUQ/BOfxWfthHi63KqpoNbWqVw= +github.com/google/gnostic-models v0.6.9/go.mod h1:CiWsm0s6BSQd1hRn8/QmxqB6BesYcbSZxsz9b0KuDBw= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -182,6 +180,8 @@ github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQL github.com/kisielk/errcheck v1.5.0 h1:e8esj/e4R+SAOwFwN+n3zr0nYeCyeweozKfO23MvHzY= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= +github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= @@ -191,6 +191,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/magiconair/properties v1.8.5 h1:b6kJs+EmPFMYGkow9GiUyCyOvIwYetYJ3fSaWak/Gls= github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/mailgun/mailgun-go/v4 v4.8.1 h1:1+MdKakJuXnW2JJDbyPdO1ngAANOyHyVPxQvFF8Sq6c= @@ -202,8 +204,6 @@ github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovk github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/metlos/toolchain-common v0.0.0-20251111121252-51518cd65180 h1:MFy4SQFym+uNVFWmVwXr2T6F0o92WTXM1DOvLIgs09c= -github.com/metlos/toolchain-common v0.0.0-20251111121252-51518cd65180/go.mod h1:5i7k9O0yVftzJwsjSjJjoXMYtUPkiirVsEswuaC8/5I= github.com/migueleliasweb/go-github-mock v0.0.18 h1:0lWt9MYmZQGnQE2rFtjlft/YtD6hzxuN6JJRFpujzEI= github.com/migueleliasweb/go-github-mock v0.0.18/go.mod h1:CcgXcbMoRnf3rRVHqGssuBquZDIcaplxL2W6G+xs7kM= github.com/mitchellh/copystructure v1.0.0 h1:Laisrj+bAB6b/yJwB5Bt3ITZhGJdqmxquMKeZ+mmkFQ= @@ -226,33 +226,33 @@ github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= -github.com/onsi/ginkgo/v2 v2.22.1 h1:QW7tbJAUDyVDVOM5dFa7qaybo+CRfR7bemlQUN6Z8aM= -github.com/onsi/ginkgo/v2 v2.22.1/go.mod h1:S6aTpoRsSq2cZOd+pssHAlKW/Q/jZt6cPrPlnj4a1xM= -github.com/onsi/gomega v1.36.2 h1:koNYke6TVk6ZmnyHrCXba/T/MoLBXFjeC1PtvYgw0A8= -github.com/onsi/gomega v1.36.2/go.mod h1:DdwyADRjrc825LhMEkD76cHR5+pUnjhUN8GlHlRPHzY= -github.com/openshift/api v0.0.0-20250903165707-ce7baf0afbc4 h1:XgwZL/423MV7hphVdGYK+0ZPDaerolGGJbXAbgK5FyE= -github.com/openshift/api v0.0.0-20250903165707-ce7baf0afbc4/go.mod h1:yk60tHAmHhtVpJQo3TwVYq2zpuP70iJIFDCmeKMIzPw= -github.com/openshift/library-go v0.0.0-20250826065405-6d18d1191f49 h1:02KSv7D27b45+yMlwnepEgrbxbclKF2Tdr6xxzZs/Gw= -github.com/openshift/library-go v0.0.0-20250826065405-6d18d1191f49/go.mod h1:DAa3BGl0CFtkfJn/g5rU8kDDTErfMVA/QlFm4cvU+MI= +github.com/onsi/ginkgo/v2 v2.23.3 h1:edHxnszytJ4lD9D5Jjc4tiDkPBZ3siDeJJkUZJJVkp0= +github.com/onsi/ginkgo/v2 v2.23.3/go.mod h1:zXTP6xIp3U8aVuXN8ENK9IXRaTjFnpVB9mGmaSRvxnM= +github.com/onsi/gomega v1.37.0 h1:CdEG8g0S133B4OswTDC/5XPSzE1OeP29QOioj2PID2Y= +github.com/onsi/gomega v1.37.0/go.mod h1:8D9+Txp43QWKhM24yyOBEdpkzN8FvJyAwecBgsU4KU0= +github.com/openshift/api v0.0.0-20251202204302-1cb53e34ca33 h1:/Be2oa7aOPE60B7AH0/j58BUvN0MMQjhDdN/A71TcKc= +github.com/openshift/api v0.0.0-20251202204302-1cb53e34ca33/go.mod h1:SPLf21TYPipzCO67BURkCfK6dcIIxx0oNRVWaOyRcXM= +github.com/openshift/library-go v0.0.0-20251110200504-2685cf1242fc h1:g9BJ/p4ZLgb253FwnWvWEzl2vYSDSvvUZ6s42weVKpM= +github.com/openshift/library-go v0.0.0-20251110200504-2685cf1242fc/go.mod h1:tptKNust9MdRI0p90DoBSPHIrBa9oh+Rok59tF0vT8c= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= -github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= +github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/Y92Vm0Zc6Q= +github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G1dc= -github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8= +github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io= +github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/redhat-cop/operator-utils v1.3.8 h1:xhoMBg2snSzNdcxT53lSBr7PRXxrzP1cDi51NPBLaT4= github.com/redhat-cop/operator-utils v1.3.8/go.mod h1:s4R0YY8lVlHkC78GLV20PPuZmywjSbTwZKCHwWUQ3P8= -github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= -github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/segmentio/analytics-go/v3 v3.2.1 h1:G+f90zxtc1p9G+WigVyTR0xNfOghOGs/PYAlljLOyeg= github.com/segmentio/analytics-go/v3 v3.2.1/go.mod h1:p8owAF8X+5o27jmvUognuXxdtqvSGtD0ZrfY2kcS9bE= @@ -294,14 +294,16 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0 h1:9G6E0TXzGFVfTnawRzrPl83iHOAV7L8NJiR8RSGYV1g= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0/go.mod h1:azvtTADFQJA8mX80jIH/akaE7h+dbm/sVuaHqN13w74= -go.opentelemetry.io/otel v1.28.0 h1:/SqNcYk+idO0CxKEUOtKQClMK/MimZihKYMruSMViUo= -go.opentelemetry.io/otel v1.28.0/go.mod h1:q68ijF8Fc8CnMHKyzqL6akLO46ePnjkgfIMIjUIX9z4= -go.opentelemetry.io/otel/metric v1.28.0 h1:f0HGvSl1KRAU1DLgLGFjrwVyismPlnuU6JD6bOeuA5Q= -go.opentelemetry.io/otel/metric v1.28.0/go.mod h1:Fb1eVBFZmLVTMb6PPohq3TO9IIhUisDsbJoL/+uQW4s= -go.opentelemetry.io/otel/trace v1.28.0 h1:GhQ9cUuQGmNDd5BTCP2dAvv75RdMxEfTmYejp+lkx9g= -go.opentelemetry.io/otel/trace v1.28.0/go.mod h1:jPyXzNPg6da9+38HEwElrQiHlVMTnVfM3/yv2OlIHaI= +go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= +go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0 h1:PS8wXpbyaDJQ2VDHHncMe9Vct0Zn1fEjpsjrLxGJoSc= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0/go.mod h1:HDBUsEjOuRC0EzKZ1bSaRGZWUBAzo+MhAcUUORSr4D0= +go.opentelemetry.io/otel v1.33.0 h1:/FerN9bax5LoK51X/sI0SVYrjSE0/yUL7DpxW4K3FWw= +go.opentelemetry.io/otel v1.33.0/go.mod h1:SUUkR6csvUQl+yjReHu5uM3EtVV7MBm5FHKRlNx4I8I= +go.opentelemetry.io/otel/metric v1.33.0 h1:r+JOocAyeRVXD8lZpjdQjzMadVZp2M4WmQ+5WtEnklQ= +go.opentelemetry.io/otel/metric v1.33.0/go.mod h1:L9+Fyctbp6HFTddIxClbQkjtubW6O9QS3Ann/M82u6M= +go.opentelemetry.io/otel/trace v1.33.0 h1:cCJuF7LRjUFso9LPnEAHJDB2pqzp+hbO8eu1qqW2d/s= +go.opentelemetry.io/otel/trace v1.33.0/go.mod h1:uIcdVUZMpTAmz0tI1z04GoVSezK37CbGV4fr1f2nBck= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= @@ -314,8 +316,8 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34= -golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc= +golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q= +golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= @@ -326,8 +328,8 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.23.0 h1:Zb7khfcRGKk+kqfxFaP5tZqCnDZMjC5VtUBs87Hr6QM= -golang.org/x/mod v0.23.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA= +golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -344,8 +346,8 @@ golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= -golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8= -golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= +golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY= +golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4= golang.org/x/oauth2 v0.27.0 h1:da9Vo7/tDv5RH/7nZDz1eMGS/q1Vv1N/7FCrBhI9I3M= @@ -357,8 +359,8 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw= -golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I= +golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -373,16 +375,16 @@ golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= -golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc= +golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= -golang.org/x/term v0.30.0 h1:PQ39fJZ+mfadBm0y5WlL4vlM7Sx1Hgf13sMIY2+QS9Y= -golang.org/x/term v0.30.0/go.mod h1:NYYFdzHoI5wRh/h5tDMdMqCqPJZEuNqVR5xJLd/n67g= +golang.org/x/term v0.37.0 h1:8EGAD0qCmHYZg6J17DvsMy9/wJ7/D/4pV/wfnld5lTU= +golang.org/x/term v0.37.0/go.mod h1:5pB4lxRNYYVZuTLmy8oR2BH8dflOR+IbTYFD8fi3254= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -391,10 +393,10 @@ golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY= -golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4= -golang.org/x/time v0.7.0 h1:ntUhktv3OPE6TgYxXWv9vKvUSJyIFJlyohwbkEwPrKQ= -golang.org/x/time v0.7.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM= +golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM= +golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY= +golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -408,8 +410,12 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.30.0 h1:BgcpHewrV5AUp2G9MebG4XPFI1E2W41zU1SaqVA9vJY= -golang.org/x/tools v0.30.0/go.mod h1:c347cR/OJfw5TI+GfX7RUPNMdDRRbjvYTS0jPyvsVtY= +golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ= +golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs= +golang.org/x/tools/go/expect v0.1.0-deprecated h1:jY2C5HGYR5lqex3gEniOQL0r7Dq5+VGVgY1nudX5lXY= +golang.org/x/tools/go/expect v0.1.0-deprecated/go.mod h1:eihoPOH+FgIqa3FpoTwguz/bVUSGBlGQU67vpBeOrBY= +golang.org/x/tools/go/packages/packagestest v0.1.1-deprecated h1:1h2MnaIAIXISqTFKdENegdpAgUXz6NrPEsbIeWaBRvM= +golang.org/x/tools/go/packages/packagestest v0.1.1-deprecated/go.mod h1:RVAQXBGNv1ib0J382/DPCRS/BPnsGebyM1Gj5VSDpG8= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -424,17 +430,17 @@ google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCID google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto/googleapis/api v0.0.0-20240826202546-f6391c0de4c7 h1:YcyjlL1PRr2Q17/I0dPk2JmYS5CDXfcdb2Z3YRioEbw= -google.golang.org/genproto/googleapis/api v0.0.0-20240826202546-f6391c0de4c7/go.mod h1:OCdP9MfskevB/rbYvHTsXTtKC+3bHWajPdoKgjcYkfo= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240826202546-f6391c0de4c7 h1:2035KHhUv+EpyB+hWgJnaWKJOdX1E95w2S8Rr4uWKTs= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240826202546-f6391c0de4c7/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= +google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 h1:CkkIfIt50+lT6NHAVoRYEyAvQGFM7xEwXUUywFvEb3Q= +google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576/go.mod h1:1R3kvZ1dtP3+4p4d3G8uJ8rFk/fWlScl38vanWACI08= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576 h1:8ZmaLZE4XWrtU3MyClkYqqtl6Oegr3235h7jxsDyqCY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576/go.mod h1:5uTbfoYQed2U9p3KIj2/Zzm02PYhndfdmML0qC3q3FU= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.65.0 h1:bs/cUb4lp1G5iImFFd3u5ixQzweKizoZJAwBNLR42lc= -google.golang.org/grpc v1.65.0/go.mod h1:WgYC2ypjlB0EiQi6wdKixMqukr6lBc0Vo+oOgjrM5ZQ= +google.golang.org/grpc v1.68.1 h1:oI5oTa11+ng8r8XMMN7jAOmWfPZWbYpCFaMUTACxkM0= +google.golang.org/grpc v1.68.1/go.mod h1:+q1XYFJjShcqn0QZHvCyeR4CXPA+llXIeUIfIe00waw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -447,8 +453,8 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.36.1 h1:yBPeRvTftaleIgM3PZ/WBIZ7XM/eEYAaEyCwvyjq/gk= -google.golang.org/protobuf v1.36.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= +google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= @@ -472,49 +478,52 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -k8s.io/api v0.32.2 h1:bZrMLEkgizC24G9eViHGOPbW+aRo9duEISRIJKfdJuw= -k8s.io/api v0.32.2/go.mod h1:hKlhk4x1sJyYnHENsrdCWw31FEmCijNGPJO5WzHiJ6Y= -k8s.io/apiextensions-apiserver v0.32.2 h1:2YMk285jWMk2188V2AERy5yDwBYrjgWYggscghPCvV4= -k8s.io/apiextensions-apiserver v0.32.2/go.mod h1:GPwf8sph7YlJT3H6aKUWtd0E+oyShk/YHWQHf/OOgCA= -k8s.io/apimachinery v0.32.2 h1:yoQBR9ZGkA6Rgmhbp/yuT9/g+4lxtsGYwW6dR6BDPLQ= -k8s.io/apimachinery v0.32.2/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE= -k8s.io/cli-runtime v0.32.2 h1:aKQR4foh9qeyckKRkNXUccP9moxzffyndZAvr+IXMks= -k8s.io/cli-runtime v0.32.2/go.mod h1:a/JpeMztz3xDa7GCyyShcwe55p8pbcCVQxvqZnIwXN8= -k8s.io/client-go v0.32.2 h1:4dYCD4Nz+9RApM2b/3BtVvBHw54QjMFUl1OLcJG5yOA= -k8s.io/client-go v0.32.2/go.mod h1:fpZ4oJXclZ3r2nDOv+Ux3XcJutfrwjKTCHz2H3sww94= -k8s.io/code-generator v0.32.2 h1:CIvyPrLWP7cMgrqval2qYT839YAwCDeSvGfXgWSNpHQ= -k8s.io/code-generator v0.32.2/go.mod h1:plh7bWk7JztAUkHM4zpbdy0KOMdrhsePcZL2HLWFH7Y= +k8s.io/api v0.33.4 h1:oTzrFVNPXBjMu0IlpA2eDDIU49jsuEorGHB4cvKupkk= +k8s.io/api v0.33.4/go.mod h1:VHQZ4cuxQ9sCUMESJV5+Fe8bGnqAARZ08tSTdHWfeAc= +k8s.io/apiextensions-apiserver v0.33.4 h1:rtq5SeXiDbXmSwxsF0MLe2Mtv3SwprA6wp+5qh/CrOU= +k8s.io/apiextensions-apiserver v0.33.4/go.mod h1:mWXcZQkQV1GQyxeIjYApuqsn/081hhXPZwZ2URuJeSs= +k8s.io/apimachinery v0.33.4 h1:SOf/JW33TP0eppJMkIgQ+L6atlDiP/090oaX0y9pd9s= +k8s.io/apimachinery v0.33.4/go.mod h1:BHW0YOu7n22fFv/JkYOEfkUYNRN0fj0BlvMFWA7b+SM= +k8s.io/cli-runtime v0.33.4 h1:V8NSxGfh24XzZVhXmIGzsApdBpGq0RQS2u/Fz1GvJwk= +k8s.io/cli-runtime v0.33.4/go.mod h1:V+ilyokfqjT5OI+XE+O515K7jihtr0/uncwoyVqXaIU= +k8s.io/client-go v0.33.4 h1:TNH+CSu8EmXfitntjUPwaKVPN0AYMbc9F1bBS8/ABpw= +k8s.io/client-go v0.33.4/go.mod h1:LsA0+hBG2DPwovjd931L/AoaezMPX9CmBgyVyBZmbCY= +k8s.io/code-generator v0.33.4 h1:DiA801QxqApRIBh3OWULasVAUA237XnYvFNMh+E34Y8= +k8s.io/code-generator v0.33.4/go.mod h1:ifWxKWhEl/Z1K7WmWAyOBEf3ex/i546ingCzLC8YVIY= k8s.io/gengo v0.0.0-20230829151522-9cce18d56c01 h1:pWEwq4Asjm4vjW7vcsmijwBhOr1/shsbSYiWXmNGlks= k8s.io/gengo v0.0.0-20230829151522-9cce18d56c01/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= -k8s.io/gengo/v2 v2.0.0-20240911193312-2b36238f13e9 h1:si3PfKm8dDYxgfbeA6orqrtLkvvIeH8UqffFJDl0bz4= -k8s.io/gengo/v2 v2.0.0-20240911193312-2b36238f13e9/go.mod h1:EJykeLsmFC60UQbYJezXkEsG2FLrt0GPNkU5iK5GWxU= +k8s.io/gengo/v2 v2.0.0-20250207200755-1244d31929d7 h1:2OX19X59HxDprNCVrWi6jb7LW1PoqTlYqEq5H2oetog= +k8s.io/gengo/v2 v2.0.0-20250207200755-1244d31929d7/go.mod h1:EJykeLsmFC60UQbYJezXkEsG2FLrt0GPNkU5iK5GWxU= k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f h1:GA7//TjRY9yWGy1poLzYYJJ4JRdzg3+O6e8I+e+8T5Y= -k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f/go.mod h1:R/HEjbvWI0qdfb8viZUeVZm0X6IZnxAydC7YU42CMw4= -k8s.io/kubectl v0.32.2 h1:TAkag6+XfSBgkqK9I7ZvwtF0WVtUAvK8ZqTt+5zi1Us= -k8s.io/kubectl v0.32.2/go.mod h1:+h/NQFSPxiDZYX/WZaWw9fwYezGLISP0ud8nQKg+3g8= -k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro= -k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -sigs.k8s.io/controller-runtime v0.20.4 h1:X3c+Odnxz+iPTRobG4tp092+CvBU9UK0t/bRf+n0DGU= -sigs.k8s.io/controller-runtime v0.20.4/go.mod h1:xg2XB0K5ShQzAgsoujxuKN4LNXR2LfwwHsPj7Iaw+XY= -sigs.k8s.io/controller-tools v0.17.3 h1:lwFPLicpBKLgIepah+c8ikRBubFW5kOQyT88r3EwfNw= -sigs.k8s.io/controller-tools v0.17.3/go.mod h1:1ii+oXcYZkxcBXzwv3YZBlzjt1fvkrCGjVF73blosJI= -sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 h1:/Rv+M11QRah1itp8VhT6HoVx1Ray9eB4DBr+K+/sCJ8= -sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3/go.mod h1:18nIHnGi6636UCz6m8i4DhaJ65T6EruyzmoQqI2BVDo= -sigs.k8s.io/kustomize/api v0.18.0 h1:hTzp67k+3NEVInwz5BHyzc9rGxIauoXferXyjv5lWPo= -sigs.k8s.io/kustomize/api v0.18.0/go.mod h1:f8isXnX+8b+SGLHQ6yO4JG1rdkZlvhaCf/uZbLVMb0U= -sigs.k8s.io/kustomize/cmd/config v0.15.0 h1:WkdY8V2+8J+W00YbImXa2ke9oegfrHH79e+kywW7EdU= -sigs.k8s.io/kustomize/cmd/config v0.15.0/go.mod h1:Jq57b0nPaoYUlOqg//0JtAh6iibboqMcfbtCYoWPM00= -sigs.k8s.io/kustomize/kustomize/v5 v5.5.0 h1:o1mtt6vpxsxDYaZKrw3BnEtc+pAjLz7UffnIvHNbvW0= -sigs.k8s.io/kustomize/kustomize/v5 v5.5.0/go.mod h1:AeFCmgCrXzmvjWWaeZCyBp6XzG1Y0w1svYus8GhJEOE= -sigs.k8s.io/kustomize/kyaml v0.18.1 h1:WvBo56Wzw3fjS+7vBjN6TeivvpbW9GmRaWZ9CIVmt4E= -sigs.k8s.io/kustomize/kyaml v0.18.1/go.mod h1:C3L2BFVU1jgcddNBE1TxuVLgS46TjObMwW5FT9FcjYo= -sigs.k8s.io/structured-merge-diff/v4 v4.4.2 h1:MdmvkGuXi/8io6ixD5wud3vOLwc1rj0aNqRlpuvjmwA= -sigs.k8s.io/structured-merge-diff/v4 v4.4.2/go.mod h1:N8f93tFZh9U6vpxwRArLiikrE5/2tiu1w1AGfACIGE4= +k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff h1:/usPimJzUKKu+m+TE36gUyGcf03XZEP0ZIKgKj35LS4= +k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff/go.mod h1:5jIi+8yX4RIb8wk3XwBo5Pq2ccx4FP10ohkbSKCZoK8= +k8s.io/kubectl v0.33.4 h1:nXEI6Vi+oB9hXxoAHyHisXolm/l1qutK3oZQMak4N98= +k8s.io/kubectl v0.33.4/go.mod h1:Xe7P9X4DfILvKmlBsVqUtzktkI56lEj22SJW7cFy6nE= +k8s.io/utils v0.0.0-20241210054802-24370beab758 h1:sdbE21q2nlQtFh65saZY+rRM6x6aJJI8IUa1AmH/qa0= +k8s.io/utils v0.0.0-20241210054802-24370beab758/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +sigs.k8s.io/controller-runtime v0.21.0 h1:CYfjpEuicjUecRk+KAeyYh+ouUBn4llGyDYytIGcJS8= +sigs.k8s.io/controller-runtime v0.21.0/go.mod h1:OSg14+F65eWqIu4DceX7k/+QRAbTTvxeQSNSOQpukWM= +sigs.k8s.io/controller-tools v0.18.0 h1:rGxGZCZTV2wJreeRgqVoWab/mfcumTMmSwKzoM9xrsE= +sigs.k8s.io/controller-tools v0.18.0/go.mod h1:gLKoiGBriyNh+x1rWtUQnakUYEujErjXs9pf+x/8n1U= +sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE= +sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= +sigs.k8s.io/kustomize/api v0.19.0 h1:F+2HB2mU1MSiR9Hp1NEgoU2q9ItNOaBJl0I4Dlus5SQ= +sigs.k8s.io/kustomize/api v0.19.0/go.mod h1:/BbwnivGVcBh1r+8m3tH1VNxJmHSk1PzP5fkP6lbL1o= +sigs.k8s.io/kustomize/cmd/config v0.19.0 h1:D3uASwjHWHmNiEHu3pPJBJMBIsb+auFvHrHql3HAarU= +sigs.k8s.io/kustomize/cmd/config v0.19.0/go.mod h1:29Vvdl26PidPLUDi7nfjYa/I0wHBkwCZp15Nlcc4y98= +sigs.k8s.io/kustomize/kustomize/v5 v5.6.0 h1:MWtRRDWCwQEeW2rnJTqJMuV6Agy56P53SkbVoJpN7wA= +sigs.k8s.io/kustomize/kustomize/v5 v5.6.0/go.mod h1:XuuZiQF7WdcvZzEYyNww9A0p3LazCKeJmCjeycN8e1I= +sigs.k8s.io/kustomize/kyaml v0.19.0 h1:RFge5qsO1uHhwJsu3ipV7RNolC7Uozc0jUBC/61XSlA= +sigs.k8s.io/kustomize/kyaml v0.19.0/go.mod h1:FeKD5jEOH+FbZPpqUghBP8mrLjJ3+zD3/rf9NNu1cwY= +sigs.k8s.io/randfill v0.0.0-20250304075658-069ef1bbf016/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= +sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU= +sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= +sigs.k8s.io/structured-merge-diff/v4 v4.6.0 h1:IUA9nvMmnKWcj5jl84xn+T5MnlZKThmUW1TdblaLVAc= +sigs.k8s.io/structured-merge-diff/v4 v4.6.0/go.mod h1:dDy58f92j70zLsuZVuUX5Wp9vtxXpaZnkPGWeqDfCps= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/openshift-ci/Dockerfile.tools b/openshift-ci/Dockerfile.tools index d0b6a2c24..45d8db77c 100644 --- a/openshift-ci/Dockerfile.tools +++ b/openshift-ci/Dockerfile.tools @@ -8,8 +8,8 @@ ENV LANG=en_US.utf8 \ GOCACHE=/tmp/.cache \ GIT_COMMITTER_NAME="KubeSaw" \ GIT_COMMITTER_EMAIL=devsandbox@redhat.com \ - GOLANG_VERSION=go1.23.12 \ - GOLANG_SHA256=d3847fef834e9db11bf64e3fb34db9c04db14e068eeb064f49af747010454f90 + GOLANG_VERSION=go1.24.11 \ + GOLANG_SHA256=bceca00afaac856bc48b4cc33db7cd9eb383c81811379faed3bdbc80edb0af65 ARG GO_PACKAGE_PATH=github.com/codeready-toolchain/host-operator