Kubebuilder: New Release - proposing 3.0.0 stable

Created on 18 Feb 2021  路  10Comments  路  Source: kubernetes-sigs/kubebuilder

Following the changelog: (By following the guidance in: https://github.com/kubernetes-sigs/kubebuilder/blob/master/RELEASE.md#release-process)

:warning: Breaking Changes

  • 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)

:sparkles: New Features

  • 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: Bug Fixes

  • 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)

:question: 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 optional init --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!

kinfeature triagaccepted

Most helpful comment

Hi @HamzaZo,

Yes. It is planned to:

  • release an rc this week
  • and then, the stable released ought to roll out after 2 weeks.

All 10 comments

@DirectXMan12, @estroz, @pwittrock, @Adirio wdyt? Can we move forward here?

  • raise in the controller-meeting
  • we might want to clean up the changelog as well.

It has been discussed on slack.
We might decide to add as a pre-requirement the changes in the API which allow plugin chains. More info; https://github.com/kubernetes-sigs/kubebuilder/issues/2016 and https://github.com/kubernetes-sigs/kubebuilder/issues/2043

Hi @DirectXMan12, @estroz, @Adirio, @joelanford,

I see that we have 2 options here which are:

Plan A

  • Release 3.0.0: now with the preliminary plugin system and all changes made so far which allow users to start to work with the latest API's as well and is very stable.
  • Release 3.1.0: with the controller-runtime bump 0.8.0
  • Release 4.0.0: with #2043 - all required/desired changes for plugins chains. Note that the 4.0.0 bump does not allow us to introduce breaking changes in the plugins since they are stabilized either.
    PS.: We might want to bum go 1.16 for 4.0.0 as well.

Plan B

  • Implement all changes in the API regards plugin chains and then we need another beta.1 release for we are able to release the stable one.

If we move with plan A then, I start to think that we might need to create a branch for that to allow @Adirio to move forward easily as well and merge all his PRs. WDYT @Adirio? Also, I think would be better we move with plan A unless we have any restriction to bump sooner 4.0.0.

WDYT?

Version 3 took a really long time so waiting for version 4 may be too far so I'm voting plan B.

Hi @Adirio,

We should not take too long to do the releases. Now, that more people are able to do that we can indeed have a process where we do with more frequency. My concern here is: Has any reason for we are unable to push 4.0.0 with these changes soon? Have we any policy or process which will not allow us to release 3.1 and then 4.0.0 directly?

c/c @DirectXMan12

User noise: What would you do if you just updated a project to v3, which is pretty complex, and 2 months later they tell you that v4 is released? You would probably not even look at the changes needed, which may be none, and skip the version bump.

Aside from that (which I think is pretty important), I don't think there is any requirement that prevents it. Let's see what Solly thinks.

Hi @Adirio,

It is true. 馃憤 I agree with the noise and I think you have been doing a great job and we would be very close to moving forward with plan B as well. So, just to clarifies move with plan B is fine for me if we are able to that soon.

@camilamacedo86 Have you planned to release version 3 soon?

Hi @HamzaZo,

Yes. It is planned to:

  • release an rc this week
  • and then, the stable released ought to roll out after 2 weeks.
Was this page helpful?
0 / 5 - 0 ratings