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