From d40431fb35a92c67a4a067dababd91bc77f73af3 Mon Sep 17 00:00:00 2001 From: Deac Date: Fri, 29 May 2026 12:10:03 -0400 Subject: [PATCH] combine helm image set and upgrade --- Makefile | 1 - README.md | 3 +-- helm/README.md | 1 - helm/set_deployment_image/README.md | 28 --------------------- helm/set_deployment_image/action.yml | 37 ---------------------------- helm/upgrade/README.md | 8 ++++-- helm/upgrade/action.yml | 29 +++++++++++++++++++--- 7 files changed, 32 insertions(+), 75 deletions(-) delete mode 100644 helm/set_deployment_image/README.md delete mode 100644 helm/set_deployment_image/action.yml diff --git a/Makefile b/Makefile index ed2c1f4..c4c9f05 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,6 @@ ACTIONS := \ node \ git/create_tag \ helm/diff \ - helm/set_deployment_image \ helm/template \ helm/upgrade \ infisical/fetch-secret \ diff --git a/README.md b/README.md index 39eee83..b3f8b1e 100644 --- a/README.md +++ b/README.md @@ -21,9 +21,8 @@ Reusable composite actions for Gitea CI/CD pipelines. | Action | Description | |---|---| | [helm/diff](helm/diff/README.md) | Diff a Helm chart against a running deployment | -| [helm/set_deployment_image](helm/set_deployment_image/README.md) | Set the image for a Kubernetes deployment via Helm | | [helm/template](helm/template/README.md) | Render a Helm chart for a deployment | -| [helm/upgrade](helm/upgrade/README.md) | Log in to an OCI registry and run `helm upgrade` for the chart in the current directory | +| [helm/upgrade](helm/upgrade/README.md) | Log in to an OCI registry, update chart dependencies, and run `helm upgrade` | ### Infisical diff --git a/helm/README.md b/helm/README.md index d0330bd..a86088d 100644 --- a/helm/README.md +++ b/helm/README.md @@ -5,6 +5,5 @@ Composite actions for managing Helm chart deployments. | action | description | | --- | --- | | [diff](diff/README.md) | Diff a Helm chart for a deployment in a Kubernetes cluster | -| [set_deployment_image](set_deployment_image/README.md) | Set the image for a deployment in a Kubernetes cluster | | [template](template/README.md) | Template a Helm chart for a deployment in a Kubernetes cluster | | [upgrade](upgrade/README.md) | Login to an OCI registry, update chart dependencies, and run helm upgrade | diff --git a/helm/set_deployment_image/README.md b/helm/set_deployment_image/README.md deleted file mode 100644 index 17b222b..0000000 --- a/helm/set_deployment_image/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# Helm Upgrade Deployment Image - - -## Description - -Set the image for a deployment in a Kubernetes - - - -## Inputs - -| name | description | required | default | -| --- | --- | --- | --- | -| `DEPLOYMENT_NAME` |

The Kubernetes Deployment to update

| `true` | `""` | -| `DEPLOYMENT_NAMESPACE` |

The Kubernetes namespace of the Deployment

| `true` | `""` | -| `IMAGE_PATH` |

The registry path to the image

| `true` | `""` | -| `IMAGE_TAG` |

The image tag to deploy

| `true` | `""` | -| `CONTAINER_NAME` |

The container component to update

| `true` | `""` | -| `VALUES_FILE` |

The values file to use

| `false` | `./helm/values.yaml` | -| `CHART_PATH` |

Path to the Helm chart

| `false` | `./helm` | -| `TAG_KEY` |

Helm --set key for the image tag (e.g. deploy.api.tag)

| `true` | `""` | - - - -## Runs - -This action is a `composite` action. - diff --git a/helm/set_deployment_image/action.yml b/helm/set_deployment_image/action.yml deleted file mode 100644 index 107162b..0000000 --- a/helm/set_deployment_image/action.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: Helm Upgrade Deployment Image -description: Set the image for a deployment in a Kubernetes -inputs: - DEPLOYMENT_NAME: - description: "The Kubernetes Deployment to update" - required: true - DEPLOYMENT_NAMESPACE: - description: "The Kubernetes namespace of the Deployment" - required: true - IMAGE_PATH: - description: "The registry path to the image" - required: true - IMAGE_TAG: - description: "The image tag to deploy" - required: true - CONTAINER_NAME: - description: "The container component to update" - required: true - VALUES_FILE: - description: "The values file to use" - default: "./helm/values.yaml" - CHART_PATH: - description: "Path to the Helm chart" - default: "./helm" - TAG_KEY: - description: "Helm --set key for the image tag (e.g. deploy.api.tag)" - required: true - -runs: - using: composite - steps: - - name: Helm Set Image - shell: sh - run: | - CMD="helm upgrade ${{ inputs.DEPLOYMENT_NAME }} ${{ inputs.CHART_PATH }} -n ${{ inputs.DEPLOYMENT_NAMESPACE }} --values ${{ inputs.VALUES_FILE }} --set ${TAG_KEY}=${{ inputs.IMAGE_TAG }} --set image.repository=${{ inputs.IMAGE_PATH }}" - echo "Running: $CMD" - eval "$CMD" \ No newline at end of file diff --git a/helm/upgrade/README.md b/helm/upgrade/README.md index 590c286..8e29b5b 100644 --- a/helm/upgrade/README.md +++ b/helm/upgrade/README.md @@ -3,7 +3,7 @@ ## Description -Login to an OCI registry, update chart dependencies, and run helm upgrade for the chart in the current directory +Login to an OCI registry, update chart dependencies, and run helm upgrade @@ -11,12 +11,16 @@ Login to an OCI registry, update chart dependencies, and run helm upgrade for th | name | description | required | default | | --- | --- | --- | --- | -| `DEPLOYMENT_NAME` |

The Helm release name and target namespace

| `true` | `""` | +| `DEPLOYMENT_NAME` |

The Helm release name

| `true` | `""` | +| `DEPLOYMENT_NAMESPACE` |

The Kubernetes namespace (defaults to DEPLOYMENT_NAME)

| `false` | `""` | | `REGISTRY` |

OCI registry hostname for helm dependency login

| `true` | `""` | | `REGISTRY_USERNAME` |

Username for OCI registry login

| `true` | `""` | | `REGISTRY_TOKEN` |

Token for OCI registry login

| `true` | `""` | | `CHART_PATH` |

Path to the Helm chart

| `false` | `./helm` | | `VALUES_FILE` |

The values file to use

| `false` | `./helm/values.yaml` | +| `IMAGE_PATH` |

The registry path to the image (optional)

| `false` | `""` | +| `IMAGE_TAG` |

The image tag to deploy (optional)

| `false` | `""` | +| `TAG_KEY` |

Helm --set key for the image tag (e.g. deploy.api.tag)

| `false` | `""` | diff --git a/helm/upgrade/action.yml b/helm/upgrade/action.yml index f6e14fc..35abb50 100644 --- a/helm/upgrade/action.yml +++ b/helm/upgrade/action.yml @@ -1,9 +1,12 @@ name: Helm Upgrade -description: Login to an OCI registry, update chart dependencies, and run helm upgrade for the chart in the current directory +description: Login to an OCI registry, update chart dependencies, and run helm upgrade inputs: DEPLOYMENT_NAME: - description: "The Helm release name and target namespace" + 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 @@ -19,6 +22,15 @@ inputs: 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 @@ -33,9 +45,18 @@ runs: - 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 ${{ inputs.DEPLOYMENT_NAME }} --values ${{ inputs.VALUES_FILE }}" - helm upgrade ${{ inputs.DEPLOYMENT_NAME }} ${{ inputs.CHART_PATH }} -n ${{ inputs.DEPLOYMENT_NAME }} --values ${{ inputs.VALUES_FILE }} + 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()