Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: release helm charts to grafana/helm-charts #1734

Merged
merged 1 commit into from
Nov 4, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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"
Loading