Update the dependencies of a helm chart to the latest published versions.
Project description
helm-upgrade
Status | |
---|---|
CI Tests | |
Black | |
Flake8 |
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 HelmUpgradeBot and Chris Holdgraf's github-activity tool.
Installation
It's recommended to use Python version 3.7 with this tool.
pip
pip install helm-upgrade
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.7 is recommended.
python -m pip install -r requirements.txt
python setup.py install
Test the installation by calling the help page.
helm-upgrade --help
Usage
usage: helm-upgrade [-h] [--dry-run] [-v] chart dependencies
Update the dependencies of a local Helm Chart in a project repository.
positional arguments:
chart Name of the local Helm Chart to be updated
dependencies A dictionary of Helm Chart dependencies and their host repo URLs.
For example, '{"nginx-ingress": "https://raw.githubusercontent.com/helm/charts/master/stable/nginx-ingress/Chart.yaml"}'
optional arguments:
--dry-run Perform a dry run of the update. Don't write the changes to a file.
-v, --verbose Option to turn on logging.
Run the CLI in the directory above your local helm chart. For example:
$ ls -R -1
./my-local-helm-chart:
Chart.yaml
README.md
requirements.yaml
templates/
values.yaml
In this example, the name
argument would be my-local-helm-chart
.
helm-upgrade
will then:
- read the current versions of your dependencies from your
requirements.yaml
file, - 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),requirements.yaml
will be overwritten with the new chart versions.
The --verbose
flag will print logs to the console and the --dry-run
flag will skip the file writing step.
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
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
Hashes for helm_upgrade-0.0.1.dev2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ee758e431ebdf0dccbd624c30f2799d5aab71ee3c4fe15fcc4e8c67a7988a18d |
|
MD5 | 9463c7d598b868d09605c7906cb88720 |
|
BLAKE2b-256 | b7d0fab71a5f89894efc678d2cdd331adea60d219eedd92a52b93f03ab525fcb |