This document describes how to release the Equinix Metal (formerly Packet) infrastructure provider.
This is not intended for regular users.
This is normally performed by our CI system. However, there are important steps to take first.
In order to cut a release, you must:
-
Update packet-ci-actions.yaml and packet-ci.yaml to use the new version number for the current and/or new contract version of the packet InfrastructureProvider. (ie. v0.9.1)
-
If this is a new major or minor version - but not just a patch change:
- Update metadata.yaml to add it, and map it to the correct cluster-api contract version
- major: 0 minor: 10 contract: v1beta1
- Update packet-ci-actions.yaml and packet-ci.yaml to have a new "next" version number for the latest contract version of the packet InfrastructureProvider (ie. v0.11.99).
- Update clusterctl-settings.json to have the new "next" version number for the latest contract version of the packet InfrastructureProvider (ie. v0.11.99).
-
Review and update the versions of installed deployments like CPEM and kube-vip inside the templates.
-
Commit the changes.
-
Push out your branch, open a PR and merge the changes
-
Wait for the Continuous Integration github action to finish running
-
Tag the release with `git tag -a vX.Y.z -m "Message"
-
Push out the tag
- GitHub Actions detects a new tag has been pushed
- CI builds docker images for each supported architecture as well as a multi-arch manifest, and tags it with the semver tag of the release, e.g.
v0.4.0
- CI creates the release in
out/release
, the equivalent ofmake release
- CI copies the artifacts in
out/release/*
to the github releases