Skip to content

Latest commit

 

History

History
22 lines (17 loc) · 1.61 KB

RELEASE.md

File metadata and controls

22 lines (17 loc) · 1.61 KB

Process for creating a Kube-Router release

Preparing for the release

  • Ensure that the Golang release used is still supported. Definition happens currently in Github Workflow.
  • Ensure that the Alpine version used in container builds is still supported. Definition happens currently in Github Workflow.
  • Ensure that Golang dependencies are updated. go list -mod=mod -u -m -f '{{.}}{{if .Indirect}} IAMINDIRECT{{end}}' all | grep -v IAMINDIRECT lists possible updates.
  • Ensure that the GoBGP version is updated. See upstream and GoBGP definition in Makefile and go.mod.
  • Ensure that the Kubernetes object definitions do not contain deprecated object types. Definition currently is in kube-router's Daemonset folder.

New major/minor release

  • Create a branch named v$MAJOR.$MINOR from the default branch (currently: master)
  • Create a new prerelease on Github with the release tag v$MAJOR.$MINOR.0

New patch release

  • Create a new prerelease on Github from the v$MAJOR.$MINOR release branch with the release tag v$MAJOR.$MINOR.$PATCH

A goreleaser command will be executed via Github Actions and it will add binaries to the release. A docker buildx command will be executed via Github Actions and it will push new container builds to DockerHub.

After the release

  • Mark the draft release as a proper release.
  • Announce the release in #kube-router on Kubernetes Slack.