# pyhelm3
Python library for managing Helm releases using Helm 3 (i.e. Tiller-less Helm).
## Installation
`pyhelm3` can be installed from PyPI:
```sh
pip install pyhelm3
```
## Usage
```python
from pyhelm3 import Client
# This will use the Kubernetes configuration from the environment
client = Client()
# Specify the kubeconfig file to use
client = Client(kubeconfig = "/path/to/kubeconfig")
# Specify the kubecontext to use
client = Client(kubecontext = "kubecontext")
# Specify a custom Helm executable (by default, we expect 'helm' to be on the PATH)
client = Client(executable = "/path/to/helm")
# List the deployed releases
releases = await client.list_releases(all = True, all_namespaces = True)
for release in releases:
revision = await release.current_revision()
print(release.name, release.namespace, revision.revision, str(revision.status))
# Get the current revision for an existing release
revision = await client.get_current_revision("cert-manager", namespace = "cert-manager")
chart_metadata = await revision.chart_metadata()
print(
revision.release.name,
revision.release.namespace,
revision.revision,
str(revision.status),
chart_metadata.name,
chart_metadata.version
)
# Fetch a chart
chart = await client.get_chart(
"cert-manager",
repo = "https://charts.jetstack.io",
version = "v1.8.x"
)
print(chart.metadata.name, chart.metadata.version)
print(await chart.readme())
# Install or upgrade a release
revision = await client.install_or_upgrade_release(
"cert-manager",
chart,
{ "installCRDs": True },
atomic = True,
wait = True
)
print(
revision.release.name,
revision.release.namespace,
revision.revision,
str(revision.status)
)
# Uninstall a release
# Via the revision
revision = await client.get_current_revision("cert-manager", namespace = "cert-manager")
await revision.release.uninstall(wait = True)
# Or directly by name
await client.uninstall_release("cert-manager", namespace = "cert-manager", wait = True)
```
Raw data
{
"_id": null,
"home_page": "https://github.com/azimuth-cloud/pyhelm3",
"name": "pyhelm3",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": null,
"author": "Matt Pryor",
"author_email": "matt@stackhpc.com",
"download_url": "https://files.pythonhosted.org/packages/94/06/87de4675e8c114a0251e87ed97e4cae1b9bc4d36d3471348ac20c7e7db1e/pyhelm3-0.4.0.tar.gz",
"platform": null,
"description": "# pyhelm3\n\nPython library for managing Helm releases using Helm 3 (i.e. Tiller-less Helm).\n\n## Installation\n\n`pyhelm3` can be installed from PyPI:\n\n```sh\npip install pyhelm3\n```\n\n## Usage\n\n```python\nfrom pyhelm3 import Client\n\n\n# This will use the Kubernetes configuration from the environment\nclient = Client()\n# Specify the kubeconfig file to use\nclient = Client(kubeconfig = \"/path/to/kubeconfig\")\n# Specify the kubecontext to use\nclient = Client(kubecontext = \"kubecontext\")\n# Specify a custom Helm executable (by default, we expect 'helm' to be on the PATH)\nclient = Client(executable = \"/path/to/helm\")\n\n\n# List the deployed releases\nreleases = await client.list_releases(all = True, all_namespaces = True)\nfor release in releases:\n revision = await release.current_revision()\n print(release.name, release.namespace, revision.revision, str(revision.status))\n\n\n# Get the current revision for an existing release\nrevision = await client.get_current_revision(\"cert-manager\", namespace = \"cert-manager\")\nchart_metadata = await revision.chart_metadata()\nprint(\n revision.release.name,\n revision.release.namespace,\n revision.revision,\n str(revision.status),\n chart_metadata.name,\n chart_metadata.version\n)\n\n\n# Fetch a chart\nchart = await client.get_chart(\n \"cert-manager\",\n repo = \"https://charts.jetstack.io\",\n version = \"v1.8.x\"\n)\nprint(chart.metadata.name, chart.metadata.version)\nprint(await chart.readme())\n\n\n# Install or upgrade a release\nrevision = await client.install_or_upgrade_release(\n \"cert-manager\",\n chart,\n { \"installCRDs\": True },\n atomic = True,\n wait = True\n)\nprint(\n revision.release.name,\n revision.release.namespace,\n revision.revision,\n str(revision.status)\n)\n\n\n# Uninstall a release\n# Via the revision\nrevision = await client.get_current_revision(\"cert-manager\", namespace = \"cert-manager\")\nawait revision.release.uninstall(wait = True)\n#\u00a0 Or directly by name\nawait client.uninstall_release(\"cert-manager\", namespace = \"cert-manager\", wait = True)\n```\n",
"bugtrack_url": null,
"license": null,
"summary": "Python library for managing Helm releases using Helm 3.",
"version": "0.4.0",
"project_urls": {
"Homepage": "https://github.com/azimuth-cloud/pyhelm3"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "06fd8521dc138655be8f9d736d30dd198bdeb35b8b2f0683331e5b08febd9b06",
"md5": "59c717ec1a98b74380dc6eaafd60e85b",
"sha256": "6f608891fbe8db9b8015b839f29524dccd6eade0da879820690d71de9c3f2f8d"
},
"downloads": -1,
"filename": "pyhelm3-0.4.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "59c717ec1a98b74380dc6eaafd60e85b",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 20925,
"upload_time": "2024-07-31T10:32:15",
"upload_time_iso_8601": "2024-07-31T10:32:15.508018Z",
"url": "https://files.pythonhosted.org/packages/06/fd/8521dc138655be8f9d736d30dd198bdeb35b8b2f0683331e5b08febd9b06/pyhelm3-0.4.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "940687de4675e8c114a0251e87ed97e4cae1b9bc4d36d3471348ac20c7e7db1e",
"md5": "0266eb684d669d657b9535b27d43fb83",
"sha256": "7ce688cab8e12df5240641774c36acfd3cad6d9a6325781bc7b5a354e522c594"
},
"downloads": -1,
"filename": "pyhelm3-0.4.0.tar.gz",
"has_sig": false,
"md5_digest": "0266eb684d669d657b9535b27d43fb83",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 20221,
"upload_time": "2024-07-31T10:32:17",
"upload_time_iso_8601": "2024-07-31T10:32:17.253998Z",
"url": "https://files.pythonhosted.org/packages/94/06/87de4675e8c114a0251e87ed97e4cae1b9bc4d36d3471348ac20c7e7db1e/pyhelm3-0.4.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-07-31 10:32:17",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "azimuth-cloud",
"github_project": "pyhelm3",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pyhelm3"
}