github kubernetes-sigs/kubebuilder v4.10.0

8 hours ago

🚀 How to Keep Your Scaffold Up to Date

💡 Enable autoupdate/v1-alpha to automatically open an Issue and a prepared PR with scaffold changes:
kubebuilder edit --plugins="autoupdate.kubebuilder.io/v1-alpha".
You can also update manually at any time using kubebuilder alpha update.

Note: Projects created before v4.5.0 may need a one-time manual upgrade. Recreating the project with the latest version and re-applying your custom code provides a clean base. You can use kubebuilder alpha generate to fully re-scaffold the project in one step. Projects from v4.6.0+ include cliVersion in the PROJECT file, so updates that preserve your custom code just work going forward.

⚠️ Deprecation Notice: helm/v1-alphahelm/v2-alpha

✨ The new helm/v2-alpha plugin replaces the deprecated helm/v1-alpha and brings major improvements in flexibility and maintainability, championing changes driven by community feedback.

Chart values are now better exposed, enabling easier customization and addressing long-standing issues by consuming the kustomize-generated bundle from make build-installer instead of relying on fixed templates for chart generation.
Try it out with: kubebuilder edit --plugins=helm/v2-alpha. (More info)

✨ New features

  • (go/v4): Enable multi-architecture support in GitHub Actions and devcontainer scripts by dynamically detecting GOARCH. #5142
  • (go/v4): Allow ENV TEST version to be derived from replaces. #5096
  • (go/v4): Add support for custom webhook paths. #5171
  • (go/v4): Add *.kubeconfig to .gitignore. #5111
  • (go/v4): Allow informing Go modules for external APIs when pinning a downgraded version is required. #5194
  • (helm/v2-alpha): Introduce the new helm/v2-alpha plugin. (More info) (#5058, #5172, #5119, #5147, #5173, #5174)
  • (External Plugins API): Add PluginChain field to the external plugin API. #5161
  • (External Plugins API): Expose ProjectConfig to external plugins. #5165

✨ Upgrades

  • (go/v4): Upgrade golangci-lint from v2.4.0v2.5.0. #5128
  • (go/v4): Upgrade controller-runtime from v0.22.1v0.22.4. (#5129, #5178)
  • (go/v4): Upgrade cert-manager used in e2e tests from v1.18.2v1.19.1. (#5133, #5136)
  • (go/v4): Upgrade Golang version from 1.241.24.6. #5186

🐛 Bug fixes

  • (go/v4): Fix project scaffolding failure when directories contain spaces by quoting Makefile variables. #5139
  • (go/v4): Simplify init directory validation to only block Kubebuilder-specific files. #5154
  • (External Plugins API): Fix plugin configuration tracking when wrapped in bundles with custom domains. #5166

🎉 Thanks to all contributors!

What's Changed

  • ✨ Add helm/v2-alpha addressing all feedbacks and aiming maintainability. Deprecated helm/v1-alpha in favor of helm/v2-alpha by @camilamacedo86 in #5058
  • 📖 Tidy up completion.md by @abenn135 in #5103
  • 🌱 Bump k8s.io/apimachinery from 0.34.0 to 0.34.1 by @dependabot[bot] in #5108
  • 📖 Bump sigs.k8s.io/kubebuilder/v4 from 4.8.0 to 4.9.0 in /docs/book/src/simple-external-plugin-tutorial/testdata/sampleexternalplugin/v1 by @dependabot[bot] in #5109
  • 🌱 chore: enforce internal package import aliases by @bavarianbidi in #5110
  • 📖 : Update CronJob and Multiversion tutorials to use Status Conditions by @nerdeveloper in #5087
  • 📖 Quickstart: Add note about editing the resource by @guettli in #5112
  • ✨: Add *.kubeconfig to .gitignore. by @guettli in #5111
  • 🌱 Bump github.com/onsi/ginkgo/v2 from 2.25.3 to 2.26.0 by @dependabot[bot] in #5115
  • 🌱 Ensure fixed version for certmanager in testdata samples by @camilamacedo86 in #5127
  • 🌱 Bump golang.org/x/mod from 0.28.0 to 0.29.0 by @dependabot[bot] in #5123
  • ✨ (go/v4) Upgrade to use golang-lint v2.5.0 by @camilamacedo86 in #5128
  • 🌱 Bump golang.org/x/text from 0.29.0 to 0.30.0 by @dependabot[bot] in #5122
  • 🌱 Bump golang.org/x/tools from 0.37.0 to 0.38.0 by @dependabot[bot] in #5125
  • ✨ Upgrade controller-runtime from v0.22.1 to v0.22.3 by @camilamacedo86 in #5129
  • 🌱 Bump github/codeql-action from 3 to 4 by @dependabot[bot] in #5120
  • 🌱 Bump actions/setup-node from 5 to 6 by @dependabot[bot] in #5131
  • 🌱 Upgrade golang-ci lint in the github actions by @camilamacedo86 in #5132
  • ✨ (go/v4) Upgrade golang version from go 1.24 to 1.25 by @camilamacedo86 in #5130
  • ✨ (go/v4): Upgrade for e2e tests the cert-manager version used from v1.18.2 to v1.19.0 by @camilamacedo86 in #5133
  • ✨ (go/v4): Upgrade cert-manager version used on the tests from v1.19.0 to v1.19.1 by @camilamacedo86 in #5136
  • 🐛 (go/v4): Fix an issue where project scaffolding failed when directories contained spaces by quoting Makefile variables by @mayuka-c in #5139
  • ✨ (go/v4): Allow ENV TEST version to be derived from replaces by @Shubhamag12 in #5096
  • ✨ (go/v4) Enable multi-architecture support in GitHub Actions and devcontainer scripts by dynamically detecting GOARCH by @gjrtimmer in #5142
  • 🌱 Bump actions/upload-artifact from 4 to 5 by @dependabot[bot] in #5145
  • 🌱 Bump github.com/onsi/ginkgo/v2 from 2.26.0 to 2.27.1 by @dependabot[bot] in #5140
  • 🌱 Bump github.com/onsi/ginkgo/v2 from 2.27.1 to 2.27.2 by @dependabot[bot] in #5150
  • 🐛 (helm/v2-alpha): Fixed an issue where the ServiceMonitor resource name did not include the default prefix applied by Kustomize. by @liam-mackie in #5119
  • 🐛 (helm/v2alpha): allow manager values to be customized properly by @camilamacedo86 in #5147
  • 📖 Update Readme - Remove Warning Note by @camilamacedo86 in #5153
  • 🌱 Add k8s 1.34 version set for tooling - prow tests by @camilamacedo86 in #5146
  • 🌱 Add Agents.MD with an alias for .github/.instructions.md to support AI tools by @camilamacedo86 in #5152
  • 📖 (multiversion-tutorial): Show v2 webhook implementation alongside v1 by @Copilot in #5159
  • 🌱 Update test environment to Kubernetes 1.34 to match scaffolded projects by @Copilot in #5157
  • ✨ (External Plugins API) Add PluginChain field to external plugin API by @Copilot in #5161
  • 📖 add e2e test to validate webhook conversion between versions in the tutorials by @wazery in #5069
  • 🌱 fix lint issue for expected dupl interface implementation by @camilamacedo86 in #5167
  • 📖 (docs): Update CONTRIBUTING.md guidance to remove gost emoji since it is never used by @camilamacedo86 in #5168
  • 🌱 Increase unit test coverage by @camilamacedo86 in #5169
  • 🐛 (helm/v2-alpha): ensure that certmanager option is exposed always by @camilamacedo86 in #5173
  • 🐛 (helm/v2alpha) Use manager instead of controllerManager to expose manager values by @camilamacedo86 in #5174
  • ✨ (feat): Expose ProjectConfig to external plugins by @camilamacedo86 in #5165
  • ✨ (helm/v2-alpha): Make webhook and metrics ports configurable by @camilamacedo86 in #5172
  • 🌱 (CLI) Add unit tests for cli alpha generate.go by @mayuka-c in #5074
  • 🌱 Fix make test-e2e-local to run on mac and linux by @camilamacedo86 in #5170
  • 🐛 (fix): Fix plugin configuration tracking when wrapped in bundles with custom domains by @camilamacedo86 in #5166
  • ✨ Upgrade controller-runtime from 0.22.3 to 0.22.4 by @camilamacedo86 in #5178
  • ✨ Add support for custom webhook paths by @camilamacedo86 in #5171
  • 📖 (book): Update note about Windows support by @vitorfloriano in #5179
  • 📖 : fix(docs): display copy button on codeblocks by @vitorfloriano in #5184
  • 🌱 chore: Move to maintained yaml library by @mrueg in #5182
  • 🌱 (ci): Fix testdata generation by @camilamacedo86 in #5185
  • 📖 (docs/ui): better format for warnings by @vitorfloriano in #5188
  • 🌱 Bump golangci/golangci-lint-action from 8 to 9 by @dependabot[bot] in #5189
  • 📖 Improve AGENTS.md by @camilamacedo86 in #5195
  • ✨ (go/v4): Allow informing Go module for external APIs when pinning a downgraded version is required by @camilamacedo86 in #5194
  • 🐛 Downgrade Go to 1.24.6 and standardize version across codebase by @camilamacedo86 in #5186
  • 🌱 Bump golang.org/x/mod from 0.29.0 to 0.30.0 by @dependabot[bot] in #5191
  • 🌱 (alpha): Remove redundant alpha generate e2e tests by @camilamacedo86 in #5196
  • 🌱 Bump golang.org/x/text from 0.30.0 to 0.31.0 by @dependabot[bot] in #5192
  • 🌱 Bump helm.sh/helm/v3 from 3.19.0 to 3.19.1 by @dependabot[bot] in #5193
  • 🌱 (grafana): Relocate scaffold tests to grafana directory and increase test coverage by @camilamacedo86 in #5197
  • 🌱 Bump k8s.io/apimachinery from 0.34.1 to 0.34.2 by @dependabot[bot] in #5198
  • 🌱 Fix test-coverage to include only directories where are covered by @camilamacedo86 in #5199
  • 🐛 (go/v4): Simplify init directory validation to only block kubebuilder files by @camilamacedo86 in #5154
  • 🌱 Reorganise tests: separate unit and integration tests with build tags by @camilamacedo86 in #5200
  • 🌱 Bump golang.org/x/tools from 0.38.0 to 0.39.0 by @dependabot[bot] in #5201
  • 📖 Improve docs layout and collapse code from tutorials by @camilamacedo86 in #5202
  • 📖 (doc): Cleanup by removing TODO sections by @camilamacedo86 in #5203

New Contributors

Full Changelog: v4.9.0...v4.10.0

Don't miss a new kubebuilder release

NewReleases is sending notifications on new releases.