🚀 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
cliVersionin the PROJECT file, so updates that preserve your custom code just work going forward.
⚠️ Deprecation Notice: helm/v1-alpha → helm/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 TESTversion to be derived fromreplaces. #5096 - (go/v4): Add support for custom webhook paths. #5171
- (go/v4): Add
*.kubeconfigto.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-alphaplugin. (More info) (#5058, #5172, #5119, #5147, #5173, #5174) - (External Plugins API): Add
PluginChainfield to the external plugin API. #5161 - (External Plugins API): Expose
ProjectConfigto external plugins. #5165
✨ Upgrades
- (go/v4): Upgrade
golangci-lintfromv2.4.0→v2.5.0. #5128 - (go/v4): Upgrade
controller-runtimefromv0.22.1→v0.22.4. (#5129, #5178) - (go/v4): Upgrade
cert-managerused in e2e tests fromv1.18.2→v1.19.1. (#5133, #5136) - (go/v4): Upgrade
Golangversion from1.24→1.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 TESTversion to be derived fromreplacesby @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
ServiceMonitorresource 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
- @abenn135 made their first contribution in #5103
- @gjrtimmer made their first contribution in #5142
- @liam-mackie made their first contribution in #5119
- @mrueg made their first contribution in #5182
Full Changelog: v4.9.0...v4.10.0