blob: 8635257adb9bf665690bada738c617d664635740 [file] [log] [blame]
giolekvaf2550252020-12-15 16:12:44 +04001__HELM_INSTALL_TMPL = """
2#!/bin/sh
3# --- begin runfiles.bash initialization ---
4# Copy-pasted from Bazel's Bash runfiles library (tools/bash/runfiles/runfiles.bash).
5set -euo pipefail
giolekvacf9a48b2020-12-16 19:17:48 +04006if [[ ! -d "\$${{RUNFILES_DIR:-/dev/null}}" && ! -f "\$${{RUNFILES_MANIFEST_FILE:-/dev/null}}" ]]; then
7 if [[ -f "\$$0.runfiles_manifest" ]]; then
8 export RUNFILES_MANIFEST_FILE="\$$0.runfiles_manifest"
9 elif [[ -f "\$$0.runfiles/MANIFEST" ]]; then
10 export RUNFILES_MANIFEST_FILE="\$$0.runfiles/MANIFEST"
11 elif [[ -f "\$$0.runfiles/bazel_tools/tools/bash/runfiles/runfiles.bash" ]]; then
12 export RUNFILES_DIR="\$$0.runfiles"
giolekvaf2550252020-12-15 16:12:44 +040013 fi
14fi
giolekvacf9a48b2020-12-16 19:17:48 +040015if [[ -f "\$${{RUNFILES_DIR:-/dev/null}}/bazel_tools/tools/bash/runfiles/runfiles.bash" ]]; then
16 source "\$${{RUNFILES_DIR}}/bazel_tools/tools/bash/runfiles/runfiles.bash"
17elif [[ -f "\$${{RUNFILES_MANIFEST_FILE:-/dev/null}}" ]]; then
18 source "\$$(grep -m1 "^bazel_tools/tools/bash/runfiles/runfiles.bash " \
19 "\$$RUNFILES_MANIFEST_FILE" | cut -d ' ' -f 2-)"
giolekvaf2550252020-12-15 16:12:44 +040020else
21 echo >&2 "ERROR: cannot find @bazel_tools//tools/bash/runfiles:runfiles.bash"
22 exit 1
23fi
24# --- end runfiles.bash initialization ---
giolekvacf9a48b2020-12-16 19:17:48 +040025CHART_TARBALL=\$$(rlocation __main__/{package}/{chart})
26helm --namespace={namespace} install --create-namespace {release_name} \$$CHART_TARBALL {args}
giolekvaf2550252020-12-15 16:12:44 +040027"""
28
giolekva1d806492020-12-16 14:13:38 +040029__HELM_UNINSTALL_TMPL = """
30helm --namespace={namespace} uninstall {release_name}
31"""
32
giolekvaf2550252020-12-15 16:12:44 +040033def helm_install(name, namespace, release_name, chart, args):
34 args_str = ""
35 for arg, value in args.items():
36 args_str += "--set %s=%s " % (arg, value)
37 native.genrule(
giolekva0c083372020-12-16 14:54:27 +040038 name = "%s.sh" % name,
39 executable = False,
40 srcs = [chart],
41 outs = ["helm_install.sh"],
42 cmd = """cat > $@ <<EOM
giolekvaf2550252020-12-15 16:12:44 +040043%s
44EOM
45""" % __HELM_INSTALL_TMPL.format(
giolekva0c083372020-12-16 14:54:27 +040046 namespace = namespace,
47 release_name = release_name,
48 package = native.package_name(),
49 chart = "%s.tar.gz" % chart.split(":")[1],
50 args = args_str,
51 ),
52 )
giolekvaf2550252020-12-15 16:12:44 +040053 native.sh_binary(
giolekva0c083372020-12-16 14:54:27 +040054 name = name,
55 srcs = ["helm_install.sh"],
56 data = [
57 chart,
58 ],
59 deps = [
60 "@bazel_tools//tools/bash/runfiles",
61 ],
62 )
giolekva1d806492020-12-16 14:13:38 +040063
64def helm_uninstall(name, namespace, release_name):
65 native.genrule(
giolekva0c083372020-12-16 14:54:27 +040066 name = "%s.sh" % name,
67 executable = False,
68 outs = ["helm_uninstall.sh"],
69 cmd = """cat > $@ <<EOM
giolekva1d806492020-12-16 14:13:38 +040070%s
71EOM
72""" % __HELM_UNINSTALL_TMPL.format(
giolekva0c083372020-12-16 14:54:27 +040073 namespace = namespace,
74 release_name = release_name,
75 ),
76 )
giolekva1d806492020-12-16 14:13:38 +040077 native.sh_binary(
giolekva0c083372020-12-16 14:54:27 +040078 name = name,
79 srcs = ["helm_uninstall.sh"],
giolekva1d806492020-12-16 14:13:38 +040080 )