Closed
Description
Following the changelog: (By following the guidance in: https://github.com/kubernetes-sigs/kubebuilder/blob/master/RELEASE.md#release-process)
⚠️ Breaking Changes
- Resource validation (⚠ Resource validation #1974)
- Add --plural flag (go/v3) (⚠ Add --plural flag (go/v3) #1967)
- Update models (⚠ Update models #1911)
- upgrade kubebuilder module from v2 to v3 (⚠️ upgrade kubebuilder module from v2 to v3 #1958)
- change structure to store crdVersion and webhookversion (go/v3-alpha) (⚠️ change structure to store crdVersion and webhookversion (go/v3-alpha) #1899)
- (go/v3) stabilize and default the plugin (⚠️ (go/v3) stabilize and default the plugin #1882)
- (go/v3-alpha) bump controller-runtime to v0.7.0 (⚠️ (go/v3-alpha) bump controller-runtime to v0.7.0 #1886)
- pkg/cli overhaul (⚠ pkg/cli overhaul #1828)
- (go/v3-alpha) Align flag names with Kubernetes Components ( ⚠️ (go/v3-alpha) Align flag names with Kubernetes Components #1852)
- (go/v3-alpha) Adding support for scaffolding with a versioned ComponentConfig (⚠ (go/v3-alpha) Adding support for scaffolding with a versioned ComponentConfig #1790)
- (go/v3-alpha) bump cert-manager CRs to v1 (⚠️ (go/v3-alpha) bump cert-manager CRs to v1 #1840)
- Re-organize pkg/plugin directory (⚠ Re-organize pkg/plugin directory #1822)
- (go/v3-alpha) default to v1 CRDs and webhooks (⚠️ (go/v3-alpha) default to v1 CRDs and webhooks #1644)
- (go/v3-alpha) Makefile: install kustomize and controller-gen locally (⚠️ (go/v3-alpha) Makefile: install kustomize and controller-gen locally #1813)
- Provide version information as a CLI option (⚠Provide version information as a CLI option #1773)
- (go/v3-alpha) deps: bump controller-runtime to v0.7.0-alpha.6 (⚠ (go/v3-alpha) deps: bump controller-runtime to v0.7.0-alpha.6 #1804)
- Go module fullfillment for v2+ (⚠️ Go module fullfillment for v2+ #1792)
- upgrade controller-tool dep from 0.3.0 to 0.4.0 (go/v3-alpha only) (⚠️ upgrade controller-tool dep from 0.3.0 to 0.4.0 (go/v3-alpha only) #1787)
- [Rename] Disambiguate plugin by calling subcommand what the plugin getters returns instead of plugin (⚠️ [Rename] Disambiguate plugin by calling subcommand what the plugin getters returns instead of plugin #1748)
- Generate controllers with API Group name as package names in multi-group projects (only Go plugin v3) (⚠ Generate controllers with API Group name as package names in multi-group projects (only Go plugin v3) #1729)
- Update kubebuilder cli and plugin v3+ to use go version 1.15 ( ⚠️ Update kubebuilder cli and plugin v3+ to use go version 1.15 #1716)
✨ New Features
- Accept auto-generated files from GitHub into the allowed set of files (✨ Accept auto-generated files from GitHub into the allowed set of files #2014)
- Return a typed error in case DecodePluginConfig was unable to find the provided key (✨ Return a typed error in case DecodePluginConfig was unable to find the provided key #1985)
- Remove make calls from post-scaffold hooks (✨ Remove make calls from post-scaffold hooks #1983)
- Add the rest of the missing fields and stabilize config v3 (✨ Add the rest of the missing fields and stabilize config v3 #1968)
- Tolerate "dot" directories when checking if dir is empty (✨ Tolerate "dot" directories when checking if dir is empty #1944)
- (go/v3) change 'runAsUser: 65532' to 'runAsNonRoot: true' (✨ (go/v3) change 'runAsUser: 65532' to 'runAsNonRoot: true' #1978)
- Use ErrorIfCRDPathMissing in EnvTest (✨ Use ErrorIfCRDPathMissing in EnvTest #1765)
- *: upgrade kube-rbac-proxy to v0.8.0 (✨ *: upgrade kube-rbac-proxy to v0.8.0 #1955)
- rename probes endpoints (go/v3) (✨ rename probes endpoints (go/v3) #1910)
- Build the command and use it to report user errors (✨ Build the command and use it to report user errors #1937)
- Make directory-not-empty error more self-explanatory (✨ Make directory-not-empty error more self-explanatory #1943)
- Add help dialog to makefile template (✨ Add help dialog to makefile template #1947)
- (go/v3) upgrade kubebuilder-declarative-pattern to k8s v1.19 (✨ (go/v3) upgrade kubebuilder-declarative-pattern to k8s v1.19 #1946)
- Remove misleading help that mentioned dep (✨ Remove misleading help that mentioned dep #1945)
- Remove spaces from machine-readable comments (✨ Remove spaces from machine-readable comments #1868)
- (go/v3) Add the --force option for the webhook (✨ (go/v3) Add the --force option for the webhook #1903)
- add new extension to markers in order to allow work with .yml (✨ add new extension to markers in order to allow work with .yml #1907)
- Change the webhook GVK in help text to match kb create api (✨ Change the webhook GVK in help text to match kb create api #1881)
- (go/v3-alpha) Add the liveness and readiness probe in the manager deployment (✨ (go/v3-alpha) Add the liveness and readiness probe in the manager deployment #1856)
- upgrade controller-runtime from v0.6.3 to v0.6.4 (go/v2 only) (✨ upgrade controller-runtime from v0.6.3 to v0.6.4 (go/v2 only) #1880)
- upgrade controller-rutime from v0.7.0-alpha.6 to v0.7.0-alpha.8 (go/v3-alpha) (✨ upgrade controller-rutime from v0.7.0-alpha.6 to v0.7.0-alpha.8 (go/v3-alpha) #1875)
- add make run option for webhooks (go/v3-alpha) (✨ add make run option for webhooks (go/v3-alpha) #1846)
- go/v3-alpha: bump KustomizeVersion to v3.8.7 (✨ go/v3-alpha: bump KustomizeVersion to v3.8.7 #1838)
- (go/v3-alpha) *: Replace 'docker build . -t ${IMG}' with '-t ${IMG} .' (✨ (go/v3-alpha) *: Replace 'docker build . -t ${IMG}' with '-t ${IMG} .' #1817)
- Add the liveness and readiness probe in the manager deployment (✨ Add the liveness and readiness probe in the manager deployment #1795)
- Suggestions for create and alpha commands (✨Suggestions for create and alpha commands #1775)
- Upgrade the version of kubernetes to v1.18.0 for local e2e tests (✨ Upgrade the version of kubernetes to v1.18.0 for local e2e tests #1744)
- Provide a cli option to enable and disable completion command (✨ Provide a cli option to enable and disable completion command #1776)
- Cleanup in the controller and webhook suites scaffolding (go/v3-alpha) (✨ Cleanup in the controller and webhook suites scaffolding (go/v3-alpha) #1760)
- remove v1 version and only shows --plugins flag when the project version is != V2 (✨ remove v1 version and only shows --plugins flag when the project version is != V2 #1763)
- Add copyright and license to scaffolded webhook suite test file (✨ Add copyright and license to scaffolded webhook suite test file (
go/v3-alpha
) #1758) - Add scaffolding for the webhook test suite (go/v3-alpha) (✨ Add scaffolding for the webhook test suite (go/v3-alpha) #1710)
- Make the edit command to be a plugin. (✨ Make the edit command to be a plugin. #1691)
- add comments for the exported methods in generated controllers (only v3+) (✨ add comments for the exported methods in generated controllers (only v3+) #1690)
- Add all kubernetes auth plugins for Azure, OIDC and gcp (only v3+) (✨ Add all kubernetes auth plugins for Azure, OIDC and gcp (only v3+) #1742)
- not allow to init the project in a directory that is not cleaned (v3+ only) (✨ not allow to init the project in a directory that is not cleaned (v3+ only) #1738)
- feat(logging): make logging work by default (only v3+) (✨ feat(logging): make logging work by default (only v3+) #1721)
- Move the webhookcainjection_patch.yaml file creation from init project to webhook creation (✨ Move the webhookcainjection_patch.yaml file creation from init project to webhook creation #1728)
- upgrade controller-runtime from v0.6.2 to v0.6.3 (✨ upgrade controller-runtime from v0.6.2 to v0.6.3 #1715)
- replace deprecated function LoggerTo() from zap package (only v3+) (✨ replace deprecated function LoggerTo() from zap package (only v3+) #1692)
- Added support for empty group in kubebuilder api creation with v3+ Feature Request: support "empty" group for API resources, i.e. with group == domain #1404 (✨ Added support for empty group in kubebuilder api creation with v3+ #1404 #1679)
- Added the changes for include finalizer as a default controller markers (✨ Added the changes for include finalizer as a default controller markers (v3+ only) #1688)
- specify nonroot uid for manager (v3+ only) (✨ specify nonroot uid for manager (v3+ only) #1635)
🐛 Bug Fixes
- Fix the bug where an error was being hidden by a potentially valid flag not being recognized by the root command (🐛 Fix the bug where an error was being hidden by a potentially valid flag not being recognized by the root command #2023)
- (config/v3) Track in the project configuration file resources without API (🐛 (config/v3) Track in the project configuration file resources without API #2003)
- Fix go/v2 with config/v3 resources in config file to store webhook information (🐛 Fix go/v2 with config/v3 resources in config file to store webhook information #1998)
- Fix sorting issue with plugin versions and their supported project versions (🐛 Fix sorting issue with plugin versions and their supported project versions #1995)
- Validate the plugin flag (🐛 Validate the plugin flag #1970)
- Use correct file name in the comments of
[kind]_types.go
(🐛 Use correct file name in the comments of[kind]_types.go
#1927) - Fix --force option to recreate the files by kubebuilder create api (🐛 Fix --force option to recreate the files by kubebuilder create api #1847)
- Fix the path of probes (go/v3-alpha) (🐛 Fix the path of probes (go/v3-alpha) #1905)
- (go/v3-alpha) add leases.coordination.k8s.io to leader-election-role (🐛 (go/v3-alpha) add leases.coordination.k8s.io to leader-election-role #1809)
- kubebuilder edit ignore the errors if the project layout is already on same type (🐛 kubebuilder edit ignore the errors if the project layout is already on same type #1754)
- Fix the kubebuilder api creation when resource creation is set to false (🐛 Fix the kubebuilder api creation when resource creation is set to false #1770)
- fix copyright info when has not a owner set (🐛 fix copyright info when has not a owner set #1749)
- Fix the webhook creation for defaulting webhooks (🐛 Fix the webhook creation for defaulting webhooks #1718)
- use rbac.authorization.k8s.io/v1 for the auth proxy client (🐛 use rbac.authorization.k8s.io/v1 for the auth proxy client #1731)
- Remove unneeded caBundle value from webhook patches (V3 only) (🐛 Remove unneeded caBundle value from webhook patches (V3 only) #1699)
- Add validation for the main.go file present in root directory (🐛 Add validation for the main.go file present in root directory #1726)
- check if resource exist to allow to create webhooks (🐛 check if resource exist to allow to create webhooks #1708)
- fix: the CRD paths is only ../.. when is multigroup (🐛 fix: the CRD paths is only ../.. when is multigroup #1682)
- Fix CRD Path for Multigroup (🐛 Fix CRD Path for Multigroup #1673)
❓ Sort these by hand
- 👻 Enhance regex patterns (👻 Enhance regex patterns #1745)
- Update flect from v0.2.1 to v0.2.2 (Update flect from v0.2.1 to v0.2.2 #1698)
- :seeding: rename generate_mutiversion.sh to generate_multiversion.sh (:seeding: rename generate_mutiversion.sh to generate_multiversion.sh #1683)
- Fix 1680: Usage of nonexistent namespace in cronjob example tests (Fix 1680: Usage of nonexistent namespace in cronjob example tests #1681)
- doc: update testadata projects used in the tutorial ( doc: update testadata projects used in the tutorial #1632)
- doc: correct minor grammar mistakes (doc: correct minor grammar mistakes #1670)
- doc: update reference with name of page (doc: update reference with name of page #1662)
- dev(dx): lint improvements (use github actions to call it) (dev(dx): lint improvements (use github actions to call it) #1649)
- docs: added a full stop for better readbility (docs: added a full stop for better readbility #1661)
- fix title: lost "needs" (fix title: lost "needs" #1658)
- feat: envtest setup via target with docs (v3 only) (feat: envtest setup via target with docs (v3 only) #1626)
- doc: makefile helpers nit fix (doc: makefile helpers nit fix #1648)
- Fix path to generated main.go (Fix path to generated main.go #1643)
- docs/book: fix small typos (docs/book: fix small typos #1638)
- cleanup: organize templates in the same structure that they are scaffolded (cleanup: organize templates in the same structure that they are scaffolded #1623)
- doc: add makefile helpers (doc: add makefile helpers #1631)
- cleanup-book: remove docs/book/src/migration/testdata (cleanup-book: remove docs/book/src/migration/testdata #1499)
- Fix old link to envtest docs that should have been removed (Fix old link to envtest docs that should have been removed #1624)
- pkg/model/config: only project versions >= v3 can use plugins config options (pkg/model/config: only project versions >= v3 can use plugins config options #1628)
- using built in finalizer function and fix some syntax (📖 using built in finalizer function and fix some syntax #1629)
- pkg/plugin/{v2,v3}: controller-runtime v0.6.2 (pkg/plugin/{v2,v3}: controller-runtime v0.6.2 #1625)
- pkg/plugin/v2: use config project name if project version is v3+ (pkg/plugin/v2: use config project name if project version is v3+ #1611)
- fix: script call for linux (fix: script call for linux #1610)
- plugins: change project name config tag, add
pkg/model/file.ProjectNameMixin
(plugins: change project name config tag, addpkg/model/file.ProjectNameMixin
#1609) - feat: add script in the repo to setup envtest (feat: add script in the repo to setup envtest #1608)
- config: add
project-name
config key and optionalinit --project-name
(config: addproject-name
config key and optionalinit --project-name
#1603) - Fix typos (Fix typos #1601)
- pkg/plugin/v3: use repo instead of directory basename as project name (pkg/plugin/v3: use repo instead of directory basename as project name #1596)
- cleanup: Remove the word sanity from our codebase (cleanup: Remove the word sanity from our codebase #1594)
- Add missing kubebuilder annotation to the getting started document (Add missing kubebuilder annotation to the getting started document #1587)
- doc: replace links to godoc.org with links to pkg.go.dev (doc: replace links to godoc.org with links to pkg.go.dev #1588)
- fix crd-version-pref url (fix crd-version-pref url #1580)
- feat: add dockerignore file to the scaffold (V3 only) (feat: add dockerignore file to the scaffold (V3 only) #1506)
- Add envtest testing docs to extend cronjob example (Add envtest testing docs to extend cronjob example #1521)
- Check if has Scaffold before exec (Check if has Scaffold before exec #1577)
- feat: add undeploy IMG option (V3 only) (feat: add undeploy IMG option (V3 only) #1571)
- feat: improve go test for the scaffolded projects due checking race conditionals (v3 only) (feat: improve go test for the scaffolded projects due checking race conditionals (v3 only) #1570)
- feat: add go test with -race conditional (feat: add go test with -race conditional #1569)
- feat: add group in the controller logs for multi-group (feat: add group in the controller logs for multi-group #1568)
- upgrade lint version and perform fixes (upgrade lint version and perform fixes #1572)
- OWNERS_ALIASES: add estroz to approvers (OWNERS_ALIASES: add estroz to approvers #1565)
- Fix typo in deleteExternalResources comment (Fix typo in deleteExternalResources comment #1495)
- doc: fix controller typo (doc: fix controller typo #1567)
- fix: remove role for configmaps/status which do not exists from leader_election_role.yaml (fix: remove role for configmaps/status which do not exists from leader_election_role.yaml #1511)
- fix: controller alias for multigroups (v3) (fix: controller alias for multigroups (v3) #1498)
- clean up via go mod tidy : remove module added github.com/blang/semver v3.5.1+incompatible (clean up via go mod tidy : remove module added github.com/blang/semver v3.5.1+incompatible #1566)
- A small correction (A small correction #1561)
- pkg/cli/init.go: make flag help consistent (pkg/cli/init.go: make flag help consistent #1564)
- Add pwittrock to approvers (Add pwittrock to approvers #1563)
- pkg/plugin/v3: add plugin
v3-alpha
(pkg/plugin/v3: add pluginv3-alpha
#1551) - Docs: Fix invalid URL to Kubernetes reference docs in Using Finalizers (Docs: Fix invalid URL to Kubernetes reference docs in Using Finalizers #1560)
- Black Lives Matter (Black Lives Matter #1553)
- pkg/plugin/plugin.go: correct version stage comparison (pkg/plugin/plugin.go: correct version stage comparison #1552)
- pkg: refactor scaffolds and machinery under plugins (pkg: refactor scaffolds and machinery under plugins #1550)
- docs: Fix a literal typo and incorrect list (docs: Fix a literal typo and incorrect list #1548)
- pkg/model/config: wrap plugin config in types (pkg/model/config: wrap plugin config in types #1549)
- *: remove plugin minor/patch versions (*: remove plugin minor/patch versions #1547)
- pkg/cli: resolve
--plugins
/layout
value by semantic version (pkg/cli: resolve--plugins
/layout
value by semantic version #1536) - pkg/cli: only allow one default plugin per project version (pkg/cli: only allow one default plugin per project version #1542)
- fix: fixed version of sigs.k8s.io/kubebuilder-declarative-pattern which should be used (fix: fixed version of sigs.k8s.io/kubebuilder-declarative-pattern which should be used #1527)
- pkg/cli: use cmd error idiom for 'init' and plugin keys in cmd errors (pkg/cli: use cmd error idiom for 'init' and plugin keys in cmd errors #1540)
- fix: validate plugins : allow many versions of the same plugin (fix: validate plugins : allow many versions of the same plugin #1535)
- doc: add versions information to the contribution guidelines (doc: add versions information to the contribution guidelines #1528)
- FIX: fix for controller-runtime 0.6.0 GetFieldIndexer().IndexField ctx param (FIX: fix for controller-runtime 0.6.0 GetFieldIndexer().IndexField ctx param #1533)
- add patch verb to events in the leader_election_role (add patch verb to events in the leader_election_role #1510)
- fix: unable to build multigroup projects (fix: unable to build multigroup projects #1507)
- allow test utils be extended (allow test utils be extended #1520)
- fix-ci: new update of kubebuilder-declarative-pattern (fix-ci: new update of kubebuilder-declarative-pattern #1532)
- docs: example of age print column (docs: example of age print column #1516)
- makefile: use $(KUSTOMIZE) variable instead of binary name directly (makefile: use $(KUSTOMIZE) variable instead of binary name directly #1523)
- update testdata to fix CI (update testdata to fix CI #1515)
- feat: scaffolded by default the subresource status (feat: scaffolded by default the subresource status #1484)
- upgrade controller-runtime from v0.5.0 to v0.6.0 (upgrade controller-runtime from v0.5.0 to v0.6.0 #1497)
- feat: remove update command which was useful just for v1 (feat: remove update command which was useful just for v1 #1489)
- remove the deprecated flags: depArgs and dep. Use fetch-deps instead of them. (remove the deprecated flags: depArgs and dep. Use fetch-deps instead of them. #1490)
- fix: master branch CI with mock testdata update (fix: master branch CI with mock testdata update #1504)
- upgrade controller-tools version from v0.2.5 to v0.3.0 (upgrade controller-tools version from v0.2.5 to v0.3.0 #1482)
- Add contribution link to the book (Add contribution link to the book #1494)
- Clean Code - Remove V1 implementation (Clean Code - Remove V1 implementation #1355)
- Plugins Phase 1 (Plugins Phase 1 #1469)
- test scripts: add missing addons test, some refactoring (test scripts: add missing addons test, some refactoring #1449)
- Install kustomize if not present (Install kustomize if not present #1430)
- Clean the GO mod files by removing the unnecessary indirect imports ( Clean the GO mod files by removing the unnecessary indirect imports #1454)
- Using utilruntime.Must() for adding schemes (Using utilruntime.Must() for adding schemes #1462)
- update the go check for the minimal required version (update the go check for the minimal required version #1460)
- Implement Wrapper interface for errors (Implement Wrapper interface for errors #1349)
- Add bash/zsh completion command ( Add bash/zsh completion command #1437)
- Update doc certmanager 0.11 group and version change (Update doc certmanager 0.11 group and version change #1444)
- Cherry-pick f6508e6 (update quick-start.md kubebuilder version to 2.3.1) (Cherry-pick f6508e6 (update quick-start.md kubebuilder version to 2.3.1) #1451)
Thanks to all our contributors!