Skip to content

Latest commit

 

History

History
187 lines (115 loc) · 6.02 KB

File metadata and controls

187 lines (115 loc) · 6.02 KB
.. only:: not (epub or latex or html)

    WARNING: You are looking at unreleased Cilium documentation.
    Please use the official rendered version released here:
    https://docs.cilium.io

Generic Release Process

This process applies to all releases other than feature releases, this includes:

  • Stable releases

If you intent to release a new feature release, see the :ref:`minor_release_process` section instead.

Note

The following commands have been validated when ran in the VM used in the Cilium development process. See :ref:`dev_env` for detailed instructions about setting up said VM.

  1. Ensure that the necessary backports have been completed and merged. See :ref:`backport_process`.

    1. Update GitHub project and create vX.Y.Z+1 project if applicable.
    2. Update PRs / issues that were added to the vX.Y.Z project, but didn't make it into this release into the vX.Y.Z+1 project.
  2. Checkout the desired stable branch and pull it:

    git checkout v1.0; git pull
    
  3. Create a branch for the release pull request:

    git checkout -b pr/prepare-v1.0.3
    
  4. Update the VERSION file to represent X.Y.Z+1

  5. If this is the first release after creating a new release branch. Adjust the image pull policy for all .sed files in install/kubernetes/cilium/values.yaml from Always to IfNotPresent.

  6. Update Helm chart documentation

    1. Update version and appVersion in install/kubernetes/cilium/Chart.yaml
    2. Update version tag in install/kubernetes/cilium/values.yaml
  7. Update the image tag versions in the examples:

    make -C install/kubernetes clean all
    
  8. Update the cilium_version and cilium_tag variables in examples/getting-started/Vagrantfile

  9. Update the AUTHORS file

    make update-authors
    

    Note

    Check to see if the AUTHORS file has any formatting errors (for instance, indentation mismatches) as well as duplicate contributor names, and correct them accordingly.

  10. Generate the release notes by running the instructions provided in github.com/cilium/release

  11. Add the generated release notes in the CHANGELOG.md file

  12. Create a new project named "X.Y.Z+1" to automatically track the backports for that particular release. Direct Link:

  13. Update the project URL for the respective release in file .github/cilium-actions.yml

  14. Add all modified files using git add and create a pull request with the title Prepare for release v1.0.3. Add the backport label to the PR which corresponds to the branch for which the release is being performed, e.g. backport/1.0.

    Note

    Make sure to create the PR against the desired stable branch. In this case v1.0

  15. Follow standard procedures to get the aforementioned PR merged into the desired stable branch. See :ref:`submit_pr` for more information about this process.

  16. Checkout out the stable branch and pull your merged changes:

    git checkout v1.0; git pull
    
  17. Build the container images and push them

    DOCKER_IMAGE_TAG=v1.0.3 make docker-image
    docker push cilium/cilium:v1.0.3
    
  18. Create release tags:

    git tag -a v1.0.3 -m 'Release v1.0.3'
    git tag -a 1.0.3 -m 'Release 1.0.3'
    

    Note

    There are two tags that correspond to the same release because GitHub recommends using vx.y.z for release version formatting, and ReadTheDocs, which hosts the Cilium documentation, requires the version to be in format x.y.z For more information about how ReadTheDocs does versioning, you can read their Versions Documentation.

  19. Push the git release tag

    git push --tags
    
  20. Build the binaries and push it to the release bucket:

    DOMAIN=releases.cilium.io ./contrib/release/uploadrev v1.0.3
    

    This step will print a markdown snippet which you will need when crafting the GitHub release so make sure to keep it handy.

  21. Create a GitHub release:

    1. Choose the correct target branch, e.g. v1.0
    2. Choose the correct target tag, e.g. v1.0.3
    3. Title: 1.0.3
    4. Check the This is a pre-release box if you are releasing a release candidate.
    5. Fill in the release description with the output generated by github.com/cilium/release
    6. Preview the description and then publish the release
  22. Announce the release in the #general channel on Slack

  23. Update the README.rst#stable-releases section from the Cilium master branch

  24. Update the .github/cilium-actions.yml with the project created for the upcoming release.

  25. Bump the version of Cilium used in the Cilium upgrade tests to use the new release

    Please reach out on the #development channel on Slack for assistance with this task.

  26. Update the stable tags for cilium, cilium-operator, cilium-docker-plugin and hubble-relay on DockerHub.

  27. Update the external tools and guides to point to the released Cilium version: