v3.0.0
v3.0.0
changes since v3.0.0-rc.0
✨ New Features
- (go/v3) Makefile: set SHELL to the system's
bash
binary with shell opts (#2149)
🐛 Bug Fixes
- (go/v3) moved leases.coordination.k8s.io to its own proxy-role rule (#2151)
- regression - extracommands require a valid PROJECT file again (#2126)
changes since v2.3.1
⚠️ Breaking Changes
- move declarative plugin to golang domain (#2114)
- Plugin phase 1.5 implementation (#2060)
- Export scaffolding machinery (#2082)
- Inject filesystem from CLI instead of creating several per command (#2080)
- Decouple plugin requirements from Config interface (#2047)
- Explicitly define WithCompletion as an Option (#2045)
- Resource validation (#1974)
- Add --plural flag (go/v3) (#1967)
- Update models (#1911)
- upgrade kubebuilder module from v2 to v3 (#1958)
- change structure to store crdVersion and webhookversion (go/v3-alpha) (#1899)
- (go/v3) stabilize and default the plugin (#1882)
- (go/v3-alpha) bump controller-runtime to v0.7.0 (#1886)
- pkg/cli overhaul (#1828)
- (go/v3-alpha) Align flag names with Kubernetes Components (#1852)
- (go/v3-alpha) Adding support for scaffolding with a versioned ComponentConfig (#1790)
- (go/v3-alpha) bump cert-manager CRs to v1 (#1840)
- Re-organize pkg/plugin directory (#1822)
- (go/v3-alpha) default to v1 CRDs and webhooks (#1644)
- (go/v3-alpha) Makefile: install kustomize and controller-gen locally (#1813)
- Provide version information as a CLI option (#1773)
- (go/v3-alpha) deps: bump controller-runtime to v0.7.0-alpha.6 (#1804)
- Go module fullfillment for v2+ (#1792)
- 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 (#1748)
- 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 (#1716)
✨ New Features
- (go/v3) Makefile: set SHELL to the system's
bash
binary with shell opts (#2149) - add the common plugin(s) to allow it to be used by consumers (#2106)
- Allow bundles to be used as input to other bundles (#2112)
- Allow to modify the root's command description (#2105)
- Enable the storage of multiple plugins as layout (#2096)
- Provide third-party devs the option to provide their own alpha subcommands (#2089)
- Add fish completion (#2088)
- Add
kubebuilder alpha config-gen
command to explore generating configuration with kustomize functions (#1831) - (go/v3) create and bind to a non-default service account (#2070)
- (go/v3) bump controller-runtime to v0.7.2 (#2064)
- : Add go mod tidy to be executed after the scaffolding api (#2037)
- 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 (#1985)
- Remove make calls from post-scaffold hooks (#1983)
- Add the rest of the missing fields and stabilize config v3 (#1968)
- Tolerate "dot" directories when checking if dir is empty (#1944)
- (go/v3) change 'runAsUser: 65532' to 'runAsNonRoot: true' (#1978)
- Use ErrorIfCRDPathMissing in EnvTest (#1765)
- *: upgrade kube-rbac-proxy to v0.8.0 (#1955)
- rename probes endpoints (go/v3) (#1910)
- Build the command and use it to report user errors (#1937)
- Make directory-not-empty error more self-explanatory (#1943)
- Add help dialog to makefile template (#1947)
- (go/v3) upgrade kubebuilder-declarative-pattern to k8s v1.19 (#1946)
- Remove misleading help that mentioned dep (#1945)
- Remove spaces from machine-readable comments (#1868)
- (go/v3) Add the --force option for the webhook (#1903)
- 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 (#1881)
- (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) (#1880)
- 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) (#1846)
- go/v3-alpha: bump KustomizeVersion to v3.8.7 (#1838)
- (go/v3-alpha) *: Replace 'docker build . -t ${IMG}' with '-t ${IMG} .' (#1817)
- Add the liveness and readiness probe in the manager deployment (#1795)
- Suggestions for create and alpha commands (#1775)
- Upgrade the version of kubernetes to v1.18.0 for local e2e tests (#1744)
- Provide a cli option to enable and disable completion command (#1776)
- 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 (#1763)
- Add copyright and license to scaffolded webhook suite test file (#1758)
- Add scaffolding for the webhook test suite (go/v3-alpha) (#1710)
- Make the edit command to be a plugin. (#1691)
- add comments for the exported methods in generated controllers (only v3+) (#1690)
- 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) (#1738)
- feat(logging): make logging work by default (only v3+) (#1721)
- 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 (#1715)
- replace deprecated function LoggerTo() from zap package (only v3+) (#1692)
- Added support for empty group in kubebuilder api creation with v3+ #1404 (#1679)
- Added the changes for include finalizer as a default controller markers (#1688)
- specify nonroot uid for manager (v3+ only) (#1635)
🐛 Bug Fixes
- (go/v3) moved leases.coordination.k8s.io to its own proxy-role rule (#2151)
- regression - extracommands require a valid PROJECT file again (#2126)
- do not generate the cert-manager directory by default. (#2111)
- default service monitor configuration to use https (#2065)
- Fix alpha extra commands parent command (#2092)
- Add https to the webpage (#2050)
- fix unit tests to work with later versions of ginkgo/gomega (#2039)
- 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 (#2003)
- 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 (#1995)
- Validate the plugin flag (#1970)
- Use correct file name in the comments of
[kind]_types.go
(#1927) - Fix --force option to recreate the files by kubebuilder create api (#1847)
- Fix the path of probes (go/v3-alpha) (#1905)
- (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 (#1754)
- Fix the kubebuilder api creation when resource creation is set to false (#1770)
- fix copyright info when has not a owner set (#1749)
- Fix the webhook creation for defaulting webhooks (#1718)
- use rbac.authorization.k8s.io/v1 for the auth proxy client (#1731)
- Remove unneeded caBundle value from webhook patches (V3 only) (#1699)
- Add validation for the main.go file present in root directory (#1726)
- check if resource exist to allow to create webhooks (#1708)
- fix: the CRD paths is only ../.. when is multigroup (#1682)
- Fix CRD Path for Multigroup (#1673)
❓ Sort these by hand
- 👻 Enhance regex patterns (#1745)
- Update flect from v0.2.1 to v0.2.2 (#1698)
- :seeding: rename generate_mutiversion.sh to generate_multiversion.sh (#1683)
- Fix 1680: Usage of nonexistent namespace in cronjob example tests (#1681)
- doc: update testadata projects used in the tutorial (#1632)
- doc: correct minor grammar mistakes (#1670)
- doc: update reference with name of page (#1662)
- dev(dx): lint improvements (use github actions to call it) (#1649)
- docs: added a full stop for better readbility (#1661)
- fix title: lost "needs" (#1658)
- feat: envtest setup via target with docs (v3 only) (#1626)
- doc: makefile helpers nit fix (#1648)
- Fix path to generated main.go (#1643)
- docs/book: fix small typos (#1638)
- cleanup: organize templates in the same structure that they are scaffolded (#1623)
- doc: add makefile helpers (#1631)
- cleanup-book: remove docs/book/src/migration/testdata (#1499)
- Fix old link to envtest docs that should have been removed (#1624)
- pkg/model/config: only project versions >= v3 can use plugins config options (#1628)
- using built in finalizer function and fix some syntax (#1629)
- pkg/plugin/{v2,v3}: controller-runtime v0.6.2 (#1625)
- pkg/plugin/v2: use config project name if project version is v3+ (#1611)
- fix: script call for linux (#1610)
- plugins: change project name config tag, add
pkg/model/file.ProjectNameMixin
(#1609) - feat: add script in the repo to setup envtest (#1608)
- config: add
project-name
config key and optionalinit --project-name
(#1603) - Fix typos (#1601)
- pkg/plugin/v3: use repo instead of directory basename as project name (#1596)
- cleanup: Remove the word sanity from our codebase (#1594)
- Add missing kubebuilder annotation to the getting started document (#1587)
- doc: replace links to godoc.org with links to pkg.go.dev (#1588)
- fix crd-version-pref url (#1580)
- feat: add dockerignore file to the scaffold (V3 only) (#1506)
- Add envtest testing docs to extend cronjob example (#1521)
- Check if has Scaffold before exec (#1577)
- feat: add undeploy IMG option (V3 only) (#1571)
- feat: improve go test for the scaffolded projects due checking race conditionals (v3 only) (#1570)
- feat: add go test with -race conditional (#1569)
- feat: add group in the controller logs for multi-group (#1568)
- upgrade lint version and perform fixes (#1572)
- OWNERS_ALIASES: add estroz to approvers (#1565)
- Fix typo in deleteExternalResources comment (#1495)
- doc: fix controller typo (#1567)
- fix: remove role for configmaps/status which do not exists from leader_election_role.yaml (#1511)
- fix: controller alias for multigroups (v3) (#1498)
- clean up via go mod tidy : remove module added github.com/blang/semver v3.5.1+incompatible (#1566)
- A small correction (#1561)
- pkg/cli/init.go: make flag help consistent (#1564)
- Add pwittrock to approvers (#1563)
- pkg/plugin/v3: add plugin
v3-alpha
(#1551) - Docs: Fix invalid URL to Kubernetes reference docs in Using Finalizers (#1560)
- Black Lives Matter (#1553)
- pkg/plugin/plugin.go: correct version stage comparison (#1552)
- pkg: refactor scaffolds and machinery under plugins (#1550)
- docs: Fix a literal typo and incorrect list (#1548)
- pkg/model/config: wrap plugin config in types (#1549)
- *: remove plugin minor/patch versions (#1547)
- pkg/cli: resolve
--plugins
/layout
value by semantic version (#1536) - 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 (#1527)
- 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 (#1535)
- doc: add versions information to the contribution guidelines (#1528)
- FIX: fix for controller-runtime 0.6.0 GetFieldIndexer().IndexField ctx param (#1533)
- add patch verb to events in the leader_election_role (#1510)
- fix: unable to build multigroup projects (#1507)
- allow test utils be extended (#1520)
- fix-ci: new update of kubebuilder-declarative-pattern (#1532)
- docs: example of age print column (#1516)
- makefile: use $(KUSTOMIZE) variable instead of binary name directly (#1523)
- update testdata to fix CI (#1515)
- feat: scaffolded by default the subresource status (#1484)
- upgrade controller-runtime from v0.5.0 to v0.6.0 (#1497)
- feat: remove update command which was useful just for v1 (#1489)
- remove the deprecated flags: depArgs and dep. Use fetch-deps instead of them. (#1490)
- fix: master branch CI with mock testdata update (#1504)
- upgrade controller-tools version from v0.2.5 to v0.3.0 (#1482)
- Add contribution link to the book (#1494)
- Clean Code - Remove V1 implementation (#1355)
- Plugins Phase 1 (#1469)
- test scripts: add missing addons test, some refactoring (#1449)
- Install kustomize if not present (#1430)
- Clean the GO mod files by removing the unnecessary indirect imports (#1454)
- Using utilruntime.Must() for adding schemes (#1462)
- update the go check for the minimal required version (#1460)
- Implement Wrapper interface for errors (#1349)
- Add bash/zsh completion command (#1437)
- Update doc certmanager 0.11 group and version change (#1444)
- Cherry-pick f6508e6 (update quick-start.md kubebuilder version to 2.3.1) (#1451)
Thanks to all our contributors!