Merge https://github.com/kubernetes-sigs/cluster-api-provider-azure:v1.24.0 (f69aa53) into main#388
Conversation
Signed-off-by: Vishal Anarase <iamvishalanarase@gmail.com>
…mplates Signed-off-by: William Yao <william2000yao@gmail.com>
Update link to Google Artifact Registry staging
Signed-off-by: William Yao <william2000yao@gmail.com>
…ty-scan Update branches in security scanner workflow for release v1.23
Signed-off-by: William Yao <william2000yao@gmail.com>
…rmance Enable DRADeviceTaints and DRADeviceTaintRules feature gate in DRA templates
…5291 Updated Makefile to check and warn if az cli if unavailable in local
…-1.22.2 Add release notes for v1.22.2
Signed-off-by: William Yao <william2000yao@gmail.com>
…t-metadata Update test metadata and versions for CAPZ v1.23.0
Bumps the all-github-actions group with 3 updates: [github/codeql-action](https://github.com/github/codeql-action), [actions/setup-go](https://github.com/actions/setup-go) and [codecov/codecov-action](https://github.com/codecov/codecov-action). Updates `github/codeql-action` from 4.34.1 to 4.35.1 - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@3869755...c10b806) Updates `actions/setup-go` from 6.3.0 to 6.4.0 - [Release notes](https://github.com/actions/setup-go/releases) - [Commits](actions/setup-go@4b73464...4a36011) Updates `codecov/codecov-action` from 5.5.3 to 6.0.0 - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](codecov/codecov-action@1af5884...57e3a13) --- updated-dependencies: - dependency-name: github/codeql-action dependency-version: 4.35.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all-github-actions - dependency-name: actions/setup-go dependency-version: 6.4.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all-github-actions - dependency-name: codecov/codecov-action dependency-version: 6.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: all-github-actions ... Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: William Yao <william2000yao@gmail.com>
…ot/github_actions/all-github-actions-cdc0901d3f dependabot(deps): bump the all-github-actions group with 3 updates
…ance-tests Add alpha/beta feature gates to conformance test
Bump CAAPH to v0.6.2
…-sigs#6203) * Bump Ray and KubeRay versions to latest releases * Fix KubeRay e2e: increase head resources and cap object store memory * Reduce head memory request to fit on self-managed nodes * Label KubeRay tests with [KubeRay] instead of [OPTIONAL] Use a dedicated [KubeRay] Ginkgo label so these tests only run from the pull-cluster-api-provider-azure-e2e-kuberay presubmit job and are excluded from the general e2e-optional job.
Bumps the all-github-actions group with 1 update: [step-security/harden-runner](https://github.com/step-security/harden-runner). Updates `step-security/harden-runner` from 2.16.0 to 2.16.1 - [Release notes](https://github.com/step-security/harden-runner/releases) - [Commits](step-security/harden-runner@fa2e9d6...fe10465) --- updated-dependencies: - dependency-name: step-security/harden-runner dependency-version: 2.16.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-github-actions ... Signed-off-by: dependabot[bot] <support@github.com>
…ot/github_actions/all-github-actions-bd09a0e644 dependabot(deps): bump step-security/harden-runner from 2.16.0 to 2.16.1 in the all-github-actions group
* Bump Go toolchain to v1.25.8 * Bump golang.org/x/net to v0.51.0 * Update trivy version to v0.69.2 * Fix go_install.sh to use project toolchain for tool builds
Bumps [golang.org/x/text](https://github.com/golang/text) from 0.34.0 to 0.35.0. - [Release notes](https://github.com/golang/text/releases) - [Commits](golang/text@v0.34.0...v0.35.0) --- updated-dependencies: - dependency-name: golang.org/x/text dependency-version: 0.35.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
…ot/go_modules/golang.org/x/text-0.35.0 dependabot(deps): bump golang.org/x/text from 0.34.0 to 0.35.0
Bumps [golang.org/x/mod](https://github.com/golang/mod) from 0.33.0 to 0.34.0. - [Commits](golang/mod@v0.33.0...v0.34.0) --- updated-dependencies: - dependency-name: golang.org/x/mod dependency-version: 0.34.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
…ot/go_modules/golang.org/x/mod-0.34.0 dependabot(deps): bump golang.org/x/mod from 0.33.0 to 0.34.0
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.48.0 to 0.49.0. - [Commits](golang/crypto@v0.48.0...v0.49.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-version: 0.49.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
…ot/go_modules/golang.org/x/crypto-0.49.0 dependabot(deps): bump golang.org/x/crypto from 0.48.0 to 0.49.0
* Add e2e spec for self-managed kuberay * Use CI K8s builds for self-managed KubeRay tests Follow the conformance CI pattern: resolve the latest CI Kubernetes version from dl.k8s.io and use the ci-version flavor template which downloads K8s binaries from source. This ensures the self-managed KubeRay tests exercise the in-development Kubernetes at main rather than only stable releases. * Use objectStoreMemory constant for Ray object store size * Extract shared rayClusterSpec helper to reduce duplication
# Conflicts: # openshift/infrastructure-components-openshift.yaml # openshift/manifests/0000_30_cluster-api_04_cm.infrastructure-azure.yaml
…er image to be consistent with ART for 4.19 Reconciling with https://github.com/openshift/ocp-build-data/tree/a39508c86497b4e5e463d7b2c78e51e577be9e7d/images/ose-azure-cluster-api-controllers.yml
# Conflicts: # openshift/infrastructure-components.yaml
# Conflicts: # openshift/tools/vendor/gopkg.in/evanphx/json-patch.v4/.gitignore # openshift/tools/vendor/gopkg.in/evanphx/json-patch.v4/LICENSE # openshift/tools/vendor/gopkg.in/evanphx/json-patch.v4/README.md # openshift/tools/vendor/gopkg.in/evanphx/json-patch.v4/errors.go # openshift/tools/vendor/gopkg.in/evanphx/json-patch.v4/merge.go # openshift/tools/vendor/gopkg.in/evanphx/json-patch.v4/patch.go # openshift/tools/vendor/modules.txt # openshift/tools/vendor/sigs.k8s.io/kustomize/api/filters/imagetag/updater.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/filters/nameref/nameref.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/filters/patchjson6902/patchjson6902.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/filters/replacement/replacement.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/internal/accumulator/loadconfigfromcrds.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/internal/builtins/HelmChartInflationGenerator.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/internal/builtins/PatchJson6902Transformer.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/internal/builtins/PatchTransformer.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/internal/builtins/SortOrderTransformer.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/internal/git/cloner.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/internal/image/image.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/internal/konfig/builtinpluginconsts/commonannotations.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/internal/konfig/builtinpluginconsts/commonlabels.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/internal/konfig/builtinpluginconsts/defaultconfig.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/internal/konfig/builtinpluginconsts/doc.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/internal/konfig/builtinpluginconsts/images.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/internal/konfig/builtinpluginconsts/metadatalabels.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/internal/konfig/builtinpluginconsts/nameprefix.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/internal/konfig/builtinpluginconsts/namereference.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/internal/konfig/builtinpluginconsts/namespace.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/internal/konfig/builtinpluginconsts/namesuffix.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/internal/konfig/builtinpluginconsts/replicas.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/internal/konfig/builtinpluginconsts/templatelabels.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/internal/konfig/builtinpluginconsts/varreference.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/internal/loader/errors.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/internal/loader/fileloader.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/internal/loader/loader.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/internal/loader/loadrestrictions.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig/loaddefaultconfig.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig/namebackreferences.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig/transformerconfig.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/internal/plugins/execplugin/execplugin.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/internal/plugins/fnplugin/fnplugin.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/internal/plugins/loader/loader.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/internal/target/kusttarget.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/internal/target/kusttarget_configplugin.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/internal/utils/errtimeout.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/internal/utils/timedcall.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/krusty/kustomizer.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/provenance/provenance.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/resmap/reswrangler.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/resource/factory.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/resource/resource.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/types/fieldspec.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/types/generatorargs.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/types/helmchartargs.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/types/kustomization.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/types/labels.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/types/pluginconfig.go # openshift/tools/vendor/sigs.k8s.io/kustomize/api/types/pluginrestrictions.go # openshift/tools/vendor/sigs.k8s.io/kustomize/kyaml/fn/runtime/container/container.go # openshift/tools/vendor/sigs.k8s.io/kustomize/kyaml/fn/runtime/runtimeutil/functiontypes.go # openshift/tools/vendor/sigs.k8s.io/kustomize/kyaml/kio/ignorefilesmatcher.go # openshift/tools/vendor/sigs.k8s.io/kustomize/kyaml/openapi/kustomizationapi/swagger.go # openshift/tools/vendor/sigs.k8s.io/kustomize/kyaml/openapi/openapi.go # openshift/tools/vendor/sigs.k8s.io/kustomize/kyaml/runfn/runfn.go # openshift/tools/vendor/sigs.k8s.io/kustomize/kyaml/yaml/alias.go # openshift/tools/vendor/sigs.k8s.io/kustomize/kyaml/yaml/compatibility.go # openshift/tools/vendor/sigs.k8s.io/kustomize/kyaml/yaml/fns.go # openshift/tools/vendor/sigs.k8s.io/kustomize/kyaml/yaml/kfns.go # openshift/tools/vendor/sigs.k8s.io/kustomize/kyaml/yaml/match.go # openshift/tools/vendor/sigs.k8s.io/kustomize/kyaml/yaml/merge2/merge2.go # openshift/tools/vendor/sigs.k8s.io/kustomize/kyaml/yaml/rnode.go # openshift/tools/vendor/sigs.k8s.io/kustomize/kyaml/yaml/types.go # openshift/tools/vendor/sigs.k8s.io/kustomize/kyaml/yaml/walk/map.go # openshift/tools/vendor/sigs.k8s.io/yaml/goyaml.v3/LICENSE # openshift/tools/vendor/sigs.k8s.io/yaml/goyaml.v3/NOTICE # openshift/tools/vendor/sigs.k8s.io/yaml/goyaml.v3/README.md # openshift/tools/vendor/sigs.k8s.io/yaml/goyaml.v3/apic.go # openshift/tools/vendor/sigs.k8s.io/yaml/goyaml.v3/decode.go # openshift/tools/vendor/sigs.k8s.io/yaml/goyaml.v3/emitterc.go # openshift/tools/vendor/sigs.k8s.io/yaml/goyaml.v3/encode.go # openshift/tools/vendor/sigs.k8s.io/yaml/goyaml.v3/parserc.go # openshift/tools/vendor/sigs.k8s.io/yaml/goyaml.v3/readerc.go # openshift/tools/vendor/sigs.k8s.io/yaml/goyaml.v3/resolve.go # openshift/tools/vendor/sigs.k8s.io/yaml/goyaml.v3/scannerc.go # openshift/tools/vendor/sigs.k8s.io/yaml/goyaml.v3/sorter.go # openshift/tools/vendor/sigs.k8s.io/yaml/goyaml.v3/writerc.go # openshift/tools/vendor/sigs.k8s.io/yaml/goyaml.v3/yaml.go # openshift/tools/vendor/sigs.k8s.io/yaml/goyaml.v3/yamlh.go # openshift/tools/vendor/sigs.k8s.io/yaml/goyaml.v3/yamlprivateh.go
…er image to be consistent with ART for 4.20 Reconciling with https://github.com/openshift/ocp-build-data/tree/dfb5c7d531490cfdc61a3b88bc533702b9624997/images/ose-azure-cluster-api-controllers.yml
…er image to be consistent with ART for 4.21 Reconciling with https://github.com/openshift/ocp-build-data/tree/4fbe3fab45239dc4be6f5d9d98a0bf36e0274ec9/images/ose-azure-cluster-api-controllers.yml
…er image to be consistent with ART for 4.22 Reconciling with https://github.com/openshift/ocp-build-data/tree/087d1930e36b609f77d73bd8a313d85c940cff4d/images/ose-azure-cluster-api-controllers.yml
Signed-off-by: Nolan Brubaker <nolan@nbrubaker.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> # Conflicts: # openshift/tools/vendor/github.com/containerd/stargz-snapshotter/estargz/LICENSE # openshift/tools/vendor/github.com/docker/cli/LICENSE # openshift/tools/vendor/github.com/docker/distribution/LICENSE # openshift/tools/vendor/github.com/docker/docker-credential-helpers/LICENSE # openshift/tools/vendor/github.com/google/go-containerregistry/LICENSE # openshift/tools/vendor/github.com/google/go-containerregistry/pkg/authn/anon.go # openshift/tools/vendor/github.com/google/go-containerregistry/pkg/authn/auth.go # openshift/tools/vendor/github.com/google/go-containerregistry/pkg/authn/bearer.go # openshift/tools/vendor/github.com/google/go-containerregistry/pkg/authn/doc.go # openshift/tools/vendor/github.com/google/go-containerregistry/pkg/compression/compression.go # openshift/tools/vendor/github.com/google/go-containerregistry/pkg/v1/doc.go # openshift/tools/vendor/github.com/google/go-containerregistry/pkg/v1/empty/doc.go # openshift/tools/vendor/github.com/google/go-containerregistry/pkg/v1/mutate/doc.go # openshift/tools/vendor/github.com/google/go-containerregistry/pkg/v1/partial/doc.go # openshift/tools/vendor/github.com/google/go-containerregistry/pkg/v1/partial/image.go # openshift/tools/vendor/github.com/google/go-containerregistry/pkg/v1/progress.go # openshift/tools/vendor/github.com/google/go-containerregistry/pkg/v1/remote/delete.go # openshift/tools/vendor/github.com/google/go-containerregistry/pkg/v1/remote/doc.go # openshift/tools/vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/doc.go # openshift/tools/vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/scope.go # openshift/tools/vendor/github.com/google/go-containerregistry/pkg/v1/tarball/doc.go # openshift/tools/vendor/github.com/klauspost/compress/fse/bitwriter.go # openshift/tools/vendor/github.com/klauspost/compress/fse/compress.go # openshift/tools/vendor/github.com/klauspost/compress/huff0/bitwriter.go # openshift/tools/vendor/github.com/klauspost/compress/huff0/compress.go # openshift/tools/vendor/github.com/klauspost/compress/huff0/decompress.go # openshift/tools/vendor/github.com/klauspost/compress/huff0/decompress_amd64.go # openshift/tools/vendor/github.com/klauspost/compress/huff0/huff0.go # openshift/tools/vendor/github.com/klauspost/compress/internal/le/unsafe_disabled.go # openshift/tools/vendor/github.com/klauspost/compress/internal/le/unsafe_enabled.go # openshift/tools/vendor/github.com/klauspost/compress/internal/snapref/decode.go # openshift/tools/vendor/github.com/klauspost/compress/internal/snapref/encode.go # openshift/tools/vendor/github.com/klauspost/compress/zstd/bitwriter.go # openshift/tools/vendor/github.com/klauspost/compress/zstd/blockdec.go # openshift/tools/vendor/github.com/klauspost/compress/zstd/decoder.go # openshift/tools/vendor/github.com/klauspost/compress/zstd/dict.go # openshift/tools/vendor/github.com/klauspost/compress/zstd/enc_base.go # openshift/tools/vendor/github.com/klauspost/compress/zstd/enc_best.go # openshift/tools/vendor/github.com/klauspost/compress/zstd/enc_better.go # openshift/tools/vendor/github.com/klauspost/compress/zstd/enc_dfast.go # openshift/tools/vendor/github.com/klauspost/compress/zstd/enc_fast.go # openshift/tools/vendor/github.com/klauspost/compress/zstd/framedec.go # openshift/tools/vendor/github.com/klauspost/compress/zstd/fse_encoder.go # openshift/tools/vendor/github.com/klauspost/compress/zstd/seqdec.go # openshift/tools/vendor/github.com/klauspost/compress/zstd/seqdec_amd64.go # openshift/tools/vendor/github.com/klauspost/compress/zstd/snappy.go # openshift/tools/vendor/github.com/klauspost/compress/zstd/zip.go # openshift/tools/vendor/github.com/klauspost/compress/zstd/zstd.go # openshift/tools/vendor/github.com/mitchellh/go-homedir/LICENSE # openshift/tools/vendor/github.com/opencontainers/image-spec/LICENSE # openshift/tools/vendor/github.com/openshift/api/LICENSE # openshift/tools/vendor/github.com/openshift/cluster-capi-operator/LICENSE # openshift/tools/vendor/github.com/openshift/cluster-capi-operator/manifests-gen/customizations.go # openshift/tools/vendor/github.com/openshift/cluster-capi-operator/manifests-gen/main.go # openshift/tools/vendor/github.com/sirupsen/logrus/LICENSE # openshift/tools/vendor/golang.org/x/oauth2/deviceauth.go # openshift/tools/vendor/golang.org/x/oauth2/oauth2.go # openshift/tools/vendor/golang.org/x/oauth2/pkce.go # openshift/tools/vendor/golang.org/x/oauth2/token.go # openshift/tools/vendor/golang.org/x/oauth2/transport.go # openshift/tools/vendor/modules.txt
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…er image to be consistent with ART for 4.22 Reconciling with https://github.com/openshift/ocp-build-data/tree/992b0dc3f0e12d86e7466dadf1eb51b2584a9a83/images/ose-azure-cluster-api-controllers.yml
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
WalkthroughThis PR performs a major dependency and version upgrade across the cluster-api-provider-azure codebase. Changes include upgrading Go toolchain and core Kubernetes dependencies (k8s.io, controller-runtime), bumping Azure Service Operator to v2.16.0 and migrating hosted Azure API versions (2024-09-01 → 2025-08-01), modernizing Kubernetes client patterns to server-side apply, updating webhook validator signatures, and refreshing CI/CD workflow action versions. CRDs, RBAC rules, configuration files, and documentation are regenerated to reflect these upgrades. ChangesCI/CD and GitHub Workflow Updates
Go Dependencies and Tooling Version Management
Azure Service Operator API Migration
Kubernetes Client Pattern Modernization
Configuration, RBAC, and Generated Code Updates
Documentation and Changelog
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes 🚥 Pre-merge checks | ✅ 11 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (11 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Tip 💬 Introducing Slack Agent: The best way for teams to turn conversations into code.Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.
Built for teams:
One agent for your entire SDLC. Right inside Slack. Comment |
|
Hi @cloud-team-rebase-bot[bot]. Thanks for your PR. I'm waiting for a openshift member to verify that this patch is reasonable to test. If it is, they should reply with Regular contributors should join the org to skip this step. Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. 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. |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
There was a problem hiding this comment.
Actionable comments posted: 6
🧹 Nitpick comments (1)
.golangci.yml (1)
343-346: ⚡ Quick winNarrow this
SA1019exclusion by path to improve clarity.The text-only exemption is global and broader than comparable nearby exclusions (see lines 336–342). Since all
GetEventRecorderForcalls are confined tomain.goand test files, adding apathfilter would prevent accidental masking of unrelated deprecations. Also escape the dot in the regex pattern.♻️ Suggested config tightening
- linters: - staticcheck + path: '^(main\.go|controllers/.*_test\.go|exp/controllers/.*_test\.go)$' - text: 'SA1019: (env|mgr|testEnv).GetEventRecorderFor is deprecated' + text: 'SA1019: (env|mgr|testEnv)\.GetEventRecorderFor is deprecated'🤖 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 @.golangci.yml around lines 343 - 346, The current global SA1019 exemption entry in .golangci.yml should be narrowed by adding a path filter and escaping the dot in the regex: update the SA1019 lint exception (the entry that currently has text: 'SA1019: (env|mgr|testEnv).GetEventRecorderFor is deprecated') to include a path: that matches only main.go and test files (e.g., a regex matching ^(main\.go|.*_test\.go)$) and escape the literal dot in GetEventRecorderFor pattern; keep the same text message but add the path restriction so only calls in main.go and *_test.go are excluded.
🤖 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.
Inline comments:
In @.github/workflows/dependabot-code-gen.yml:
- Around line 26-28: The "Get Go version" step (id: vars, using make go-version)
runs before the repository is checked out and writes to an unquoted
$GITHUB_OUTPUT; fix by moving the actions/checkout step to run before the "Get
Go version" step so the Makefile is available, and quote the variable when
appending output (use "$GITHUB_OUTPUT") to eliminate the shellcheck SC2086
warning — update the step that calls make go-version and the surrounding job
ordering accordingly.
In `@controllers/resource_reconciler_test.go`:
- Around line 90-91: The tests in controllers/resource_reconciler_test.go
currently instantiate controller-runtime fake clients via
fakeClientBuilder().Build(); replace those with GoMock-based mocks from the
repo’s generated mock packages (use gomock.NewController and the appropriate
mock client interfaces under /azure/services/*/mock_*/ e.g.,
mock_kubernetes.NewMockClient) and inject the mock where the test currently sets
the Client field; set expectations on methods used by the code under test (List,
Get, Create, Update, Delete, etc.) for each subtest instance, and update all
occurrences referenced (around the Client: fakeClientBuilder().Build() sites and
the other noted occurrences at the given ranges) to use the gomock mocks instead
of the fake client so tests conform to the repository mocking guideline.
In `@controllers/resource_reconciler.go`:
- Around line 106-109: The error message is stale: in the Apply call using
r.Apply(ctx, client.ApplyConfigurationFromUnstructured(spec),
client.FieldOwner("capz-manager")) you should update the returned error text to
reflect an apply operation. Replace the string "failed to patch resource" with
"failed to apply resource" (or equivalent) in the error returned when
client.IgnoreNotFound(err) != nil so it matches the r.Apply code path and the
reconcile messaging elsewhere.
In `@docs/book/src/managed/managedcluster.md`:
- Line 43: Update all stale Kubernetes version strings: replace every "v1.21.2"
occurrence in the spec walkthrough with "v1.35.4" to match the bumped clusterctl
example (the export KUBERNETES_VERSION value) and the Security Profile YAML;
search for the literal "v1.21.2" in the managedcluster.md content (the spec
walkthrough blocks and the Security Profile section) and update them to
"v1.35.4" so all examples are consistent and use a supported version.
In `@docs/book/src/topics/aso.md`:
- Line 71: Replace the vague link text in the sentence containing "continue with
the upgrade of CAPZ as specified
[here](https://cluster-api.sigs.k8s.io/tasks/upgrading-cluster-api-versions.html?highlight=upgrade#when-to-upgrade)"
with a descriptive phrase (for example "as specified in the Cluster API upgrade
documentation") so the link text conveys destination meaning and satisfies
MD059; update the anchor text only, keeping the existing URL unchanged.
In `@Makefile`:
- Line 835: The Makefile currently checks VERBOSE with '-n "$(VERBOSE)"' which
treats VERBOSE=0 as enabled; update the conditional to match the documented
contract by testing explicitly for the value "1" (for example use 'if [
"$(VERBOSE)" = "1" ]; then \') so only VERBOSE=1 enables verbose behavior;
modify the condition where '-n "$(VERBOSE)"' appears and ensure surrounding
branches that reference VERBOSE behavior remain consistent.
---
Nitpick comments:
In @.golangci.yml:
- Around line 343-346: The current global SA1019 exemption entry in
.golangci.yml should be narrowed by adding a path filter and escaping the dot in
the regex: update the SA1019 lint exception (the entry that currently has text:
'SA1019: (env|mgr|testEnv).GetEventRecorderFor is deprecated') to include a
path: that matches only main.go and test files (e.g., a regex matching
^(main\.go|.*_test\.go)$) and escape the literal dot in GetEventRecorderFor
pattern; keep the same text message but add the path restriction so only calls
in main.go and *_test.go are excluded.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: b4fbcf16-611a-43a5-b1cc-62c019d0ce1b
⛔ Files ignored due to path filters (166)
go.sumis excluded by!**/*.sumhack/tools/go.sumis excluded by!**/*.sumhack/tools/vendor/github.com/gogo/protobuf/AUTHORSis excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/CONTRIBUTORSis excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/LICENSEis excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/proto/Makefileis excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/proto/clone.gois excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/proto/custom_gogo.gois excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/proto/decode.gois excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/proto/deprecated.gois excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/proto/discard.gois excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/proto/duration.gois excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/proto/duration_gogo.gois excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/proto/encode.gois excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/proto/encode_gogo.gois excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/proto/equal.gois excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/proto/extensions.gois excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/proto/extensions_gogo.gois excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/proto/lib.gois excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/proto/lib_gogo.gois excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/proto/message_set.gois excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/proto/pointer_reflect.gois excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/proto/pointer_reflect_gogo.gois excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/proto/pointer_unsafe.gois excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/proto/pointer_unsafe_gogo.gois excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/proto/properties.gois excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/proto/properties_gogo.gois excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/proto/skip_gogo.gois excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/proto/table_marshal.gois excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/proto/table_marshal_gogo.gois excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/proto/table_merge.gois excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/proto/table_unmarshal.gois excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/proto/table_unmarshal_gogo.gois excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/proto/text.gois excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/proto/text_gogo.gois excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/proto/text_parser.gois excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/proto/timestamp.gois excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/proto/timestamp_gogo.gois excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/proto/wrappers.gois excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/proto/wrappers_gogo.gois excluded by!**/vendor/**hack/tools/vendor/github.com/gogo/protobuf/sortkeys/sortkeys.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/net/http2/client_priority_go126.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/net/http2/client_priority_go127.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/net/http2/frame.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/net/http2/hpack/tables.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/net/http2/http2.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/net/http2/server.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/net/http2/transport.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/net/http2/writesched.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/net/http2/writesched_priority_rfc7540.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/net/http2/writesched_random.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/net/internal/httpsfv/httpsfv.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/text/secure/bidirule/bidirule.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/text/secure/bidirule/bidirule10.0.0.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/text/secure/bidirule/bidirule9.0.0.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/text/unicode/bidi/tables10.0.0.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/text/unicode/bidi/tables11.0.0.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/text/unicode/bidi/tables12.0.0.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/text/unicode/bidi/tables13.0.0.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/text/unicode/bidi/tables15.0.0.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/text/unicode/bidi/tables17.0.0.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/text/unicode/bidi/tables9.0.0.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/text/unicode/norm/forminfo.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/text/unicode/norm/tables10.0.0.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/text/unicode/norm/tables11.0.0.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/text/unicode/norm/tables12.0.0.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/text/unicode/norm/tables13.0.0.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/text/unicode/norm/tables15.0.0.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/text/unicode/norm/tables17.0.0.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/text/unicode/norm/tables9.0.0.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/tools/go/ast/inspector/cursor.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/tools/go/ast/inspector/inspector.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/tools/go/ast/inspector/iter.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/tools/go/packages/golist.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/tools/go/packages/packages.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/tools/go/types/objectpath/objectpath.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/tools/internal/aliases/aliases.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/tools/internal/aliases/aliases_go122.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/tools/internal/event/core/event.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/tools/internal/event/keys/keys.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/tools/internal/event/label/label.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/tools/internal/gcimporter/iexport.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/tools/internal/gcimporter/iimport.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/tools/internal/stdlib/deps.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/tools/internal/stdlib/manifest.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/tools/internal/typeparams/free.gois excluded by!**/vendor/**hack/tools/vendor/golang.org/x/tools/internal/typesinternal/types.gois excluded by!**/vendor/**hack/tools/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/types.gois excluded by!**/vendor/**hack/tools/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/doc.gois excluded by!**/vendor/**hack/tools/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/generated.pb.gois excluded by!**/*.pb.go,!**/vendor/**hack/tools/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/generated.protois excluded by!**/vendor/**hack/tools/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/generated.protomessage.pb.gois excluded by!**/*.pb.go,!**/vendor/**hack/tools/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/types.gois excluded by!**/vendor/**hack/tools/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/zz_generated.conversion.gois excluded by!**/vendor/**,!**/zz_generated*hack/tools/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/zz_generated.model_name.gois excluded by!**/vendor/**,!**/zz_generated*hack/tools/vendor/k8s.io/apimachinery/pkg/api/resource/generated.pb.gois excluded by!**/*.pb.go,!**/vendor/**hack/tools/vendor/k8s.io/apimachinery/pkg/api/resource/generated.protois excluded by!**/vendor/**hack/tools/vendor/k8s.io/apimachinery/pkg/api/resource/generated.protomessage.pb.gois excluded by!**/*.pb.go,!**/vendor/**hack/tools/vendor/k8s.io/apimachinery/pkg/api/resource/quantity.gois excluded by!**/vendor/**hack/tools/vendor/k8s.io/apimachinery/pkg/api/resource/quantity_proto.gois excluded by!**/vendor/**hack/tools/vendor/k8s.io/apimachinery/pkg/api/resource/zz_generated.model_name.gois excluded by!**/vendor/**,!**/zz_generated*hack/tools/vendor/k8s.io/apimachinery/pkg/api/validate/constraints/constraints.gois excluded by!**/vendor/**hack/tools/vendor/k8s.io/apimachinery/pkg/api/validate/content/decimal_int.gois excluded by!**/vendor/**hack/tools/vendor/k8s.io/apimachinery/pkg/api/validate/content/dns.gois excluded by!**/vendor/**hack/tools/vendor/k8s.io/apimachinery/pkg/api/validate/content/errors.gois excluded by!**/vendor/**hack/tools/vendor/k8s.io/apimachinery/pkg/api/validate/content/identifier.gois excluded by!**/vendor/**hack/tools/vendor/k8s.io/apimachinery/pkg/api/validate/content/kube.gois excluded by!**/vendor/**hack/tools/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/doc.gois excluded by!**/vendor/**hack/tools/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/generated.pb.gois excluded by!**/*.pb.go,!**/vendor/**hack/tools/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/generated.protois excluded by!**/vendor/**hack/tools/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/generated.protomessage.pb.gois excluded by!**/*.pb.go,!**/vendor/**hack/tools/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/types.gois excluded by!**/vendor/**hack/tools/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/zz_generated.model_name.gois excluded by!**/vendor/**,!**/zz_generated*hack/tools/vendor/k8s.io/apimachinery/pkg/labels/selector.gois excluded by!**/vendor/**hack/tools/vendor/k8s.io/apimachinery/pkg/runtime/doc.gois excluded by!**/vendor/**hack/tools/vendor/k8s.io/apimachinery/pkg/runtime/generated.pb.gois excluded by!**/*.pb.go,!**/vendor/**hack/tools/vendor/k8s.io/apimachinery/pkg/runtime/generated.protomessage.pb.gois excluded by!**/*.pb.go,!**/vendor/**hack/tools/vendor/k8s.io/apimachinery/pkg/runtime/schema/generated.pb.gois excluded by!**/*.pb.go,!**/vendor/**hack/tools/vendor/k8s.io/apimachinery/pkg/runtime/schema/generated.protomessage.pb.gois excluded by!**/*.pb.go,!**/vendor/**hack/tools/vendor/k8s.io/apimachinery/pkg/runtime/scheme.gois excluded by!**/vendor/**hack/tools/vendor/k8s.io/apimachinery/pkg/runtime/types_proto.gois excluded by!**/vendor/**hack/tools/vendor/k8s.io/apimachinery/pkg/runtime/zz_generated.model_name.gois excluded by!**/vendor/**,!**/zz_generated*hack/tools/vendor/k8s.io/apimachinery/pkg/util/intstr/generated.pb.gois excluded by!**/*.pb.go,!**/vendor/**hack/tools/vendor/k8s.io/apimachinery/pkg/util/intstr/generated.protois excluded by!**/vendor/**hack/tools/vendor/k8s.io/apimachinery/pkg/util/intstr/generated.protomessage.pb.gois excluded by!**/*.pb.go,!**/vendor/**hack/tools/vendor/k8s.io/apimachinery/pkg/util/intstr/intstr.gois excluded by!**/vendor/**hack/tools/vendor/k8s.io/apimachinery/pkg/util/intstr/zz_generated.model_name.gois excluded by!**/vendor/**,!**/zz_generated*hack/tools/vendor/k8s.io/apimachinery/pkg/util/sets/set.gois excluded by!**/vendor/**hack/tools/vendor/k8s.io/apimachinery/pkg/util/validation/field/error_matcher.gois excluded by!**/vendor/**hack/tools/vendor/k8s.io/apimachinery/pkg/util/validation/field/errors.gois excluded by!**/vendor/**hack/tools/vendor/k8s.io/apimachinery/pkg/util/validation/validation.gois excluded by!**/vendor/**hack/tools/vendor/k8s.io/kube-openapi/LICENSEis excluded by!**/vendor/**hack/tools/vendor/k8s.io/kube-openapi/pkg/util/trie.gois excluded by!**/vendor/**hack/tools/vendor/k8s.io/kube-openapi/pkg/util/util.gois excluded by!**/vendor/**hack/tools/vendor/k8s.io/utils/net/multi_listen.gois excluded by!**/vendor/**hack/tools/vendor/modules.txtis excluded by!**/vendor/**hack/tools/vendor/sigs.k8s.io/controller-tools/pkg/crd/markers/crd.gois excluded by!**/vendor/**hack/tools/vendor/sigs.k8s.io/controller-tools/pkg/crd/markers/register.gois excluded by!**/vendor/**hack/tools/vendor/sigs.k8s.io/controller-tools/pkg/crd/markers/topology.gois excluded by!**/vendor/**hack/tools/vendor/sigs.k8s.io/controller-tools/pkg/crd/markers/validation.gois excluded by!**/vendor/**hack/tools/vendor/sigs.k8s.io/controller-tools/pkg/crd/markers/zz_generated.markerhelp.gois excluded by!**/vendor/**,!**/zz_generated*hack/tools/vendor/sigs.k8s.io/controller-tools/pkg/markers/collect.gois excluded by!**/vendor/**hack/tools/vendor/sigs.k8s.io/controller-tools/pkg/markers/parse.gois excluded by!**/vendor/**hack/tools/vendor/sigs.k8s.io/controller-tools/pkg/markers/reg.gois excluded by!**/vendor/**hack/tools/vendor/sigs.k8s.io/json/internal/golang/encoding/json/decode.gois excluded by!**/vendor/**hack/tools/vendor/sigs.k8s.io/json/internal/golang/encoding/json/encode.gois excluded by!**/vendor/**hack/tools/vendor/sigs.k8s.io/json/internal/golang/encoding/json/stream.gois excluded by!**/vendor/**hack/tools/vendor/sigs.k8s.io/structured-merge-diff/v6/value/allocator.gois excluded by!**/vendor/**hack/tools/vendor/sigs.k8s.io/structured-merge-diff/v6/value/jsontagutil.gois excluded by!**/vendor/**openshift/tools/go.sumis excluded by!**/*.sumopenshift/tools/vendor/github.com/openshift/cluster-capi-operator/manifests-gen/kustomization.yamlis excluded by!**/vendor/**openshift/tools/vendor/github.com/openshift/cluster-capi-operator/manifests-gen/webhook-namespace-selector.yamlis excluded by!**/vendor/**openshift/tools/vendor/modules.txtis excluded by!**/vendor/**vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/CHANGELOG.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported/response_error.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared/constants.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_http_trace.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_logging.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/request.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/diag/diag.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/diag/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/errorinfo/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/errorinfo/errorinfo.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/exported/exported.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/log/doc.gois excluded by!**/vendor/**,!vendor/**
📒 Files selected for processing (134)
.codespellignore.github/workflows/codeql.yml.github/workflows/dependabot-code-gen.yml.github/workflows/dependency-review.yml.github/workflows/pr-golangci-lint.yaml.github/workflows/scorecards.yml.github/workflows/weekly-security-scan.yaml.golangci.ymlAGENTS.mdCHANGELOG/v1.22.2.mdCHANGELOG/v1.22.4.mdCHANGELOG/v1.23.1.mdCHANGELOG/v1.24.0.mdMakefileTiltfileazure/converters/managedagentpool.goazure/converters/managedagentpool_test.goazure/services/agentpools/agentpools.goazure/services/agentpools/agentpools_test.goazure/services/agentpools/spec.goazure/services/agentpools/spec_test.goazure/services/managedclusters/managedclusters.goazure/services/managedclusters/managedclusters_test.goazure/services/managedclusters/spec.goazure/services/managedclusters/spec_test.goazure/services/privateendpoints/spec_test.goconfig/aso/crds.yamlconfig/aso/kustomization.yamlconfig/aso/patches/visualizer_label_in_maintenanceconfigurations.yamlconfig/crd/bases/infrastructure.cluster.x-k8s.io_azureasomanagedclusters.yamlconfig/crd/bases/infrastructure.cluster.x-k8s.io_azureasomanagedclustertemplates.yamlconfig/crd/bases/infrastructure.cluster.x-k8s.io_azureasomanagedcontrolplanes.yamlconfig/crd/bases/infrastructure.cluster.x-k8s.io_azureasomanagedcontrolplanetemplates.yamlconfig/crd/bases/infrastructure.cluster.x-k8s.io_azureasomanagedmachinepools.yamlconfig/crd/bases/infrastructure.cluster.x-k8s.io_azureasomanagedmachinepooltemplates.yamlconfig/crd/bases/infrastructure.cluster.x-k8s.io_azureclusteridentities.yamlconfig/crd/bases/infrastructure.cluster.x-k8s.io_azureclusters.yamlconfig/crd/bases/infrastructure.cluster.x-k8s.io_azureclustertemplates.yamlconfig/crd/bases/infrastructure.cluster.x-k8s.io_azuremachinepoolmachines.yamlconfig/crd/bases/infrastructure.cluster.x-k8s.io_azuremachinepools.yamlconfig/crd/bases/infrastructure.cluster.x-k8s.io_azuremachines.yamlconfig/crd/bases/infrastructure.cluster.x-k8s.io_azuremachinetemplates.yamlconfig/crd/bases/infrastructure.cluster.x-k8s.io_azuremanagedclusters.yamlconfig/crd/bases/infrastructure.cluster.x-k8s.io_azuremanagedclustertemplates.yamlconfig/crd/bases/infrastructure.cluster.x-k8s.io_azuremanagedcontrolplanes.yamlconfig/crd/bases/infrastructure.cluster.x-k8s.io_azuremanagedcontrolplanetemplates.yamlconfig/crd/bases/infrastructure.cluster.x-k8s.io_azuremanagedmachinepools.yamlconfig/crd/bases/infrastructure.cluster.x-k8s.io_azuremanagedmachinepooltemplates.yamlconfig/rbac/role.yamlconfig/webhook/manifests.yamlcontrollers/azureasomanagedcontrolplane_controller.gocontrollers/azureasomanagedcontrolplane_controller_test.gocontrollers/azuremanagedcontrolplane_controller.gocontrollers/azuremanagedmachinepool_reconciler.gocontrollers/resource_reconciler.gocontrollers/resource_reconciler_test.godocs/book/src/developers/development.mddocs/book/src/developers/getting-started-with-capi-operator.mddocs/book/src/developers/releasing.mddocs/book/src/managed/managedcluster.mddocs/book/src/topics/aso.mdexp/api/v1beta1/azuremachinepool_webhook.goexp/api/v1beta1/azuremachinepool_webhook_test.goexp/api/v1beta1/azuremachinepoolmachine_webhook.gogo.modhack/create-dev-cluster.shhack/tools/go.modhack/version.shinternal/api/v1beta1/azuremachine_default_test.gointernal/webhooks/azureasomanagedcluster_webhook.gointernal/webhooks/azureasomanagedcontrolplane_webhook.gointernal/webhooks/azureasomanagedmachinepool_webhook.gointernal/webhooks/azurecluster_webhook.gointernal/webhooks/azureclusteridentity_webhook.gointernal/webhooks/azureclustertemplate_webhook.gointernal/webhooks/azuremachine_validation.gointernal/webhooks/azuremachine_validation_test.gointernal/webhooks/azuremachine_webhook.gointernal/webhooks/azuremachinetemplate_webhook.gointernal/webhooks/azuremanagedcluster_webhook.gointernal/webhooks/azuremanagedclustertemplate_webhook.gointernal/webhooks/azuremanagedcontrolplane_webhook.gointernal/webhooks/azuremanagedcontrolplanetemplate_webhook.gointernal/webhooks/azuremanagedmachinepool_webhook.gointernal/webhooks/azuremanagedmachinepooltemplate_webhook.gomain.gometadata.yamlopenshift/capi-operator-manifests/default/manifests.yamlopenshift/capi-operator-manifests/default/metadata.yamlopenshift/provider-version.mkopenshift/tools/go.modpkg/mutators/azureasomanagedcontrolplane.gopkg/mutators/azureasomanagedcontrolplane_test.gotemplates/cluster-template-aks-aso-maintenance.yamltemplates/flavors/README.mdtemplates/flavors/aks-aso-maintenance/kustomization.yamltemplates/test/ci/cluster-template-prow-ci-version-dra.yamltemplates/test/ci/cluster-template-prow-ci-version-md-and-mp.yamltemplates/test/ci/cluster-template-prow-dalec-custom-builds.yamltemplates/test/ci/cluster-template-prow-machine-pool-ci-version-multi-zone.yamltemplates/test/ci/patches/alpha-beta-feature-gates-kubeadmcontrolplane.yamltemplates/test/ci/patches/dra-kubeadmconfig.yamltemplates/test/ci/patches/dra-kubeadmconfigtemplate.yamltemplates/test/ci/patches/dra-kubeadmcontrolplane.yamltemplates/test/ci/prow-ci-version-md-and-mp/kustomization.yamltemplates/test/ci/prow-dalec-custom-builds/patches/azl3-machine-deployment.yamltemplates/test/ci/prow-dalec-custom-builds/patches/control-plane-custom-builds.yamltemplates/test/ci/prow-dalec-custom-builds/patches/kubeadm-bootstrap-custom-builds.yamltemplates/test/ci/prow-machine-pool-ci-version-multi-zone/kustomization.yamltemplates/test/ci/prow-machine-pool-ci-version-multi-zone/patches/machine-pool-multi-zone.yamltemplates/test/dev/cluster-template-custom-builds-dra.yamltemplates/test/dev/cluster-template-custom-builds-load-dra.yamltemplates/test/dev/cluster-template-custom-builds-load.yamltemplates/test/dev/cluster-template-custom-builds-machine-pool-load-dra.yamltemplates/test/dev/cluster-template-custom-builds.yamltemplates/test/dev/custom-builds/kustomization.yamltemplates/test/dev/custom-builds/patches/kubeadm-controlplane-bootstrap.yamltest/e2e/aks_maintenance_configuration.gotest/e2e/aks_patches.gotest/e2e/azure_clusterproxy.gotest/e2e/azure_kuberay.gotest/e2e/azure_test.gotest/e2e/capi_test.gotest/e2e/config/azure-dev.yamltest/e2e/data/infrastructure-azure/v1.22.2/cluster-template-aks.yamltest/e2e/data/infrastructure-azure/v1.22.2/cluster-template-prow-machine-and-machine-pool.yamltest/e2e/data/infrastructure-azure/v1.22.2/cluster-template-prow.yamltest/e2e/data/infrastructure-azure/v1.23.0/cluster-template-aks.yamltest/e2e/data/infrastructure-azure/v1.23.0/cluster-template-prow-machine-and-machine-pool.yamltest/e2e/data/infrastructure-azure/v1.23.0/cluster-template-prow.yamltest/e2e/data/infrastructure-azure/v1beta1/cluster-template-md-taints/kcp-taints.yamltest/e2e/data/infrastructure-azure/v1beta1/cluster-template-md-taints/kustomization.yamltest/e2e/data/shared/v1beta1/metadata.yamltest/e2e/data/shared/v1beta1_provider/metadata.yaml
| - name: Get Go version | ||
| id: vars | ||
| run: echo "go_version=$(make go-version)" >> $GITHUB_OUTPUT |
There was a problem hiding this comment.
Quote $GITHUB_OUTPUT to fix the shellcheck SC2086 warning, and move checkout before make go-version.
Two issues in this block:
- SC2086 (line 28):
$GITHUB_OUTPUTis unquoted, triggering shellcheck's word-splitting warning. - Step ordering (pre-existing):
make go-versionis invoked on line 28 beforeactions/checkouton line 34–35. Without the repository checked out, theMakefileis not present and this step will fail. Compare with the correct ordering inpr-golangci-lint.yaml(checkout → get-go-version → setup-go).
🐛 Proposed fix
- - name: Get Go version
- id: vars
- run: echo "go_version=$(make go-version)" >> $GITHUB_OUTPUT
- - name: Set up Go
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
- with:
- go-version: ${{ steps.vars.outputs.go_version }}
- id: go
- - name: Check out code into the Go module directory
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+ - name: Check out code into the Go module directory
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+ - name: Get Go version
+ id: vars
+ run: echo "go_version=$(make go-version)" >> "$GITHUB_OUTPUT"
+ - name: Set up Go
+ uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
+ with:
+ go-version: ${{ steps.vars.outputs.go_version }}
+ id: go📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - name: Get Go version | |
| id: vars | |
| run: echo "go_version=$(make go-version)" >> $GITHUB_OUTPUT | |
| - name: Check out code into the Go module directory | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - name: Get Go version | |
| id: vars | |
| run: echo "go_version=$(make go-version)" >> "$GITHUB_OUTPUT" | |
| - name: Set up Go | |
| uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 | |
| with: | |
| go-version: ${{ steps.vars.outputs.go_version }} | |
| id: go |
🧰 Tools
🪛 actionlint (1.7.12)
[error] 28-28: shellcheck reported issue in this script: SC2086:info:1:41: Double quote to prevent globbing and word splitting
(shellcheck)
🤖 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 @.github/workflows/dependabot-code-gen.yml around lines 26 - 28, The "Get Go
version" step (id: vars, using make go-version) runs before the repository is
checked out and writes to an unquoted $GITHUB_OUTPUT; fix by moving the
actions/checkout step to run before the "Get Go version" step so the Makefile is
available, and quote the variable when appending output (use "$GITHUB_OUTPUT")
to eliminate the shellcheck SC2086 warning — update the step that calls make
go-version and the surrounding job ordering accordingly.
| Client: fakeClientBuilder().Build(), | ||
| resources: []*unstructured.Unstructured{ |
There was a problem hiding this comment.
🛠️ Refactor suggestion | 🟠 Major | 🏗️ Heavy lift
Use GoMock-based unit-test doubles instead of fakeclient.ClientBuilder in this test file.
These subtests now use controller-runtime fake clients directly, which conflicts with the repository’s _test.go mocking requirement. Please migrate these unit tests to GoMock-backed mocks from the expected mock directories.
As per coding guidelines **/*_test.go: Unit tests must test individual functions/methods with mocks generated by GoMock in /azure/services/*/mock_*/ directories.
Also applies to: 138-139, 246-248, 360-362, 467-469, 498-499
🤖 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 `@controllers/resource_reconciler_test.go` around lines 90 - 91, The tests in
controllers/resource_reconciler_test.go currently instantiate controller-runtime
fake clients via fakeClientBuilder().Build(); replace those with GoMock-based
mocks from the repo’s generated mock packages (use gomock.NewController and the
appropriate mock client interfaces under /azure/services/*/mock_*/ e.g.,
mock_kubernetes.NewMockClient) and inject the mock where the test currently sets
the Client field; set expectations on methods used by the code under test (List,
Get, Create, Update, Delete, etc.) for each subtest instance, and update all
occurrences referenced (around the Client: fakeClientBuilder().Build() sites and
the other noted occurrences at the given ranges) to use the gomock mocks instead
of the fake client so tests conform to the repository mocking guideline.
| err := r.Apply(ctx, client.ApplyConfigurationFromUnstructured(spec), client.FieldOwner("capz-manager")) | ||
| if client.IgnoreNotFound(err) != nil { | ||
| return fmt.Errorf("failed to patch resource: %w", err) | ||
| } |
There was a problem hiding this comment.
Stale error message after switching from Patch to Apply.
Line 108 still says "failed to patch resource" but the operation is now r.Apply. This should read "failed to apply resource" to match the reconcile path on line 162.
🔧 Proposed fix
- if client.IgnoreNotFound(err) != nil {
- return fmt.Errorf("failed to patch resource: %w", err)
- }
+ if client.IgnoreNotFound(err) != nil {
+ return fmt.Errorf("failed to apply resource: %w", err)
+ }📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| err := r.Apply(ctx, client.ApplyConfigurationFromUnstructured(spec), client.FieldOwner("capz-manager")) | |
| if client.IgnoreNotFound(err) != nil { | |
| return fmt.Errorf("failed to patch resource: %w", err) | |
| } | |
| err := r.Apply(ctx, client.ApplyConfigurationFromUnstructured(spec), client.FieldOwner("capz-manager")) | |
| if client.IgnoreNotFound(err) != nil { | |
| return fmt.Errorf("failed to apply resource: %w", err) | |
| } |
🤖 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 `@controllers/resource_reconciler.go` around lines 106 - 109, The error message
is stale: in the Apply call using r.Apply(ctx,
client.ApplyConfigurationFromUnstructured(spec),
client.FieldOwner("capz-manager")) you should update the returned error text to
reflect an apply operation. Replace the string "failed to patch resource" with
"failed to apply resource" (or equivalent) in the error returned when
client.IgnoreNotFound(err) != nil so it matches the r.Apply code path and the
reconcile messaging elsewhere.
| export CLUSTER_NAME="my-cluster" | ||
| export WORKER_MACHINE_COUNT=2 | ||
| export KUBERNETES_VERSION="v1.33.6" | ||
| export KUBERNETES_VERSION="v1.35.4" |
There was a problem hiding this comment.
Stale v1.21.2 references in the spec walkthrough create an inconsistency.
The PR bumped the clusterctl example (Line 43) and the Security Profile YAML (Line 360) to v1.35.4, but the specification walkthrough further down still has four v1.21.2 references at Lines 135, 166, 192, and 242. v1.21.2 is end-of-life, and a user copy-pasting that section will apply an unsupported Kubernetes version.
📝 Proposed fix – update spec walkthrough version references
Apply to Lines 135, 166, 192, and 242:
- version: v1.21.2
+ version: v1.35.4Also applies to: 360-360
🤖 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 `@docs/book/src/managed/managedcluster.md` at line 43, Update all stale
Kubernetes version strings: replace every "v1.21.2" occurrence in the spec
walkthrough with "v1.35.4" to match the bumped clusterctl example (the export
KUBERNETES_VERSION value) and the Security Profile YAML; search for the literal
"v1.21.2" in the managedcluster.md content (the spec walkthrough blocks and the
Security Profile section) and update them to "v1.35.4" so all examples are
consistent and use a supported version.
| For example, to install the all CRDs of `cache.azure.com` and `MongodbDatabase.documentdb.azure.com`, follow these steps: | ||
| - `export ADDITIONAL_ASO_CRDS="cache.azure.com/*;documentdb.azure.com/MongodbDatabase"` | ||
| - continue with the upgrade of CAPZ as specified [here](https://cluster-api.sigs.k8s.io/tasks/upgrading-cluster-api-versions.html?highlight=upgrade#when-to-upgrade] | ||
| - continue with the upgrade of CAPZ as specified [here](https://cluster-api.sigs.k8s.io/tasks/upgrading-cluster-api-versions.html?highlight=upgrade#when-to-upgrade) |
There was a problem hiding this comment.
Use descriptive link text to address the MD059 warning.
The link text "here" is flagged by markdownlint (MD059). Embedding the link in a meaningful phrase fixes this with no behavior change.
📝 Proposed fix
-- continue with the upgrade of CAPZ as specified [here](https://cluster-api.sigs.k8s.io/tasks/upgrading-cluster-api-versions.html?highlight=upgrade#when-to-upgrade)
+- continue with [upgrading CAPZ via the Cluster API upgrade guide](https://cluster-api.sigs.k8s.io/tasks/upgrading-cluster-api-versions.html?highlight=upgrade#when-to-upgrade)📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - continue with the upgrade of CAPZ as specified [here](https://cluster-api.sigs.k8s.io/tasks/upgrading-cluster-api-versions.html?highlight=upgrade#when-to-upgrade) | |
| - continue with [upgrading CAPZ via the Cluster API upgrade guide](https://cluster-api.sigs.k8s.io/tasks/upgrading-cluster-api-versions.html?highlight=upgrade#when-to-upgrade) |
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)
[warning] 71-71: Link text should be descriptive
(MD059, descriptive-link-text)
🤖 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 `@docs/book/src/topics/aso.md` at line 71, Replace the vague link text in the
sentence containing "continue with the upgrade of CAPZ as specified
[here](https://cluster-api.sigs.k8s.io/tasks/upgrading-cluster-api-versions.html?highlight=upgrade#when-to-upgrade)"
with a descriptive phrase (for example "as specified in the Cluster API upgrade
documentation") so the link text conveys destination meaning and satisfies
MD059; update the anchor text only, keeping the existing URL unchanged.
| echo " Please install it before continuing with Tilt; without it, steps that call 'az' (for example VNet peering with an AKS management cluster) will fail."; \ | ||
| echo " Install: https://learn.microsoft.com/en-us/cli/azure/install-azure-cli"; \ | ||
| echo " After installing, ensure 'az' is on your PATH, then run make tilt-up again."; \ | ||
| elif [ -n "$(VERBOSE)" ]; then \ |
There was a problem hiding this comment.
Match the documented VERBOSE=1 contract exactly.
At Line 835, -n "$(VERBOSE)" treats VERBOSE=0 as enabled, which conflicts with the target help text (VERBOSE=1).
Proposed fix
- elif [ -n "$(VERBOSE)" ]; then \
+ elif [ "$(VERBOSE)" = "1" ]; then \📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| elif [ -n "$(VERBOSE)" ]; then \ | |
| elif [ "$(VERBOSE)" = "1" ]; then \ |
🤖 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 `@Makefile` at line 835, The Makefile currently checks VERBOSE with '-n
"$(VERBOSE)"' which treats VERBOSE=0 as enabled; update the conditional to match
the documented contract by testing explicitly for the value "1" (for example use
'if [ "$(VERBOSE)" = "1" ]; then \') so only VERBOSE=1 enables verbose behavior;
modify the condition where '-n "$(VERBOSE)"' appears and ensure surrounding
branches that reference VERBOSE behavior remain consistent.
|
PR needs rebase. 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. |
Summary by CodeRabbit