sigs.k8s.io/external-dns@v0.14.1/docs/release.md (about)

     1  # Release
     2  
     3  ## Release cycle
     4  
     5  Currently we don't release regularly. Whenever we think it makes sense to release a new version we do it, but we aim to do a new release every month. You might want to ask in our Slack channel [external-dns](https://kubernetes.slack.com/archives/C771MKDKQ) when the next release will come out.
     6  
     7  ## Versioning convention
     8  
     9  These are the conventions that we will be using for releases following `0.7.6`:
    10  
    11  - **Patch** version should be updated if we need to merge bugfixes, e.g. provider a does need a fix in order make updates working again. I would see updating or improving documentation here.
    12  
    13  - **Minor** version should be updated if new features are implemented in existing providers or new provider get introduced.
    14  
    15  - **Major** version should be upgraded if we introduce breaking changes.
    16  
    17  ## How to release a new image
    18  
    19  ### Prerequisite
    20  
    21  We use https://github.com/cli/cli to automate the release process. Please install it according to the [official documentation](https://github.com/cli/cli#installation).
    22  
    23  You must be an official maintainer of the project to be able to do a release.
    24  
    25  ### Steps
    26  
    27  - Run `scripts/releaser.sh` to create a new GitHub release. Alternatively you can create a release in the GitHub UI making sure to click on the autogenerate release node feature.
    28  - The step above will trigger the Kubernetes based CI/CD system [Prow](https://prow.k8s.io/?repo=kubernetes-sigs%2Fexternal-dns). Verify that a new image was built and uploaded to `gcr.io/k8s-staging-external-dns/external-dns`.
    29  - Create a PR in the [k8s.io repo](https://github.com/kubernetes/k8s.io) (see https://github.com/kubernetes/k8s.io/pull/540 for reference) by taking the current staging image using the sha256 digest. Once the PR is merged, the image will be live with the corresponding tag specified in the PR.
    30  - Verify that the image is pullable with the given tag (i.e. `v0.7.5`).
    31  - Branch out from the default branch and run `scripts/kustomize-version-updater.sh` to update the image tag used in the kustomization.yaml.
    32  - Create an issue to release the corresponding Helm chart via the chart release process (below) assigned to a chart maintainer
    33  - Create a PR with the kustomize change.
    34  - Create a PR to replace all versions for docker images in the tutorials. A possible script to use is `sd registry.k8s.io/external-dns/external-dns:v0.14.0
    35  - Once the PR is merged, all is done :-)
    36  
    37  ## How to release a new chart version
    38  
    39  The chart needs to be released in response to an ExternalDNS image release or on an as-needed basis; this should be triggered by an issue to release the chart.
    40  
    41  ### Steps
    42  
    43  - Create a PR to update _Chart.yaml_ with the ExternalDNS version in `appVersion`, agreed on chart release version in `version` and `annotations` showing the changes
    44  - Validate that the chart linting is successful
    45  - Merge the PR to trigger a GitHub action to release the chart