- Find the latest release:
https://github.com/kubernetes-sigs/aws-ebs-csi-driver/releases. For example,
v1.3.1
. (Ignore helm releases prefixed byhelm-chart
likehelm-chart-aws-ebs-csi-driver-2.5.0
). - Increment the version according to semantic versioning https://semver.org/.
For example, for a release that only contains bug fixes or an updated Amazon
Linux 2 base image,
v1.3.2
. - Find or create the corresponding release branch. Release branches correspond
to minor version. For example, for
v1.3.2
the release branch would berelease-1.3
and it would already exist. Forv1.4.0
it would berelease-1.4
and the branch would need to be created. If you do not have permission to create the branch, ask an OWNER to do it https://github.com/kubernetes-sigs/aws-ebs-csi-driver/blob/master/OWNERS.
Checkout the release branch you chose above, for example git checkout release-1.3
.
- Generate a Personal Access Token with
repos
permissions. - Run hack/release with arguments according to the version and branch you chose above:
--since
: the release version immediately preceding your chosen release version and the chosen release branch to generate the changelog. For example, for v1.3.2 pass--since v1.3.1
.--branch
: the release branch you chose. For example, for v1.3.2 pass--branch release-1.3
.
python3 hack/release --github-user=$GITHUB_USER --github-token=$GITHUB_TOKEN note --since $PREVIOUS_VERSION --branch $BRANCH
This will print the CHANGELOG to stdout. 3. Create a new section for the new version and copy the output there. Organize and prune the CHANGELOG at your own discretion. For example, release commits like "Release v1.3.3" are not useful and should be removed or put in a "Misc." section.
Search for any references to the previous version on the README, and update them if necessary.
Update the VERSION variable in the Makefile
At this point you should have all changes required for the release commit. Verify the changes via git diff
and send a new PR with the release commit against the release branch. Note that if it doesn't exist, you'll need someone with write privileges to create it for you.
Once the PR is merged, pull the release branch locally and tag the release commit with the relase tag. You'll need push privileges for this step.
git checkout release-0.7
git pull upstream release-0.7
git tag v0.7.0
git push upstream v0.7.0
The new tag should trigger a new Github release. It should be a pre-release true because images are not available yet and documentation, like README and CHANGELOG in master branch, does not yet reflect the new release. Verify that it has run by going to Releases. Then, click on the new version and verify all assets have been created:
- Source code (zip)
- Source code (tar.gz)
Promote the new images from the staging repo by sending a PR to the kubernetes/k8s.io repo. Here's an example PR.
Follow the AWS-internal process.
In GCR:
docker pull k8s.gcr.io/provider-aws/aws-ebs-csi-driver:v1.1.1
In ECR:
aws ecr get-login-password --region us-west-2 | docker login --username AWS --password-stdin 602401143452.dkr.ecr.us-west-2.amazonaws.com
docker pull 602401143452.dkr.ecr.us-west-2.amazonaws.com/eks/aws-ebs-csi-driver:v1.1.1
- Update Helm
appVersion
,version
,tag
, and CHANGELOG
charts/aws-ebs-csi-driver/Chart.yaml
charts/aws-ebs-csi-driver/values.yaml
charts/aws-ebs-csi-driver/CHANGELOG.md
- Update the kustomize overlays
deploy/kubernetes/overlays/stable/kustomization.yaml
deploy/kubernetes/overlays/stable/ecr/kustomization.yaml
- Run make generate-kustomize
The helm and kustomize deployment files must not be updated to refer to the new images until after the images have been verified available, therefore it's necessary to make these changes in a post-release PR rather than the original release PR.
Send a PR to merge both the release and post-release commits to the main branch.
Visit the Releases pages to verify we have a new helm chart release.
Now that images are available and documentation is updated, uncheck "This is a pre-release".
Update the AWS EKS documentation https://docs.aws.amazon.com/eks/latest/userguide/ebs-csi.html by submitting a PR https://github.com/awsdocs/amazon-eks-user-guide/blob/master/doc_source/ebs-csi.md. For example, if the release raises the Kubernetes version requirement then the doc must reflect that.