{"id":16728448,"url":"https://github.com/tmc/rules_helm","last_synced_at":"2025-08-11T20:31:17.682Z","repository":{"id":49055558,"uuid":"179898430","full_name":"tmc/rules_helm","owner":"tmc","description":"rules_helm: Bazel rules for managing helm charts","archived":false,"fork":false,"pushed_at":"2020-02-24T23:13:53.000Z","size":59,"stargazers_count":48,"open_issues_count":8,"forks_count":29,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-12-02T20:49:59.880Z","etag":null,"topics":["bazel","bazel-rules","helm","kubernetes"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tmc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-04-06T23:40:30.000Z","updated_at":"2023-11-15T05:57:24.000Z","dependencies_parsed_at":"2022-07-26T01:02:24.619Z","dependency_job_id":null,"html_url":"https://github.com/tmc/rules_helm","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmc%2Frules_helm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmc%2Frules_helm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmc%2Frules_helm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmc%2Frules_helm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tmc","download_url":"https://codeload.github.com/tmc/rules_helm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229586339,"owners_count":18096613,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bazel","bazel-rules","helm","kubernetes"],"created_at":"2024-10-12T23:10:23.942Z","updated_at":"2024-12-13T18:33:51.689Z","avatar_url":"https://github.com/tmc.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# rules_helm\n\nThis repository contains Bazel rules to install and manipulate Helm charts with Bazel.\n\nThis allows you to describe Kubernetes applications in a deterministic manner.\n\n## Features\n\n* Tillerless - rules_helm uses [tillerless helm](https://rimusz.net/tillerless-helm/).\n\n## Documentation\n\n* See [Rule and macro defintions](./docs/docs.md) for macro documentation.\n\n### API\n\n* helm_chart - describes a helm chart.\n* helm_release - describes a helm release.\n\n### Getting started\n\nIn your Bazel `WORKSPACE` file add this repository as a dependency:\n\n```\ngit_repository(\n    name = \"com_github_tmc_rules_helm\",\n    tag = \"0.4.0\",\n    remote = \"https://github.com/tmc/rules_helm.git\",\n)\n```\n\nThen in your `BUILD` files include the `helm_chart` and/or `helm_release` rules:\n\n`charts/a-great-chart/zBUILD`:\n```python\nload(\"@com_github_tmc_rules_helm//:helm.bzl\", \"helm_chart\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nhelm_chart(\n    name = \"a_great_chart\",\n    srcs = glob([\"**\"]),\n)\n```\n\nReferencing the chart with helm_release:\n\n`BUILD`:\n```python\nload(\"@com_github_tmc_rules_helm//:helm.bzl\", \"helm_release\")\n\nhelm_release(\n    name = \"a_great_release\",\n    chart = \"//charts/a-great-chart:chart\",\n    release_name = \"a-great-release-1\",\n    values_yaml = \"//:a-great-release-values.yaml\",\n)\n```\n\nThis defines targets you can now use to manage the release:\n```\n:a_great_release.test.noclean\n:a_great_release.test\n:a_great_release.status\n:a_great_release.install.wait\n:a_great_release.install\n:a_great_release.delete\n```\n\nYou could now install, test, and clean up the chart via:\n`bazel run :a_great_release.install.wait \u0026\u0026 bazel run :a_great_release.test \u0026\u0026 bazel run :a_great_release.delete`\n\nSee [rules_helm_examples](https://github.com/tmc/rules_helm_example) for detailed usage examples.\n\n### Istio Example\n\nThese rules demonstrae  describing an installation of Istio. See\nhttps://github.com/tmc/rules_helm_example/tree/master/charts/istio for details.\n\n```python\nload(\"@com_github_tmc_rules_helm//:helm.bzl\", \"helm_release\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nhelm_release(\n    name = \"istio_init\",\n    chart = \"@com_github_istio_istio//:istio_init\",\n    namespace = \"istio-system\",\n    release_name = \"istio-init\",\n    values_yaml = \":istio_values.yaml\",\n)\n\nhelm_release(\n    name = \"istio\",\n    chart = \"@com_github_istio_istio//:istio\",\n    namespace = \"istio-system\",\n    release_name = \"istio\",\n    values_yaml = \":istio_values.yaml\",\n)\n```\n\nThe releases above create the following targets:\n```\n:istio_init.test.noclean\n:istio_init.test\n:istio_init.status\n:istio_init.install.wait\n:istio_init.install\n:istio_init.delete\n```\nAnd:\n```\n:istio.test.noclean\n:istio.test\n:istio.status\n:istio.install.wait\n:istio.install\n:istio.delete\n```\n\nRunning `bazel run :istio_init.install` and a subsequent `bazel run :istio.install` (waiting for the CRDs to be created) will install Istio. See [rules_helm_examples](https://github.com/tmc/rules_helm_example) for detailed usage examples.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftmc%2Frules_helm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftmc%2Frules_helm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftmc%2Frules_helm/lists"}