pyhelm3


Namepyhelm3 JSON
Version 0.4.0 PyPI version JSON
download
home_pagehttps://github.com/azimuth-cloud/pyhelm3
SummaryPython library for managing Helm releases using Helm 3.
upload_time2024-07-31 10:32:17
maintainerNone
docs_urlNone
authorMatt Pryor
requires_pythonNone
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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"
}
        
Elapsed time: 1.00653s