Skip to content

Merge https://github.com/kubernetes-sigs/cluster-api-provider-ibmcloud:v0.14.0 (5d081d1) into main#161

Open
cloud-team-rebase-bot[bot] wants to merge 122 commits into
openshift:mainfrom
openshift-cloud-team:rebase-bot-main
Open

Merge https://github.com/kubernetes-sigs/cluster-api-provider-ibmcloud:v0.14.0 (5d081d1) into main#161
cloud-team-rebase-bot[bot] wants to merge 122 commits into
openshift:mainfrom
openshift-cloud-team:rebase-bot-main

Conversation

@cloud-team-rebase-bot
Copy link
Copy Markdown

@cloud-team-rebase-bot cloud-team-rebase-bot Bot commented May 18, 2026

Summary by CodeRabbit

  • New Features

    • Added v1beta3/v1beta2 PowerVS and v1beta2 VPC APIs with richer machine/cluster/image/load‑balancer schemas and expanded status/condition fields.
  • Tests

    • Added fuzz-based conversion round‑trip tests to validate API migrations.
  • Build & Configuration

    • Tooling updates (Go 1.25), Make/Docker build adjustments, and updated weekly security-scan workflow.
  • Documentation

    • Expanded provider-specific machine-image onboarding checklist; compatibility matrix updated.
  • Deprecations

    • v1beta1 APIs removed or marked deprecated in favor of newer versions.

Prajyot-Parab and others added 30 commits December 15, 2025 19:26
Signed-off-by: Prajyot-Parab <prajyot.parab2@ibm.com>
Bumps [github.com/coreos/ignition/v2](https://github.com/coreos/ignition) from 2.25.0 to 2.25.1.
- [Release notes](https://github.com/coreos/ignition/releases)
- [Changelog](https://github.com/coreos/ignition/blob/main/docs/release-notes.md)
- [Commits](coreos/ignition@v2.25.0...v2.25.1)

---
updated-dependencies:
- dependency-name: github.com/coreos/ignition/v2
  dependency-version: 2.25.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Prajyot-Parab <prajyot.parab2@ibm.com>
Bumps [github.com/IBM/ibm-cos-sdk-go](https://github.com/IBM/ibm-cos-sdk-go) from 1.12.4 to 1.13.0.
- [Release notes](https://github.com/IBM/ibm-cos-sdk-go/releases)
- [Changelog](https://github.com/IBM/ibm-cos-sdk-go/blob/master/CHANGELOG.md)
- [Commits](IBM/ibm-cos-sdk-go@v1.12.4...v1.13.0)

---
updated-dependencies:
- dependency-name: github.com/IBM/ibm-cos-sdk-go
  dependency-version: 1.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…2586)

Bumps [github.com/IBM/platform-services-go-sdk](https://github.com/IBM/platform-services-go-sdk) from 0.91.0 to 0.92.0.
- [Release notes](https://github.com/IBM/platform-services-go-sdk/releases)
- [Changelog](https://github.com/IBM/platform-services-go-sdk/blob/main/CHANGELOG.md)
- [Commits](IBM/platform-services-go-sdk@v0.91.0...v0.92.0)

---
updated-dependencies:
- dependency-name: github.com/IBM/platform-services-go-sdk
  dependency-version: 0.92.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Prajyot-Parab <prajyot.parab2@ibm.com>
Bumps [golang.org/x/text](https://github.com/golang/text) from 0.32.0 to 0.33.0.
- [Release notes](https://github.com/golang/text/releases)
- [Commits](golang/text@v0.32.0...v0.33.0)

---
updated-dependencies:
- dependency-name: golang.org/x/text
  dependency-version: 0.33.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.48.0 to 0.49.0.
- [Commits](golang/net@v0.48.0...v0.49.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-version: 0.49.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…2594)

Bumps [github.com/IBM/platform-services-go-sdk](https://github.com/IBM/platform-services-go-sdk) from 0.92.0 to 0.93.0.
- [Release notes](https://github.com/IBM/platform-services-go-sdk/releases)
- [Changelog](https://github.com/IBM/platform-services-go-sdk/blob/main/CHANGELOG.md)
- [Commits](IBM/platform-services-go-sdk@v0.92.0...v0.93.0)

---
updated-dependencies:
- dependency-name: github.com/IBM/platform-services-go-sdk
  dependency-version: 0.93.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…2599)

Bumps [github.com/IBM/platform-services-go-sdk](https://github.com/IBM/platform-services-go-sdk) from 0.93.0 to 0.93.1.
- [Release notes](https://github.com/IBM/platform-services-go-sdk/releases)
- [Changelog](https://github.com/IBM/platform-services-go-sdk/blob/main/CHANGELOG.md)
- [Commits](IBM/platform-services-go-sdk@v0.93.0...v0.93.1)

---
updated-dependencies:
- dependency-name: github.com/IBM/platform-services-go-sdk
  dependency-version: 0.93.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
the webhook server should use the tlsconfig specified in the manager
options, so users setting tls fields in the manager see their preference
honoured not only for the metrics server but also for the webhook
server.
Core CAPI does this already, here: https://github.com/kubernetes-sigs/cluster-api/blob/55e16f424c0ed8d3739070125d4c32a036997465/main.go#L406
…2612)

Bumps [github.com/IBM/platform-services-go-sdk](https://github.com/IBM/platform-services-go-sdk) from 0.93.1 to 0.94.0.
- [Release notes](https://github.com/IBM/platform-services-go-sdk/releases)
- [Changelog](https://github.com/IBM/platform-services-go-sdk/blob/main/CHANGELOG.md)
- [Commits](IBM/platform-services-go-sdk@v0.93.1...v0.94.0)

---
updated-dependencies:
- dependency-name: github.com/IBM/platform-services-go-sdk
  dependency-version: 0.94.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…2616)

Bumps [github.com/IBM/platform-services-go-sdk](https://github.com/IBM/platform-services-go-sdk) from 0.94.0 to 0.94.2.
- [Release notes](https://github.com/IBM/platform-services-go-sdk/releases)
- [Changelog](https://github.com/IBM/platform-services-go-sdk/blob/main/CHANGELOG.md)
- [Commits](IBM/platform-services-go-sdk@v0.94.0...v0.94.2)

---
updated-dependencies:
- dependency-name: github.com/IBM/platform-services-go-sdk
  dependency-version: 0.94.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [golang.org/x/text](https://github.com/golang/text) from 0.33.0 to 0.34.0.
- [Release notes](https://github.com/golang/text/releases)
- [Commits](golang/text@v0.33.0...v0.34.0)

---
updated-dependencies:
- dependency-name: golang.org/x/text
  dependency-version: 0.34.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [sigs.k8s.io/kustomize/kustomize/v5](https://github.com/kubernetes-sigs/kustomize) from 5.8.0 to 5.8.1.
- [Release notes](https://github.com/kubernetes-sigs/kustomize/releases)
- [Commits](kubernetes-sigs/kustomize@kustomize/v5.8.0...kustomize/v5.8.1)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/kustomize/kustomize/v5
  dependency-version: 5.8.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.49.0 to 0.50.0.
- [Commits](golang/net@v0.49.0...v0.50.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-version: 0.50.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…changes

Combine GetServiceInstance and GetInstanceByName methods
Bumps [github.com/IBM/networking-go-sdk](https://github.com/IBM/networking-go-sdk) from 0.51.15 to 0.51.16.
- [Release notes](https://github.com/IBM/networking-go-sdk/releases)
- [Changelog](https://github.com/IBM/networking-go-sdk/blob/master/CHANGELOG.md)
- [Commits](IBM/networking-go-sdk@v0.51.15...v0.51.16)

---
updated-dependencies:
- dependency-name: github.com/IBM/networking-go-sdk
  dependency-version: 0.51.16
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Prajyot-Parab <prajyot.parab2@ibm.com>
cloud-team-rebase-bot and others added 28 commits June 8, 2026 12:01
# Conflicts:
#	.github/dependabot.yml

# Conflicts:
#	.github/ISSUE_TEMPLATE/feature_request.md
# Conflicts:
#	vendor/golang.org/x/crypto/ssh/server.go
# Conflicts:
#	openshift/infrastructure-components.yaml
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

# Conflicts:
#	hack/tools/vendor/github.com/fsnotify/fsnotify/.editorconfig
#	hack/tools/vendor/github.com/golangci/lint-1/LICENSE
#	hack/tools/vendor/github.com/pelletier/go-toml/LICENSE
#	hack/tools/vendor/sigs.k8s.io/kustomize/api/resmap/transcoding.go
#	openshift/tools/vendor/github.com/adrg/xdg/README.md
#	openshift/tools/vendor/github.com/adrg/xdg/base_dirs.go
#	openshift/tools/vendor/github.com/adrg/xdg/doc.go
#	openshift/tools/vendor/github.com/adrg/xdg/internal/pathutil/pathutil.go
#	openshift/tools/vendor/github.com/adrg/xdg/internal/pathutil/pathutil_plan9.go
#	openshift/tools/vendor/github.com/adrg/xdg/internal/pathutil/pathutil_unix.go
#	openshift/tools/vendor/github.com/adrg/xdg/internal/pathutil/pathutil_windows.go
#	openshift/tools/vendor/github.com/adrg/xdg/paths_darwin.go
#	openshift/tools/vendor/github.com/adrg/xdg/paths_plan9.go
#	openshift/tools/vendor/github.com/adrg/xdg/paths_unix.go
#	openshift/tools/vendor/github.com/adrg/xdg/paths_windows.go
#	openshift/tools/vendor/github.com/adrg/xdg/xdg.go
#	openshift/tools/vendor/github.com/cespare/xxhash/v2/README.md
#	openshift/tools/vendor/github.com/cespare/xxhash/v2/xxhash.go
#	openshift/tools/vendor/github.com/cespare/xxhash/v2/xxhash_asm.go
#	openshift/tools/vendor/github.com/cespare/xxhash/v2/xxhash_other.go
#	openshift/tools/vendor/github.com/cespare/xxhash/v2/xxhash_safe.go
#	openshift/tools/vendor/github.com/cespare/xxhash/v2/xxhash_unsafe.go
#	openshift/tools/vendor/github.com/cloudflare/circl/dh/x25519/curve_amd64.s
#	openshift/tools/vendor/github.com/cloudflare/circl/dh/x448/curve_amd64.s
#	openshift/tools/vendor/github.com/cloudflare/circl/ecc/goldilocks/curve.go
#	openshift/tools/vendor/github.com/cloudflare/circl/internal/conv/conv.go
#	openshift/tools/vendor/github.com/cloudflare/circl/math/fp25519/fp_amd64.s
#	openshift/tools/vendor/github.com/cloudflare/circl/math/fp448/fp_amd64.s
#	openshift/tools/vendor/github.com/cloudflare/circl/sign/ed25519/point.go
#	openshift/tools/vendor/github.com/cloudflare/circl/sign/ed448/ed448.go
#	openshift/tools/vendor/github.com/cloudflare/circl/sign/sign.go
#	openshift/tools/vendor/github.com/containerd/stargz-snapshotter/estargz/LICENSE
#	openshift/tools/vendor/github.com/distribution/reference/README.md
#	openshift/tools/vendor/github.com/distribution/reference/normalize.go
#	openshift/tools/vendor/github.com/distribution/reference/reference.go
#	openshift/tools/vendor/github.com/fsnotify/fsnotify/.editorconfig
#	openshift/tools/vendor/github.com/fsnotify/fsnotify/.gitignore
#	openshift/tools/vendor/github.com/fsnotify/fsnotify/CHANGELOG.md
#	openshift/tools/vendor/github.com/fsnotify/fsnotify/CONTRIBUTING.md
#	openshift/tools/vendor/github.com/fsnotify/fsnotify/README.md
#	openshift/tools/vendor/github.com/fsnotify/fsnotify/backend_fen.go
#	openshift/tools/vendor/github.com/fsnotify/fsnotify/backend_inotify.go
#	openshift/tools/vendor/github.com/fsnotify/fsnotify/backend_kqueue.go
#	openshift/tools/vendor/github.com/fsnotify/fsnotify/backend_other.go
#	openshift/tools/vendor/github.com/fsnotify/fsnotify/backend_windows.go
#	openshift/tools/vendor/github.com/fsnotify/fsnotify/fsnotify.go
#	openshift/tools/vendor/github.com/fsnotify/fsnotify/system_bsd.go
#	openshift/tools/vendor/github.com/fsnotify/fsnotify/system_darwin.go
#	openshift/tools/vendor/github.com/fxamacker/cbor/v2/README.md
#	openshift/tools/vendor/github.com/fxamacker/cbor/v2/bytestring.go
#	openshift/tools/vendor/github.com/fxamacker/cbor/v2/cache.go
#	openshift/tools/vendor/github.com/fxamacker/cbor/v2/common.go
#	openshift/tools/vendor/github.com/fxamacker/cbor/v2/decode.go
#	openshift/tools/vendor/github.com/fxamacker/cbor/v2/doc.go
#	openshift/tools/vendor/github.com/fxamacker/cbor/v2/encode.go
#	openshift/tools/vendor/github.com/fxamacker/cbor/v2/encode_map.go
#	openshift/tools/vendor/github.com/fxamacker/cbor/v2/simplevalue.go
#	openshift/tools/vendor/github.com/fxamacker/cbor/v2/stream.go
#	openshift/tools/vendor/github.com/fxamacker/cbor/v2/structfields.go
#	openshift/tools/vendor/github.com/fxamacker/cbor/v2/tag.go
#	openshift/tools/vendor/github.com/go-viper/mapstructure/v2/LICENSE
#	openshift/tools/vendor/github.com/gobuffalo/flect/humanize.go
#	openshift/tools/vendor/github.com/google/btree/LICENSE
#	openshift/tools/vendor/github.com/google/go-cmp/cmp/internal/function/func.go
#	openshift/tools/vendor/github.com/google/go-cmp/cmp/options.go
#	openshift/tools/vendor/github.com/google/go-containerregistry/LICENSE
#	openshift/tools/vendor/github.com/google/go-containerregistry/pkg/authn/process_collector_js.go
#	openshift/tools/vendor/github.com/google/go-containerregistry/pkg/authn/process_collector_other.go
#	openshift/tools/vendor/github.com/google/go-containerregistry/pkg/v1/doc.go
#	openshift/tools/vendor/github.com/jetstack/cert-manager/LICENSE
#	openshift/tools/vendor/github.com/jetstack/cert-manager/pkg/apis/acme/v1/doc.go
#	openshift/tools/vendor/github.com/jetstack/cert-manager/pkg/apis/meta/v1/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/mitchellh/mapstructure/CHANGELOG.md
#	openshift/tools/vendor/github.com/mitchellh/mapstructure/LICENSE
#	openshift/tools/vendor/github.com/mitchellh/mapstructure/mapstructure.go
#	openshift/tools/vendor/github.com/openshift/api/LICENSE
#	openshift/tools/vendor/github.com/openshift/cluster-capi-operator/manifests-gen/providercustomizations.go
#	openshift/tools/vendor/github.com/openshift/cluster-capi-operator/manifests-gen/providers.go
#	openshift/tools/vendor/github.com/pelletier/go-toml/v2/.gitignore
#	openshift/tools/vendor/github.com/pelletier/go-toml/v2/.goreleaser.yaml
#	openshift/tools/vendor/github.com/pelletier/go-toml/v2/CONTRIBUTING.md
#	openshift/tools/vendor/github.com/pelletier/go-toml/v2/README.md
#	openshift/tools/vendor/github.com/pelletier/go-toml/v2/SECURITY.md
#	openshift/tools/vendor/github.com/pelletier/go-toml/v2/ci.sh
#	openshift/tools/vendor/github.com/pelletier/go-toml/v2/internal/tracker/seen.go
#	openshift/tools/vendor/github.com/pelletier/go-toml/v2/marshaler.go
#	openshift/tools/vendor/github.com/pelletier/go-toml/v2/unmarshaler.go
#	openshift/tools/vendor/github.com/prometheus/client_golang/NOTICE
#	openshift/tools/vendor/github.com/prometheus/client_golang/prometheus/collectors/go_collector_latest.go
#	openshift/tools/vendor/github.com/prometheus/client_golang/prometheus/desc.go
#	openshift/tools/vendor/github.com/prometheus/client_golang/prometheus/go_collector.go
#	openshift/tools/vendor/github.com/prometheus/client_golang/prometheus/go_collector_latest.go
#	openshift/tools/vendor/github.com/prometheus/client_golang/prometheus/histogram.go
#	openshift/tools/vendor/github.com/prometheus/client_golang/prometheus/internal/difflib.go
#	openshift/tools/vendor/github.com/prometheus/client_golang/prometheus/internal/go_collector_options.go
#	openshift/tools/vendor/github.com/prometheus/client_golang/prometheus/internal/go_runtime_metrics.go
#	openshift/tools/vendor/github.com/prometheus/client_golang/prometheus/labels.go
#	openshift/tools/vendor/github.com/prometheus/client_golang/prometheus/metric.go
#	openshift/tools/vendor/github.com/prometheus/client_golang/prometheus/process_collector.go
#	openshift/tools/vendor/github.com/prometheus/client_golang/prometheus/process_collector_windows.go
#	openshift/tools/vendor/github.com/prometheus/client_golang/prometheus/promhttp/delegator.go
#	openshift/tools/vendor/github.com/prometheus/client_golang/prometheus/promhttp/http.go
#	openshift/tools/vendor/github.com/prometheus/client_golang/prometheus/promhttp/internal/compression.go
#	openshift/tools/vendor/github.com/prometheus/client_golang/prometheus/registry.go
#	openshift/tools/vendor/github.com/prometheus/client_golang/prometheus/summary.go
#	openshift/tools/vendor/github.com/prometheus/client_golang/prometheus/vec.go
#	openshift/tools/vendor/github.com/prometheus/client_model/go/metrics.pb.go
#	openshift/tools/vendor/github.com/prometheus/common/expfmt/decode.go
#	openshift/tools/vendor/github.com/prometheus/common/expfmt/encode.go
#	openshift/tools/vendor/github.com/prometheus/common/expfmt/expfmt.go
#	openshift/tools/vendor/github.com/prometheus/common/expfmt/openmetrics_create.go
#	openshift/tools/vendor/github.com/prometheus/common/expfmt/text_create.go
#	openshift/tools/vendor/github.com/prometheus/common/expfmt/text_parse.go
#	openshift/tools/vendor/github.com/prometheus/common/model/alert.go
#	openshift/tools/vendor/github.com/prometheus/common/model/labels.go
#	openshift/tools/vendor/github.com/prometheus/common/model/labelset.go
#	openshift/tools/vendor/github.com/prometheus/common/model/metric.go
#	openshift/tools/vendor/github.com/prometheus/common/model/signature.go
#	openshift/tools/vendor/github.com/prometheus/common/model/silence.go
#	openshift/tools/vendor/github.com/prometheus/common/model/value.go
#	openshift/tools/vendor/github.com/prometheus/common/model/value_float.go
#	openshift/tools/vendor/github.com/prometheus/common/model/value_histogram.go
#	openshift/tools/vendor/github.com/prometheus/procfs/.golangci.yml
#	openshift/tools/vendor/github.com/prometheus/procfs/MAINTAINERS.md
#	openshift/tools/vendor/github.com/prometheus/procfs/Makefile.common
#	openshift/tools/vendor/github.com/prometheus/procfs/README.md
#	openshift/tools/vendor/github.com/prometheus/procfs/arp.go
#	openshift/tools/vendor/github.com/prometheus/procfs/buddyinfo.go
#	openshift/tools/vendor/github.com/prometheus/procfs/cpuinfo.go
#	openshift/tools/vendor/github.com/prometheus/procfs/crypto.go
#	openshift/tools/vendor/github.com/prometheus/procfs/fs.go
#	openshift/tools/vendor/github.com/prometheus/procfs/fs_statfs_notype.go
#	openshift/tools/vendor/github.com/prometheus/procfs/fs_statfs_type.go
#	openshift/tools/vendor/github.com/prometheus/procfs/fscache.go
#	openshift/tools/vendor/github.com/prometheus/procfs/internal/fs/fs.go
#	openshift/tools/vendor/github.com/prometheus/procfs/internal/util/parse.go
#	openshift/tools/vendor/github.com/prometheus/procfs/internal/util/sysreadfile.go
#	openshift/tools/vendor/github.com/prometheus/procfs/ipvs.go
#	openshift/tools/vendor/github.com/prometheus/procfs/loadavg.go
#	openshift/tools/vendor/github.com/prometheus/procfs/mdstat.go
#	openshift/tools/vendor/github.com/prometheus/procfs/meminfo.go
#	openshift/tools/vendor/github.com/prometheus/procfs/mountinfo.go
#	openshift/tools/vendor/github.com/prometheus/procfs/mountstats.go
#	openshift/tools/vendor/github.com/prometheus/procfs/net_conntrackstat.go
#	openshift/tools/vendor/github.com/prometheus/procfs/net_ip_socket.go
#	openshift/tools/vendor/github.com/prometheus/procfs/net_protocols.go
#	openshift/tools/vendor/github.com/prometheus/procfs/net_sockstat.go
#	openshift/tools/vendor/github.com/prometheus/procfs/net_softnet.go
#	openshift/tools/vendor/github.com/prometheus/procfs/net_tcp.go
#	openshift/tools/vendor/github.com/prometheus/procfs/net_unix.go
#	openshift/tools/vendor/github.com/prometheus/procfs/net_wireless.go
#	openshift/tools/vendor/github.com/prometheus/procfs/proc.go
#	openshift/tools/vendor/github.com/prometheus/procfs/proc_cgroup.go
#	openshift/tools/vendor/github.com/prometheus/procfs/proc_fdinfo.go
#	openshift/tools/vendor/github.com/prometheus/procfs/proc_io.go
#	openshift/tools/vendor/github.com/prometheus/procfs/proc_limits.go
#	openshift/tools/vendor/github.com/prometheus/procfs/proc_maps.go
#	openshift/tools/vendor/github.com/prometheus/procfs/proc_netstat.go
#	openshift/tools/vendor/github.com/prometheus/procfs/proc_ns.go
#	openshift/tools/vendor/github.com/prometheus/procfs/proc_psi.go
#	openshift/tools/vendor/github.com/prometheus/procfs/proc_smaps.go
#	openshift/tools/vendor/github.com/prometheus/procfs/proc_snmp.go
#	openshift/tools/vendor/github.com/prometheus/procfs/proc_snmp6.go
#	openshift/tools/vendor/github.com/prometheus/procfs/proc_stat.go
#	openshift/tools/vendor/github.com/prometheus/procfs/proc_status.go
#	openshift/tools/vendor/github.com/prometheus/procfs/proc_sys.go
#	openshift/tools/vendor/github.com/prometheus/procfs/softirqs.go
#	openshift/tools/vendor/github.com/prometheus/procfs/stat.go
#	openshift/tools/vendor/github.com/prometheus/procfs/swaps.go
#	openshift/tools/vendor/github.com/prometheus/procfs/thread.go
#	openshift/tools/vendor/github.com/prometheus/procfs/zoneinfo.go
#	openshift/tools/vendor/github.com/sagikazarmark/locafero/.envrc
#	openshift/tools/vendor/github.com/sagikazarmark/locafero/finder.go
#	openshift/tools/vendor/github.com/sagikazarmark/locafero/flake.lock
#	openshift/tools/vendor/github.com/sagikazarmark/locafero/flake.nix
#	openshift/tools/vendor/github.com/sagikazarmark/slog-shim/.editorconfig
#	openshift/tools/vendor/github.com/sirupsen/logrus/user_dirs.go
#	openshift/tools/vendor/github.com/spf13/afero/README.md
#	openshift/tools/vendor/github.com/spf13/afero/iofs.go
#	openshift/tools/vendor/github.com/spf13/afero/memmap.go
#	openshift/tools/vendor/github.com/spf13/cast/README.md
#	openshift/tools/vendor/github.com/spf13/cast/caste.go
#	openshift/tools/vendor/github.com/spf13/pflag/flag.go
#	openshift/tools/vendor/github.com/spf13/pflag/ip.go
#	openshift/tools/vendor/github.com/spf13/pflag/string_array.go
#	openshift/tools/vendor/github.com/spf13/viper/.envrc
#	openshift/tools/vendor/github.com/spf13/viper/.golangci.yaml
#	openshift/tools/vendor/github.com/spf13/viper/README.md
#	openshift/tools/vendor/github.com/spf13/viper/TROUBLESHOOTING.md
#	openshift/tools/vendor/github.com/spf13/viper/flags.go
#	openshift/tools/vendor/github.com/spf13/viper/flake.lock
#	openshift/tools/vendor/github.com/spf13/viper/flake.nix
#	openshift/tools/vendor/github.com/spf13/viper/internal/encoding/dotenv/map_utils.go
#	openshift/tools/vendor/github.com/spf13/viper/logger.go
#	openshift/tools/vendor/github.com/spf13/viper/util.go
#	openshift/tools/vendor/github.com/spf13/viper/viper.go
#	openshift/tools/vendor/github.com/spf13/viper/viper_go1_15.go
#	openshift/tools/vendor/go.opentelemetry.io/otel/LICENSE
#	openshift/tools/vendor/go.opentelemetry.io/otel/trace/LICENSE
#	openshift/tools/vendor/go.yaml.in/yaml/v2/NOTICE
#	openshift/tools/vendor/go.yaml.in/yaml/v2/README.md
#	openshift/tools/vendor/go.yaml.in/yaml/v3/LICENSE
#	openshift/tools/vendor/go.yaml.in/yaml/v3/apic.go
#	openshift/tools/vendor/go.yaml.in/yaml/v3/decode.go
#	openshift/tools/vendor/go.yaml.in/yaml/v3/emitterc.go
#	openshift/tools/vendor/go.yaml.in/yaml/v3/encode.go
#	openshift/tools/vendor/go.yaml.in/yaml/v3/parserc.go
#	openshift/tools/vendor/go.yaml.in/yaml/v3/readerc.go
#	openshift/tools/vendor/go.yaml.in/yaml/v3/resolve.go
#	openshift/tools/vendor/go.yaml.in/yaml/v3/scannerc.go
#	openshift/tools/vendor/go.yaml.in/yaml/v3/sorter.go
#	openshift/tools/vendor/go.yaml.in/yaml/v3/writerc.go
#	openshift/tools/vendor/go.yaml.in/yaml/v3/yaml.go
#	openshift/tools/vendor/go.yaml.in/yaml/v3/yamlh.go
#	openshift/tools/vendor/go.yaml.in/yaml/v3/yamlprivateh.go
#	openshift/tools/vendor/golang.org/x/crypto/LICENSE
#	openshift/tools/vendor/golang.org/x/crypto/cast5/cast5.go
#	openshift/tools/vendor/golang.org/x/crypto/hkdf/hkdf.go
#	openshift/tools/vendor/golang.org/x/crypto/sha3/doc.go
#	openshift/tools/vendor/golang.org/x/crypto/sha3/hashes.go
#	openshift/tools/vendor/golang.org/x/crypto/sha3/keccakf_amd64.s
#	openshift/tools/vendor/golang.org/x/crypto/sha3/sha3.go
#	openshift/tools/vendor/golang.org/x/crypto/sha3/sha3_s390x.go
#	openshift/tools/vendor/golang.org/x/crypto/sha3/shake.go
#	openshift/tools/vendor/golang.org/x/net/http2/config.go
#	openshift/tools/vendor/golang.org/x/net/internal/httpcommon/request.go
#	openshift/tools/vendor/golang.org/x/sync/errgroup/errgroup.go
#	openshift/tools/vendor/golang.org/x/sys/cpu/cpu.go
#	openshift/tools/vendor/golang.org/x/sys/cpu/cpu_arm64.go
#	openshift/tools/vendor/golang.org/x/sys/cpu/cpu_arm64.s
#	openshift/tools/vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go
#	openshift/tools/vendor/golang.org/x/sys/cpu/cpu_gc_x86.go
#	openshift/tools/vendor/golang.org/x/sys/cpu/cpu_gccgo_x86.go
#	openshift/tools/vendor/golang.org/x/sys/cpu/cpu_linux_arm64.go
#	openshift/tools/vendor/golang.org/x/sys/cpu/cpu_linux_noinit.go
#	openshift/tools/vendor/golang.org/x/sys/cpu/cpu_loong64.go
#	openshift/tools/vendor/golang.org/x/sys/cpu/cpu_riscv64.go
#	openshift/tools/vendor/golang.org/x/sys/cpu/cpu_x86.go
#	openshift/tools/vendor/golang.org/x/sys/cpu/cpu_x86.s
#	openshift/tools/vendor/golang.org/x/sys/cpu/parse.go
#	openshift/tools/vendor/gomodules.xyz/jsonpatch/v2/jsonpatch.go
#	openshift/tools/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb
#	openshift/tools/vendor/google.golang.org/protobuf/internal/filedesc/editions.go
#	openshift/tools/vendor/google.golang.org/protobuf/internal/impl/codec_message_opaque.go
#	openshift/tools/vendor/google.golang.org/protobuf/internal/impl/message_opaque.go
#	openshift/tools/vendor/google.golang.org/protobuf/internal/impl/presence.go
#	openshift/tools/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go
#	openshift/tools/vendor/gopkg.in/yaml.v2/NOTICE
#	openshift/tools/vendor/k8s.io/api/admission/v1/doc.go
#	openshift/tools/vendor/k8s.io/api/admission/v1/generated.pb.go
#	openshift/tools/vendor/k8s.io/api/admission/v1/generated.proto
#	openshift/tools/vendor/k8s.io/api/admission/v1/types.go
#	openshift/tools/vendor/k8s.io/api/admission/v1/zz_generated.prerelease-lifecycle.go
#	openshift/tools/vendor/k8s.io/api/admission/v1beta1/doc.go
#	openshift/tools/vendor/k8s.io/api/admission/v1beta1/generated.pb.go
#	openshift/tools/vendor/k8s.io/api/admission/v1beta1/generated.proto
#	openshift/tools/vendor/k8s.io/api/flowcontrol/v1alpha1/doc.go
#	openshift/tools/vendor/k8s.io/api/networking/v1alpha1/generated.pb.go
#	openshift/tools/vendor/k8s.io/api/networking/v1alpha1/generated.proto
#	openshift/tools/vendor/k8s.io/api/networking/v1alpha1/types.go
#	openshift/tools/vendor/k8s.io/api/networking/v1alpha1/types_swagger_doc_generated.go
#	openshift/tools/vendor/k8s.io/api/networking/v1alpha1/zz_generated.deepcopy.go
#	openshift/tools/vendor/k8s.io/api/networking/v1alpha1/zz_generated.prerelease-lifecycle.go
#	openshift/tools/vendor/k8s.io/api/resource/v1/devicetaint.go
#	openshift/tools/vendor/k8s.io/api/resource/v1alpha2/devicetaint.go
#	openshift/tools/vendor/k8s.io/api/resource/v1alpha3/generated.pb.go
#	openshift/tools/vendor/k8s.io/api/resource/v1alpha3/generated.proto
#	openshift/tools/vendor/k8s.io/api/resource/v1alpha3/types.go
#	openshift/tools/vendor/k8s.io/api/resource/v1alpha3/types_swagger_doc_generated.go
#	openshift/tools/vendor/k8s.io/api/resource/v1alpha3/zz_generated.deepcopy.go
#	openshift/tools/vendor/k8s.io/api/resource/v1alpha3/zz_generated.prerelease-lifecycle.go
#	openshift/tools/vendor/k8s.io/api/resource/v1beta1/generated.pb.go
#	openshift/tools/vendor/k8s.io/api/resource/v1beta1/generated.proto
#	openshift/tools/vendor/k8s.io/api/resource/v1beta1/types.go
#	openshift/tools/vendor/k8s.io/api/resource/v1beta1/types_swagger_doc_generated.go
#	openshift/tools/vendor/k8s.io/api/resource/v1beta1/zz_generated.deepcopy.go
#	openshift/tools/vendor/k8s.io/api/resource/v1beta2/generated.pb.go
#	openshift/tools/vendor/k8s.io/api/resource/v1beta2/generated.proto
#	openshift/tools/vendor/k8s.io/api/resource/v1beta2/types.go
#	openshift/tools/vendor/k8s.io/api/resource/v1beta2/types_swagger_doc_generated.go
#	openshift/tools/vendor/k8s.io/api/resource/v1beta2/zz_generated.deepcopy.go
#	openshift/tools/vendor/k8s.io/api/storage/v1/zz_generated.prerelease-lifecycle.go
#	openshift/tools/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/doc.go
#	openshift/tools/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/generated.pb.go
#	openshift/tools/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/generated.proto
#	openshift/tools/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/marshal.go
#	openshift/tools/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/types.go
#	openshift/tools/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/types_jsonschema.go
#	openshift/tools/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/zz_generated.conversion.go
#	openshift/tools/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/zz_generated.deepcopy.go
#	openshift/tools/vendor/k8s.io/apimachinery/pkg/api/operation/operation.go
#	openshift/tools/vendor/k8s.io/apimachinery/pkg/runtime/serializer/cbor/cbor.go
#	openshift/tools/vendor/k8s.io/apimachinery/pkg/runtime/serializer/cbor/direct/direct.go
#	openshift/tools/vendor/k8s.io/apimachinery/pkg/runtime/serializer/cbor/internal/modes/decode.go
#	openshift/tools/vendor/k8s.io/apimachinery/pkg/runtime/serializer/cbor/internal/modes/encode.go
#	openshift/tools/vendor/k8s.io/apimachinery/pkg/util/cache/lruexpirecache.go
#	openshift/tools/vendor/k8s.io/apimachinery/pkg/util/diff/diff.go
#	openshift/tools/vendor/k8s.io/apimachinery/pkg/util/validation/field/error_matcher.go
#	openshift/tools/vendor/k8s.io/apimachinery/pkg/util/version/doc.go
#	openshift/tools/vendor/k8s.io/apimachinery/pkg/util/version/version.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/matchcondition.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/mutatingwebhook.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/mutatingwebhookconfiguration.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/rule.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/rulewithoperations.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/servicereference.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/validatingwebhook.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/validatingwebhookconfiguration.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/webhookclientconfig.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/auditannotation.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/expressionwarning.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/matchcondition.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/matchresources.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/namedrulewithoperations.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/paramkind.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/paramref.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/typechecking.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/validatingadmissionpolicy.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/validatingadmissionpolicybinding.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/validatingadmissionpolicybindingspec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/validatingadmissionpolicyspec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/validatingadmissionpolicystatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/validation.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/variable.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/auditannotation.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/expressionwarning.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/matchcondition.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/matchresources.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/mutatingwebhook.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/mutatingwebhookconfiguration.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/namedrulewithoperations.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/paramkind.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/paramref.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/servicereference.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/typechecking.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/validatingadmissionpolicy.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/validatingadmissionpolicybinding.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/validatingadmissionpolicybindingspec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/validatingadmissionpolicyspec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/validatingadmissionpolicystatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/validatingwebhook.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/validatingwebhookconfiguration.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/validation.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/variable.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/webhookclientconfig.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apiserverinternal/v1alpha1/serverstorageversion.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apiserverinternal/v1alpha1/storageversion.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apiserverinternal/v1alpha1/storageversioncondition.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apiserverinternal/v1alpha1/storageversionstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1/controllerrevision.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1/daemonset.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1/daemonsetcondition.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1/daemonsetspec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1/daemonsetstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1/daemonsetupdatestrategy.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1/deployment.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1/deploymentcondition.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1/deploymentspec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1/deploymentstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1/deploymentstrategy.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1/replicaset.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1/replicasetcondition.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1/replicasetspec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1/replicasetstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1/rollingupdatedaemonset.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1/rollingupdatedeployment.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1/rollingupdatestatefulsetstrategy.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1/statefulset.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1/statefulsetcondition.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1/statefulsetordinals.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1/statefulsetpersistentvolumeclaimretentionpolicy.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1/statefulsetspec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1/statefulsetstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1/statefulsetupdatestrategy.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/controllerrevision.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/deployment.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/deploymentcondition.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/deploymentspec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/deploymentstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/deploymentstrategy.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/rollbackconfig.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/rollingupdatedeployment.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/rollingupdatestatefulsetstrategy.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/statefulset.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/statefulsetcondition.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/statefulsetordinals.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/statefulsetpersistentvolumeclaimretentionpolicy.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/statefulsetspec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/statefulsetstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/statefulsetupdatestrategy.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/controllerrevision.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/daemonset.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/daemonsetcondition.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/daemonsetspec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/daemonsetstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/daemonsetupdatestrategy.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/deployment.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/deploymentcondition.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/deploymentspec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/deploymentstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/deploymentstrategy.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/replicaset.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/replicasetcondition.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/replicasetspec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/replicasetstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/rollingupdatedaemonset.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/rollingupdatedeployment.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/rollingupdatestatefulsetstrategy.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/scale.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/statefulset.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/statefulsetcondition.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/statefulsetordinals.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/statefulsetpersistentvolumeclaimretentionpolicy.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/statefulsetspec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/statefulsetstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/statefulsetupdatestrategy.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v1/crossversionobjectreference.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v1/horizontalpodautoscaler.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v1/horizontalpodautoscalerspec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v1/horizontalpodautoscalerstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v1/scale.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v1/scalespec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v1/scalestatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/containerresourcemetricsource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/containerresourcemetricstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/crossversionobjectreference.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/externalmetricsource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/externalmetricstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/horizontalpodautoscaler.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/horizontalpodautoscalerbehavior.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/horizontalpodautoscalercondition.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/horizontalpodautoscalerspec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/horizontalpodautoscalerstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/hpascalingpolicy.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/hpascalingrules.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/metricidentifier.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/metricspec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/metricstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/metrictarget.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/metricvaluestatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/objectmetricsource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/objectmetricstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/podsmetricsource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/podsmetricstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/resourcemetricsource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/resourcemetricstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/containerresourcemetricsource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/containerresourcemetricstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/crossversionobjectreference.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/externalmetricsource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/externalmetricstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/horizontalpodautoscaler.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/horizontalpodautoscalercondition.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/horizontalpodautoscalerspec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/horizontalpodautoscalerstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/metricspec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/metricstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/objectmetricsource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/objectmetricstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/podsmetricsource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/podsmetricstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/resourcemetricsource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/resourcemetricstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/containerresourcemetricsource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/containerresourcemetricstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/crossversionobjectreference.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/externalmetricsource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/externalmetricstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/horizontalpodautoscaler.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/horizontalpodautoscalerbehavior.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/horizontalpodautoscalercondition.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/horizontalpodautoscalerspec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/horizontalpodautoscalerstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/hpascalingpolicy.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/hpascalingrules.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/metricidentifier.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/metricspec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/metricstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/metrictarget.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/metricvaluestatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/objectmetricsource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/objectmetricstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/podsmetricsource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/podsmetricstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/resourcemetricsource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/resourcemetricstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/batch/v1/cronjob.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/batch/v1/cronjobspec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/batch/v1/cronjobstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/batch/v1/job.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/batch/v1/jobcondition.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/batch/v1/jobspec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/batch/v1/jobstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/batch/v1/jobtemplatespec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/batch/v1/podfailurepolicy.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/batch/v1/podfailurepolicyonexitcodesrequirement.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/batch/v1/podfailurepolicyonpodconditionspattern.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/batch/v1/podfailurepolicyrule.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/batch/v1/uncountedterminatedpods.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/batch/v1beta1/cronjob.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/batch/v1beta1/cronjobspec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/batch/v1beta1/cronjobstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/batch/v1beta1/jobtemplatespec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/certificates/v1/certificatesigningrequest.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/certificates/v1/certificatesigningrequestcondition.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/certificates/v1/certificatesigningrequestspec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/certificates/v1/certificatesigningrequeststatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/certificates/v1alpha1/clustertrustbundle.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/certificates/v1alpha1/clustertrustbundlespec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/certificates/v1beta1/certificatesigningrequest.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/certificates/v1beta1/certificatesigningrequestcondition.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/certificates/v1beta1/certificatesigningrequestspec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/certificates/v1beta1/certificatesigningrequeststatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/coordination/v1/lease.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/coordination/v1/leasespec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/coordination/v1beta1/lease.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/coordination/v1beta1/leasespec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/affinity.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/attachedvolume.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/awselasticblockstorevolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/azurediskvolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/azurefilepersistentvolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/azurefilevolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/capabilities.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/cephfspersistentvolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/cephfsvolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/cinderpersistentvolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/cindervolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/clientipconfig.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/componentcondition.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/componentstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/configmap.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/configmapenvsource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/configmapkeyselector.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/configmapnodeconfigsource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/configmapprojection.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/configmapvolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/container.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/containerimage.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/containerport.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/containerresizepolicy.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/containerstate.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/containerstaterunning.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/containerstateterminated.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/containerstatewaiting.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/containerstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/csipersistentvolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/csivolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/daemonendpoint.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/downwardapiprojection.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/downwardapivolumefile.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/downwardapivolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/emptydirvolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/endpointaddress.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/endpointport.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/endpoints.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/endpointsubset.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/envfromsource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/envvar.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/envvarsource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/ephemeralcontainer.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/ephemeralcontainercommon.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/ephemeralvolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/event.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/eventseries.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/eventsource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/execaction.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/fcvolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/flexpersistentvolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/flexvolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/flockervolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/gcepersistentdiskvolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/gitrepovolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/glusterfspersistentvolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/glusterfsvolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/grpcaction.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/hostalias.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/hostip.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/hostpathvolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/httpgetaction.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/httpheader.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/iscsipersistentvolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/iscsivolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/keytopath.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/lifecycle.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/lifecyclehandler.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/limitrange.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/limitrangeitem.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/limitrangespec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/loadbalanceringress.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/loadbalancerstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/localobjectreference.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/localvolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/namespace.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/namespacecondition.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/namespacespec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/namespacestatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/nfsvolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/node.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeaddress.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeaffinity.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodecondition.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeconfigsource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeconfigstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodedaemonendpoints.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeselector.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeselectorrequirement.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeselectorterm.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodespec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodestatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/nodesysteminfo.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/objectfieldselector.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/objectreference.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolume.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumeclaim.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumeclaimcondition.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumeclaimspec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumeclaimstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumeclaimtemplate.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumeclaimvolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumespec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumestatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/photonpersistentdiskvolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/pod.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/podaffinity.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/podaffinityterm.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/podantiaffinity.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/podcondition.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/poddnsconfig.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/poddnsconfigoption.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/podip.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/podos.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/podreadinessgate.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/podresourceclaim.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/podresourceclaimstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/podschedulinggate.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/podsecuritycontext.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/podspec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/podstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/podtemplate.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/podtemplatespec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/portstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/portworxvolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/preferredschedulingterm.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/probe.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/probehandler.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/projectedvolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/quobytevolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/rbdpersistentvolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/rbdvolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/replicationcontroller.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/replicationcontrollercondition.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/replicationcontrollerspec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/replicationcontrollerstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/resourceclaim.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/resourcefieldselector.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/resourcequota.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/resourcequotaspec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/resourcequotastatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/resourcerequirements.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/scaleiopersistentvolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/scaleiovolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/scopedresourceselectorrequirement.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/scopeselector.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/seccompprofile.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/secret.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/secretenvsource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/secretkeyselector.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/secretprojection.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/secretreference.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/secretvolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/securitycontext.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/selinuxoptions.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/service.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/serviceaccount.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/serviceaccounttokenprojection.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/serviceport.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/servicespec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/servicestatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/sessionaffinityconfig.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/storageospersistentvolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/storageosvolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/sysctl.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/taint.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/tcpsocketaction.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/toleration.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/topologyselectorlabelrequirement.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/topologyselectorterm.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/topologyspreadconstraint.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/typedlocalobjectreference.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/typedobjectreference.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/volume.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/volumedevice.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/volumemount.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/volumenodeaffinity.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/volumeprojection.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/volumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/vspherevirtualdiskvolumesource.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/weightedpodaffinityterm.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/core/v1/windowssecuritycontextoptions.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/discovery/v1/endpoint.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/discovery/v1/endpointconditions.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/discovery/v1/endpointhints.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/discovery/v1/endpointport.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/discovery/v1/endpointslice.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/discovery/v1/forzone.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/discovery/v1beta1/endpoint.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/discovery/v1beta1/endpointconditions.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/discovery/v1beta1/endpointhints.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/discovery/v1beta1/endpointport.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/discovery/v1beta1/endpointslice.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/discovery/v1beta1/forzone.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/events/v1/event.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/events/v1/eventseries.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/events/v1beta1/event.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/events/v1beta1/eventseries.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/daemonset.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/daemonsetcondition.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/daemonsetspec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/daemonsetstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/daemonsetupdatestrategy.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/deployment.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/deploymentcondition.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/deploymentspec.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/deploymentstatus.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/deploymentstrategy.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/httpingresspath.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/httpingressrulevalue.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingress.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingressbackend.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingressloadbalanceringress.go
#	openshift/tools/vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingressloadbalancerstatus.go
#	openshift/tools/…
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

# Conflicts:
#	openshift/manifests/0000_30_cluster-api_04_cm.infrastructure-ibmcloud.yaml
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 7

♻️ Duplicate comments (15)
api/vpc/v1beta1/types.go (1)

49-52: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Past review fix not applied: Subnet pointer fields still lack omitempty.

The previous review flagged these four pointer fields as missing omitempty tags, and the comment was marked as addressed. However, the current code still has the same issue. Without omitempty, nil pointers will serialize as JSON null instead of being omitted, causing inconsistency with the v1beta2 API surface.

🔧 Apply the previously suggested fix
-	Ipv4CidrBlock *string `json:"cidr"`
-	Name          *string `json:"name"`
-	ID            *string `json:"id"`
-	Zone          *string `json:"zone"`
+	Ipv4CidrBlock *string `json:"cidr,omitempty"`
+	Name          *string `json:"name,omitempty"`
+	ID            *string `json:"id,omitempty"`
+	Zone          *string `json:"zone,omitempty"`
🤖 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 `@api/vpc/v1beta1/types.go` around lines 49 - 52, The JSON tags for the pointer
fields Ipv4CidrBlock, Name, ID, and Zone should include `omitempty` so nil
pointers are omitted instead of serialized as null; update the struct field tags
for these symbols in api/vpc/v1beta1/types.go to `json:"cidr,omitempty"`,
`json:"name,omitempty"`, `json:"id,omitempty"`, and `json:"zone,omitempty"`
respectively to match the v1beta2 API behavior.
api/vpc/v1beta2/types.go (1)

432-432: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Past review issue persists: Invalid kubebuilder validation marker syntax.

Lines 432 and 436 still use MaxLength:= instead of the correct MaxLength= syntax. The colon makes these invalid kubebuilder markers, which will cause CRD validation to be ignored or generated incorrectly.

🔧 Apply the previously suggested fix
-	// +kubebuilder:validation:MaxLength:=63
+	// +kubebuilder:validation:MaxLength=63
 	// +kubebuilder:validation:Pattern=`^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$`
 	Name *string `json:"name,omitempty"`
 	// +kubebuilder:validation:MinLength=1
-	// +kubebuilder:validation:MaxLength:=64
+	// +kubebuilder:validation:MaxLength=64

Also applies to: 436-436

🤖 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 `@api/vpc/v1beta2/types.go` at line 432, The kubebuilder validation markers use
an invalid syntax (`MaxLength:=`) which breaks CRD generation; locate the
markers that read `+kubebuilder:validation:MaxLength:=63` (and the similar
`MaxLength:=` instance) in types.go and change them to the correct syntax
`+kubebuilder:validation:MaxLength=63` so the validator recognizes the MaxLength
constraint on the associated field(s) (search for
`+kubebuilder:validation:MaxLength` to find both occurrences).
.github/workflows/weekly-security-scan.yaml (1)

20-23: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Disable persisted checkout credentials in the workflow.

actions/checkout keeps credentials by default. For a security-scan workflow, set persist-credentials: false to reduce token exposure risk.

Proposed fix
     - name: Check out code
       uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # tag=v6.0.2
       with:
         ref: ${{ matrix.branch }}
+        persist-credentials: false

As per coding guidelines, "Least privilege: minimize GITHUB_TOKEN permissions" and "No secrets in logs; mask sensitive outputs" apply to CI/CD workflows.

🤖 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/weekly-security-scan.yaml around lines 20 - 23, The
workflow uses actions/checkout@de0fac2e... which by default persists
credentials; update the checkout step (the actions/checkout usage) to add
persist-credentials: false in the step inputs so the action does not retain
GITHUB_TOKEN credentials during the security-scan run; ensure this change is
applied to the checkout step that uses ref: ${{ matrix.branch }}.

Source: Coding guidelines

api/powervs/v1beta3/ibmpowervscluster_types.go (2)

411-415: ⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Guard against nil dereference in ResourceReference.Set.

Line 413 dereferences rf.ControllerCreated without checking for nil, which can panic when the receiver is zero-valued.

Proposed fix
 func (rf *ResourceReference) Set(resource ResourceReference) {
 	rf.ID = resource.ID
-	if !*rf.ControllerCreated {
+	if rf.ControllerCreated == nil || !*rf.ControllerCreated {
 		rf.ControllerCreated = resource.ControllerCreated
 	}
 }
🤖 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 `@api/powervs/v1beta3/ibmpowervscluster_types.go` around lines 411 - 415, The
method ResourceReference.Set may panic by dereferencing rf.ControllerCreated
without nil-check; update it to first check whether rf.ControllerCreated is nil
before evaluating *rf.ControllerCreated, and then copy
resource.ControllerCreated appropriately (e.g., if rf.ControllerCreated == nil
set it to resource.ControllerCreated, else if !*rf.ControllerCreated set it to
resource.ControllerCreated) so both nil and non-nil receiver cases are handled
safely.

278-278: ⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Fix malformed kubebuilder validation markers (use = instead of :=).

The markers MaxLength:=64, MinLength:=3, etc. are not standard kubebuilder syntax. Correct syntax uses a single equals sign: MaxLength=64, MinLength=3. This affects CRD schema validation generation.

Instances to fix:

  • Line 278: MaxLength:=MaxLength=
  • Line 285: MaxLength:=MaxLength=
  • Line 300: MaxLength:=MaxLength=
  • Lines 318–319: MinLength:=3 and MaxLength:=63 → use =

Also applies to: 285-286, 300-301, 318-320

🤖 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 `@api/powervs/v1beta3/ibmpowervscluster_types.go` at line 278, Replace
malformed kubebuilder validation markers that use ':=' with the correct '='
notation: update occurrences of annotations like
`+kubebuilder:validation:MaxLength:=64`, `MinLength:=3` and `MaxLength:=63` to
use `+kubebuilder:validation:MaxLength=64`,
`+kubebuilder:validation:MinLength=3`, `+kubebuilder:validation:MaxLength=63`
respectively; locate the annotations adjacent to the affected CRD fields in
ibmpowervscluster_types.go (the kubebuilder validation comments above the struct
fields) and change all `:=` to `=` so CRD schema generation uses valid markers.
api/powervs/v1beta3/ibmpowervsmachine_types.go (3)

78-78: ⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Fix kubebuilder enum marker syntax.

Lines 78 and 90 use +kubebuilder:validation:Enum:=... with invalid := syntax; change to +kubebuilder:validation:Enum=.... The colon should not be included before the equals sign, otherwise enum validation will not be generated correctly in the CRD.

Also applies to: 90-90

🤖 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 `@api/powervs/v1beta3/ibmpowervsmachine_types.go` at line 78, The kubebuilder
validation marker uses an invalid ":=" sequence; locate the enum markers that
currently read
'+kubebuilder:validation:Enum:="s922";"e980";"s1022";"e1050";"e1080";""' (and
the similar marker at the other occurrence) and change them to use '=' rather
than ':=' so they read
'+kubebuilder:validation:Enum="s922";"e980";"s1022";"e1050";"e1080";""'; update
both occurrences so CRD enum validation is generated correctly.

224-224: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Remove the trailing tab from the printcolumn JSONPath.

Line 224 includes ".status.initialization.provisioned\t"; the extra tab can make the print column JSONPath invalid.

🤖 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 `@api/powervs/v1beta3/ibmpowervsmachine_types.go` at line 224, Remove the stray
tab character in the kubebuilder printcolumn annotation by editing the
+kubebuilder:printcolumn line that currently has
JSONPath=".status.initialization.provisioned\t" so it reads
JSONPath=".status.initialization.provisioned" (locate the annotation with
+kubebuilder:printcolumn and the JSONPath ".status.initialization.provisioned"
to update).

65-70: ⚠️ Potential issue | 🟠 Major | 🏗️ Heavy lift

Enforce mutual exclusivity between image and imageRef.

The comments define imageRef as an alternative to image, but the schema currently allows both. Add CRD validation to reject specs setting both fields.

Proposed fix
 type IBMPowerVSMachineSpec struct {
+	// +kubebuilder:validation:XValidation:rule="!(has(self.image) && has(self.imageRef.name))",message="only one of image or imageRef may be specified"
+
 	// serviceInstance is the reference to the Power VS workspace on which the server instance(VM) will be created.
🤖 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 `@api/powervs/v1beta3/ibmpowervsmachine_types.go` around lines 65 - 70, The CRD
currently allows both Image (*IBMPowerVSResourceReference) and ImageRef
(ImageReference) to be set even though they are alternatives; add server-side
validation by implementing webhook validation on the IBMPowerVSMachine type: add
ValidateCreate and ValidateUpdate methods that inspect r.Spec.Image and
r.Spec.ImageRef and return a validation error (using
k8s.io/apimachinery/pkg/util/validation/field or apierrors.NewInvalid) when both
are non-empty; ensure the error references the mutually exclusive fields (e.g.,
"spec.image" and "spec.imageRef") so the API rejects objects that set both.
api/powervs/v1beta3/conditions_consts.go (1)

226-227: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Rename the exported constant to match the value semantics.

VPCSecurityGroupNotReadyCondition maps to clusterv1.NotReadyReason, so the exported name is misleading. Please rename it to VPCSecurityGroupNotReadyReason before this API surface is consumed.

🤖 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 `@api/powervs/v1beta3/conditions_consts.go` around lines 226 - 227, The
exported constant VPCSecurityGroupNotReadyCondition is misleading because it
maps to clusterv1.NotReadyReason (a Reason type), not a Condition type. Rename
the constant from VPCSecurityGroupNotReadyCondition to
VPCSecurityGroupNotReadyReason to accurately reflect its semantic meaning as a
reason value. Update the constant name in the file and ensure all usages of this
constant throughout the codebase are updated to use the new name.
api/powervs/v1beta2/ibmpowervscluster_types.go (2)

366-371: ⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Fix potential nil-pointer panic in ResourceReference.Set.

Line 368 dereferences rf.ControllerCreated without a nil guard. Since this field is optional (*bool), this will panic when the receiver's ControllerCreated is nil.

Proposed fix
 func (rf *ResourceReference) Set(resource ResourceReference) {
 	rf.ID = resource.ID
-	if !*rf.ControllerCreated {
+	if rf.ControllerCreated == nil || !*rf.ControllerCreated {
 		rf.ControllerCreated = resource.ControllerCreated
 	}
 }
🤖 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 `@api/powervs/v1beta2/ibmpowervscluster_types.go` around lines 366 - 371, The
method ResourceReference.Set dereferences rf.ControllerCreated without a nil
check which can panic; modify Set (ResourceReference.Set) to first check if
rf.ControllerCreated is nil before dereferencing and assign
resource.ControllerCreated if rf.ControllerCreated is nil or false as
intended—i.e., guard uses of rf.ControllerCreated with an explicit nil check and
handle the three cases (nil, pointer to false, pointer to true) so you only
dereference when non-nil and copy resource.ControllerCreated when receiver lacks
a value.

284-313: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Fix kubebuilder MaxLength marker syntax (:==).

Lines 285, 305, and 312 use invalid MaxLength:= syntax that controller-gen will silently ignore.

Proposed fix
-	// +kubebuilder:validation:MaxLength:=63
+	// +kubebuilder:validation:MaxLength=63
@@
-	// +kubebuilder:validation:MaxLength:=64
+	// +kubebuilder:validation:MaxLength=64
@@
-	// +kubebuilder:validation:MaxLength:=63
+	// +kubebuilder:validation:MaxLength=63
🤖 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 `@api/powervs/v1beta2/ibmpowervscluster_types.go` around lines 284 - 313, The
kubebuilder markers use invalid syntax `MaxLength:=` which controller-gen
ignores; update the annotations to use `MaxLength=` instead for the affected
fields: change the MaxLength marker on the top-level Name field (the field
defined as Name *string `json:"name,omitempty"`), on VPCResourceReference.ID
(the field ID *string `json:"id,omitempty"` inside type VPCResourceReference),
and on VPCResourceReference.Name (the name field in VPCResourceReference) so
each `+kubebuilder:validation:MaxLength:=64`/`:=63` becomes
`+kubebuilder:validation:MaxLength=64`/`=63`.
api/powervs/v1beta3/vpc.go (1)

112-113: ⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Fix malformed XValidation marker (missing + prefix and typo in field reference).

Line 112 references self.dely instead of self.delay and is missing the required + marker prefix, preventing the delay > timeout constraint from being validated during admission control.

Proposed fix
-// kubebuilder:validation:XValidation:rule="self.dely > self.timeout",message="health monitor's delay must be greater than the timeout"
+// +kubebuilder:validation:XValidation:rule="self.delay > self.timeout",message="health monitor's delay must be greater than the timeout"
 type VPCLoadBalancerHealthMonitorSpec struct {
🤖 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 `@api/powervs/v1beta3/vpc.go` around lines 112 - 113, The kubebuilder
XValidation marker on VPCLoadBalancerHealthMonitorSpec is malformed and
references the wrong field; update the marker to include the required '+' prefix
and fix the typo so the rule reads self.delay > self.timeout (e.g.,
"+kubebuilder:validation:XValidation:rule=\"self.delay >
self.timeout\",message=\"health monitor's delay must be greater than the
timeout\"") so admission validation will apply correctly to the struct.
api/powervs/v1beta3/types.go (2)

482-488: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Fix kubebuilder MaxLength marker syntax (:==).

Lines 482 and 487 use invalid MaxLength:= syntax that controller-gen will silently ignore, preventing the length validation from being applied.

Proposed fix
-	// +kubebuilder:validation:MaxLength:=63
+	// +kubebuilder:validation:MaxLength=63
@@
-	// +kubebuilder:validation:MaxLength:=64
+	// +kubebuilder:validation:MaxLength=64
🤖 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 `@api/powervs/v1beta3/types.go` around lines 482 - 488, The kubebuilder
validation markers for MaxLength on the Name field and the subnet id use
incorrect `MaxLength:=` syntax so controller-gen ignores them; update the marker
annotations to use `MaxLength=63` (for the Name field) and `MaxLength=64` (for
the subnet id) respectively so the validation is applied (locate the `Name
*string json:"name,omitempty"` field and the following `id is the ID of the
subnet.` block and replace `MaxLength:=` with `MaxLength=`).

547-566: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Add XValidation to enforce mutual exclusivity for IBMPowerVSResourceReference.

The struct comment (lines 547-549) documents that only one of ID, Name, or RegEx may be set, but no validation enforces this contract. This allows invalid configurations at admission time.

Proposed fix
 // IBMPowerVSResourceReference is a reference to a specific PowerVS resource by ID, Name or RegEx
 // Only one of ID, Name or RegEx may be specified. Specifying more than one will result in
 // a validation error.
+// +kubebuilder:validation:XValidation:rule="(has(self.id)?1:0) + (has(self.name)?1:0) + (has(self.regex)?1:0) <= 1",message="only one of id, name, or regex may be specified"
 type IBMPowerVSResourceReference struct {
🤖 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 `@api/powervs/v1beta3/types.go` around lines 547 - 566, The
IBMPowerVSResourceReference struct documents that only one of ID, Name, or RegEx
may be set but lacks validation; add a kubebuilder XValidation marker on the
IBMPowerVSResourceReference type to enforce mutual exclusivity (only one of .ID,
.Name, .RegEx is non-empty) so admission rejects objects with multiple fields
set; update the struct comment and add the appropriate
+kubebuilder:validation:XValidation rule referencing the fields (ID, Name,
RegEx) to return a clear error when more than one is provided.
api/powervs/v1beta2/ibmpowervsimage_types.go (1)

40-44: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Make deprecated ServiceInstanceID field optional.

Line 43 defines the deprecated ServiceInstanceID as a required field (string without omitempty). This prevents users from omitting it when using the new serviceInstance field, creating a schema conflict.

Proposed fix
 	// Deprecated: use ServiceInstance instead
 	//
 	// ServiceInstanceID is the id of the power cloud instance where the image will get imported.
-	ServiceInstanceID string `json:"serviceInstanceID"`
+	// +optional
+	ServiceInstanceID *string `json:"serviceInstanceID,omitempty"`
🤖 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 `@api/powervs/v1beta2/ibmpowervsimage_types.go` around lines 40 - 44, The
deprecated ServiceInstanceID field is currently required (string) which forces
clients to provide it; change the ServiceInstanceID declaration to be optional
by making it a pointer and adding omitempty in the json tag (e.g.,
ServiceInstanceID *string `json:"serviceInstanceID,omitempty"`), and update any
validation/usage in code that reads ServiceInstanceID to handle nil (compare to
the new serviceInstance field) so callers can omit the deprecated field without
schema conflicts.
🤖 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 `@api/powervs/v1beta3/vpc.go`:
- Line 46: The kubebuilder marker comment has an extra '+' prefix
("++kubebuilder:validation:UniqueItems=true") so the marker is ignored; edit the
marker in vpc.go to remove the extra plus so it reads
"+kubebuilder:validation:UniqueItems=true" (look for the comment immediately
above the relevant field/struct declaration) to restore proper kubebuilder
validation parsing.
- Around line 24-35: Update the kubebuilder validation markers on the Name and
ID fields in vpc.go: replace the invalid "MaxLength:=" occurrences with
"MaxLength=" so the markers on the Name field and the ID *string field are
syntactically correct (adjust the +kubebuilder:validation:MaxLength:=63 to
+kubebuilder:validation:MaxLength=63 and +kubebuilder:validation:MaxLength:=64
to +kubebuilder:validation:MaxLength=64).

In `@api/vpc/v1beta1/types.go`:
- Line 57: The Address pointer field in the struct is missing the `omitempty`
JSON tag, causing it to serialize as null when unset unlike the deprecated
`FIPID` and `LBID` fields; update the struct tag for `Address` to include
`omitempty` (matching `FIPID` and `LBID`) so all three pointer fields are
omitted when nil, ensuring consistent JSON serialization.

In `@api/vpc/v1beta2/types.go`:
- Line 144: Update the comment typos in the VPC types declarations: change the
ResourceTypeVPC comment from "Power VS network resource" to "VPC resource", fix
"Gatway" to "Gateway" in the relevant VPC gateway/comment, and correct "defiens"
to "defines" where the word appears; locate these by searching for the
symbols/comments around ResourceTypeVPC and any VPC Gateway-related type or
comment and update the three misspelled words accordingly.
- Line 62: Fix the typo "tudp" to "udp" in the comment(s) describing the
VPCLoadBalancerBackendPoolProtocolUDP constant; search for any remaining
occurrences of "tudp" in api/vpc/v1beta2/types.go (including the comment for
VPCLoadBalancerBackendPoolProtocolUDP and the similar comment at the other
occurrence) and update them to read "udp" so the comment correctly describes the
protocol.
- Line 48: Update the inline comments that currently read "diverage" to the
correct spelling "diverge" in the types.go comment blocks (the comment
containing "We have unique types in case IBM Cloud Load Balancer Listener and
Backend Pool supported algorithms ever diverage." and the similar occurrence
later); locate those comment strings and replace "diverage" with "diverge" so
both occurrences are fixed.
- Line 25: Fix the spelling typo in the comment for DefaultAPIServerPort: change
"defuault" to "default" in the comment that documents the DefaultAPIServerPort
constant to correct the grammar and maintain documentation quality.

---

Duplicate comments:
In @.github/workflows/weekly-security-scan.yaml:
- Around line 20-23: The workflow uses actions/checkout@de0fac2e... which by
default persists credentials; update the checkout step (the actions/checkout
usage) to add persist-credentials: false in the step inputs so the action does
not retain GITHUB_TOKEN credentials during the security-scan run; ensure this
change is applied to the checkout step that uses ref: ${{ matrix.branch }}.

In `@api/powervs/v1beta2/ibmpowervscluster_types.go`:
- Around line 366-371: The method ResourceReference.Set dereferences
rf.ControllerCreated without a nil check which can panic; modify Set
(ResourceReference.Set) to first check if rf.ControllerCreated is nil before
dereferencing and assign resource.ControllerCreated if rf.ControllerCreated is
nil or false as intended—i.e., guard uses of rf.ControllerCreated with an
explicit nil check and handle the three cases (nil, pointer to false, pointer to
true) so you only dereference when non-nil and copy resource.ControllerCreated
when receiver lacks a value.
- Around line 284-313: The kubebuilder markers use invalid syntax `MaxLength:=`
which controller-gen ignores; update the annotations to use `MaxLength=` instead
for the affected fields: change the MaxLength marker on the top-level Name field
(the field defined as Name *string `json:"name,omitempty"`), on
VPCResourceReference.ID (the field ID *string `json:"id,omitempty"` inside type
VPCResourceReference), and on VPCResourceReference.Name (the name field in
VPCResourceReference) so each `+kubebuilder:validation:MaxLength:=64`/`:=63`
becomes `+kubebuilder:validation:MaxLength=64`/`=63`.

In `@api/powervs/v1beta2/ibmpowervsimage_types.go`:
- Around line 40-44: The deprecated ServiceInstanceID field is currently
required (string) which forces clients to provide it; change the
ServiceInstanceID declaration to be optional by making it a pointer and adding
omitempty in the json tag (e.g., ServiceInstanceID *string
`json:"serviceInstanceID,omitempty"`), and update any validation/usage in code
that reads ServiceInstanceID to handle nil (compare to the new serviceInstance
field) so callers can omit the deprecated field without schema conflicts.

In `@api/powervs/v1beta3/conditions_consts.go`:
- Around line 226-227: The exported constant VPCSecurityGroupNotReadyCondition
is misleading because it maps to clusterv1.NotReadyReason (a Reason type), not a
Condition type. Rename the constant from VPCSecurityGroupNotReadyCondition to
VPCSecurityGroupNotReadyReason to accurately reflect its semantic meaning as a
reason value. Update the constant name in the file and ensure all usages of this
constant throughout the codebase are updated to use the new name.

In `@api/powervs/v1beta3/ibmpowervscluster_types.go`:
- Around line 411-415: The method ResourceReference.Set may panic by
dereferencing rf.ControllerCreated without nil-check; update it to first check
whether rf.ControllerCreated is nil before evaluating *rf.ControllerCreated, and
then copy resource.ControllerCreated appropriately (e.g., if
rf.ControllerCreated == nil set it to resource.ControllerCreated, else if
!*rf.ControllerCreated set it to resource.ControllerCreated) so both nil and
non-nil receiver cases are handled safely.
- Line 278: Replace malformed kubebuilder validation markers that use ':=' with
the correct '=' notation: update occurrences of annotations like
`+kubebuilder:validation:MaxLength:=64`, `MinLength:=3` and `MaxLength:=63` to
use `+kubebuilder:validation:MaxLength=64`,
`+kubebuilder:validation:MinLength=3`, `+kubebuilder:validation:MaxLength=63`
respectively; locate the annotations adjacent to the affected CRD fields in
ibmpowervscluster_types.go (the kubebuilder validation comments above the struct
fields) and change all `:=` to `=` so CRD schema generation uses valid markers.

In `@api/powervs/v1beta3/ibmpowervsmachine_types.go`:
- Line 78: The kubebuilder validation marker uses an invalid ":=" sequence;
locate the enum markers that currently read
'+kubebuilder:validation:Enum:="s922";"e980";"s1022";"e1050";"e1080";""' (and
the similar marker at the other occurrence) and change them to use '=' rather
than ':=' so they read
'+kubebuilder:validation:Enum="s922";"e980";"s1022";"e1050";"e1080";""'; update
both occurrences so CRD enum validation is generated correctly.
- Line 224: Remove the stray tab character in the kubebuilder printcolumn
annotation by editing the +kubebuilder:printcolumn line that currently has
JSONPath=".status.initialization.provisioned\t" so it reads
JSONPath=".status.initialization.provisioned" (locate the annotation with
+kubebuilder:printcolumn and the JSONPath ".status.initialization.provisioned"
to update).
- Around line 65-70: The CRD currently allows both Image
(*IBMPowerVSResourceReference) and ImageRef (ImageReference) to be set even
though they are alternatives; add server-side validation by implementing webhook
validation on the IBMPowerVSMachine type: add ValidateCreate and ValidateUpdate
methods that inspect r.Spec.Image and r.Spec.ImageRef and return a validation
error (using k8s.io/apimachinery/pkg/util/validation/field or
apierrors.NewInvalid) when both are non-empty; ensure the error references the
mutually exclusive fields (e.g., "spec.image" and "spec.imageRef") so the API
rejects objects that set both.

In `@api/powervs/v1beta3/types.go`:
- Around line 482-488: The kubebuilder validation markers for MaxLength on the
Name field and the subnet id use incorrect `MaxLength:=` syntax so
controller-gen ignores them; update the marker annotations to use `MaxLength=63`
(for the Name field) and `MaxLength=64` (for the subnet id) respectively so the
validation is applied (locate the `Name *string json:"name,omitempty"` field and
the following `id is the ID of the subnet.` block and replace `MaxLength:=` with
`MaxLength=`).
- Around line 547-566: The IBMPowerVSResourceReference struct documents that
only one of ID, Name, or RegEx may be set but lacks validation; add a
kubebuilder XValidation marker on the IBMPowerVSResourceReference type to
enforce mutual exclusivity (only one of .ID, .Name, .RegEx is non-empty) so
admission rejects objects with multiple fields set; update the struct comment
and add the appropriate +kubebuilder:validation:XValidation rule referencing the
fields (ID, Name, RegEx) to return a clear error when more than one is provided.

In `@api/powervs/v1beta3/vpc.go`:
- Around line 112-113: The kubebuilder XValidation marker on
VPCLoadBalancerHealthMonitorSpec is malformed and references the wrong field;
update the marker to include the required '+' prefix and fix the typo so the
rule reads self.delay > self.timeout (e.g.,
"+kubebuilder:validation:XValidation:rule=\"self.delay >
self.timeout\",message=\"health monitor's delay must be greater than the
timeout\"") so admission validation will apply correctly to the struct.

In `@api/vpc/v1beta1/types.go`:
- Around line 49-52: The JSON tags for the pointer fields Ipv4CidrBlock, Name,
ID, and Zone should include `omitempty` so nil pointers are omitted instead of
serialized as null; update the struct field tags for these symbols in
api/vpc/v1beta1/types.go to `json:"cidr,omitempty"`, `json:"name,omitempty"`,
`json:"id,omitempty"`, and `json:"zone,omitempty"` respectively to match the
v1beta2 API behavior.

In `@api/vpc/v1beta2/types.go`:
- Line 432: The kubebuilder validation markers use an invalid syntax
(`MaxLength:=`) which breaks CRD generation; locate the markers that read
`+kubebuilder:validation:MaxLength:=63` (and the similar `MaxLength:=` instance)
in types.go and change them to the correct syntax
`+kubebuilder:validation:MaxLength=63` so the validator recognizes the MaxLength
constraint on the associated field(s) (search for
`+kubebuilder:validation:MaxLength` to find both occurrences).
🪄 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: d0a9e5cf-73f2-4999-aa16-0846cc4ba2ae

📥 Commits

Reviewing files that changed from the base of the PR and between caf3e87 and b6e2509.

⛔ Files ignored due to path filters (155)
  • api/powervs/v1beta2/zz_generated.conversion.go is excluded by !**/zz_generated*
  • api/powervs/v1beta2/zz_generated.deepcopy.go is excluded by !**/zz_generated*
  • api/powervs/v1beta3/zz_generated.deepcopy.go is excluded by !**/zz_generated*
  • api/v1beta1/zz_generated.conversion.go is excluded by !**/zz_generated*
  • api/v1beta1/zz_generated.deepcopy.go is excluded by !**/zz_generated*
  • api/v1beta2/zz_generated.deepcopy.go is excluded by !**/zz_generated*
  • api/vpc/v1beta1/zz_generated.conversion.go is excluded by !**/zz_generated*
  • api/vpc/v1beta1/zz_generated.deepcopy.go is excluded by !**/zz_generated*
  • api/vpc/v1beta2/zz_generated.deepcopy.go is excluded by !**/zz_generated*
  • go.sum is excluded by !**/*.sum
  • hack/tools/go.sum is excluded by !**/*.sum
  • hack/tools/vendor/cel.dev/expr/.bazelversion is excluded by !**/vendor/**
  • hack/tools/vendor/cel.dev/expr/.gitattributes is excluded by !**/vendor/**
  • hack/tools/vendor/cel.dev/expr/.gitignore is excluded by !**/vendor/**
  • hack/tools/vendor/cel.dev/expr/BUILD.bazel is excluded by !**/vendor/**
  • hack/tools/vendor/cel.dev/expr/CODE_OF_CONDUCT.md is excluded by !**/vendor/**
  • hack/tools/vendor/cel.dev/expr/CONTRIBUTING.md is excluded by !**/vendor/**
  • hack/tools/vendor/cel.dev/expr/GOVERNANCE.md is excluded by !**/vendor/**
  • hack/tools/vendor/cel.dev/expr/MAINTAINERS.md is excluded by !**/vendor/**
  • hack/tools/vendor/cel.dev/expr/MODULE.bazel is excluded by !**/vendor/**
  • hack/tools/vendor/cel.dev/expr/README.md is excluded by !**/vendor/**
  • hack/tools/vendor/cel.dev/expr/WORKSPACE is excluded by !**/vendor/**
  • hack/tools/vendor/cel.dev/expr/WORKSPACE.bzlmod is excluded by !**/vendor/**
  • hack/tools/vendor/cel.dev/expr/checked.pb.go is excluded by !**/*.pb.go, !**/vendor/**
  • hack/tools/vendor/cel.dev/expr/cloudbuild.yaml is excluded by !**/vendor/**
  • hack/tools/vendor/cel.dev/expr/eval.pb.go is excluded by !**/*.pb.go, !**/vendor/**
  • hack/tools/vendor/cel.dev/expr/explain.pb.go is excluded by !**/*.pb.go, !**/vendor/**
  • hack/tools/vendor/cel.dev/expr/regen_go_proto.sh is excluded by !**/vendor/**
  • hack/tools/vendor/cel.dev/expr/regen_go_proto_canonical_protos.sh is excluded by !**/vendor/**
  • hack/tools/vendor/cel.dev/expr/syntax.pb.go is excluded by !**/*.pb.go, !**/vendor/**
  • hack/tools/vendor/cel.dev/expr/value.pb.go is excluded by !**/*.pb.go, !**/vendor/**
  • hack/tools/vendor/charm.land/lipgloss/v2/.editorconfig is excluded by !**/vendor/**
  • hack/tools/vendor/charm.land/lipgloss/v2/.gitattributes is excluded by !**/vendor/**
  • hack/tools/vendor/charm.land/lipgloss/v2/.gitignore is excluded by !**/vendor/**
  • hack/tools/vendor/charm.land/lipgloss/v2/.golangci.yml is excluded by !**/vendor/**
  • hack/tools/vendor/charm.land/lipgloss/v2/.goreleaser.yml is excluded by !**/vendor/**
  • hack/tools/vendor/charm.land/lipgloss/v2/LICENSE is excluded by !**/vendor/**
  • hack/tools/vendor/charm.land/lipgloss/v2/README.md is excluded by !**/vendor/**
  • hack/tools/vendor/charm.land/lipgloss/v2/Taskfile.yaml is excluded by !**/vendor/**
  • hack/tools/vendor/charm.land/lipgloss/v2/UPGRADE_GUIDE_V2.md is excluded by !**/vendor/**
  • hack/tools/vendor/charm.land/lipgloss/v2/align.go is excluded by !**/vendor/**
  • hack/tools/vendor/charm.land/lipgloss/v2/ansi_unix.go is excluded by !**/vendor/**
  • hack/tools/vendor/charm.land/lipgloss/v2/ansi_windows.go is excluded by !**/vendor/**
  • hack/tools/vendor/charm.land/lipgloss/v2/blending.go is excluded by !**/vendor/**
  • hack/tools/vendor/charm.land/lipgloss/v2/borders.go is excluded by !**/vendor/**
  • hack/tools/vendor/charm.land/lipgloss/v2/canvas.go is excluded by !**/vendor/**
  • hack/tools/vendor/charm.land/lipgloss/v2/color.go is excluded by !**/vendor/**
  • hack/tools/vendor/charm.land/lipgloss/v2/get.go is excluded by !**/vendor/**
  • hack/tools/vendor/charm.land/lipgloss/v2/join.go is excluded by !**/vendor/**
  • hack/tools/vendor/charm.land/lipgloss/v2/layer.go is excluded by !**/vendor/**
  • hack/tools/vendor/charm.land/lipgloss/v2/lipgloss.go is excluded by !**/vendor/**
  • hack/tools/vendor/charm.land/lipgloss/v2/position.go is excluded by !**/vendor/**
  • hack/tools/vendor/charm.land/lipgloss/v2/query.go is excluded by !**/vendor/**
  • hack/tools/vendor/charm.land/lipgloss/v2/ranges.go is excluded by !**/vendor/**
  • hack/tools/vendor/charm.land/lipgloss/v2/runes.go is excluded by !**/vendor/**
  • hack/tools/vendor/charm.land/lipgloss/v2/set.go is excluded by !**/vendor/**
  • hack/tools/vendor/charm.land/lipgloss/v2/size.go is excluded by !**/vendor/**
  • hack/tools/vendor/charm.land/lipgloss/v2/style.go is excluded by !**/vendor/**
  • hack/tools/vendor/charm.land/lipgloss/v2/terminal.go is excluded by !**/vendor/**
  • hack/tools/vendor/charm.land/lipgloss/v2/unset.go is excluded by !**/vendor/**
  • hack/tools/vendor/charm.land/lipgloss/v2/whitespace.go is excluded by !**/vendor/**
  • hack/tools/vendor/charm.land/lipgloss/v2/wrap.go is excluded by !**/vendor/**
  • hack/tools/vendor/charm.land/lipgloss/v2/writer.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/CHANGES.md is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/LICENSE is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/README.md is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/auth.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/credentials/compute.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/credentials/detect.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/credentials/doc.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/credentials/filetypes.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/credentials/idtoken/cache.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/credentials/idtoken/compute.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/credentials/idtoken/file.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/credentials/idtoken/idtoken.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/credentials/idtoken/validate.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/credentials/impersonate/doc.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/credentials/impersonate/idtoken.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/credentials/impersonate/impersonate.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/credentials/impersonate/user.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/credentials/internal/externalaccount/aws_provider.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/credentials/internal/externalaccount/executable_provider.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/credentials/internal/externalaccount/externalaccount.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/credentials/internal/externalaccount/file_provider.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/credentials/internal/externalaccount/info.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/credentials/internal/externalaccount/programmatic_provider.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/credentials/internal/externalaccount/url_provider.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/credentials/internal/externalaccount/x509_provider.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/credentials/internal/externalaccountuser/externalaccountuser.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/credentials/internal/gdch/gdch.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/credentials/internal/impersonate/idtoken.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/credentials/internal/impersonate/impersonate.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/credentials/internal/stsexchange/sts_exchange.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/credentials/selfsignedjwt.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/grpctransport/dial_socketopt.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/grpctransport/directpath.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/grpctransport/grpctransport.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/grpctransport/pool.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/httptransport/httptransport.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/httptransport/transport.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/internal/compute/compute.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/internal/compute/manufacturer.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/internal/compute/manufacturer_linux.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/internal/compute/manufacturer_windows.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/internal/credsfile/credsfile.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/internal/credsfile/filetype.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/internal/credsfile/parse.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/internal/internal.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/internal/jwt/jwt.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/internal/retry/retry.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/internal/transport/cba.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/internal/transport/cert/default_cert.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/internal/transport/cert/enterprise_cert.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/internal/transport/cert/secureconnect_cert.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/internal/transport/cert/workload_cert.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/internal/transport/headers/headers.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/internal/transport/s2a.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/internal/transport/transport.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/internal/trustboundary/external_accounts_config_providers.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/internal/trustboundary/trust_boundary.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/internal/version.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/oauth2adapt/CHANGES.md is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/oauth2adapt/LICENSE is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/oauth2adapt/oauth2adapt.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/auth/threelegged.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/compute/metadata/CHANGES.md is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/compute/metadata/LICENSE is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/compute/metadata/README.md is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/compute/metadata/log.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/compute/metadata/metadata.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/compute/metadata/retry.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/compute/metadata/retry_linux.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/compute/metadata/syscheck.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/compute/metadata/syscheck_linux.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/compute/metadata/syscheck_windows.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/iam/CHANGES.md is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/iam/LICENSE is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/iam/README.md is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/iam/apiv1/iampb/iam_policy.pb.go is excluded by !**/*.pb.go, !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/iam/apiv1/iampb/options.pb.go is excluded by !**/*.pb.go, !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/iam/apiv1/iampb/policy.pb.go is excluded by !**/*.pb.go, !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/iam/apiv1/iampb/resource_policy_member.pb.go is excluded by !**/*.pb.go, !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/iam/iam.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/internal/.repo-metadata-full.json is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/internal/README.md is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/internal/annotate.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/internal/gen_info.sh is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/internal/optional/optional.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/internal/retry.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/internal/trace/trace.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/internal/version/update_version.sh is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/internal/version/version.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/monitoring/LICENSE is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/monitoring/apiv3/v2/alert_policy_client.go is excluded by !**/vendor/**
  • hack/tools/vendor/cloud.google.com/go/monitoring/apiv3/v2/auxiliary.go is excluded by !**/vendor/**
📒 Files selected for processing (145)
  • .ci-operator.yaml
  • .github/ISSUE_TEMPLATE/add_new_machine_image.md
  • .github/workflows/weekly-security-scan.yaml
  • .golangci-kal.yml
  • .golangci.yml
  • Dockerfile
  • Makefile
  • PROJECT
  • README.md
  • api/powervs/v1beta2/conditions_consts.go
  • api/powervs/v1beta2/conversion.go
  • api/powervs/v1beta2/conversion_test.go
  • api/powervs/v1beta2/doc.go
  • api/powervs/v1beta2/groupversion_info.go
  • api/powervs/v1beta2/ibmpowervscluster_types.go
  • api/powervs/v1beta2/ibmpowervsclustertemplate_types.go
  • api/powervs/v1beta2/ibmpowervsimage_types.go
  • api/powervs/v1beta2/ibmpowervsmachine_types.go
  • api/powervs/v1beta2/ibmpowervsmachinetemplate_types.go
  • api/powervs/v1beta2/types.go
  • api/powervs/v1beta2/vpc.go
  • api/powervs/v1beta3/conditions_consts.go
  • api/powervs/v1beta3/conversion.go
  • api/powervs/v1beta3/doc.go
  • api/powervs/v1beta3/groupversion_info.go
  • api/powervs/v1beta3/ibmpowervscluster_types.go
  • api/powervs/v1beta3/ibmpowervsclustertemplate_types.go
  • api/powervs/v1beta3/ibmpowervsimage_types.go
  • api/powervs/v1beta3/ibmpowervsmachine_types.go
  • api/powervs/v1beta3/ibmpowervsmachinetemplate_types.go
  • api/powervs/v1beta3/types.go
  • api/powervs/v1beta3/v1beta2_condition_consts.go
  • api/powervs/v1beta3/vpc.go
  • api/v1beta1/doc.go
  • api/v1beta1/ibmpowervs_conversion.go
  • api/v1beta1/ibmpowervscluster_types.go
  • api/v1beta1/ibmpowervsclustertemplate_types.go
  • api/v1beta1/ibmpowervsimage_types.go
  • api/v1beta1/ibmpowervsmachine_types.go
  • api/v1beta1/ibmpowervsmachinetemplate_types.go
  • api/v1beta1/types.go
  • api/v1beta2/conversion.go
  • api/v1beta2/doc.go
  • api/v1beta2/ibmpowervscluster_types.go
  • api/v1beta2/ibmpowervsclustertemplate_types.go
  • api/v1beta2/ibmpowervsimage_types.go
  • api/v1beta2/ibmpowervsmachine_types.go
  • api/v1beta2/ibmpowervsmachinetemplate_types.go
  • api/v1beta2/types.go
  • api/vpc/v1beta1/conditions_consts.go
  • api/vpc/v1beta1/doc.go
  • api/vpc/v1beta1/groupversion_info.go
  • api/vpc/v1beta1/ibmvpc_conversion.go
  • api/vpc/v1beta1/ibmvpccluster_types.go
  • api/vpc/v1beta1/ibmvpcmachine_types.go
  • api/vpc/v1beta1/ibmvpcmachinetemplate_types.go
  • api/vpc/v1beta1/types.go
  • api/vpc/v1beta2/conditions_consts.go
  • api/vpc/v1beta2/conversion.go
  • api/vpc/v1beta2/doc.go
  • api/vpc/v1beta2/groupversion_info.go
  • api/vpc/v1beta2/ibmvpccluster_types.go
  • api/vpc/v1beta2/ibmvpcclustertemplate_types.go
  • api/vpc/v1beta2/ibmvpcmachine_types.go
  • api/vpc/v1beta2/ibmvpcmachinetemplate_types.go
  • api/vpc/v1beta2/types.go
  • cloud/scope/common_test.go
  • cloud/scope/doc.go
  • cloud/scope/powervs/doc.go
  • cloud/scope/powervs/helper_test.go
  • cloud/scope/powervs/powervs_cluster.go
  • cloud/scope/powervs/powervs_cluster_test.go
  • cloud/scope/powervs/powervs_image.go
  • cloud/scope/powervs/powervs_image_test.go
  • cloud/scope/powervs/powervs_machine.go
  • cloud/scope/powervs/powervs_machine_test.go
  • cloud/scope/powervs/suite_test.go
  • cloud/scope/powervs/types.go
  • cloud/scope/powervs/util.go
  • cloud/scope/powervs/util_test.go
  • cloud/scope/suite_test.go
  • cloud/scope/types.go
  • cloud/scope/util.go
  • cloud/scope/vpc/cluster.go
  • cloud/scope/vpc/cluster_test.go
  • cloud/scope/vpc/cluster_v2.go
  • cloud/scope/vpc/doc.go
  • cloud/scope/vpc/helper_test.go
  • cloud/scope/vpc/machine.go
  • cloud/scope/vpc/machine_test.go
  • cloud/scope/vpc/suite_test.go
  • cloud/scope/vpc/util.go
  • cloud/scope/vpc_cluster.go
  • cloudbuild.yaml
  • cmd/capibmadm/cmd/powervs/image/type.go
  • cmd/capibmadm/cmd/powervs/key/type.go
  • cmd/capibmadm/cmd/powervs/network/type.go
  • cmd/capibmadm/cmd/powervs/port/type.go
  • cmd/capibmadm/cmd/vpc/image/type.go
  • cmd/capibmadm/cmd/vpc/key/type.go
  • cmd/main.go
  • config/crd/bases/infrastructure.cluster.x-k8s.io_ibmpowervsclusters.yaml
  • config/crd/bases/infrastructure.cluster.x-k8s.io_ibmpowervsclustertemplates.yaml
  • config/crd/bases/infrastructure.cluster.x-k8s.io_ibmpowervsimages.yaml
  • config/crd/bases/infrastructure.cluster.x-k8s.io_ibmpowervsmachines.yaml
  • config/crd/bases/infrastructure.cluster.x-k8s.io_ibmpowervsmachinetemplates.yaml
  • config/crd/bases/infrastructure.cluster.x-k8s.io_ibmvpcclusters.yaml
  • config/crd/bases/infrastructure.cluster.x-k8s.io_ibmvpcclustertemplates.yaml
  • config/crd/bases/infrastructure.cluster.x-k8s.io_ibmvpcmachines.yaml
  • config/crd/bases/infrastructure.cluster.x-k8s.io_ibmvpcmachinetemplates.yaml
  • config/crd/kustomization.yaml
  • config/rbac/ibmpowervscluster_admin_role.yaml
  • config/rbac/ibmpowervsclustertemplate_admin_role.yaml
  • config/rbac/ibmpowervsimage_admin_role.yaml
  • config/rbac/ibmpowervsmachine_admin_role.yaml
  • config/rbac/ibmpowervsmachinetemplate_admin_role.yaml
  • config/rbac/kustomization.yaml
  • config/rbac/role.yaml
  • config/webhook/manifests.yaml
  • controllers/alias.go
  • controllers/doc.go
  • controllers/ibmpowervscluster_controller.go
  • controllers/ibmpowervsimage_controller.go
  • controllers/ibmpowervsmachine_controller.go
  • controllers/suite_test.go
  • docs/book/src/SUMMARY.md
  • docs/book/src/developer/conversion.md
  • docs/book/src/developer/netlify-site.md
  • docs/book/src/developer/release-support-guidelines.md
  • docs/book/src/developer/release.md
  • docs/book/src/developer/tilt.md
  • docs/book/src/machine-images/powervs.md
  • docs/book/src/machine-images/vpc.md
  • docs/book/src/reference/regions-zones-mapping.md
  • docs/book/src/topics/powervs/creating-a-cluster.md
  • docs/book/src/topics/vpc/creating-a-cluster.md
  • docs/proposal/20260421-powervs-v1beta3-api-modernization.md
  • go.mod
  • hack/ccm/Makefile
  • hack/ccm/cloudbuild.yaml
  • hack/ensure-go.sh
  • hack/tools/.custom-gcl.yaml
  • hack/tools/Makefile
  • hack/tools/go.mod
  • hack/tools/tools.go
💤 Files with no reviewable changes (16)
  • api/v1beta1/types.go
  • api/v1beta2/doc.go
  • api/v1beta2/ibmpowervsmachinetemplate_types.go
  • api/v1beta1/doc.go
  • api/v1beta2/conversion.go
  • api/v1beta1/ibmpowervscluster_types.go
  • api/v1beta1/ibmpowervsclustertemplate_types.go
  • api/v1beta2/ibmpowervsmachine_types.go
  • api/v1beta2/ibmpowervsclustertemplate_types.go
  • api/v1beta1/ibmpowervsimage_types.go
  • api/v1beta2/ibmpowervscluster_types.go
  • api/v1beta1/ibmpowervsmachine_types.go
  • api/v1beta1/ibmpowervs_conversion.go
  • api/v1beta2/types.go
  • api/v1beta1/ibmpowervsmachinetemplate_types.go
  • api/v1beta2/ibmpowervsimage_types.go
✅ Files skipped from review due to trivial changes (6)
  • .ci-operator.yaml
  • api/powervs/v1beta3/doc.go
  • api/vpc/v1beta1/ibmvpc_conversion.go
  • .golangci-kal.yml
  • api/vpc/v1beta1/doc.go
  • api/powervs/v1beta2/doc.go
🚧 Files skipped from review as they are similar to previous changes (8)
  • README.md
  • api/vpc/v1beta2/doc.go
  • .golangci.yml
  • Dockerfile
  • .github/ISSUE_TEMPLATE/add_new_machine_image.md
  • api/powervs/v1beta3/conversion.go
  • PROJECT
  • api/vpc/v1beta2/conversion.go

Comment on lines +24 to +35
// +kubebuilder:validation:MinLength:=1
// +kubebuilder:validation:MaxLength:=63
// +kubebuilder:validation:Pattern=`^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$`
// +optional
Name string `json:"name,omitempty"`

// id of the loadbalancer
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength:=64
// +kubebuilder:validation:Pattern=`^[-0-9a-z_]+$`
// +optional
ID *string `json:"id,omitempty"`
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Fix kubebuilder MaxLength marker syntax (:==).

Lines 24 and 32 use invalid MaxLength:= syntax that controller-gen will ignore.

Proposed fix
-	// +kubebuilder:validation:MaxLength:=63
+	// +kubebuilder:validation:MaxLength=63
@@
-	// +kubebuilder:validation:MaxLength:=64
+	// +kubebuilder:validation:MaxLength=64
🧰 Tools
🪛 golangci-lint (2.12.2)

[error] 32-32: : # sigs.k8s.io/cluster-api-provider-ibmcloud/api/powervs/v1beta3
api/powervs/v1beta3/ibmpowervscluster_types.go:32:36: cannot use &IBMPowerVSCluster{} (value of type *IBMPowerVSCluster) as "k8s.io/apimachinery/pkg/runtime".Object value in argument to append: *IBMPowerVSCluster does not implement "k8s.io/apimachinery/pkg/runtime".Object (missing method DeepCopyObject)
api/powervs/v1beta3/ibmpowervscluster_types.go:32:58: cannot use &IBMPowerVSClusterList{} (value of type *IBMPowerVSClusterList) as "k8s.io/apimachinery/pkg/runtime".Object value in argument to append: *IBMPowerVSClusterList does not implement "k8s.io/apimachinery/pkg/runtime".Object (missing method DeepCopyObject)
api/powervs/v1beta3/ibmpowervsclustertemplate_types.go:26:36: cannot use &IBMPowerVSClusterTemplate{} (value of type *IBMPowerVSClusterTemplate) as "k8s.io/apimachinery/pkg/runtime".Object value in argument to append: *IBMPowerVSClusterTemplate does not implement "k8s.io/apimachinery/pkg/runtime".Object (missing method DeepCopyObject)
api/powervs/v1beta3/ibmpowervsclustertemplate_types.go:26:66: cannot use &IBMPowerVSClusterTemplateList{} (value of type *IBMPowerVSClusterTemplateList) as "k8s.io/apimachinery/pkg/runtime".Object value in argument to append: *IBMPowerVSClusterTemplateList does not implement "k8s.io/apimachinery/pkg/runtime".Object (missing method DeepCopyObject)
api/powervs/v1beta3/ibmpowervsimage_types.go:32:36: cannot use &IBMPowerVSImage{} (value of type *IBMPowerVSImage) as "k8s.io/apimachinery/pkg/runtime".Object value in argument to append: *IBMPowerVSImage does not implement "k8s.io/apimachinery/pkg/runtime".Object (missing method DeepCopyObject)
api/powervs/v1beta3/ibmpowervsimage_types.go:32:56: cannot use &IBMPowerVSImageList{} (value of type *IBMPowerVSImageList) as "k8s.io/apimachinery/pkg/runtime".Object value in argument to append: *IBMPowerVSImageList does not implement "k8s.io/apimachinery/pkg/runtime".Object (missing method DeepCopyObject)
api/powervs/v1beta3/ibmpowervsmachine_types.go:44:36: cannot use &IBMPowerVSMachine{} (value of type *IBMPowerVSMachine) as "k8s.io/apimachinery/pkg/runtime".Object value in argument to append: *IBMPowerVSMachine does not implement "k8s.io/apimachinery/pkg/runtime".Object (missing method DeepCopyObject)
api/powervs/v1beta3/ibmpowervsmachine_types.go:44:58: cannot use &IBMPowerVSMachineList{} (value of type *IBMPowerVSMachineList) as "k8s.io/apimachinery/pkg/runtime".Object value in argument to append: *IBMPowerVSMachineList does not implement "k8s.io/apimachinery/pkg/runtime".Object (missing method DeepCopyObject)
api/powervs/v1beta3/ibmpowervsmachinetemplate_types.go:27:36: cannot use &IBMPowerVSMachineTemplate{} (value of type *IBMPowerVSMachineTemplate) as "k8s.io/apimachinery/pkg/runtime".Object value in argument to append: *IBMPowerVSMachineTemplate does not implement "k8s.io/apimachinery/pkg/runtime".Object (missing method DeepCopyObject)
api/powervs/v1beta3/ibmpowervsmachinetemplate_types.go:27:66: cannot use &IBMPowerVSMachineTemplateList{} (value of type *IBMPowerVSMachineTemplateList) as "k8s.io/apimachinery/pkg/runtime".Object value in argument to append: *IBMPowerVSMachineTemplateList does not implement "k8s.io/apimachinery/pkg/runtime".Object (missing method DeepCopyObject)
api/powervs/v1beta3/ibmpowervsmachinetemplate_types.go:27:66: too many errors

(typecheck)

🤖 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 `@api/powervs/v1beta3/vpc.go` around lines 24 - 35, Update the kubebuilder
validation markers on the Name and ID fields in vpc.go: replace the invalid
"MaxLength:=" occurrences with "MaxLength=" so the markers on the Name field and
the ID *string field are syntactically correct (adjust the
+kubebuilder:validation:MaxLength:=63 to +kubebuilder:validation:MaxLength=63
and +kubebuilder:validation:MaxLength:=64 to
+kubebuilder:validation:MaxLength=64).

// +listType=map
// +listMapKey=port
// +optional
// ++kubebuilder:validation:UniqueItems=true
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Fix double-plus kubebuilder marker prefix.

Line 46 has ++kubebuilder instead of +kubebuilder, which will cause the marker to be ignored.

Proposed fix
-	// ++kubebuilder:validation:UniqueItems=true
+	// +kubebuilder:validation:UniqueItems=true
📝 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.

Suggested change
// ++kubebuilder:validation:UniqueItems=true
// +kubebuilder:validation:UniqueItems=true
🤖 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 `@api/powervs/v1beta3/vpc.go` at line 46, The kubebuilder marker comment has an
extra '+' prefix ("++kubebuilder:validation:UniqueItems=true") so the marker is
ignored; edit the marker in vpc.go to remove the extra plus so it reads
"+kubebuilder:validation:UniqueItems=true" (look for the comment immediately
above the relevant field/struct declaration) to restore proper kubebuilder
validation parsing.

Comment thread api/vpc/v1beta1/types.go

// VPCEndpoint describes a VPCEndpoint.
type VPCEndpoint struct {
Address *string `json:"address"`
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Add omitempty to Address field for consistency.

The Address field is a pointer but lacks the omitempty JSON tag, while the deprecated FIPID and LBID fields both include it. This inconsistency will cause Address to serialize as null when unset, whereas the deprecated fields will be omitted. Add omitempty to align all three pointer fields.

🔧 Suggested fix
-	Address *string `json:"address"`
+	Address *string `json:"address,omitempty"`
📝 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.

Suggested change
Address *string `json:"address"`
Address *string `json:"address,omitempty"`
🤖 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 `@api/vpc/v1beta1/types.go` at line 57, The Address pointer field in the struct
is missing the `omitempty` JSON tag, causing it to serialize as null when unset
unlike the deprecated `FIPID` and `LBID` fields; update the struct tag for
`Address` to include `omitempty` (matching `FIPID` and `LBID`) so all three
pointer fields are omitted when nil, ensuring consistent JSON serialization.

Comment thread api/vpc/v1beta2/types.go
// CIDRBlockAny is the CIDRBlock representing any allowable destination/source IP.
CIDRBlockAny string = "0.0.0.0/0"

// DefaultAPIServerPort is defuault API server port number.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix typo in comment.

"defuault" should be "default".

🔧 Suggested fix
-	// DefaultAPIServerPort is defuault API server port number.
+	// DefaultAPIServerPort is default API server port number.
📝 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.

Suggested change
// DefaultAPIServerPort is defuault API server port number.
// DefaultAPIServerPort is default API server port number.
🤖 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 `@api/vpc/v1beta2/types.go` at line 25, Fix the spelling typo in the comment
for DefaultAPIServerPort: change "defuault" to "default" in the comment that
documents the DefaultAPIServerPort constant to correct the grammar and maintain
documentation quality.

Comment thread api/vpc/v1beta2/types.go
)

// VPCLoadBalancerBackendPoolProtocol describes the protocol for load balancer backend pools.
// We have unique types in case IBM Cloud Load Balancer Listener and Backend Pool supported algorithms ever diverage.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix typo in comments.

"diverage" should be "diverge" (appears at lines 48 and 67).

🔧 Suggested fix
 // VPCLoadBalancerBackendPoolProtocol describes the protocol for load balancer backend pools.
-// We have unique types in case IBM Cloud Load Balancer Listener and Backend Pool supported algorithms ever diverage.
+// We have unique types in case IBM Cloud Load Balancer Listener and Backend Pool supported algorithms ever diverge.
 // +kubebuilder:validation:Enum=http;https;tcp;udp
 type VPCLoadBalancerBackendPoolProtocol string
 // VPCLoadBalancerListenerProtocol describes the protocol for load balancer listeners.
-// We have unique types in case IBM Cloud Load Balancer Listener and Backend Pool supported algorithms ever diverage.
+// We have unique types in case IBM Cloud Load Balancer Listener and Backend Pool supported algorithms ever diverge.
 // +kubebuilder:validation:Enum=http;https;tcp;udp
 type VPCLoadBalancerListenerProtocol string

Also applies to: 67-67

🤖 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 `@api/vpc/v1beta2/types.go` at line 48, Update the inline comments that
currently read "diverage" to the correct spelling "diverge" in the types.go
comment blocks (the comment containing "We have unique types in case IBM Cloud
Load Balancer Listener and Backend Pool supported algorithms ever diverage." and
the similar occurrence later); locate those comment strings and replace
"diverage" with "diverge" so both occurrences are fixed.

Comment thread api/vpc/v1beta2/types.go
// VPCLoadBalancerBackendPoolProtocolTCP is the string representing the tcp protocol for load balancer backend pools.
VPCLoadBalancerBackendPoolProtocolTCP VPCLoadBalancerBackendPoolProtocol = vpcv1.LoadBalancerPoolPrototypeLoadBalancerContextProtocolTCPConst

// VPCLoadBalancerBackendPoolProtocolUDP is the string representing the tudp protocol for load balancer backend pools.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix typo in comments.

"tudp" should be "udp" (appears at lines 62 and 81).

🔧 Suggested fix
-	// VPCLoadBalancerBackendPoolProtocolUDP is the string representing the tudp protocol for load balancer backend pools.
+	// VPCLoadBalancerBackendPoolProtocolUDP is the string representing the udp protocol for load balancer backend pools.
 	VPCLoadBalancerBackendPoolProtocolUDP VPCLoadBalancerBackendPoolProtocol = vpcv1.LoadBalancerPoolPrototypeLoadBalancerContextProtocolUDPConst
-	// VPCLoadBalancerListenerProtocolUDP is the string representing the tudp protocol for load balancer listeners.
+	// VPCLoadBalancerListenerProtocolUDP is the string representing the udp protocol for load balancer listeners.
 	VPCLoadBalancerListenerProtocolUDP VPCLoadBalancerListenerProtocol = vpcv1.LoadBalancerListenerProtocolUDPConst

Also applies to: 81-81

🤖 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 `@api/vpc/v1beta2/types.go` at line 62, Fix the typo "tudp" to "udp" in the
comment(s) describing the VPCLoadBalancerBackendPoolProtocolUDP constant; search
for any remaining occurrences of "tudp" in api/vpc/v1beta2/types.go (including
the comment for VPCLoadBalancerBackendPoolProtocolUDP and the similar comment at
the other occurrence) and update them to read "udp" so the comment correctly
describes the protocol.

Comment thread api/vpc/v1beta2/types.go
ResourceTypeLoadBalancer = ResourceType("loadBalancer")
// ResourceTypeLoadBalancerPool is a Load Balancer Pool resource.
ResourceTypeLoadBalancerPool = ResourceType("loadBalancerPool")
// ResourceTypeVPC is Power VS network resource.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix comment errors.

Three issues:

  • Line 144: "Power VS network resource" should be "VPC resource" (VPC is not PowerVS)
  • Line 160: "Gatway" should be "Gateway"
  • Line 206: "defiens" should be "defines"
🔧 Suggested fix
-	// ResourceTypeVPC is Power VS network resource.
+	// ResourceTypeVPC is VPC resource.
 	ResourceTypeVPC = ResourceType("vpc")
-	// ResourceTypePublicGateway is a VPC Public Gatway.
+	// ResourceTypePublicGateway is a VPC Public Gateway.
 	ResourceTypePublicGateway = ResourceType("publicGateway")
-	// VPCSecurityGroupRuleProtocolIcmp defiens the Rule is for ICMP network protocol.
+	// VPCSecurityGroupRuleProtocolIcmp defines the Rule is for ICMP network protocol.
 	VPCSecurityGroupRuleProtocolIcmp VPCSecurityGroupRuleProtocol = vpcv1.NetworkACLRuleProtocolIcmpConst

Also applies to: 160-160, 206-206

🤖 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 `@api/vpc/v1beta2/types.go` at line 144, Update the comment typos in the VPC
types declarations: change the ResourceTypeVPC comment from "Power VS network
resource" to "VPC resource", fix "Gatway" to "Gateway" in the relevant VPC
gateway/comment, and correct "defiens" to "defines" where the word appears;
locate these by searching for the symbols/comments around ResourceTypeVPC and
any VPC Gateway-related type or comment and update the three misspelled words
accordingly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test.

Projects

None yet

Development

Successfully merging this pull request may close these issues.