| giolekva | f255025 | 2020-12-15 16:12:44 +0400 | [diff] [blame] | 1 | __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). |
| 5 | set -euo pipefail |
| giolekva | cf9a48b | 2020-12-16 19:17:48 +0400 | [diff] [blame] | 6 | if [[ ! -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" |
| giolekva | f255025 | 2020-12-15 16:12:44 +0400 | [diff] [blame] | 13 | fi |
| 14 | fi |
| giolekva | cf9a48b | 2020-12-16 19:17:48 +0400 | [diff] [blame] | 15 | if [[ -f "\$${{RUNFILES_DIR:-/dev/null}}/bazel_tools/tools/bash/runfiles/runfiles.bash" ]]; then |
| 16 | source "\$${{RUNFILES_DIR}}/bazel_tools/tools/bash/runfiles/runfiles.bash" |
| 17 | elif [[ -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-)" |
| giolekva | f255025 | 2020-12-15 16:12:44 +0400 | [diff] [blame] | 20 | else |
| 21 | echo >&2 "ERROR: cannot find @bazel_tools//tools/bash/runfiles:runfiles.bash" |
| 22 | exit 1 |
| 23 | fi |
| 24 | # --- end runfiles.bash initialization --- |
| giolekva | cf9a48b | 2020-12-16 19:17:48 +0400 | [diff] [blame] | 25 | CHART_TARBALL=\$$(rlocation __main__/{package}/{chart}) |
| 26 | helm --namespace={namespace} install --create-namespace {release_name} \$$CHART_TARBALL {args} |
| giolekva | f255025 | 2020-12-15 16:12:44 +0400 | [diff] [blame] | 27 | """ |
| 28 | |
| giolekva | 1d80649 | 2020-12-16 14:13:38 +0400 | [diff] [blame] | 29 | __HELM_UNINSTALL_TMPL = """ |
| 30 | helm --namespace={namespace} uninstall {release_name} |
| 31 | """ |
| 32 | |
| giolekva | f255025 | 2020-12-15 16:12:44 +0400 | [diff] [blame] | 33 | def 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( |
| giolekva | 0c08337 | 2020-12-16 14:54:27 +0400 | [diff] [blame] | 38 | name = "%s.sh" % name, |
| 39 | executable = False, |
| 40 | srcs = [chart], |
| 41 | outs = ["helm_install.sh"], |
| 42 | cmd = """cat > $@ <<EOM |
| giolekva | f255025 | 2020-12-15 16:12:44 +0400 | [diff] [blame] | 43 | %s |
| 44 | EOM |
| 45 | """ % __HELM_INSTALL_TMPL.format( |
| giolekva | 0c08337 | 2020-12-16 14:54:27 +0400 | [diff] [blame] | 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, |
| 51 | ), |
| 52 | ) |
| giolekva | f255025 | 2020-12-15 16:12:44 +0400 | [diff] [blame] | 53 | native.sh_binary( |
| giolekva | 0c08337 | 2020-12-16 14:54:27 +0400 | [diff] [blame] | 54 | name = name, |
| 55 | srcs = ["helm_install.sh"], |
| 56 | data = [ |
| 57 | chart, |
| 58 | ], |
| 59 | deps = [ |
| 60 | "@bazel_tools//tools/bash/runfiles", |
| 61 | ], |
| 62 | ) |
| giolekva | 1d80649 | 2020-12-16 14:13:38 +0400 | [diff] [blame] | 63 | |
| 64 | def helm_uninstall(name, namespace, release_name): |
| 65 | native.genrule( |
| giolekva | 0c08337 | 2020-12-16 14:54:27 +0400 | [diff] [blame] | 66 | name = "%s.sh" % name, |
| 67 | executable = False, |
| 68 | outs = ["helm_uninstall.sh"], |
| 69 | cmd = """cat > $@ <<EOM |
| giolekva | 1d80649 | 2020-12-16 14:13:38 +0400 | [diff] [blame] | 70 | %s |
| 71 | EOM |
| 72 | """ % __HELM_UNINSTALL_TMPL.format( |
| giolekva | 0c08337 | 2020-12-16 14:54:27 +0400 | [diff] [blame] | 73 | namespace = namespace, |
| 74 | release_name = release_name, |
| 75 | ), |
| 76 | ) |
| giolekva | 1d80649 | 2020-12-16 14:13:38 +0400 | [diff] [blame] | 77 | native.sh_binary( |
| giolekva | 0c08337 | 2020-12-16 14:54:27 +0400 | [diff] [blame] | 78 | name = name, |
| 79 | srcs = ["helm_uninstall.sh"], |
| giolekva | 1d80649 | 2020-12-16 14:13:38 +0400 | [diff] [blame] | 80 | ) |