From f241242f5de7846c02291b5c32f457f6a4fc5320 Mon Sep 17 00:00:00 2001 From: Robin Tang Date: Thu, 20 Jun 2024 11:39:48 -0700 Subject: [PATCH] Checkpoint. --- README.md | 14 ++++++-------- assets/common.sh | 16 ++++++++++++++-- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 0c60bd6..8186d79 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,10 @@ -# IMPORTANT - -https://github.com/Typositoire/concourse-helm3-resource/issues/102 - # Helm Resource for Concourse ![CI Build](https://concourse.pubb-it.com/api/v1/teams/main/pipelines/concourse-helm3-resource/jobs/build-image-tag/badge) Deploy [Helm Charts](https://github.com/helm/helm) from [Concourse](https://concourse-ci.org/). -Heavily based on the work of [`linkyard/concourse-helm-resource`][linkyard]. - -[linkyard]: https://github.com/linkyard/concourse-helm-resource +Heavily based on the work of [`linkyard/concourse-helm-resource`](https://github.com/linkyard/concourse-helm-resource). ## IMPORTANT NOTES @@ -23,6 +17,7 @@ Heavily based on the work of [`linkyard/concourse-helm-resource`][linkyard]. - Most of those have been fixed with v1.25.0 available in GHCR only ## Docker Image + You can pull the resource image from [`typositoire/concourse-helm3-resource`][dockerhub]. !["Dockerhub Pull Badge"](https://img.shields.io/docker/pulls/typositoire/concourse-helm3-resource.svg "Dockerhub Pull Badge") [dockerhub]: https://hub.docker.com/repository/docker/typositoire/concourse-helm3-resource @@ -31,7 +26,7 @@ You can pull the resource image from [`typositoire/concourse-helm3-resource`][do Starting with version 1.25.0, can you can no longer pull this resource from Docker Hub. -Starting with version 1.19.1, you can pull the resource from Github [`ghcr.io/typositoire/concourse-helm3-resource`][github packages]. Docker hub will eventually stop receiving new images. +Starting with version 1.19.1, you can pull the resource from GitHub [`ghcr.io/typositoire/concourse-helm3-resource`][github packages]. Docker hub will eventually stop receiving new images. [github packages]: https://github.com/Typositoire/concourse-helm3-resource/pkgs/container/concourse-helm3-resource @@ -64,6 +59,7 @@ resource_types: - `stable_repo`: _Optional_ A `"false"` (must be "string" not boolean) value will disable using a default Helm stable repo. Any other value will be used to Override default Helm stable repo URL . Useful if running helm deploys without internet access. - `tracing_enabled`: _Optional._ Enable extremely verbose tracing for this resource. Useful when developing the resource itself. May allow secrets to be displayed. (Default: false) - `helm_setup_purge_all`: _Optional._ Uninstalls and purge every helm release. Use with extreme caution. (Default: false) + - `env_vars`: _Optional._ A key/value pair of environment variables that will be set before running the helm command. This is useful for using different Helm storage options. ## Source options for Google Cloud @@ -169,6 +165,8 @@ resources: repos: - name: some_repo url: https://somerepo.github.io/charts + env_vars: + - HELM_DRIVER=sql ``` DigitalOcean diff --git a/assets/common.sh b/assets/common.sh index 046ce61..fc75c3a 100755 --- a/assets/common.sh +++ b/assets/common.sh @@ -205,14 +205,26 @@ setup_gcp_kubernetes() { setup_helm() { # $1 is the name of the payload file # $2 is the name of the source directory - - history_max=$(jq -r '.source.helm_history_max // "10"' < $1) helm_bin="helm" $helm_bin version + # Are there any environment variables? + # If so, we should iterate over them and set them. + env_vars=$(jq -c '.source.env_vars // {}' < "$1") + if [ "$env_vars" != "{}" ]; then + for key in $(echo "$env_vars" | jq -r 'keys[]'); do + value=$(echo "$env_vars" | jq -r --arg key "$key" '.[$key]') +# TODO: Remove echo once confirmed + echo "Setting environment variable $key=$value" + EXPORT "$key"="$value" + done + fi + + + helm_setup_purge_all=$(jq -r '.source.helm_setup_purge_all // "false"' <$1) if [ "$helm_setup_purge_all" = "true" ]; then local release