The chart bundles nine independently versioned upstreams, and eight of them were already pinned in values.yaml while only gluetun took its tag from appVersion. That split had no upside: it made gluetun the one image Renovate could not reach through the built-in helm-values manager, and it implied a "main app" the stack does not have. gluetun now carries gluetun.image.repository/tag like every other image, and the StatefulSet renders it from there. No tag comes from appVersion any more. Renovate picks all nine up through helm-values - the manager the repo already relies on for sidecar images - and ci/renovate-bump-chart.sh bumps the chart version with each update. Consequences, all documented where they bite: - renovate.json5 deliberately gets no app-version block for this chart. One would either duplicate the helm-values updates or rewrite an appVersion that selects no image. The absence is commented so it does not read as an oversight. - freesailarr leaves the change-app-version.yml choice list. That workflow rewrites appVersion and republishes, which for this chart would change no deployed image at all. - appVersion becomes a hand-maintained marker for the gluetun line. Since renovate-bump-chart.sh bumps the patch level on an unchanged appVersion, a gluetun update has to be paired with a hand edit of appVersion, or the +up suffix stops describing what the chart deploys. Noted in Chart.yaml, values.yaml and README.
102 lines
3.8 KiB
YAML
102 lines
3.8 KiB
YAML
name: Change App-Version
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
app-version:
|
|
required: true
|
|
type: string
|
|
description: "change the version of the underlying application"
|
|
chart-location:
|
|
required: false
|
|
type: string
|
|
default: "."
|
|
description: "location of the helm chart"
|
|
chart-name:
|
|
required: true
|
|
type: choice
|
|
description: "helm chart to be updated"
|
|
options:
|
|
- zipline
|
|
- calibre-web-automated
|
|
- samba
|
|
- teamspeak-server
|
|
- urlaubsverwaltung
|
|
- apache-tika
|
|
- gotenberg
|
|
- homeassistant
|
|
- satisfactory
|
|
- cyberchef
|
|
- matrix-synapse
|
|
- outline
|
|
- paperless-ngx
|
|
- patchmon
|
|
- rallly
|
|
- voucher-vault
|
|
- minecraft-router
|
|
- minecraft-server
|
|
- rss-bridge
|
|
# freesailarr is deliberately absent: none of its nine images takes
|
|
# its tag from appVersion (they are all pinned in its values.yaml),
|
|
# so this workflow would rewrite appVersion and republish the chart
|
|
# without changing a single deployed image. Update its images through
|
|
# a Renovate PR, and its appVersion by hand.
|
|
workflow_call:
|
|
inputs:
|
|
app-version:
|
|
required: true
|
|
type: string
|
|
description: "change the version of the underlying application"
|
|
chart-location:
|
|
required: false
|
|
type: string
|
|
default: "."
|
|
description: "location of the helm chart"
|
|
chart-name:
|
|
required: true
|
|
type: string
|
|
description: "name of the helm chart"
|
|
|
|
jobs:
|
|
change-app-version:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: "Configure OP-Connect"
|
|
uses: 1password/load-secrets-action/configure@v5
|
|
with:
|
|
connect-host: https://op-connect.jk-dev.de
|
|
- name: "Load GitHub Credentials"
|
|
id: load-jk-cluster-bot-creds
|
|
uses: 1password/load-secrets-action@v5
|
|
env:
|
|
OP_CONNECT_TOKEN: ${{ secrets.OP_CONNECT_TOKEN }}
|
|
JK_CLUSTER_BOT_TOKEN: op://GitHub-Actions/github-helm-charts-push-token/credential
|
|
JK_CLUSTER_USERNAME: op://GitHub-Actions/github-helm-charts-push-token/username
|
|
JK_CLUSTER_EMAIL: op://GitHub-Actions/github-helm-charts-push-token/email
|
|
- uses: actions/checkout@v7
|
|
with:
|
|
token: ${{ env.JK_CLUSTER_BOT_TOKEN }}
|
|
- name: "Get Chart Version"
|
|
run: |
|
|
CHART_VERSION=$(grep '^version:' ${{ inputs.chart-name }}/Chart.yaml | awk '{print $2}')
|
|
CHART_PART=$(echo $CHART_VERSION | cut -d'+' -f1)
|
|
echo "CHART_VERSION=$CHART_PART" >> $GITHUB_ENV
|
|
working-directory: ${{ inputs.chart-location }}
|
|
- name: "Get new Chart Version"
|
|
run: |
|
|
APP_VERSION_NORMALIZED=$(echo "${{ inputs.app-version }}" | tr '-' '.')
|
|
NEW_VERSION="${CHART_VERSION}+up${APP_VERSION_NORMALIZED}"
|
|
sed -i "s/^version:.*/version: $NEW_VERSION/" ${{ inputs.chart-name }}/Chart.yaml
|
|
sed -i "s/^appVersion:.*/appVersion: ${{ inputs.app-version }}/" ${{ inputs.chart-name }}/Chart.yaml
|
|
working-directory: ${{ inputs.chart-location }}
|
|
- name: "View chart-directory contents"
|
|
run: ls -al
|
|
working-directory: ${{ inputs.chart-location }}
|
|
- name: "View helm-chart.yaml"
|
|
run: cat Chart.yaml
|
|
working-directory: ${{ inputs.chart-location }}/${{ inputs.chart-name }}
|
|
- name: Commit and Push Changes
|
|
run: |
|
|
git config --global user.name '${{ env.JK_CLUSTER_USERNAME }}'
|
|
git config --global user.email '${{ env.JK_CLUSTER_EMAIL }}'
|
|
git commit -am "Updated ${{ inputs.chart-name }} application version to ${{ inputs.app-version }}"
|
|
git push |