Files
netbird-kubernetes-operator/.github/workflows/release.yaml
T
Philip LaineandGitHub ae34898735 Rename Helm chart and Docker image and move to GHCR (#233)
This change does a few things, none of these are breaking.

It changes the registry from Docker Hub to GHCR, as we dont have the
same rate limiting issues with unauthenticated pulls.

It changes the release process to push the Helm chart as an OCI artifact
removing the need for GH pages.

It renames both the image and chart from kubernetes-operator to
netbird-operator. This name is cleaner and easier for people to
understand in a sea of Helm charts. Funnily enough this is not a
breaking change as the release name is used and not the chart name. So
in place upgrades just work.

Fixes #207

Signed-off-by: Philip Laine <philip.laine@gmail.com>
2026-05-06 12:26:32 +02:00

61 lines
2.1 KiB
YAML

name: release
on:
push:
tags:
- "v*"
permissions:
contents: read
packages: write
id-token: write
defaults:
run:
shell: bash
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Clone the code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd #v6.0.2
- name: Setup Go
uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c #v6.4.0
with:
go-version-file: go.mod
- name: Set up Docker
uses: docker/setup-docker-action@b2189fbf2a6592b51fee7cdd93ee2bfaeba733db #v5.1.0
with:
daemon-config: |
{
"features": {
"containerd-snapshotter": true
}
}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd #v4.0.0
with:
driver: docker
- name: Login to GitHub Container Registry
uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 #v4.1.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Prepare versions
id: prep
run: |
IMG_TAG="${GITHUB_REF_NAME}"
if [[ "${{ github.ref_type }}" == "tag" ]]; then
HELM_VERSION=${GITHUB_REF_NAME#v}
else
HELM_VERSION="0.0.0-${GITHUB_REF_NAME}"
fi
echo "IMG_TAG=${IMG_TAG}" >> $GITHUB_OUTPUT
echo "HELM_VERSION=${HELM_VERSION}" >> $GITHUB_OUTPUT
- name: Build and push image
run: |
IMG_REF=$(make build-image-multiarch IMG_REPOSITORY=${{ github.repository_owner }}/netbird-operator IMG_TAG=${{ steps.prep.outputs.IMG_TAG }}) || exit 1
docker push ${IMG_REF}
- name: Build and push Helm chart
run: |
helm package --app-version ${{ steps.prep.outputs.IMG_TAG }} --version ${{ steps.prep.outputs.HELM_VERSION }} charts/netbird-operator
helm push netbird-operator-${{ steps.prep.outputs.HELM_VERSION }}.tgz oci://ghcr.io/${{ github.repository_owner }}/helm-charts