From 5f456ad7f2d1fb7881541d2ee53a560618170763 Mon Sep 17 00:00:00 2001 From: Gerard Ryan Date: Wed, 11 Dec 2024 11:41:09 +0000 Subject: [PATCH] Update Go version in go.mod to 1.22 (Go 1.22: 2/3) (#1439) * Update Dockerfiles to Go 1.22 JIRA: https://issues.redhat.com/browse/RHOAIENG-16819 The UBI8 go-toolset image that we use for building is already on 1.22, so I don't think there's any reason to remain bound to 1.21. Also, upstream Go only support the two most recent minor versions: currently that means 1.23 and 1.22; 1.21 is no longer receiving any updates from the Go developers. * Update Go version in go.mod to 1.22 JIRA: https://issues.redhat.com/browse/RHOAIENG-16819 This just updates the Go version in the go directive in go.mod. The code changes to add nolint suppression is temporary and those will be addressed in a separate commit. --- .ci-operator.yaml | 2 +- README.md | 2 +- controllers/secretgenerator/secret.go | 2 +- controllers/secretgenerator/secret_test.go | 2 +- go.mod | 2 +- .../render/kustomize/action_render_manifests_test.go | 2 +- .../actions/render/template/action_render_templates_test.go | 2 +- pkg/upgrade/uninstallation.go | 4 ++-- pkg/upgrade/upgrade.go | 6 +++--- tests/e2e/helper_test.go | 6 +++--- tests/envtestutil/cleaner.go | 2 +- 11 files changed, 16 insertions(+), 16 deletions(-) diff --git a/.ci-operator.yaml b/.ci-operator.yaml index 9cc66558362..717b17986ec 100644 --- a/.ci-operator.yaml +++ b/.ci-operator.yaml @@ -1,4 +1,4 @@ build_root_image: namespace: openshift name: release - tag: golang-1.21 + tag: golang-1.22 diff --git a/README.md b/README.md index c7f16214b7d..bce1b2b244d 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,7 @@ Additionally installing `Authorino operator` & `Service Mesh operator` enhances #### Pre-requisites -- Go version **go1.21** +- Go version **go1.22** - operator-sdk version can be updated to **v1.31.1** #### Download manifests diff --git a/controllers/secretgenerator/secret.go b/controllers/secretgenerator/secret.go index dd9aa60c532..25106181e15 100644 --- a/controllers/secretgenerator/secret.go +++ b/controllers/secretgenerator/secret.go @@ -90,7 +90,7 @@ func generateSecretValue(secret *Secret) error { switch secret.Type { case "random": randomValue := make([]byte, secret.Complexity) - for i := 0; i < secret.Complexity; i++ { + for i := 0; i < secret.Complexity; i++ { //nolint: intrange num, err := rand.Int(rand.Reader, big.NewInt(int64(len(letterRunes)))) if err != nil { return err diff --git a/controllers/secretgenerator/secret_test.go b/controllers/secretgenerator/secret_test.go index 2d6b5dfb842..840a8823b28 100644 --- a/controllers/secretgenerator/secret_test.go +++ b/controllers/secretgenerator/secret_test.go @@ -92,7 +92,7 @@ func TestNewSecret(t *testing.T) { } for name, tc := range cases { - tc := tc + tc := tc //nolint: copyloopvar t.Run(name, func(t *testing.T) { secret, err := secretgenerator.NewSecretFrom(tc.annotations) if err != nil { diff --git a/go.mod b/go.mod index d541a927641..8dfd2fc7140 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/opendatahub-io/opendatahub-operator/v2 -go 1.21 +go 1.22 require ( github.com/blang/semver/v4 v4.0.0 diff --git a/pkg/controller/actions/render/kustomize/action_render_manifests_test.go b/pkg/controller/actions/render/kustomize/action_render_manifests_test.go index 538bcfd228a..5238a0a47c3 100644 --- a/pkg/controller/actions/render/kustomize/action_render_manifests_test.go +++ b/pkg/controller/actions/render/kustomize/action_render_manifests_test.go @@ -204,7 +204,7 @@ func TestRenderResourcesWithCacheAction(t *testing.T) { render.RenderedResourcesTotal.Reset() - for i := int64(0); i < 3; i++ { + for i := int64(0); i < 3; i++ { //nolint: intrange d := componentApi.Dashboard{} if i >= 1 { diff --git a/pkg/controller/actions/render/template/action_render_templates_test.go b/pkg/controller/actions/render/template/action_render_templates_test.go index 29a2349171a..99c86e8a696 100644 --- a/pkg/controller/actions/render/template/action_render_templates_test.go +++ b/pkg/controller/actions/render/template/action_render_templates_test.go @@ -157,7 +157,7 @@ func TestRenderTemplateWithCache(t *testing.T) { }, } - for i := int64(0); i < 3; i++ { + for i := int64(0); i < 3; i++ { //nolint: intrange d := componentApi.Dashboard{ ObjectMeta: metav1.ObjectMeta{ Name: ns, diff --git a/pkg/upgrade/uninstallation.go b/pkg/upgrade/uninstallation.go index 0618fd7be45..990d39b99cd 100644 --- a/pkg/upgrade/uninstallation.go +++ b/pkg/upgrade/uninstallation.go @@ -48,7 +48,7 @@ func OperatorUninstall(ctx context.Context, cli client.Client, platform cluster. } for _, namespace := range generatedNamespaces.Items { - namespace := namespace + namespace := namespace //nolint: copyloopvar if namespace.Status.Phase == corev1.NamespaceActive { if err := cli.Delete(ctx, &namespace); err != nil { return fmt.Errorf("error deleting namespace %v: %w", namespace.Name, err) @@ -95,7 +95,7 @@ func removeDSCInitialization(ctx context.Context, cli client.Client) error { var multiErr *multierror.Error for _, dsciInstance := range instanceList.Items { - dsciInstance := dsciInstance + dsciInstance := dsciInstance //nolint: copyloopvar if err := cli.Delete(ctx, &dsciInstance); !k8serr.IsNotFound(err) { multiErr = multierror.Append(multiErr, err) } diff --git a/pkg/upgrade/upgrade.go b/pkg/upgrade/upgrade.go index 4572830d972..a2c5bf4320c 100644 --- a/pkg/upgrade/upgrade.go +++ b/pkg/upgrade/upgrade.go @@ -313,7 +313,7 @@ func deleteOneResource(ctx context.Context, c client.Client, res ResourceSpec) e } for _, item := range list.Items { - item := item + item := item //nolint: copyloopvar v, ok, err := unstructured.NestedString(item.Object, res.Path...) if err != nil { return fmt.Errorf("failed to get field %v for %s %s/%s: %w", res.Path, res.Gvk.Kind, res.Namespace, item.GetName(), err) @@ -345,7 +345,7 @@ func deleteDeprecatedResources(ctx context.Context, cli client.Client, namespace multiErr = multierror.Append(multiErr, err) } items := reflect.ValueOf(resourceType).Elem().FieldByName("Items") - for i := 0; i < items.Len(); i++ { + for i := 0; i < items.Len(); i++ { //nolint: intrange item := items.Index(i).Addr().Interface().(client.Object) //nolint:errcheck,forcetypeassert for _, name := range resourceList { if name == item.GetName() { @@ -376,7 +376,7 @@ func deleteDeprecatedServiceMonitors(ctx context.Context, cli client.Client, nam } for _, servicemonitor := range servicemonitors.Items { - servicemonitor := servicemonitor + servicemonitor := servicemonitor //nolint: copyloopvar for _, name := range resourceList { if name == servicemonitor.Name { log.Info("Attempting to delete " + servicemonitor.Name + " in namespace " + namespace) diff --git a/tests/e2e/helper_test.go b/tests/e2e/helper_test.go index e7f04e39afe..9eafd58772b 100644 --- a/tests/e2e/helper_test.go +++ b/tests/e2e/helper_test.go @@ -256,7 +256,7 @@ func getCSV(ctx context.Context, cli client.Client, name string, namespace strin } // do not use range Items to avoid pointer to the loop variable - for i := 0; i < len(csvList.Items); i++ { + for i := 0; i < len(csvList.Items); i++ { //nolint: intrange csv := &csvList.Items[i] if isMatched(csv, name) { return csv, nil @@ -416,7 +416,7 @@ func ensureServicemeshOperators(t *testing.T, tc *testContext) error { //nolint: c := make(chan error) for _, op := range ops { - op := op // to avoid loop variable in the closures + op := op //nolint: copyloopvar t.Logf("Ensuring %s is installed", op) go func(op string) { err := ensureOperator(tc, op, servicemeshNamespace) @@ -424,7 +424,7 @@ func ensureServicemeshOperators(t *testing.T, tc *testContext) error { //nolint: }(op) } - for i := 0; i < len(ops); i++ { + for i := 0; i < len(ops); i++ { //nolint: intrange err := <-c errors = multierror.Append(errors, err) } diff --git a/tests/envtestutil/cleaner.go b/tests/envtestutil/cleaner.go index b858cbe3a65..91c444e7517 100644 --- a/tests/envtestutil/cleaner.go +++ b/tests/envtestutil/cleaner.go @@ -43,7 +43,7 @@ func CreateCleaner(c client.Client, config *rest.Config, timeout, interval time. func (c *Cleaner) DeleteAll(ctx context.Context, objects ...client.Object) { for _, obj := range objects { - obj := obj + obj := obj //nolint: copyloopvar Expect(client.IgnoreNotFound(c.client.Delete(ctx, obj))).Should(Succeed()) if ns, ok := obj.(*corev1.Namespace); ok {