A Python CLI to manage Helm Chart dependencies
Project description
helm-upgrade
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:
- read the current versions of your dependencies from the file you specify,
- find the latest versions of your desired dependencies from the URLs provided (in JSON schema) to the
dependencies
argument, - compare whether these versions are equal,
- 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.
-
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
-
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
-
Versions listed on a GitHub Releases page. These URLs end with "
/releases/latest
" and usesBeautifulSoup
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2ea8b6a90398d843cec9fc2bbc06295380ba11bd6efc9f6808c4050474b6110a |
|
MD5 | 773c6880c1f4aa0c19fee845246b7114 |
|
BLAKE2b-256 | b5c649091d2b35b081237e10402eeee56c64e35e6b51387469028c3394600fb4 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | a9dbc23c106033137123c2725efc03c9143a08fe5791c2f95790bcce7fc507a2 |
|
MD5 | 60139c18bc3cfd29ef37e26f05a5f9d0 |
|
BLAKE2b-256 | 071e07e25a40b360cc6d8a7f1b3ccde7eceb21970ba6c6c54143511c0a47cb83 |