blob: 6accf8b86adcdce32e1c0ca71df50544388e7c82 [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
6if [[ ! -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"
13 fi
14fi
15if [[ -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-)"
20else
21 echo >&2 "ERROR: cannot find @bazel_tools//tools/bash/runfiles:runfiles.bash"
22 exit 1
23fi
24# --- end runfiles.bash initialization ---
25CHART_TARBALL=\$$(rlocation __main__/{package}/{chart})
26helm --namespace={namespace} install --create-namespace {release_name} \$$CHART_TARBALL {args}
27"""
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(
38 name = "%s.sh" % name,
39 executable = False,
40 srcs = [chart,],
41 outs = ["helm_install.sh",],
42 cmd = """cat > $@ <<EOM
43%s
44EOM
45""" % __HELM_INSTALL_TMPL.format(
46 namespace = namespace,
47 release_name = release_name,
48 package = native.package_name(),
49 chart = "%s.tar.gz" % chart.split(":")[1],
50 args = args_str,
giolekva1d806492020-12-16 14:13:38 +040051 ))
giolekvaf2550252020-12-15 16:12:44 +040052 native.sh_binary(
53 name = name,
54 srcs = ["helm_install.sh",],
55 data = [
56 chart,
57 ],
58 deps = [
59 "@bazel_tools//tools/bash/runfiles",
giolekva1d806492020-12-16 14:13:38 +040060 ])
61
62def helm_uninstall(name, namespace, release_name):
63 native.genrule(
64 name = "%s.sh" % name,
65 executable = False,
66 outs = ["helm_uninstall.sh",],
67 cmd = """cat > $@ <<EOM
68%s
69EOM
70""" % __HELM_UNINSTALL_TMPL.format(
71 namespace = namespace,
72 release_name = release_name,
73 ))
74 native.sh_binary(
75 name = name,
76 srcs = ["helm_uninstall.sh",]
77 )