Skip to main content

A Python CLI to manage Helm Chart dependencies

Project description

helm-upgrade

PyPI version pre-commit.ci status CI Tests codecov

Do you manage a Helm Chart that has dependencies on other Helm Charts? Are you fed up of manually updating these dependencies? Then this is the tool for you! helm-upgrade is a Python command line interface (CLI) that automatically updates the dependencies of local Helm Charts.

This tool was inspired by bump-helm-deps-action.

Table of Contents


:rocket: Installation

It's recommended to use Python version 3.8 with this tool.

:snake: pip

pip install helm-upgrade

:wrench: Manual

First of all, clone this repository and change into it.

git clone https://github.com/sgibson91/helm-upgrade.git
cd helm-upgrade

Use Python to install requirements and the package. Python 3.8 is recommended.

python -m pip install .

Test the installation by calling the help page.

helm-upgrade --help

:recycle: Usage

usage: helm-upgrade [-h] [--dry-run] chart_path dependencies

Update the dependencies of a local Helm Chart in a project repository.

positional arguments:
  chart_path    Path to the file containing the dependencies of the local Helm Chart to
                be updated.
  dependencies  A dictionary of Helm Chart dependencies and their host repo URLs. E.g.
                '{"nginx-ingress":
                "https://raw.githubusercontent.com/helm/charts/master/stable/nginx-
                ingress/Chart.yaml"}'

optional arguments:
  -h, --help    show this help message and exit
  --dry-run     Perform a dry run of the update. Don't write the changes to a file.

helm-upgrade will then:

  1. read the current versions of your dependencies from the file you specify,
  2. find the latest versions of your desired dependencies from the URLs provided (in JSON schema) to the dependencies argument,
  3. compare whether these versions are equal,
  4. if the versions are not equal (and the --dry-run flag has not been set), your helm chart dependencies will be overwritten with the new chart versions.

:wheel_of_dharma: Remote Helm Charts

helm-upgrade currently recognises chart versions from three types of hosts.

  1. A Chart.yaml file from another GitHub repository. These URLs end with "/Chart.yaml".

    For example, https://raw.githubusercontent.com/helm/charts/master/stable/nginx-ingress/Chart.yaml

  2. A repository of chart versions hosted on GitHub pages. These URLs contain "/gh-pages/".

    For example, https://raw.githubusercontent.com/jupyterhub/helm-chart/gh-pages/index.yaml

  3. Versions listed on a GitHub Releases page. These URLs end with "/releases/latest" and uses BeautifulSoup to search the html.

    For example, https://github.com/jetstack/cert-manager/releases/latest

:white_check_mark: Running Tests

To run the test suite, you must first following the manual installation instructions. Once completed, the test suite can be run as follows:

python -m pytest -vvv

To see code coverage of the test suite, run the following:

python -m coverage run -m pytest -vvv
coverage report

An interactive HTML version of the report can be accessed by running the following:

coverage html

And then opening the htmlcov/index.html file in a browser window.

:sparkles: Contributing

:tada: Thank you for wanting to contribute! :tada: Make sure to read our Code of Conduct and Contributing Guidelines to get you started.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

helm-upgrade-0.1.1.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

helm_upgrade-0.1.1-py3-none-any.whl (6.6 kB view details)

Uploaded Python 3

File details

Details for the file helm-upgrade-0.1.1.tar.gz.

File metadata

  • Download URL: helm-upgrade-0.1.1.tar.gz
  • Upload date:
  • Size: 6.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.10.2 Linux/5.11.0-1028-azure

File hashes

Hashes for helm-upgrade-0.1.1.tar.gz
Algorithm Hash digest
SHA256 2ea8b6a90398d843cec9fc2bbc06295380ba11bd6efc9f6808c4050474b6110a
MD5 773c6880c1f4aa0c19fee845246b7114
BLAKE2b-256 b5c649091d2b35b081237e10402eeee56c64e35e6b51387469028c3394600fb4

See more details on using hashes here.

File details

Details for the file helm_upgrade-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: helm_upgrade-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 6.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.10.2 Linux/5.11.0-1028-azure

File hashes

Hashes for helm_upgrade-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a9dbc23c106033137123c2725efc03c9143a08fe5791c2f95790bcce7fc507a2
MD5 60139c18bc3cfd29ef37e26f05a5f9d0
BLAKE2b-256 071e07e25a40b360cc6d8a7f1b3ccde7eceb21970ba6c6c54143511c0a47cb83

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page