blob: d74b84776d53edd1733dba4226f7a3f197c0c12c [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
giolekva0c083372020-12-16 14:54:27 +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
giolekva0c083372020-12-16 14:54:27 +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 " \t "\\$$RUNFILES_MANIFEST_FILE" | cut -d ' ' -f 2-)"
giolekvaf2550252020-12-15 16:12:44 +040019else
20 echo >&2 "ERROR: cannot find @bazel_tools//tools/bash/runfiles:runfiles.bash"
21 exit 1
22fi
23# --- end runfiles.bash initialization ---
giolekva0c083372020-12-16 14:54:27 +040024CHART_TARBALL=\\$$(rlocation __main__/{package}/{chart})
25helm --namespace={namespace} install --create-namespace {release_name} \\$$CHART_TARBALL {args}
giolekvaf2550252020-12-15 16:12:44 +040026"""
27
giolekva1d806492020-12-16 14:13:38 +040028__HELM_UNINSTALL_TMPL = """
29helm --namespace={namespace} uninstall {release_name}
30"""
31
giolekvaf2550252020-12-15 16:12:44 +040032def helm_install(name, namespace, release_name, chart, args):
33 args_str = ""
34 for arg, value in args.items():
35 args_str += "--set %s=%s " % (arg, value)
36 native.genrule(
giolekva0c083372020-12-16 14:54:27 +040037 name = "%s.sh" % name,
38 executable = False,
39 srcs = [chart],
40 outs = ["helm_install.sh"],
41 cmd = """cat > $@ <<EOM
giolekvaf2550252020-12-15 16:12:44 +040042%s
43EOM
44""" % __HELM_INSTALL_TMPL.format(
giolekva0c083372020-12-16 14:54:27 +040045 namespace = namespace,
46 release_name = release_name,
47 package = native.package_name(),
48 chart = "%s.tar.gz" % chart.split(":")[1],
49 args = args_str,
50 ),
51 )
giolekvaf2550252020-12-15 16:12:44 +040052 native.sh_binary(
giolekva0c083372020-12-16 14:54:27 +040053 name = name,
54 srcs = ["helm_install.sh"],
55 data = [
56 chart,
57 ],
58 deps = [
59 "@bazel_tools//tools/bash/runfiles",
60 ],
61 )
giolekva1d806492020-12-16 14:13:38 +040062
63def helm_uninstall(name, namespace, release_name):
64 native.genrule(
giolekva0c083372020-12-16 14:54:27 +040065 name = "%s.sh" % name,
66 executable = False,
67 outs = ["helm_uninstall.sh"],
68 cmd = """cat > $@ <<EOM
giolekva1d806492020-12-16 14:13:38 +040069%s
70EOM
71""" % __HELM_UNINSTALL_TMPL.format(
giolekva0c083372020-12-16 14:54:27 +040072 namespace = namespace,
73 release_name = release_name,
74 ),
75 )
giolekva1d806492020-12-16 14:13:38 +040076 native.sh_binary(
giolekva0c083372020-12-16 14:54:27 +040077 name = name,
78 srcs = ["helm_uninstall.sh"],
giolekva1d806492020-12-16 14:13:38 +040079 )