Files
gitea-actions/helm/upgrade/action.yml
T

65 lines
2.2 KiB
YAML

name: Helm Upgrade
description: Login to an OCI registry, update chart dependencies, and run helm upgrade
inputs:
DEPLOYMENT_NAME:
description: "The Helm release name"
required: true
DEPLOYMENT_NAMESPACE:
description: "The Kubernetes namespace (defaults to DEPLOYMENT_NAME)"
default: ""
REGISTRY:
description: "OCI registry hostname for helm dependency login"
required: true
REGISTRY_USERNAME:
description: "Username for OCI registry login"
required: true
REGISTRY_TOKEN:
description: "Token for OCI registry login"
required: true
CHART_PATH:
description: "Path to the Helm chart"
default: "./helm"
VALUES_FILE:
description: "The values file to use"
default: "./helm/values.yaml"
IMAGE_PATH:
description: "The registry path to the image (optional)"
default: ""
IMAGE_TAG:
description: "The image tag to deploy (optional)"
default: ""
TAG_KEY:
description: "Helm --set key for the image tag (e.g. deploy.api.tag)"
default: ""
runs:
using: composite
steps:
- name: Helm OCI Login
shell: sh
run: |
echo "${{ inputs.REGISTRY_TOKEN }}" | helm registry login ${{ inputs.REGISTRY }} \
--username ${{ inputs.REGISTRY_USERNAME }} \
--password-stdin
- name: Helm Upgrade
shell: sh
run: |
NAMESPACE="${{ inputs.DEPLOYMENT_NAMESPACE }}"
if [ -z "$NAMESPACE" ]; then NAMESPACE="${{ inputs.DEPLOYMENT_NAME }}"; fi
SET_FLAGS=""
if [ -n "${{ inputs.TAG_KEY }}" ] && [ -n "${{ inputs.IMAGE_TAG }}" ]; then
SET_FLAGS="$SET_FLAGS --set ${{ inputs.TAG_KEY }}=${{ inputs.IMAGE_TAG }}"
fi
if [ -n "${{ inputs.IMAGE_PATH }}" ]; then
SET_FLAGS="$SET_FLAGS --set image.repository=${{ inputs.IMAGE_PATH }}"
fi
helm dependency update ${{ inputs.CHART_PATH }}
echo "Running: helm upgrade ${{ inputs.DEPLOYMENT_NAME }} ${{ inputs.CHART_PATH }} -n ${NAMESPACE} --values ${{ inputs.VALUES_FILE }}${SET_FLAGS}"
helm upgrade ${{ inputs.DEPLOYMENT_NAME }} ${{ inputs.CHART_PATH }} -n ${NAMESPACE} --values ${{ inputs.VALUES_FILE }} $SET_FLAGS
- name: Remove kubeconfig
if: always()
shell: sh
run: rm -f ~/.kube/config