blob: 7b71492cbb1e22ab7316e691fab157e04eddc677 [file] [log] [blame]
__HELM_INSTALL_TMPL = """
#!/bin/sh
# --- begin runfiles.bash initialization ---
# Copy-pasted from Bazel's Bash runfiles library (tools/bash/runfiles/runfiles.bash).
set -euo pipefail
if [[ ! -d "\$${{RUNFILES_DIR:-/dev/null}}" && ! -f "\$${{RUNFILES_MANIFEST_FILE:-/dev/null}}" ]]; then
if [[ -f "\$$0.runfiles_manifest" ]]; then
export RUNFILES_MANIFEST_FILE="\$$0.runfiles_manifest"
elif [[ -f "\$$0.runfiles/MANIFEST" ]]; then
export RUNFILES_MANIFEST_FILE="\$$0.runfiles/MANIFEST"
elif [[ -f "\$$0.runfiles/bazel_tools/tools/bash/runfiles/runfiles.bash" ]]; then
export RUNFILES_DIR="\$$0.runfiles"
fi
fi
if [[ -f "\$${{RUNFILES_DIR:-/dev/null}}/bazel_tools/tools/bash/runfiles/runfiles.bash" ]]; then
source "\$${{RUNFILES_DIR}}/bazel_tools/tools/bash/runfiles/runfiles.bash"
elif [[ -f "\$${{RUNFILES_MANIFEST_FILE:-/dev/null}}" ]]; then
source "\$$(grep -m1 "^bazel_tools/tools/bash/runfiles/runfiles.bash " \
"\$$RUNFILES_MANIFEST_FILE" | cut -d ' ' -f 2-)"
else
echo >&2 "ERROR: cannot find @bazel_tools//tools/bash/runfiles:runfiles.bash"
exit 1
fi
# --- end runfiles.bash initialization ---
CHART_TARBALL=\$$(rlocation __main__/{package}/{chart})
helm --namespace={namespace} install --create-namespace {release_name} \$$CHART_TARBALL {args}
"""
def helm_install(name, namespace, release_name, chart, args):
args_str = ""
for arg, value in args.items():
args_str += "--set %s=%s " % (arg, value)
native.genrule(
name = "%s.sh" % name,
executable = False,
srcs = [chart,],
outs = ["helm_install.sh",],
cmd = """cat > $@ <<EOM
%s
EOM
""" % __HELM_INSTALL_TMPL.format(
namespace = namespace,
release_name = release_name,
package = native.package_name(),
chart = "%s.tar.gz" % chart.split(":")[1],
args = args_str,
))
native.sh_binary(
name = name,
srcs = ["helm_install.sh",],
data = [
chart,
],
deps = [
"@bazel_tools//tools/bash/runfiles",
])