Skip to content

Commit

Permalink
feat: release helm charts to grafana/helm-charts
Browse files Browse the repository at this point in the history
  • Loading branch information
theSuess committed Nov 4, 2024
1 parent d3f95e4 commit 7ab5730
Show file tree
Hide file tree
Showing 4 changed files with 81 additions and 14 deletions.
67 changes: 65 additions & 2 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,23 @@ permissions:
contents: write
packages: write

env:
CR_INDEX_PATH: "${{ github.workspace }}/.cr-index"
CR_TOOL_PATH: "${{ github.workspace }}/.cr-tool"

jobs:
helm:
runs-on: ubuntu-latest
steps:
- name: Clone repo
- name: Checkout
uses: actions/checkout@v4
with:
path: source

- name: Install Helm
uses: azure/setup-helm@v4
with:
version: v3.16.2

- name: Prepare
run: |
Expand All @@ -26,12 +37,64 @@ jobs:
- name: Publish Helm charts
run: |
cd deploy/helm
cd source/deploy/helm
yq -i '.image.repository = "${{ env.GHCR_REPO }}"' grafana-operator/values.yaml
helm registry login -u ${{ github.actor }} -p ${{ secrets.GITHUB_TOKEN }} ghcr.io
helm package --app-version ${{ github.ref_name }} --version ${{ github.ref_name }} grafana-operator
helm push grafana-operator-${{ github.ref_name }}.tgz ${{ env.HELM_REPO }}
- name: Install CR tool
run: |
mkdir "${CR_TOOL_PATH}"
mkdir "${CR_INDEX_PATH}"
curl -sSLo cr.tar.gz "https://github.com/helm/chart-releaser/releases/download/v1.4.0/chart-releaser_1.4.0_linux_amd64.tar.gz"
tar -xzf cr.tar.gz -C "${CR_TOOL_PATH}"
rm -f cr.tar.gz
- name: Create a GitHub App installation access token
uses: tibdex/github-app-token@v2
id: app-token
with:
app_id: ${{ secrets.GRAFANA_OPERATOR_HELM_RELEASE_APP_ID }}
private_key: ${{ secrets.GRAFANA_OPERATOR_HELM_RELEASE_PEM_KEY }}

- name: Set the correct token (Github App or PAT)
run: |
echo "AUTHTOKEN=${{ steps.app-token.outputs.token }}" >> $GITHUB_ENV
- name: Make github release
uses: softprops/action-gh-release@v1
with:
body: |
Helm chart for the [grafana-operator](https://github.com/${{ github.repository }}
Tag on source: https://github.com/${{ github.repository }}/releases/tag/${{ github.ref_name }}
files: |
source/deploy/helm/grafana-operator-${{ github.ref_name }}.tgz
repository: grafana/helm-charts
tag_name: grafana-operator-${{ github.ref_name }}
token: ${{ env.AUTHTOKEN }}

- name: Checkout helm-charts
uses: actions/checkout@v4
with:
fetch-depth: 0
repository: grafana/helm-charts
path: helm-charts
token: ${{ env.AUTHTOKEN }}

- name: Configure Git for helm-charts
run: |
cd helm-charts
git config user.name "$GITHUB_ACTOR"
git config user.email "[email protected]"
- name: Update helm repo index.yaml
run: |
cd helm-charts
"${CR_TOOL_PATH}/cr" index --config ../source/deploy/helm/cr.yaml --token "${{ env.AUTHTOKEN }}" --index-path "${CR_INDEX_PATH}" --package-path ../source/deploy/helm/grafana-operator-${{ github.ref_name }}.tgz --push
kustomize:
runs-on: ubuntu-latest
steps:
Expand Down
8 changes: 8 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -420,3 +420,11 @@ API_REF_GEN=$(GOBIN)/crdoc
else
API_REF_GEN=$(shell which crdoc)
endif

.PHONY: prep-release
prep-release: yq
$(YQ) -i '.version="v$(VERSION)"' deploy/helm/grafana-operator/Chart.yaml
$(YQ) -i '.appVersion="v$(VERSION)"' deploy/helm/grafana-operator/Chart.yaml
$(YQ) -i '.params.version="v$(VERSION)"' hugo/config.yaml
sed -i 's/--version v5.*/--version v$(VERSION)/g' README.md
make helm/docs
4 changes: 4 additions & 0 deletions deploy/helm/cr.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
git-repo: helm-charts
owner: grafana
skip-existing: true

16 changes: 4 additions & 12 deletions deploy/helm/grafana-operator/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
apiVersion: v2
name: grafana-operator
description: A Helm chart for Kubernetes

description: Helm chart for the Grafana Operator
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
Expand All @@ -11,14 +10,7 @@ description: A Helm chart for Kubernetes
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application

# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.3.0

# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
# We keep the version and appVersion in sync as most updates also include
# changes to the CRDs which are bundled with the helm resources
version: v5.14.0
appVersion: "v5.14.0"

0 comments on commit 7ab5730

Please sign in to comment.