You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
2.3 KiB

  1. # Release Process
  2. The Kubespray Project is released on an as-needed basis. The process is as follows:
  3. 1. An issue is proposing a new release with a changelog since the last release
  4. 2. At least one of the [OWNERS](OWNERS) must LGTM this release
  5. 3. An OWNER runs `git tag -s $VERSION` and inserts the changelog and pushes the tag with `git push $VERSION`
  6. 4. The release issue is closed
  7. 5. An announcement email is sent to `kubernetes-dev@googlegroups.com` with the subject `[ANNOUNCE] Kubespray $VERSION is released`
  8. ## Major/minor releases, merge freezes and milestones
  9. * Kubespray does not maintain stable branches for releases. Releases are tags, not
  10. branches, and there are no backports. Therefore, there is no need for merge
  11. freezes as well.
  12. * Fixes for major releases (vX.x.0) and minor releases (vX.Y.x) are delivered
  13. via maintenance releases (vX.Y.Z) and assigned to the corresponding open
  14. milestone (vX.Y). That milestone remains open for the major/minor releases
  15. support lifetime, which ends once the milestone closed. Then only a next major
  16. or minor release can be done.
  17. * Kubespray major and minor releases are bound to the given ``kube_version`` major/minor
  18. version numbers and other components' arbitrary versions, like etcd or network plugins.
  19. Older or newer versions are not supported and not tested for the given release.
  20. * There is no unstable releases and no APIs, thus Kubespray doesn't follow
  21. [semver](http://semver.org/). Every version describes only a stable release.
  22. Breaking changes, if any introduced by changed defaults or non-contrib ansible roles'
  23. playbooks, shall be described in the release notes. Other breaking changes, if any in
  24. the contributed addons or bound versions of Kubernetes and other components, are
  25. considered out of Kubespray scope and are up to the components' teams to deal with and
  26. document.
  27. * Minor releases can change components' versions, but not the major ``kube_version``.
  28. Greater ``kube_version`` requires a new major or minor release. For example, if Kubespray v2.0.0
  29. is bound to ``kube_version: 1.4.x``, ``calico_version: 0.22.0``, ``etcd_version: v3.0.6``,
  30. then Kubespray v2.1.0 may be bound to only minor changes to ``kube_version``, like v1.5.1
  31. and *any* changes to other components, like etcd v4, or calico 1.2.3.
  32. And Kubespray v3.x.x shall be bound to ``kube_version: 2.x.x`` respectively.