Skip to content

v4.0.0

Compare
Choose a tag to compare
@camilamacedo86 camilamacedo86 released this 24 May 08:36
6c08ed1

v4.0.0

changes since v3.15.1

Overview and Key Guidelines

It is a MAJOR release because all deprecated features were removed from the project. However, for those with projects scaffolded using the go/v4 plugin layout, there should mainly not be impacted by. To know the layout version of your project, check the Project Config, see the PROJECT file (example).

(General guidance) You might be impact by:

(For who are using go/v2 or go/v3) Upgrading Layouts:

If your project is currently using go/v2 or go/v3, you must upgrade to go/v4 to be compatible with this release and future updates. To know how to upgrade, check the migration documentation.

💡 Tips

You can add the changes manually, but unless your project is too big or deviated too much from the proposed layout the recommended process to upgrade a project usually involves re-scaffolding and then comparing the new base with your project code changes and re-adding all on top. IDEs usually can help you out in this process since you can re-scaffold all in a branch and easily compare it with your main branch published in the repository of your project to add the code back again.

  • Kubebuilder provides and Upgrade Assistance for those who have been using the CLI to do all scaffolds and does not deviated from the layout proposed.
  • You can follow the same process to ensure that your scaffold has all changes and bug fixes introduced from MINOR releases.
  • You can also always check the project scaffolds under the testdata directory as a base and compare them across tag releases to check the changes made: Example: Compare testdata/project-v4 between tags v3.14.1 and v3.15.1.
  • Avoiding unnecessary deviations from the proposed layout can help you keep your project maintained and aligned with the latest changes with a lower effort. Please, see the info.

⚠️ Breaking Changes

  • Removal of ComponentConfig since it is no longer supported by controller-runtime release version 0.15.0 and was removed from v0.18.0 (#3764). (More info)
  • Removal of the go/v2 which was kept only to ensure backwards compatibility from Kubebuilder release 2x to 3x and is deprecated since Apr 28, 2021. The go/v2 plugin cannot scaffold projects in which CRDs and/or Webhooks have a v1 API version. Be aware that v1beta1 API for CRDs and Webhooks was deprecated on Kubernetes 1.16 and were removed in the Kubernetes 1.22+ release. Go versions higher than 1.13+ are not supported within. (#3763) (#3915) (More info).
  • Removal of the go/v3 which is deprecated since Mar 11, 2023. Be aware that go/v3 plugin cannot scaffold projects using kustomize versions v4x+ and cannot fully support Kubernetes 1.25+ and go versions higher than 1.19+. (#3763) (#3915) (More info)
  • Removal of the kustomize/v1 which is deprecated since Mar 11, 2023. (#3763) (#3915) (More info)
  • Removal of the Declarative Plugin. (#3922) (More info)
  • (For who consume Kubebuilder as lib): Removal of deprecated APIs. The methods NewBundle, GetShortName, IsLegacyLayout are no longer available for those that consumes Kubebuilder as lib. (#3929)

✨ New Features

  • Add support for go 1.22 (#3910)
  • Add support for Kubernetes version 1.30. Upgrade controller-runtime from v0.17.3 to v0.18.2 (#3912)
  • Upgrade kustomize from v5.3.0 to v5.4.1 by (#3911)
  • Upgrade controller-tools from v0.14.0 to v0.15.0 (#3913)
  • Upgrade EnvTest from 1.29.0 to 1.30.0 (#3914)
  • Add new GolangCI linter to check the tests scaffolded with ginkgo (#3894)
  • (For who consume Kubebuilder as lib): Add sigs.k8s.io/kubebuilder/v4 module (#3924)

🐛 Bug Fixes

  • Fix typo issue in the flag description (#3954)
  • Fix in the makefile target docker-buildx to use the project name instead of fix value (#3928)
  • Fix in the makefile to remove invalid comment (#3816)
  • Fix to ensure consistent spacing in marker annotations. Ensure that you replace all markers to add the space by s/\//+/\// +/. (#3904)

Thanks to all our contributors!

What's Changed (Full Changelog)

New Contributors

Full Changelog: v3.15.0...v4.0.0