Make plugin dir match Go conventions.

This commit is contained in:
jregan
2019-04-23 23:16:23 -07:00
parent 0ac48f60a5
commit cfb0c5efad
16 changed files with 29 additions and 12 deletions

View File

@@ -0,0 +1,77 @@
#!/bin/bash
set -e
# Helm chart inflator
# Reads a file like this
#
# apiVersion: kustomize.config.k8s.io/v1
# kind: ChartInflatorExec
# metadata:
# name: notImportantHere
# chart: chartName
# values: /absolute/path/to/values/file
# helmBin: /absolute/path/to/helmBin
#
# fetches the given chart from stable/$chartName,
# and inflates it to stdout, using the given values file.
#
# Example execution:
# ./plugins/kustomize.config.k8s.io/v1/ChartInflatorExec configFile.yaml
# Yaml parsing is a ridiculous thing to do in bash,
# but let's try:
function parseYaml {
local file=$1
while read -r line
do
local k=${line%:*}
local v=${line#*:}
[ "$k" == "chart" ] && chartName=$v
[ "$k" == "values" ] && valuesFile=$v
[ "$k" == "helmBin" ] && helmBin=$v
done <"$file"
# Trim leading space
chartName="${chartName#"${chartName%%[![:space:]]*}"}"
valuesFile="${valuesFile#"${valuesFile%%[![:space:]]*}"}"
helmBin="${helmBin#"${helmBin%%[![:space:]]*}"}"
}
TMP_DIR=$(mktemp -d)
# Where all the files generated by 'helm init' live.
HELM_HOME=$TMP_DIR/dotHelm
# Where helm charts are unpacked.
CHART_HOME=$TMP_DIR/charts
parseYaml $1
if [ -z "$helmBin" ]; then
helmBin=/usr/local/bin/helm
fi
if [ -z "$valuesFile" ]; then
valuesFile=$CHART_HOME/$chartName/values.yaml
fi
function doHelm {
$helmBin --home $HELM_HOME $@
}
# The init command is extremely chatty
doHelm init --client-only >& /dev/null
doHelm fetch --untar \
--untardir $CHART_HOME \
stable/$chartName
doHelm template \
--values $valuesFile \
$CHART_HOME/$chartName
/bin/rm -rf $TMP_DIR