71 lines
2.3 KiB
YAML
71 lines
2.3 KiB
YAML
name: Helm Template Deployment
|
|
description: Template a Helm chart for a deployment in a Kubernetes cluster
|
|
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
|
|
env:
|
|
REGISTRY: ${{ inputs.REGISTRY }}
|
|
REGISTRY_USERNAME: ${{ inputs.REGISTRY_USERNAME }}
|
|
REGISTRY_TOKEN: ${{ inputs.REGISTRY_TOKEN }}
|
|
run: |
|
|
echo "$REGISTRY_TOKEN" | helm registry login "$REGISTRY" \
|
|
--username "$REGISTRY_USERNAME" \
|
|
--password-stdin
|
|
|
|
- name: Helm Template
|
|
shell: sh
|
|
env:
|
|
DEPLOYMENT_NAME: ${{ inputs.DEPLOYMENT_NAME }}
|
|
DEPLOYMENT_NAMESPACE: ${{ inputs.DEPLOYMENT_NAMESPACE }}
|
|
CHART_PATH: ${{ inputs.CHART_PATH }}
|
|
VALUES_FILE: ${{ inputs.VALUES_FILE }}
|
|
IMAGE_PATH: ${{ inputs.IMAGE_PATH }}
|
|
IMAGE_TAG: ${{ inputs.IMAGE_TAG }}
|
|
TAG_KEY: ${{ inputs.TAG_KEY }}
|
|
run: |
|
|
NAMESPACE="$DEPLOYMENT_NAMESPACE"
|
|
if [ -z "$NAMESPACE" ]; then NAMESPACE="$DEPLOYMENT_NAME"; fi
|
|
SET_FLAGS=""
|
|
if [ -n "$TAG_KEY" ] && [ -n "$IMAGE_TAG" ]; then
|
|
SET_FLAGS="$SET_FLAGS --set $TAG_KEY=$IMAGE_TAG"
|
|
fi
|
|
if [ -n "$IMAGE_PATH" ]; then
|
|
SET_FLAGS="$SET_FLAGS --set image.repository=$IMAGE_PATH"
|
|
fi
|
|
helm dependency update "$CHART_PATH"
|
|
helm template "$DEPLOYMENT_NAME" "$CHART_PATH" -n "$NAMESPACE" --values "$VALUES_FILE" $SET_FLAGS
|