Releases: kubernetes-sigs/kubebuilder
Release list
v4.15.0
🚀 Keep Your Scaffold Updated
The migration guide covers upgrading from any supported version to the latest release.
For the smoothest upgrade path, use the AutoUpdate Plugin or run kubebuilder alpha update. Both use the same update logic to keep your project scaffold aligned with the latest Kubebuilder changes.
Other upgrade options are mainly intended for older projects that do not yet have cliVersion in their PROJECT file. Use them as a one-time step to reach a supported version, then continue using these update workflows.
⚠️ Breaking Changes
Only for users of the Helm Plugin (helm/v2-alpha)
- Standardize feature toggle naming from
enabletoenabled(#5736)
Action Required
Run:
kubebuilder edit --plugins=helm/v2-alpha --forceThen ensure that all occurrences of enable are renamed to enabled in:
<path>/chart/values.yaml
✨ Upgrades
Adds support for Kubernetes 1.36 and Go 1.26.
- (go/v4) Upgrade Go from
1.25.7to1.26.0(#5670) - (go/v4) Upgrade controller-runtime from
v0.23.3tov0.24.1and Kubernetes dependencies to support Kubernetes1.36(#5671, #5710) - (go/v4) Upgrade controller-tools from
v0.20.1tov0.21.0(#5683) - (go/v4) Upgrade golangci-lint from
v2.11.4tov2.12.2(#5711)
✨ New Features
- (go/v4) Pin ENVTEST version in generated projects (supported starting with controller-runtime
v0.24.0) (#5684) - (helm/v2-alpha) Generate optional NetworkPolicy resources by default when none are defined in the provided Kustomize configuration (#5708)
- (go/v4) Add a
depguardrule to deny usage of the Gosortpackage (#5755)
🐛 Bug Fixes
- (helm/v2-alpha) Fix indentation of conditional volume mounts in generated manifests (#5678)
- (API) Fix file descriptor leak caused by deferred file closing inside loops in the external plugin handler (#5688)
- (API) Preserve external plugin flag values containing double hyphens (
--) (#5716) - (CLI) Fix panic caused by an unchecked type assertion in deprecation warning handling (#5689)
- (CLI) Fix
CloseFileErrorwrappingnilinstead of the actual close error (#5681) - (CLI) Fix redundant guard and swallowed checkout error in
alpha update push(#5694) - (CLI) Add context timeout to HTTP calls used by
alpha update(#5695) - (CLI) Correct capture group handling and improve error messages (#5714)
- (grafana/v1-alpha) Fix file handle leak when configuration loading fails (#5682)
- (helm/v2-alpha) Fix
edithanging on malformeddist/install.yamlfiles (#5753)
What's Changed
- 🌱 chore: Pin setup-envtest to commit hash by @vitorfloriano in #5666
- 🌱 Bump k8s.io/apimachinery from 0.35.4 to 0.36.0 by @dependabot[bot] in #5656
- ✨ chore(go/v4): Upgrade golang version from 1.25.7 to 1.26.0 by @camilamacedo86 in #5670
- ✨ (go/v4): Upgrade controller-runtime from v0.23.3 to v0.24.0 and k8s dependencies to support k8s 1.26 by @camilamacedo86 in #5671
- 📖 (External Plugin Sample) Update k8s.io/apimachinery from v0.35.4 to v0.36.0 by @camilamacedo86 in #5673
- 🌱 Bump github/codeql-action from 4.35.2 to 4.35.3 by @dependabot[bot] in #5675
- 🌱 Bump github/codeql-action from 4.35.3 to 4.35.4 by @dependabot[bot] in #5680
- 🌱 Bump golang.org/x/text from 0.36.0 to 0.37.0 by @dependabot[bot] in #5687
- ✨ (go/v4) Upgrade controller-tools from v0.20.1 to v0.21.0 by @camilamacedo86 in #5683
- 🌱 Bump golang.org/x/tools from 0.44.0 to 0.45.0 by @dependabot[bot] in #5686
- 🐛 fix(helm/v2-alpha): correct indentation of conditional volume mounts by @felix-kaestner in #5678
- 🐛 (API): Fix file descriptor leak from defer inside loop in external plugin handler by @SebTardif in #5688
- 🐛 (CLI): Fix panic from unchecked type assertion in printDeprecationWarnings by @SebTardif in #5689
- 🐛 (CLI): Fix CloseFileError wrapping nil instead of actual close error by @SebTardif in #5681
- ✨ (go/v4): Pin the ENVTEST version in the scaffold, now supported starting with controller-runtime release v0.24.0 by @v47 in #5684
- 🐛 (grafana/v1alpha): Fix file handle leak on config read error by @SebTardif in #5682
- 🌱 Bump helm.sh/helm/v3 from 3.20.2 to 3.21.0 by @dependabot[bot] in #5696
- 🌱 Bump k8s.io/apimachinery from 0.36.0 to 0.36.1 by @dependabot[bot] in #5691
- 🌱 Bump zizmorcore/zizmor-action from 0.5.3 to 0.5.4 by @dependabot[bot] in #5698
- 🌱 Bump github/codeql-action from 4.35.4 to 4.35.5 by @dependabot[bot] in #5697
- 🐛 (CLI): Fix redundant guard and swallowed checkout error in alpha update push by @SebTardif in #5694
- 🐛 (CLI): Add context timeout to HTTP calls in alpha update by @SebTardif in #5695
- 🌱 Bump zizmorcore/zizmor-action from 0.5.4 to 0.5.6 by @dependabot[bot] in #5699
- 🌱 Bump goreleaser/goreleaser-action from 7.2.1 to 7.2.2 by @dependabot[bot] in #5700
- 🌱 Bump github.com/onsi/ginkgo/v2 from 2.28.3 to 2.29.0 by @dependabot[bot] in #5702
- 🌱 Bump github.com/onsi/gomega from 1.40.0 to 1.41.0 by @dependabot[bot] in #5701
- 📖 Bump github.com/onsi/ginkgo/v2 from 2.28.3 to 2.29.0 in /docs/book/src/simple-external-plugin-tutorial/testdata/sampleexternalplugin/v1 by @dependabot[bot] in #5703
- 📖 Bump github.com/onsi/gomega from 1.40.0 to 1.41.0 in /docs/book/src/simple-external-plugin-tutorial/testdata/sampleexternalplugin/v1 by @dependabot[bot] in #5704
- ✨ (go/v4) Upgrade controller-runtime from v0.24.0 to v0.24.1 by @camilamacedo86 in #5710
- 🌱 Bump golangci/golangci-lint-action from 9.2.0 to 9.2.1 by @dependabot[bot] in #5713
- 🌱 Bump github/codeql-action from 4.35.5 to 4.36.0 by @dependabot[bot] in #5712
- ✨ (helm/v2-alpha): Helm charts now include optional NetworkPolicy resources by default when none are defined in the informed Kustomize file. by @mattsu2020 in #5708
- 🌱 (CLI): Add support for k8s 1.36 by @camilamacedo86 in #5674
- 🐛 (CLI) fix: correct wrong capture group and fix typos in error messages by @immanuwell in #5714
- 📖 (go/v4): Enhance create webhook command help by @cmallikarjunah in #5720
- 🌱 Bump actions/checkout from 6.0.2 to 6.0.3 by @dependabot[bot] in #5721
- 🌱 Bump github/codeql-action from 4.36.0 to 4.36.1 by @dependabot[bot] in #5722
- 🌱 Bump devcontainers/ci from 0.3.1900000449 to 0.3.1900000450 by @dependabot[bot] in #5723
- 🌱 (makefile): Add missing make lint command without fix flag by @camilamacedo86 in #5724
- 📖 docs(helm/v2-alpha): list specific NetworkPolicy fallback files preserved without --force by @camilamacedo86 in #5727
- 🌱 Bump github/codeql-action from 4.36.1 to 4.36.2 by @dependabot[bot] in #5728
- ✨(go/v4) Upgrade golang-ci from v2.11.4 to v2.12.2 by @camilamacedo86 in #5711
- 🌱 Bump golang.org/x/text from 0.37.0 to 0.38.0 by @dependabot[bot] in #5729
- 🐛 (API) Preserve external plugin flag values containing double hyphens by @immanuwell in #5716
- 🌱 Bump golang.org/x/mod from 0.36.0 to 0.37.0 by @dependabot[bot] in #5730
- 📖 docs(externalPlugin) Update dependencies for external plugin sample by @camilamacedo86 in #5734
- 🌱 chore(externalPlugins): Update go deps by @camilamacedo86 in #5739
- 🌱 Rename depguard sort rule by @Yurii201811 in #5744
- 🌱 fix(CLI): Lint issues faced with goconts checks and ensure better coverage to avoid reg...
v4.14.0
🚀 Keep Your Scaffold Updated
The migration guide covers upgrading from any version to the latest, including AI-assisted helpers/commands for legacy scaffolds that may require manual steps. For the smoothest path, enable the AutoUpdate Plugin (uses GitHub Actions)) or run kubebuilder alpha update locally—both use the same update logic. The other options are primarily for older projects missing cliVersion in the PROJECT file as a one-time step to reach a supported version; after that, you can rely on these workflows for ongoing updates.
⚠️ Breaking changes
Only for users of the Helm Plugin (helm/v2-alpha)
To stabilise helm/v2-alpha, RBAC was reworked (#5579), renaming rbacHelpers to rbac.helpers and introducing namespace/multi-namespace support with dynamic roles.
Required: run kubebuilder edit --plugins=helm/v2-alpha --force to update your Helm config.
Alternative: manually update values.yaml after running the command without --force (More info)
✨ Upgrades
- (go/v4): Upgrade certmanager from
1.20.0to1.20.1(#5563) - (go/v4): Upgrade golang version from
1.25.3to1.25.7(#5615) - (go/v4): Upgrade cert-manager version from
1.20.1to1.20.2used in tests (#5626) - (go/v4): Upgrade golangci-lint to
v2.11.4(#5653)
✨ New Features
- (helm/v2): Add support for extra volumes, Deployment Strategy, Priority Class, Topology Constraints, skip manager install, manager labels/annotations, default image tag from
Chart.appVersion, expose service account in values, and enhance RBAC with namespace-scoped deployments, multi-namespace configuration, and dynamic Role/ClusterRole rendering (renamerbacHelperstorbac.helpers) (#5496, #5577, #5581, #5580, #5607, #5603, #5579 - (go/v4): Add support for multiple controllers per GVK (#5539)
- (go/v4): Add
YEARplaceholder in boilerplate for copyright (#5559) - (go/v4): Add
--license-fileflag and preserve boilerplate in alpha generate (#5456) - (go/v4): Enhance test output readability by converting inline comments to
By()statements in e2e tests (#5611) - (CLI): Mark resource flags as required to improve completion (#5647)
🐛 Bug Fixes
- (go/v4): Pin GitHub Actions to commit SHA hashes to improve security (#5555)
- (go/v4): Disable kubectl kuberc in the e2e tests by default (#5558)
- (go/v4, kustomize/v2): Add health probe port to manager deployment (#5608)
- (go/v4, autoupdate/v1-alpha, helm/v2-alpha): Security hardening for GitHub Actions workflows (#5578)
- (helm/v2-alpha): Fix duplicate tolerations block in generated manager template (#5572)
- (helm/v2-alpha): Fix missing regular expression anchor (#5582)
- (helm/v2-alpha): Use dot instead of full path inside
imagePullSecretsblock (#5592) - (helm/v2-alpha): Align test-chart workflow image with docker-build and kind load (#5586)
- (helm/v2-alpha): Ignore
latesttag and use commented tag format in Helm charts (#5617) - (helm/v2-alpha): Fix
secretRefhandling (#5623) - (helm/v2-alpha): Fix duplicate ServiceMonitor and invalid
insecureSkipVerify: falsewithout certificates (#5624) - (grafana/v1-alpha): Remove
initsubcommand from Grafana plugin (#5627) - (autoupdate/v1alpha): Remove
initsubcommand from Auto Update plugin (#5633) - (deploy-image/v1-alpha): Add validation for numeric flags (#5634)
- (helm/v2-alpha): Use conditionals for optional K8s field
manager.image.pullPolicy(#5636) - (cli): Change level for plugin discovery log to debug (#5595)
🎉 Thanks to all contributors!
What's Changed ( Full Changelog )
- 🐛 fix(go/v4): bump google.golang.org/grpc to v1.79.3 to address CVE by @0x48core in #5554
- 🐛 (go/v4): Pin GitHub Actions to commit SHA hashes to improve security and align with the latest GitHub Actions security policy. For more details, see kubernetes/community#8911. by @vitorfloriano in #5555
- 🌱 infra(CI): actions/checkout version not compatible to hash by @vitorfloriano in #5560
- ✨ (helm/v2-alpha): add extra volumes support by @camilamacedo86 in #5496
- ✨ Upgrade certmanager from '1.20.0' to '1.20.1' by @camilamacedo86 in #5563
- 🌱 infra: Add Pinact GitHub Actions workflow by @vitorfloriano in #5556
- ✨ (go/v4): Add support for multiple controllers per GVK by @camilamacedo86 in #5539
- 📖 docs(helm/v1alpha): Add deprecation notice by @vitorfloriano in #5561
- ✨ (go/v4): add support YEAR placeholder in boilerplate for copyright by @felix-kaestner in #5559
- 🌱 infra(CI): Add gha linter (zizmor) and fix workflows security issues by @vitorfloriano in #5565
- 📖 docs: Fix accessibility for assistive tools in documentation notes by @camilamacedo86 in #5564
- 🌱 Bump actions/setup-go from 6.3.0 to 6.4.0 by @dependabot[bot] in #5567
- 🌱 Bump shogo82148/actions-goveralls from 1.10.0 to 1.11.0 by @dependabot[bot] in #5568
- 🌱 infra(CI): Add zero-trust top-level permissions in workflows by @vitorfloriano in #5570
- 🌱 infra(CD): cleanup stale
.firebasercfile by @vitorfloriano in #5571 - 🐛 fix(plugins): Security hardening for GitHub Actions workflows by @vitorfloriano in #5578
- 📖 docs: Add the Kubebuilder logo to README by @vitorfloriano in #5575
- 📖 docs: Cleanup stale README inside the book by @vitorfloriano in #5576
- 🐛fix(helm/v2alpha): fix duplicate tolerations block in generated manager template by @v47 in #5572
- 🐛 fix(helm/v2-alpha): Remediation for missing regular expression anchor by @vitorfloriano in #5582
- 🐛 fix(go/v4): disable kubectl kuberc in the e2e tests by default by @sanadhis in #5558
- 🌱 infra(CI): Pin Syft download to release commit hash by @vitorfloriano in #5583
- ✨ (go/v4): add --license-file flag and preserve boilerplate in alpha generate by @camilamacedo86 in #5456
- ✨ (helm/v2-alpha): Add support for Deployment Strategy, Priority Class, and Topology Constraints by @camilamacedo86 in #5577
- ✨ (helm/v2-alpha): add option to skip manager install by @camilamacedo86 in #5581
- 🌱 refactor: consolidate verification targets and GitHub Actions workflows by @camilamacedo86 in #5585
- 📖 fix(docs): Update broken badge on README by @vitorfloriano in #5590
- ✨ (helm/v2-alpha): add manager.labels and manager.annotations by @camilamacedo86 in #5580
- 📖 Fix broken link to "Using External Resources" from "Sub-Module Layouts" page by @iypetrov in #5594
- 🐛 use dot instead of full path inside imagePullSecrets block by @v47 in #5592
- 🌱 Bump golang.org/x/mod from 0.34.0 to 0.35.0 by @dependabot[bot] in #5600
- 🌱 Bump helm.sh/helm/v3 from 3.20.1 to 3.20.2 by @dependabot[bot] in #5601
- 🌱 Bump golang.org/x/text from 0.35.0 to 0.36.0 by @dependabot[bot] in #5599
- 🌱 Bump golang.org/x/tools from 0.43.0 to 0.44.0 by @dependabot[bot] in #5598
- 🐛 (helm/v2-alpha): Align test-chart workflow image with docker-build and kind load#5574 by @sivaramsingana in #5586
⚠️ (helm/v2-plugin): enhance RBAC support with namespace-scoped deployments, multi-namespace configuration, and dynamic Role/ClusterRole rendering (renamerbacHelperstorbac.helpers) by @camilamacedo86 in #5579- 🌱 fix(helm/v2-alpha): standardize values.yaml comment style (follow-up of changes not released yet) by @camilamacedo86 in #5604
- 📖 (docs): Update sample external plugin go mod by @camilamacedo86 in #5605
- 🌱 Bump actions/upload-artifact from 7.0.0 to 7.0.1 by @dependabot[bot] in #5606
- 📖 fix(docs): changed comment wording by @kylittle in #5602
- 🐛 fix(CLI): Change level for plugin discovery log to debug by @vitorfloriano in https://github.c...
v4.13.1
🚀 Keep Your Scaffold Updated
The migration guide covers upgrading from any version to the latest, including AI-assisted helpers/commands for legacy scaffolds that may require manual steps. For the smoothest path, enable the AutoUpdate Plugin (uses GitHub Actions) or run kubebuilder alpha update locally—both use the same update logic. The other options are primarily for older projects missing cliVersion in the PROJECT file as a one-time step to reach a supported version; after that, you can rely on these workflows for ongoing updates.
✨ Upgrades
- (go/v4): Upgrade cert-manager from
v1.19.4tov1.20.0(#5531) - (go/v4): Upgrade controller-runtime from
v0.23.1tov0.23.3(#5532)
🐛 Bug Fixes
- (API): Move test/e2e/helpers to test/e2e/internal (#5516
- (API): Move logging and alpha packages to internal (#5514)
- (helm/v2-alpha): Fix double-escaping of YAML-encoded quotes in template expressions (#5529)
- (go/v4): Add SchemeGroupVersion for applyconfiguration compatibility (#5491)
- (config/v3): Ignore unknown fields in the PROJECT file for forward compatibility (#5540)
- (alpha/generate): Skip Go version check by default (#5547)
What's Changed
- 🐛 fix(API): Move test/e2e/helpers to test/e2e/internal by @vitorfloriano in #5516
- 🐛 fix(API): Move logging and alpha packages to internal by @vitorfloriano in #5514
- 📖 docs: make ToC highlight current page by @vitorfloriano in #5523
- 🌱: Bump k8s.io/apimachinery from 0.35.1 to 0.35.2 by @dependabot[bot] in #5521
- 🐛 (helm/v2-alpha): fix double-escaping of YAML-encoded quotes in template expressions by @v47 in #5529
- 🌱 fix: update stale import paths in alpha update integration tests by @camilamacedo86 in #5530
- ✨ (go/v4): Upgrade certmanager from
1.19.4to1.20.0by @camilamacedo86 in #5531 - ✨ (go/v4): upgrade controller-runtime from
0.23.1to0.23.3by @camilamacedo86 in #5532 - 🐛 (go/v4): add SchemeGroupVersion for applyconfiguration compatibility by @camilamacedo86 in #5491
- 🌱 ci(alpha update): increase the coverage of the alpha update command by @camilamacedo86 in #5503
- 🌱: Bump golang.org/x/mod from 0.33.0 to 0.34.0 by @dependabot[bot] in #5535
- 🌱 Bump golang.org/x/text from 0.34.0 to 0.35.0 by @dependabot[bot] in #5534
- 🌱 Bump golang.org/x/tools from 0.42.0 to 0.43.0 by @dependabot[bot] in #5537
- 🌱 Bump helm.sh/helm/v3 from 3.20.0 to 3.20.1 by @dependabot[bot] in #5538
- 🌱 Update deps for external plugin sample by @camilamacedo86 in #5541
- 🐛 fix(config/v3): Unknown fields in the PROJECT file should be ignored for forward compatibility by @camilamacedo86 in #5540
- 🌱 Bump k8s.io/apimachinery from 0.35.2 to 0.35.3 by @dependabot[bot] in #5545
- 🐛 (alpha/generate): Skip go version check by default by @prash2512 in #5547
New Contributors
- @prash2512 made their first contribution in #5547
Full Changelog: v4.13.0...v4.13.1
v4.13.0
🚀 Keep Your Scaffold Updated
The migration guide covers upgrading from any version to the latest, including AI-assisted helpers/commands for legacy scaffolds that may require manual steps. For the smoothest path, enable the AutoUpdate Plugin (uses GitHub Actions) or run kubebuilder alpha update locally—both use the same update logic. The other options are primarily for older projects missing cliVersion in the PROJECT file as a one-time step to reach a supported version; after that, you can rely on these workflows for ongoing updates.
✨ Upgrades
- (go/v4): Upgrade cert-manager used in the e2e tests from
v1.19.3tov1.19.4(#5509)
✨ New Features
- (helm/v2-alpha): Add
manager.envOverridesto support overriding manager environment variables via Helm CLI (e.g.--set manager.envOverrides.LOG_LEVEL=debug) (#5495)
🐛 Bug Fixes
- (go/v4): Fix lint execution to ensure the project’s configured lint rules are properly applied (#5493)
- (helm/v2-alpha): Fix
manager.replicasso values fromvalues.yamlare correctly applied in the chart template (#5494) - (helm/v2-alpha): Ensure generated Helm Chart files use consistent 2-space indentation (#5490)
- (CLI/alpha update): Fix panic when multiple plugins define the same CLI flag (e.g.
editwith go/v4 + helm/v2-alpha) (#5506) - (go/v4, helm/v2-alpha): Standardize generated file and directory permissions (files:
0644, directories:0755) (#5508)
🎉 Thanks to all contributors!
What's Changed ( Full Changelog )
- 🐛 (go/v4): CI lint by using make lint instead of golangci-lint-action so the custom binary (with logcheck plugin) is built and used. by @camilamacedo86 in #5493
- ✨ (helm/v2-alpha): Add manager.envOverrides for CLI env overrides by @camilamacedo86 in #5495
- 🐛(helm/v2-alpha): use manager.replicas from values in chart template by @camilamacedo86 in #5494
- 🌱 Bump goreleaser/goreleaser-action from 6 to 7 by @dependabot[bot] in #5499
- 🐛 (helm/v2-alpha): use sigs.k8s.io/yaml for 2-space YAML indentation in generated value files by @v47 in #5490
- 🐛 fix: resolve panic when multiple plugins define the same flag (e.g. edit with go/v4 + helm) by @camilamacedo86 in #5506
- 🌱 (infra/demos): Remove asciicinema demos by @vitorfloriano in #5281
- ✨ chore(go/v4): Upgrade cert-manager from 1.19.3 to 1.19.4 by @camilamacedo86 in #5509
- 🌱 cleanup(docs): remove script no longer used to build samples under books by @camilamacedo86 in #5511
- 🌱 chore: add yamllint config for 2-space indentation and Kubernetes YAML best practices by @camilamacedo86 in #5507
- 🌱 infra: Remove pkg/internal/validation by @vitorfloriano in #5512
- 🌱 Bump actions/upload-artifact from 6.0.0 to 7.0.0 by @dependabot[bot] in #5515
- 🐛 fix(go/v4,helm/v2-alpha): use 0644/0755 for generated files by @camilamacedo86 in #5508
New Contributors
Full Changelog: v4.12.0...v4.13.0
v4.12.0
🚀 Keep Your Scaffold Updated
The migration guide covers upgrading from any version to the latest, including AI-assisted helpers/commands for legacy scaffolds that may require manual steps. For the smoothest path, enable the AutoUpdate Plugin (uses GitHub Actions) or run kubebuilder alpha update locally—both use the same update logic. The other options are primarily for older projects missing cliVersion in the PROJECT file as a one-time step to reach a supported version; after that, you can rely on these workflows for ongoing updates.
✨ Upgrades
- (go/v4): upgrade golangci-lint from
v2.7.2tov2.8.1. (#5403, #5481) - (go/v4): Upgrade certmanager from
v1.19.2tov1.19.3. (#5431) - (go/v4): Upgrade controller-tools from
v0.20.0tov0.20.1(#5475) - (kustomize/v2): Upgrade kustomize from
5.7.1to5.8.1. (#5412, #5481)
✨ New features
- (helm/v2-alpha): Polish
Chart.yamlmetadata. (#5414) - (helm/v2-alpha): Add
Notes.txt. (#5392) - (helm/v2-alpha): Add Makefile targets for Helm Development. (#5442,#5468)
- (go/v4): Add autocomplete support in
.devcontainer/post-install.shand enhance script. (#5394, #5435) - (go/v4): Add custom k8s linter for logs to promote better observability. (#5396)
- (go/v4): Now, users can scaffold projects which are namespace-scoped managers by using the flag
--namespaced. The flag is valid for init and edit subcommands (#5411, #5482, #5480) - (go/v4): add
--multigroupflag to init subcommand. Now you can initialize a project with this layout (#5440) - (CLI): Add short description to tab completion in bash . (#5408)
- (alpha/update): Add the flag
--merge-messageand flag--conflict-messageto allow customise commit messages. (#5429, #5479)
🐛 Bug fixes
- (go/v4): Follow Kubernetes logging conventions. (#5406)
- (go/v4): Make e2e tests more robust to avoid flakes (#5437, #5450)
- (helm/v2-alpha): wrap webhook resources with
.Values.webhook.enableconditional. (#5413) - (helm/v2-alpha): Fix chart generation and template rendering issues. (#5422)
- (helm/v2-alpha): Support custom container names and fix templating bugs (#5463)
- (helm/v2-alpha): Fix
crd.keepto correctly add thehelm.sh/resource-policy: keepannotation to generated CRDs (#5472) - (helm/v2-alpha): remove deprecated
helm/v1-alphaplugin entry from PROJECT file whenhelm/v2-alphais used. (#5436) - (CLI): alpha generate/update now respects the custom project name. (#5426)
- (alpha/update): update commit messages with conventional commit format. (#5428)
- (CLI/API): Fix issues when the
--helpcommand was used with--pluginsand improve output to show the available help plugins per subcommand. (#5448) - (API): move hack/docs/utils to hack/docs/internal. (#5407)
🎉 Thanks to all contributors!
What's Changed ( Full Changelog )
- ✨ (go/v4): upgrade golangci-lint from v2.7.2 to v2.8.0 by @camilamacedo86 in #5403
- 📖 (docs): Clarify PR title and commit message format guidelines by @camilamacedo86 in #5393
- ✨ (go/v4): Add autocomplete support in .devcontainer/post-install.sh by @camilamacedo86 in #5394
- 🐛 fix(api): move hack/docs/utils to hack/docs/internal by @vitorfloriano in #5407
- 📖 docs(externalPluginSample): Improve external plugin sample with tests and validation by @camilamacedo86 in #5398
- ✨ feat(cli): add short description to tab completion in bash by @vitorfloriano in #5408
- 🐛 (go/v4): Follow Kubernetes logging conventions by @camilamacedo86 in #5406
- 📖 Add webhook bootstrap problem guide and warning by @camilamacedo86 in #5395
- ✨ (go/v4): Add custom k8s linter for logs to promote better observability by @camilamacedo86 in #5396
- 🌱 (agents.md): enhance the AI instructions for Kubebuilder logging by @camilamacedo86 in #5410
- ✨ (kustomize/v2): Upgrade kustomize from
5.7.1to5.8.0by @camilamacedo86 in #5412 - 🐛 (helm/v2-alpha): wrap webhook resources with .Values.webhook.enable conditional by @camilamacedo86 in #5413
- 📖 Bump github.com/onsi/ginkgo/v2 from 2.27.5 to 2.28.1 in /docs/book/src/simple-external-plugin-tutorial/testdata/sampleexternalplugin/v1 by @dependabot[bot] in #5420
- 📖 Bump github.com/onsi/gomega from 1.39.0 to 1.39.1 in /docs/book/src/simple-external-plugin-tutorial/testdata/sampleexternalplugin/v1 by @dependabot[bot] in #5418
- 🌱 Bump github.com/onsi/gomega from 1.39.0 to 1.39.1 by @dependabot[bot] in #5417
- 🌱 Bump github.com/onsi/ginkgo/v2 from 2.27.5 to 2.28.1 by @dependabot[bot] in #5419
- 📖 (docs/infra): Update mdBook version to v0.5.2 by @ottnorml in #5421
- 🐛 CLI release version): Preserve clean version tags in GoReleaser builds by @camilamacedo86 in #5424
- 🐛 (helm/v2-alpha): Fix chart generation and template rendering issues by @camilamacedo86 in #5422
- 🐛 fix(alpha): respect custom project name in generate command by @camilamacedo86 in #5426
- 🐛 (alpha/update): update commit messages with conventional commit format by @camilamacedo86 in #5428
- 🐛 fix(CLI): Fix logs to follow best practices by @camilamacedo86 in #5409
- 🌱 Fix lint issue - size of message by @camilamacedo86 in #5432
- ✨ Upgrade certmanager from v1.19.2 to v1.19.3 by @camilamacedo86 in #5431
- ✨ (alpha/update): add flags for custom commit messages by @camilamacedo86 in #5429
- 🌱 test(e2e): centralize test helpers and optimize test execution by @camilamacedo86 in #5427
- ✨ (helm/v2-alpha): polish Chart.yaml metadata by @camilamacedo86 in #5414
- ✨ (helm/v2-alpha): Add Notes.txt by @camilamacedo86 in #5392
- 🐛 (helm/v2-alpha): remove deprecated v1-alpha plugin entry from PROJECT file by @camilamacedo86 in #5436
- 🐛 fix(go/v4): Add retry to flaky metrics E2E test by @camilamacedo86 in #5437
- ✨(go/v4): enhance devcontainer post-install script by @camilamacedo86 in #5435
- 📖 : remove misleading comment from install script by @orangecms in #5439
- ✨ (go/v4): Add --namespaced flag for namespace-scoped managers by @camilamacedo86 in #5411
- 🌱 (e2e/docs): Update certmanager to v1.19.3 and prometheus to v0.85.0 by @camilamacedo86 in #5441
- 🐛 fix(CLI/API) prevent --help from being validated as plugin name by @camilamacedo86 in #5448
- 🐛 fix(go/v4): Add more checks for webhooks in e2e tests to avoid flakes by @camilamacedo86 in #5450
- 🌱 fix(e2e): consolidate test suites to reduce execution time by @camilamacedo86 in #5454
- 📖 docs: add note on limitations to CRD validation markers reference by @orangecms in #5438
- 🌱 docs/book: fix the install script by @orangecms in #5455
- ✨ (helm/v2-alpha): Add Makefile targets for Helm Development by @camilamacedo86 in #5442
- 🌱 Bump golang.org/x/tools from 0.41.0 to 0.42.0 by @dependabot[bot] in #5460
- ✨ (helm/v2-alpha): Add Helm chart tests and call in the GitHub action to validate the chart by @camilamacedo86 in #5415
- 📖 CONTRIBUTING: reference mdBook's advanced Markdown format by @orangecms in #5464
- 🐛 (helm/v2-alpha): Support custom container names and fix templating bugs by @AlirezaPourchali in #5463
- 🌱 Bump k8s.io/apimachinery from 0.35.0 to 0.35.1 by @dependabot[bot] in #5467
- ✨ (go/v4): add --multigroup flag to init command by @camilamacedo86 in #5440
- 🌱 Update external plugin sample Go deps by @camilamacedo86 in #5469
- 🌱 refactor(kustomize/v2): follow Go logging conventions for...
v4.11.1
🚀 Keep Your Scaffold Updated
The migration guide covers upgrading from any version to the latest, including AI-assisted helpers/commands for legacy scaffolds that may require manual steps. For the smoothest path, enable the AutoUpdate Plugin (uses GitHub Actions)) or run kubebuilder alpha update locally—both use the same update logic. The other options are primarily for older projects missing cliVersion in the PROJECT file as a one-time step to reach a supported version; after that, you can rely on these workflows for ongoing updates.
🐛 Bug fixes
- (go/v4): Upgrade
controller-runtimefromv0.23.0tov0.23.1. For further information, see its release notes.(#5402) - (helm/v2-alpha): Escape existing Go template syntax in generated Helm charts to prevent rendering conflicts. (#5388)
- (helm/v2-alpha): Prevent CRs (Custom Resources) resources from being added to the
extrasdirectory. (#5389) - (CLI): Insert build information into Go tools installation methods used by the CLI version command. (#5303)
- (CLI): Format the output of the
versionsubcommand for improved readability and consistency. (#5236) - (API): Move the
cmdpackage underinternalto improve encapsulation and API boundaries. (#5400)
Note: If you did not upgrade your project to v4.11.0, please make sure to review its release notes, as they contain important major changes that also apply to this release.
🎉 Thanks to all contributors!
What's Changed (Full Changelog)
- 🌱 Bump helm.sh/helm/v3 from 3.19.5 to 3.20.0 by @dependabot[bot] in #5383
- 📖 Bump sigs.k8s.io/kubebuilder/v4 from 4.10.1 to 4.11.0 in /docs/book/src/simple-external-plugin-tutorial/testdata/sampleexternalplugin/v1 by @dependabot[bot] in #5384
- 🌱 Bump actions/checkout from 6.0.1 to 6.0.2 by @dependabot[bot] in #5385
- 🐛 (helm/v2-alpha): Escape existing Go template syntax in generated Helm charts by @camilamacedo86 in #5388
- 🐛 fix(cli/version): Insert build info in go tools installation methods by @vitorfloriano in #5303
- 🌱 fix(Makefile): Remove update-k8s-version since it is no longer required by @camilamacedo86 in #5397
- 🐛 (helm/v2-alpha): Prevent Custom Resource instances from being added to extras directory by @camilamacedo86 in #5389
- 📖 Refactor sampleexternalplugin to be a Valid Reference Implementation by @nerdeveloper in #5116
- 🐛 fix(cli): format version subcommand output by @vitorfloriano in #5236
- 🐛 fix(api): move package cmd to internal by @vitorfloriano in #5400
- ✨ (go/v4): Upgrade controller-runtime from
v0.23.0tov0.23.1by @camilamacedo86 in #5402
Full Changelog: v4.11.0...v4.11.1
v4.11.0
🚀 Keep Your Scaffold Updated
🎉 Our migration guide was fully updated to help you upgrade from any version to the latest. It also now includes AI migration helpers/commands to guide upgrades for old scaffolds where manual steps are required. See the migrations guidance.
Automate updates with
kubebuilder edit --plugins="autoupdate.kubebuilder.io/v1-alpha"or run them manually withkubebuilder alpha update. If yourPROJECTfile does not includecliVersion, you may need a one-time upgrade, andkubebuilder alpha generatecan fully re-scaffold the project in one step. After that, updates work seamlessly. (More info)
⚠️ Breaking changes
controller-runtime v0.23.0 upgrade (v0.22.4 → v0.23.0)
This release updates Kubebuilder scaffolding to match controller-runtime v0.23.0. This version includes breaking changes that impact generated projects:
- Type-safe webhook builder API — webhooks now use generics for stronger type safety
- New Events API — migration from
tools/recordtotools/events
- For manual upgrade steps for older projects, see: #5378
- For the full upstream change list, see controller-runtime v0.23.0 release notes: https://github.com/kubernetes-sigs/controller-runtime/releases/tag/v0.23.0
If you use the Helm plugin to distribute your project
This release includes major Helm plugin changes (community-raised fixes and improvements have been addressed). Please update your project:
-
If you use helm/v1-alpha: upgrade to helm/v2-alpha. Using kubebuilder alpha generate or kubebuilder alpha update will re-scaffold your project and auto-migrate Helm v1 → v2.
-
If you use helm/v2-alpha and you update manually (not via kubebuilder alpha generate / kubebuilder alpha update, or neither has the AutoUpdate Plugin configured), then re-generate the chart with all fixes:
kubebuilder edit --plugins=helm/v2-alpha --forceIf you have customisations, back up your current Helm chart first so you can re-apply them on top of the latest version.
Tip: Check the PROJECT file to see which plugin/version your project is using.
✨ New features
- (helm/v2-alpha): Add tolerations, nodeSelector, and affinity support. (#5247)
- (go/v4): Improve devcontainer for Codespaces compatibility. (#5295)
- (go/v4): Add
AGENTS.mdto generated projects. (#5273, #5322, #5327) - (alpha): Auto-migrate
helm/v1-alphaprojects tohelm/v2-alphaduringgenerate. (#5349) - (helm/v2-alpha): Improve
_helpers.tplreadability. (#5359) - (helm/v2-alpha): Standardise generated
values.yamlcomment conventions (single#vs##). (#5357) - (helm/v2-alpha): Add standard Helm labels to generated resources. (#5340)
- (helm/v2-alpha): Add custom resources to
templates/extras. (#5339) - (helm/v2-alpha): Add support for parsing
imagePullSecretsand including them in the generated chart. (#5242)
✨ Upgrades
- (go/v4): Upgrade controller-runtime from
v0.22.4tov0.23.0. (#5378) - (go/v4): Upgrade golangci-lint from
v2.5.0→v2.7.2. (#5221, #5258) - (go/v4): Upgrade Go version from
1.24→1.25. (#5285) - (go/v4): Upgrade controller-gen from
v0.19.0→v0.20.0. (#5284) - (go/v4): Upgrade cert-manager used by e2e test utilities from
v1.19.1→v1.19.2. (#5293)
🐛 Bug fixes
- (go/v4): Remove redundant
config/webhook/kustomizeconfig.yamlandconfig/crd/kustomizeconfig.yaml(Kustomizev3.5.4+has built-in support), fixing namespace transformation issues when using projects as bases/overlays. (#5245, #5243) - (alpha update): Fix
--from-version“Invalid SemVer” error. (#5309) - (go/v4): Fix e2e suite race condition that could inadvertently delete cert-manager from environments. (#5329)
- (go/v4): Re-add cert-manager logs to e2e runs. (#5338)
- (autoupdate/v1-alpha): Make GitHub Models opt-in to prevent 403 errors. (#5333)
- (CLI): Fix error unwrapping in
updateFileModelwhen files are missing. (#5345) - (go/v4): Support incremental webhook additions without overwriting custom code. (#5353)
- (helm/v2-alpha): Add
nameOverride/fullnameOverridesupport and fix cert-manager templating. (#5294) - (helm/v2-alpha): Fix
--forcebehaviour to overwrite all files exceptChart.yaml. (#5361) - (helm/v2-alpha): Fix cross-namespace RBAC file naming and namespace handling. (#5360)
🎉 Thanks to all contributors!
What's Changed ( Full Changelog )
- 🌱 Upgrade github.com/joelanford/go-apidiff from
v0.6.1tov0.8.3by @camilamacedo86 in #5222 - ✨ (go/v4): Upgrade golangci-lint from
v2.5.0tov2.6.0by @camilamacedo86 in #5221 - 🌱 (ci): Config action to test release only when we push against master branch by @camilamacedo86 in #5223
- 📖 (doc): Move section Versions Compatibility and Supportability for references by @camilamacedo86 in #5226
- 📖 (doc): Improve note for deploy image plugin in quick start by @camilamacedo86 in #5225
- 📖 (doc): Update note about The Bootstrapping Problem by @camilamacedo86 in #5228
- 📖 (docs): Remove epilog since no info has been added on it by @camilamacedo86 in #5231
- 📖 Update badge for latest release in README.md by @camilamacedo86 in #5234
- 📖 Bump sigs.k8s.io/kubebuilder/v4 from 4.9.0 to 4.10.1 in /docs/book/src/simple-external-plugin-tutorial/testdata/sampleexternalplugin/v1 by @dependabot[bot] in #5235
- 📖 (doc): Improve note about other examples for the tests by @camilamacedo86 in #5230
- 📖 (doc): Improve note in the quick start to use autoupdate by @camilamacedo86 in #5224
- 📖 Migrate to mdBook v0.5.0 by @vitorfloriano in #5207
- 🐛 Removed
config/webhook/kustomizeconfig.yamlandconfig/crd/kustomizeconfig.yaml- these are redundant since Kustomizev3.5.4+has built-in support. This also fixes namespace transformation bugs when using projects as Kustomize bases/overlays. by @mdbooth in #5245 - 🌱 Add vitorfloriano as reviewer by @vitorfloriano in #5252
- 🌱 Bump actions/checkout from 5 to 6 by @dependabot[bot] in #5243
- ✨ (go/v4): Upgrade golangci-lint to v2.7.2 and add modernize check by @dongjiang1989 in #5258
- 🌱 Bump golang.org/x/text from 0.31.0 to 0.32.0 by @dependabot[bot] in #5260
- 📖 (docs): Show webhook configuration in cronjob tutorial by @BadisLaffet1 in #5257
- 🌱 Bump github.com/onsi/ginkgo/v2 from 2.27.2 to 2.27.3 by @dependabot[bot] in #5259
- 🌱 Bump github.com/spf13/cobra from 1.10.1 to 1.10.2 by @dependabot[bot] in #5254
- 📖 (docs/quick-start): Fix generated controller file path by @shinebayar-g in #5255
- 🌱 Bump github.com/onsi/gomega from 1.38.2 to 1.38.3 by @dependabot[bot] in #5261
- 🌱 Bump golang.org/x/mod from 0.30.0 to 0.31.0 by @dependabot[bot] in #5262
- 🌱 Bump golang.org/x/tools from 0.39.0 to 0.40.0 by @dependabot[bot] in #5263
- ✨ (helm/v2alpha): Add support for parsing
imagePullSecretsand including them in the generated chart by @zarcen in #5242 - 🌱 Bump helm.sh/helm/v3 from 3.19.2 to 3.19.3 by @dependabot[bot] in #5268
- 🌱 Bump helm.sh/helm/v3 from 3.19.3 to 3.19.4 by @dependabot[bot] in #5271
- 🌱 Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in #5270
- 📖 (docs): Fix duplicate content and collapse markers in writing tests tutorial by @BadisLaffet1 in #5269
- 🌱 Change
sorttoslicespackage by @dongjiang1989 in #5265 - 📖 Revamp migrations guides to reflect current tooling and options by @camilamacedo86 in #5233
- 📖 (doc): remove strict doc merged by mistake by @camilamacedo86 ...
v4.10.1
🚀 Keep Your Scaffold Updated
Automate updates with
kubebuilder edit --plugins="autoupdate.kubebuilder.io/v1-alpha"or run them manually withkubebuilder alpha update. If yourPROJECTfile does not includecliVersion, you may need a one-time upgrade, andkubebuilder alpha generatecan fully re-scaffold the project in one step. After that, updates work seamlessly. See the migrations guidance.
🐛 Bug fixes
- (go/v4;deploy-image/v1-alpha): Remove
omitemptyfrom nested struct JSON tags in API scaffolds. #5212 - (go/v4): Fix flaky metrics e2e tests when webhooks are scaffolded. #5204
- (go/v4): Fix Go module download failure caused by invalid filename and retract
v4.10.0. (#5213, #5216)
🎉 Thanks to all contributors!
What's Changed
- 📖 (docs/UI): Book theme customizations by @vitorfloriano in #5187
- 🌱 (fix): Cross platform tests flakes by @camilamacedo86 in #5214
- 🐛 (go/v4;deploy-image/v1-alpha): Remove omitempty from nested struct JSON tags in API scaffolds by @camilamacedo86 in #5212
- 🐛 (go/v4): Fix flaky metrics e2e tests when webhooks are scaffolded by @camilamacedo86 in #5204
- 🐛 Fix Go module download failure caused by invalid filename by @camilamacedo86 in #5213
- 🐛 fix(go.mod): Retract v4.10.0 by @vitorfloriano in #5216
- 📖 (docs/helm): Add notes over template/crd directory by @camilamacedo86 in #5218
- 🌱 Add comprehensive Go module validation with retract check by @camilamacedo86 in #5217
Full Changelog: v4.10.0...v4.10.1
v4.10.0
🚀 Keep Your Scaffold Updated
Automate updates with
kubebuilder edit --plugins="autoupdate.kubebuilder.io/v1-alpha"or run them manually withkubebuilder alpha update. If yourPROJECTfile does not includecliVersion, you may need a one-time upgrade, andkubebuilder alpha generatecan fully re-scaffold the project in one step. After that, updates work seamlessly. See the migrations guidance.
⚠️ Warnings
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)
v4.10.0 Go Module Install Issue
v4.10.0 cannot be installed as a Go module (go mod download fails due to an invalid file path: .github/*.instructions.md).
CLI binaries work normally. The release has been retracted.
✨ 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 @cam...
v4.9.0
✨ New features
- (go/v4): Upgrade controller-gen from v0.18.0 to v0.19.0 #5064
- (go/v4): Upgrade golang CI from v2.3.0 to v2.4.0 #5063
- (go/v4): Upgrade controller-runtime from v0.21.0 to v0.22.1 #5062 #5098
- (go/v4): Upgrade kustomize from v5.6.0 to v5.7.1 #5099
- (helm/v1-alpha): Migrate from
installCRDs=truetocrds.enabled=truein GitHub actiontest-chart.ymlto address deprecation #5083
🐛 Bug fixes
- (go/v4): Fix Docker builds failing when projects don’t include
apis/,controllers/, orwebhooksby updating.dockerignoreto allow only Go source files and module metadata #5048 - (AutoUpdate/v1-alpha): Adjust comments on Auto Update workflow #5082
- (alpha generate command): Ensure kubebuilder reuses its own binary instead of relying on
$PATH#5081 - (go/v4): Fix e2e test to validate that metrics are exported without asserting a controller-specific metric #5100
- (go/v4): Handle empty CRD directories in Makefile install/uninstall targets #5042
🎉 Thanks to all contributors!
What's Changed
- 🌱 Bump github.com/onsi/gomega from 1.38.1 to 1.38.2 by @dependabot[bot] in #5059
- 📖 Bump sigs.k8s.io/kubebuilder/v4 from 4.7.1 to 4.8.0 in /docs/book/src/simple-external-plugin-tutorial/testdata/sampleexternalplugin/v1 by @dependabot[bot] in #5061
- 🌱 Bump github.com/onsi/ginkgo/v2 from 2.25.1 to 2.25.2 by @dependabot[bot] in #5065
- ✨ feat: Upgrade controller-gen from v0.18.0 to v0.19.0 by @camilamacedo86 in #5064
- ✨ Upgrade golang CI from v2.3.0 to v2.4.0 by @camilamacedo86 in #5063
- ✨ feat: upgrade controller-runtime from v0.21.0 to v0.22.0 by @camilamacedo86 in #5062
- 📖 Remove unit tests badge from README by @camilamacedo86 in #5067
- 🐛 (go/v4): Fix Docker builds failing when projects don’t include apis/, controllers/, or webhooks by updating .dockerignore to allow only Go source files and module metadata by @camilamacedo86 in #5048
- 🌱 Bump github.com/onsi/ginkgo/v2 from 2.25.2 to 2.25.3 by @dependabot[bot] in #5077
- 📖 Bump github.com/spf13/pflag from 1.0.7 to 1.0.10 in /docs/book/src/simple-external-plugin-tutorial/testdata/sampleexternalplugin/v1 by @dependabot[bot] in #5076
- 🌱 Bump actions/setup-node from 4 to 5 by @dependabot[bot] in #5078
- 🌱 Bump actions/setup-go from 5 to 6 by @dependabot[bot] in #5079
- 🌱 Bump github.com/spf13/cobra from 1.9.1 to 1.10.1 by @dependabot[bot] in #5070
- 📖 add note about Windows support by @vitorfloriano in #5080
- 🐛 (AutoUpdate/v1-alpha): Adjust comments on Auto Update workflow by @vitorfloriano in #5082
- 🐛 (alpha generate command): Ensure kubebuilder reuses its own binary instead of relying on $PATH by @ashishkpathak-connect in #5081
- 🌱 (e2e) upgrade certmanager from v1.16.3 to v1.18.2 by @camilamacedo86 in #5084
- 🌱 (e2e/docs): upgrade prometheus version used to run the tests by @camilamacedo86 in #5085
- 🌱 go: upgraded github.com/spf13/pflag v1.0.9 => v1.0.10 by @camilamacedo86 in #5086
⚠️ (helm/v1-alpha): Migrate from installCRDs=true to crds.enabled=true in GitHub actiontest-chart.ymlby @camilamacedo86 in #5083- 🌱 Bump github.com/spf13/afero from 1.14.0 to 1.15.0 by @dependabot[bot] in #5091
- 🌱 Bump golang.org/x/text from 0.28.0 to 0.29.0 by @dependabot[bot] in #5090
- 🌱 Bump helm.sh/helm/v3 from 3.18.6 to 3.19.0 by @dependabot[bot] in #5095
- 🌱 Bump golang.org/x/tools from 0.36.0 to 0.37.0 by @dependabot[bot] in #5094
- ✨ Upgrade controller-runtime from v0.22.0 to v0.22.1 by @camilamacedo86 in #5098
- ✨ Upgrade kustomize from v5.6.0 to v5.7.1 by @camilamacedo86 in #5099
- 🐛 (go/v4): Fix e2e test to validate that metrics are exported without asserting a controller-specific metric by @camilamacedo86 in #5100
- 🐛 (go/v4) Handle empty CRD directories in Makefile install/uninstall targets by @nerdeveloper in #5042
- 📖 (docs) drop patchStrategy/protobuf tags from Conditions in Getting Started section by @pedjak in #5104
- 📖 (doc): Add demo for auto-update plugin by @camilamacedo86 in #5105
New Contributors
- @ashishkpathak-connect made their first contribution in #5081
- @nerdeveloper made their first contribution in #5042
- @pedjak made their first contribution in #5104
Full Changelog: v4.8.0...v4.9.0