ROSAENG-61054 | chore: bump Go to 1.26.3#1240
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository YAML (base), Central YAML (inherited) Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (75)
✅ Files skipped from review due to trivial changes (16)
🚧 Files skipped from review as they are similar to previous changes (59)
WalkthroughThis PR updates Go build references to 1.26.3/1.26+ and modernizes provider code, shared test utilities, and e2e/subsystem tests to use ChangesGo 1.26 Toolchain Upgrade
Estimated code review effort: 3 (Moderate) | ~30 minutes Provider Production Code Modernization
Estimated code review effort: 4 (Complex) | ~60 minutes Test and utility modernization
Estimated code review effort: 4 (Complex) | ~60 minutes Possibly related PRs
Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 6✅ Passed checks (6 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
3d25b6f to
d5d78a2
Compare
There was a problem hiding this comment.
🧹 Nitpick comments (2)
internal/ocm/resource/cluster_test.go (1)
282-285: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueInconsistent modernization: some
pointer(...)calls left unconverted alongside siblingnew(...)args.In these
CreateAWSBuildercalls,pointer(string(cmv1.Ec2MetadataHttpTokensRequired))remains as-is while adjacent arguments in the same call were migrated tonew(...). Functionally equivalent since thepointerhelper still exists, but it leaves inconsistent style within the same call sites.♻️ Suggested consistency fix
- pointer(string(cmv1.Ec2MetadataHttpTokensRequired)), + new(string(cmv1.Ec2MetadataHttpTokensRequired)),Also applies to: 324-327, 349-352, 380-383, 399-402
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@internal/ocm/resource/cluster_test.go` around lines 282 - 285, The CreateAWSBuilder call sites in cluster_test.go still mix pointer(...) with the newer new(...) style, creating inconsistent modernization within the same argument lists. Update each affected CreateAWSBuilder invocation to use the same style as the surrounding arguments by replacing pointer(string(cmv1.Ec2MetadataHttpTokensRequired)) with the equivalent new(...) form, matching the existing refactor pattern in the test. Keep the change scoped to the repeated CreateAWSBuilder calls so the argument construction remains uniform and easy to read.tests/utils/profilehandler/handler.go (1)
704-712: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueRedundant pointer assignment on
clusterArgs.ClusterName.Line 704 assigns
clusterArgs.ClusterName = new(clusterName), but line 712 immediately overwrites it withclusterArgs.ClusterName = &clusterName. The first assignment's allocation is discarded and never observed. This predates the current refactor (previously usedhelper.StringPointer(clusterName)), but since this line was touched, it's worth cleaning up.♻️ Proposed fix
- clusterArgs.ClusterName = new(clusterName) - // There are some problem for cluster created with name length // longer than 15 chars with auto generated domain prefix if ctx.profile.DomainPrefix == "" && ctx.profile.SharedVpc && len(clusterName) > 15 { ctx.profile.DomainPrefix = helper.GenerateRandomName("shared-vpc", 4) } clusterArgs.ClusterName = &clusterName🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@tests/utils/profilehandler/handler.go` around lines 704 - 712, Remove the redundant allocation in the cluster setup path: in the code that builds `clusterArgs` around `clusterArgs.ClusterName`, keep only the final pointer assignment and delete the earlier `new(clusterName)` assignment. Use the `clusterArgs.ClusterName` initialization in the `handler.go` flow so the name is set once and not overwritten immediately afterward.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@internal/ocm/resource/cluster_test.go`:
- Around line 282-285: The CreateAWSBuilder call sites in cluster_test.go still
mix pointer(...) with the newer new(...) style, creating inconsistent
modernization within the same argument lists. Update each affected
CreateAWSBuilder invocation to use the same style as the surrounding arguments
by replacing pointer(string(cmv1.Ec2MetadataHttpTokensRequired)) with the
equivalent new(...) form, matching the existing refactor pattern in the test.
Keep the change scoped to the repeated CreateAWSBuilder calls so the argument
construction remains uniform and easy to read.
In `@tests/utils/profilehandler/handler.go`:
- Around line 704-712: Remove the redundant allocation in the cluster setup
path: in the code that builds `clusterArgs` around `clusterArgs.ClusterName`,
keep only the final pointer assignment and delete the earlier `new(clusterName)`
assignment. Use the `clusterArgs.ClusterName` initialization in the `handler.go`
flow so the name is set once and not overwritten immediately afterward.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository YAML (base), Central YAML (inherited)
Review profile: CHILL
Plan: Enterprise
Run ID: 833aa607-20fb-47af-9686-4da93f0b2771
📒 Files selected for processing (75)
.ci-operator.yamlCHANGELOG.mdDockerfiledocs/index.mdgo.modinternal/ocm/resource/cluster_test.gologging/logging.goprovider/cluster/cluster_resource.goprovider/cluster/cluster_resource_test.goprovider/clusterrosa/classic/cluster_rosa_classic_resource.goprovider/clusterrosa/classic/cluster_rosa_classic_resource_test.goprovider/clusterrosa/hcp/resource.goprovider/clusterrosa/hcp/resource_test.goprovider/clusterrosa/hcp/shared_vpc/shared_vpc.goprovider/common/cluster_waiter.goprovider/common/helpers_test.goprovider/dnsdomain/dns_domain_resource.goprovider/identityprovider/identity_provider_resource.goprovider/imagemirror/image_mirror_resource.goprovider/logforwarder/resource.goprovider/machinepool/classic/machine_pool_resource.goprovider/machinepool/hcp/machine_pool_resource.goprovider/ocmrole/rosa_ocm_role_resource.goprovider/oidcconfig/rosa_oidc_config_resource.goprovider/registry_config/helpers.goprovider/tuningconfigs/resource.gorenovate.jsonsubsystem/classic/cluster_autoscaler_resource_test.gosubsystem/classic/default_ingress_resource_test.gosubsystem/classic/kubeletconfig_resource_test.gosubsystem/classic/rosa_ocm_policies_data_source_test.gosubsystem/classic/rosa_operator_roles_data_source_test.gosubsystem/framework/framework.gosubsystem/hcp/breakglasscredential_resource_test.gosubsystem/hcp/cluster_autoscaler_resource_test.gosubsystem/hcp/rosa_hcp_operator_roles_data_source_test.gosubsystem/hcp/rosa_ocm_policies_data_source_test.gosubsystem/hcp/tuningconfigs_test.gotemplates/index.md.tmpltests/e2e/account_roles_test.gotests/e2e/break_glass_credential_test.gotests/e2e/classic_ingress_test.gotests/e2e/classic_machine_pool_test.gotests/e2e/cluster_autoscaler_day2_test.gotests/e2e/cluster_creation_test.gotests/e2e/cluster_edit_test.gotests/e2e/cluster_misc_day2_test.gotests/e2e/cluster_upgrade_test.gotests/e2e/hcp_image_mirror_test.gotests/e2e/hcp_ingress_test.gotests/e2e/hcp_machine_pool_test.gotests/e2e/idps_test.gotests/e2e/kubelet_config_test.gotests/e2e/machine_pool_test.gotests/e2e/negative_day_one_test.gotests/e2e/trust_policy_external_id_test.gotests/e2e/tuning_config_test.gotests/utils/cms/cms.gotests/utils/cms/versions.gotests/utils/exec/cluster.gotests/utils/exec/idps.gotests/utils/exec/image-mirrors.gotests/utils/exec/machine-pools.gotests/utils/exec/tf-exec.gotests/utils/exec/trusted-ips.gotests/utils/exec/tuning-configs.gotests/utils/helper/file.gotests/utils/helper/helper.gotests/utils/helper/iam_policy_fetcher.gotests/utils/helper/map.gotests/utils/helper/parse_yaml.gotests/utils/log/logger.gotests/utils/openshift/console.gotests/utils/openshift/openshift.gotests/utils/profilehandler/handler.go
d5d78a2 to
59b3a7b
Compare
There was a problem hiding this comment.
🧹 Nitpick comments (1)
tests/e2e/hcp_machine_pool_test.go (1)
655-664: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueInconsistent pointer construction within the same struct literal.
Cluster,Replicas,Name,SubnetID, andMachineTypestill use&varwhile sibling fields in the same literal (AutoscalingEnabled,AutoRepair,KubeletConfigs) were converted tonew(...). Purely cosmetic inconsistency left over from the mechanical pass.♻️ Optional consistency fix
mpArgs := &exec.MachinePoolArgs{ - Cluster: &clusterID, + Cluster: new(clusterID), AutoscalingEnabled: new(false), AutoRepair: new(false), KubeletConfigs: new(kubeconfigs[0].Name), - Replicas: &replicas, - Name: &name, - SubnetID: &subnetId, - MachineType: &machineType, + Replicas: new(replicas), + Name: new(name), + SubnetID: new(subnetId), + MachineType: new(machineType), }🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@tests/e2e/hcp_machine_pool_test.go` around lines 655 - 664, The MachinePoolArgs literal in hcp_machine_pool_test.go mixes pointer styles, with some fields using &var while others use new(...), creating an inconsistent mechanical change. Update the remaining fields in that struct literal (Cluster, Replicas, Name, SubnetID, MachineType) to match the same pointer-construction style already used by AutoscalingEnabled, AutoRepair, and KubeletConfigs, keeping the literal uniform.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@tests/e2e/hcp_machine_pool_test.go`:
- Around line 655-664: The MachinePoolArgs literal in hcp_machine_pool_test.go
mixes pointer styles, with some fields using &var while others use new(...),
creating an inconsistent mechanical change. Update the remaining fields in that
struct literal (Cluster, Replicas, Name, SubnetID, MachineType) to match the
same pointer-construction style already used by AutoscalingEnabled, AutoRepair,
and KubeletConfigs, keeping the literal uniform.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository YAML (base), Central YAML (inherited)
Review profile: CHILL
Plan: Enterprise
Run ID: 6c59d940-98cb-4044-a6be-20ac1d910a46
📒 Files selected for processing (75)
.ci-operator.yamlCHANGELOG.mdDockerfiledocs/index.mdgo.modinternal/ocm/resource/cluster_test.gologging/logging.goprovider/cluster/cluster_resource.goprovider/cluster/cluster_resource_test.goprovider/clusterrosa/classic/cluster_rosa_classic_resource.goprovider/clusterrosa/classic/cluster_rosa_classic_resource_test.goprovider/clusterrosa/hcp/resource.goprovider/clusterrosa/hcp/resource_test.goprovider/clusterrosa/hcp/shared_vpc/shared_vpc.goprovider/common/cluster_waiter.goprovider/common/helpers_test.goprovider/dnsdomain/dns_domain_resource.goprovider/identityprovider/identity_provider_resource.goprovider/imagemirror/image_mirror_resource.goprovider/logforwarder/resource.goprovider/machinepool/classic/machine_pool_resource.goprovider/machinepool/hcp/machine_pool_resource.goprovider/ocmrole/rosa_ocm_role_resource.goprovider/oidcconfig/rosa_oidc_config_resource.goprovider/registry_config/helpers.goprovider/tuningconfigs/resource.gorenovate.jsonsubsystem/classic/cluster_autoscaler_resource_test.gosubsystem/classic/default_ingress_resource_test.gosubsystem/classic/kubeletconfig_resource_test.gosubsystem/classic/rosa_ocm_policies_data_source_test.gosubsystem/classic/rosa_operator_roles_data_source_test.gosubsystem/framework/framework.gosubsystem/hcp/breakglasscredential_resource_test.gosubsystem/hcp/cluster_autoscaler_resource_test.gosubsystem/hcp/rosa_hcp_operator_roles_data_source_test.gosubsystem/hcp/rosa_ocm_policies_data_source_test.gosubsystem/hcp/tuningconfigs_test.gotemplates/index.md.tmpltests/e2e/account_roles_test.gotests/e2e/break_glass_credential_test.gotests/e2e/classic_ingress_test.gotests/e2e/classic_machine_pool_test.gotests/e2e/cluster_autoscaler_day2_test.gotests/e2e/cluster_creation_test.gotests/e2e/cluster_edit_test.gotests/e2e/cluster_misc_day2_test.gotests/e2e/cluster_upgrade_test.gotests/e2e/hcp_image_mirror_test.gotests/e2e/hcp_ingress_test.gotests/e2e/hcp_machine_pool_test.gotests/e2e/idps_test.gotests/e2e/kubelet_config_test.gotests/e2e/machine_pool_test.gotests/e2e/negative_day_one_test.gotests/e2e/trust_policy_external_id_test.gotests/e2e/tuning_config_test.gotests/utils/cms/cms.gotests/utils/cms/versions.gotests/utils/exec/cluster.gotests/utils/exec/idps.gotests/utils/exec/image-mirrors.gotests/utils/exec/machine-pools.gotests/utils/exec/tf-exec.gotests/utils/exec/trusted-ips.gotests/utils/exec/tuning-configs.gotests/utils/helper/file.gotests/utils/helper/helper.gotests/utils/helper/iam_policy_fetcher.gotests/utils/helper/map.gotests/utils/helper/parse_yaml.gotests/utils/log/logger.gotests/utils/openshift/console.gotests/utils/openshift/openshift.gotests/utils/profilehandler/handler.go
✅ Files skipped from review due to trivial changes (17)
- provider/dnsdomain/dns_domain_resource.go
- docs/index.md
- CHANGELOG.md
- subsystem/classic/kubeletconfig_resource_test.go
- tests/e2e/trust_policy_external_id_test.go
- provider/identityprovider/identity_provider_resource.go
- provider/imagemirror/image_mirror_resource.go
- subsystem/classic/rosa_operator_roles_data_source_test.go
- provider/machinepool/hcp/machine_pool_resource.go
- subsystem/hcp/rosa_ocm_policies_data_source_test.go
- Dockerfile
- provider/common/cluster_waiter.go
- tests/e2e/hcp_ingress_test.go
- tests/e2e/hcp_image_mirror_test.go
- subsystem/classic/default_ingress_resource_test.go
- tests/e2e/cluster_upgrade_test.go
- tests/e2e/idps_test.go
🚧 Files skipped from review as they are similar to previous changes (55)
- templates/index.md.tmpl
- subsystem/hcp/cluster_autoscaler_resource_test.go
- go.mod
- .ci-operator.yaml
- tests/utils/exec/trusted-ips.go
- subsystem/hcp/rosa_hcp_operator_roles_data_source_test.go
- tests/utils/helper/file.go
- provider/cluster/cluster_resource_test.go
- provider/oidcconfig/rosa_oidc_config_resource.go
- provider/registry_config/helpers.go
- provider/tuningconfigs/resource.go
- provider/clusterrosa/hcp/shared_vpc/shared_vpc.go
- renovate.json
- subsystem/hcp/breakglasscredential_resource_test.go
- provider/logforwarder/resource.go
- tests/utils/openshift/console.go
- tests/e2e/cluster_creation_test.go
- subsystem/classic/rosa_ocm_policies_data_source_test.go
- provider/ocmrole/rosa_ocm_role_resource.go
- tests/utils/helper/map.go
- subsystem/classic/cluster_autoscaler_resource_test.go
- tests/utils/cms/versions.go
- tests/utils/openshift/openshift.go
- tests/e2e/break_glass_credential_test.go
- tests/utils/exec/tuning-configs.go
- tests/utils/log/logger.go
- provider/clusterrosa/classic/cluster_rosa_classic_resource_test.go
- provider/common/helpers_test.go
- tests/utils/exec/image-mirrors.go
- provider/clusterrosa/hcp/resource_test.go
- tests/utils/exec/idps.go
- subsystem/hcp/tuningconfigs_test.go
- tests/e2e/account_roles_test.go
- tests/e2e/machine_pool_test.go
- tests/utils/helper/parse_yaml.go
- provider/cluster/cluster_resource.go
- provider/clusterrosa/classic/cluster_rosa_classic_resource.go
- subsystem/framework/framework.go
- tests/utils/helper/iam_policy_fetcher.go
- tests/e2e/kubelet_config_test.go
- tests/e2e/cluster_misc_day2_test.go
- logging/logging.go
- tests/e2e/classic_machine_pool_test.go
- tests/e2e/tuning_config_test.go
- tests/e2e/classic_ingress_test.go
- tests/utils/exec/cluster.go
- tests/utils/exec/tf-exec.go
- tests/utils/exec/machine-pools.go
- provider/clusterrosa/hcp/resource.go
- tests/e2e/negative_day_one_test.go
- internal/ocm/resource/cluster_test.go
- tests/utils/cms/cms.go
- tests/utils/profilehandler/handler.go
- tests/e2e/cluster_autoscaler_day2_test.go
- tests/utils/helper/helper.go
59b3a7b to
3f12302
Compare
|
/test e2e-presubmits-rosa-hcp-advanced-critical-high-presubmit I'm overriding pre-push-checks due failure being related to coverage only as explained in the PR description. You can check the output here: |
|
@amandahla: /override requires failed status contexts, check run or a prowjob name to operate on.
Only the following failed contexts/checkruns were expected:
If you are trying to override a checkrun that has a space in it, you must put a double quote on the context. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
|
/override Pre-push checks |
|
@amandahla: /override requires failed status contexts, check run or a prowjob name to operate on.
Only the following failed contexts/checkruns were expected:
If you are trying to override a checkrun that has a space in it, you must put a double quote on the context. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
|
/override "Pre-push checks" |
|
@amandahla: Overrode contexts on behalf of amandahla: Pre-push checks DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
|
/override ci/prow/pre-push-checks |
|
@amandahla: Overrode contexts on behalf of amandahla: ci/prow/pre-push-checks, ci/prow/security DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
|
/override ci/prow/e2e-presubmits-rosa-sts-advanced-critical-high-presubmit |
|
@amandahla: Overrode contexts on behalf of amandahla: ci/prow/e2e-presubmits-rosa-sts-advanced-critical-high-presubmit DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
|
@coderabbitai Consider this comment openshift/rosa#3321 (comment) |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
echo "== Referenced review comment =="
gh api repos/openshift/rosa/pulls/comments/3515378551 --jq '{path: .path, line: .line, body: .body, url: .html_url}'
echo
echo "== Changed e2e/helper-related files in current PR branch =="
git diff --name-only origin/main...HEAD | rg '^(tests/e2e|tests/utils/exec|tests/utils/helper|subsystem/)'
echo
echo "== Pointer helper definitions after changes =="
fd helper.go tests/utils/helper -x sed -n '1,240p' {}Length of output: 10114 🏁 Script executed: #!/bin/bash
set -euo pipefail
echo "== helper.go diff =="
git diff --unified=3 origin/main...HEAD -- tests/utils/helper/helper.go
echo
echo "== trusted-ips.go diff =="
git diff --unified=3 origin/main...HEAD -- tests/utils/exec/trusted-ips.go
echo
echo "== idps_test.go diff =="
git diff --unified=3 origin/main...HEAD -- tests/e2e/idps_test.go
echo
echo "== Search for changed user-facing error strings in this PR =="
rg -n --no-heading 'reserved for admin user IDP|Expected a valid mapping method|expected a valid mapping method|The name "cluster-admin"' . -g '!**/vendor/**'Length of output: 23651
Why:
So overall: I don’t see this PR introducing the kind of e2e breakage described in that external comment. One small caveat:
Bottom line:
|
|
/retest-required |
3f12302 to
2689f0a
Compare
|
/override ci/prow/security |
|
@olucasfreitas: Overrode contexts on behalf of olucasfreitas: ci/prow/security DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: olucasfreitas The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
/override ci/prow/e2e-presubmits-rosa-sts-advanced-critical-high-presubmit |
|
@amandahla: Overrode contexts on behalf of amandahla: ci/prow/e2e-presubmits-rosa-sts-advanced-critical-high-presubmit DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
|
Waiting this one first |
|
and this |
Upgrade the provider toolchain baseline to Go 1.26.3 and align CI,
Docker, Renovate, and documentation with go.mod as the version source.
Apply go fix ./... (interface{} to any, maps.Copy, ioutil to os).
Changed-files coverage is below the 80% threshold due to mechanical
edits in untested provider paths; adding tests is out of scope for
this ticket (documented in the PR).
Signed-off-by: Amanda Hager Lopes de Andrade Katz <amanda.katz@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Signed-off-by: Amanda Hager Lopes de Andrade Katz <amanda.katz@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Signed-off-by: Amanda Hager Lopes de Andrade Katz <amanda.katz@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2689f0a to
ce77dba
Compare
|
New changes are detected. LGTM label has been removed. |
|
@olucasfreitas I had to rebase this PR and now pre-push-checks and security check are happy :) Could you please add the lgtm again? Thanks! |
|
@amandahla: The following test failed, say
Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
PR Summary
Bump the provider Go toolchain to 1.26.3, align CI/Docker/Renovate/docs with
go.mod, and applygo fix ./...mechanical refactors. All pre-push checks pass except changed-files coverage (20.8% vs 80%); adding tests for untested provider paths is out of scope for this ticket (maintainer-approved exception).Note: We are only migrating to 1.26.3 instead of 1.26.4 because the image
ocp_builder_rhel-9-golang-1.26-openshift-4.23is not updated yet (only the ubi9/go-toolset). There is an automation in place to update ocp images but they might take a few days once the go-toolset is available.Detailed Description of the Issue
The repository baseline was Go 1.25.8. ROSAENG-61054 upgrades to 1.26.3 following the same pattern as #1096.
After the bump,
go fix ./...applies Go 1.26 fixers (interface{}→any, loop copies →maps.Copy,ioutil→os,slices.Contains). Those edits touch many provider files but do not change intended runtime behavior.Related Issues and PRs
Type of Change
Previous Behavior
go.moddeclared Go 1.25.8rhel-9-golang-1.25-openshift-4.22k8s.io/apimachinerybelow v0.36 (Go 1.26+ requirement)interface{}, manual map copies,ioutil)Behavior After This Change
go.moddeclares Go 1.26.3 (single source of truth).ci-operator.yaml→rhel-9-golang-1.26-openshift-4.23Dockerfilebuilder →ubi9/go-toolset:1.26renovate.jsonconstraint →1.26.3; apimachinery pin removedgo fixrefactors across provider, tests, subsystem, and loggingHow to Test (Step-by-Step)
Preconditions
mise use go@1.26.3)Test Steps
make fmt-check build check-gen lint docs-lint license-check check-subsystem-registrymake build install && make testmake coverage-changed-files(expected to fail — see below)Expected Results
Proof of the Fix
Local verification (2026-07-02, commit
59b3a7b4):gocovdiff summary (changed lines in provider/):
createClusterObject,createClassicClusterObject,createHcpClusterObject,fillAdditionalCaUpdate,upgradeClusterIfNeeded,scheduleUpgrade(classic/HCP)pollClusterCurrentCompute,pollClusterStateFailure is from mechanical
any/maps.Copyedits on lines inside already-untested functions, not new logic.Coverage exception (maintainer sign-off)
make pre-push-checkswill fail in CI at the coverage step. This is intentional for this PR:go fixtouched 15 provider production files with mechanical edits onlyBreaking Changes
Breaking Change Details / Migration Plan
N/A
Developer Verification Checklist
[JIRA-TICKET] | [TYPE][(scope)][!]: <MESSAGE>.make install-hookshas been run in this clone.make pre-push-checkspasses. (Fails at coverage only — see Coverage exception.)Testing (check all that apply; use N/A when not relevant)
provider//internal/logic changes.subsystem/classic/orsubsystem/hcp/.*_test.go), or a subsystem negative test when integration-only (not both for the same cases unless a wiring smoke test is needed).make check-subsystem-registrypasses.Summary by CodeRabbit
Summary of changes
Chores
Documentation
Bug Fixes
trusted_ipsis always included, even when empty/zero.