"""Macros for working with Helm Charts""" def helm_template(name, chart, release_name, namespace = "", values_yaml = ""): """Returns a genrule for rendering a Helm Chart into a set of templates Provides single multidoc as result that can be handed to k8s_object. """ values_flag = "" if values_yaml == "" else "-f $(location " + values_yaml + ")" namespace_flag = "" if namespace == "" else "--namespace " + namespace native.genrule( name = name, # only add values_yaml if its provided srcs = [chart] if values_yaml == "" else [chart, values_yaml], tools = ["//hack/tools:helm"], outs = [release_name + "_manifests.yaml"], cmd = "$(location //hack/tools:helm) template --include-crds " + release_name + " $(location " + chart + ") " + values_flag + " " + namespace_flag + "> \"$@\"", )