65 lines
2.2 KiB
YAML
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
|