From 271d0571484610d03ae8e7a7a67f21b432965ab2 Mon Sep 17 00:00:00 2001 From: Robin Tang Date: Thu, 20 Jun 2024 12:35:36 -0700 Subject: [PATCH] Supporting environment variables (#3) --- Dockerfile | 3 ++- Makefile | 2 +- README.md | 14 ++++++-------- VERSION | 2 +- assets/common.sh | 11 +++++++++-- 5 files changed, 19 insertions(+), 13 deletions(-) diff --git a/Dockerfile b/Dockerfile index b88aff9..c965aaa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,9 +8,10 @@ LABEL maintainer="Yann David (@Typositoire) " ARG KUBERNETES_VERSION=1.28.7 ARG GCLOUD_VERSION=416.0.0 ARG DOCTL_VERSION=1.57.0 -ARG AWSCLI_VERSION=2.13.25-r0 +ARG AWSCLI_VERSION=2.15.14-r0 ARG HELM_PLUGINS_TO_INSTALL="https://github.com/databus23/helm-diff" + #gcloud path ENV PATH $PATH:/usr/local/gcloud/google-cloud-sdk/bin diff --git a/Makefile b/Makefile index f8f0592..66f136e 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ PROJECT = concourse-helm3 -ID = YOUR_DOCKER_HOST_HERE/${PROJECT} +ID = artielabs/${PROJECT} VERSION = $(shell cat VERSION) 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/VERSION b/VERSION index 39fc130..bf50e91 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.36.0 +1.37.0 diff --git a/assets/common.sh b/assets/common.sh index 046ce61..40beb1c 100755 --- a/assets/common.sh +++ b/assets/common.sh @@ -205,14 +205,21 @@ 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, let's iterate over and them set it. + 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]') + 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