blob: d74b84776d53edd1733dba4226f7a3f197c0c12c [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 " \t "\\$$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}
"""
__HELM_UNINSTALL_TMPL = """
helm --namespace={namespace} uninstall {release_name}
"""
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",
],
)
def helm_uninstall(name, namespace, release_name):
native.genrule(
name = "%s.sh" % name,
executable = False,
outs = ["helm_uninstall.sh"],
cmd = """cat > $@ <<EOM
%s
EOM
""" % __HELM_UNINSTALL_TMPL.format(
namespace = namespace,
release_name = release_name,
),
)
native.sh_binary(
name = name,
srcs = ["helm_uninstall.sh"],
)