Generate Argo CD Application manifests from Helm releases in Kubernetes
Project description
helmadm
Inspect Helm 3 releases in Kubernetes: list releases, detect manifest drift, generate Argo CD Application YAML, and export reproducible install bundles. Uses the Kubernetes API only — no helm or kubectl binary required.
Requirements: Python 3.12+, kubeconfig (or in-cluster) access to the cluster.
Install
Recommended — uv + uvx (no global install):
uvx helmadm ls
Add a shell alias so helmadm always runs the latest from PyPI:
alias helmadm='uvx helmadm'
Global tool with uv:
uv tool install helmadm
helmadm --help
pip / pipx:
pip install helmadm
# or: pipx install helmadm
From source (development):
# in a clone of this repository
uv sync
uv run helmadm --help
See docs/develop/dev-uv.md for building and publishing.
Commands
| Command | Purpose |
|---|---|
ls |
List Helm releases (Helm 3 secret storage) |
drift |
Compare release manifest to live objects (read-only) |
argocd-yaml |
Print an Argo CD Application manifest |
pull |
Export a reproducible Helm install bundle |
helmadm --help
helmadm ls --help
ls
helmadm ls
helmadm ls -n monitoring
helmadm ls --no-detail
Detailed output includes chart, version, and NEEDS_REPO_URL when argocd-yaml / pull need --repo-url.
drift
helmadm drift -n monitoring prometheus
helmadm drift -n monitoring prometheus --detect-extras # objects not managed by the release
helmadm drift -ia -n kube-system traefik # show compare notes
helmadm drift --compare-mode legacy -n monitoring prometheus
Default compare uses server-side apply dry-run (merged vs live; like kubectl diff --server-side). Legacy normalization is used automatically when SSA is unavailable, or with --compare-mode legacy.
Exit 1 on drift, missing objects, fetch errors, or extras (with --detect-extras). Pipe to delta: helmadm drift … | delta -s.
argocd-yaml
helmadm ls -n monitoring
helmadm argocd-yaml -n monitoring prometheus
helmadm argocd-yaml -n monitoring prometheus \
--repo-url https://prometheus-community.github.io/helm-charts
Writes overrides to spec.source.helm.valuesObject. Fields you must set (destination, project, …) use CHANGE_ME. --debug adds a .debug block — remove before applying to Argo CD.
pull
helmadm pull -n loki -o ./bundles fluentbit
helmadm pull -n monitoring prometheus --revision 3 -o ./bundles
Creates {namespace}/{release}/ with values files, helmadm-pull-metadata.yaml, and a README.md with plain helm install commands. --tar writes a gzip bundle to stdout; --force overwrites an existing directory.
More documentation
- Command reference — flags, bundle layout, examples
- Configuration — environment variables and kubeconfig
- Developer guide — uv, build, PyPI publish
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file helmadm-0.2.0.tar.gz.
File metadata
- Download URL: helmadm-0.2.0.tar.gz
- Upload date:
- Size: 70.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4637b7e0c0f6ebc168e22d2120d67501063cf4622048dfedcfb25aabd2fdf528
|
|
| MD5 |
92af395b74266b6a14e56ee4a3a17e21
|
|
| BLAKE2b-256 |
c01eeeec5d2bcfbcf028186848d0620849757770acb56db35a5a06162e4d5c49
|
File details
Details for the file helmadm-0.2.0-py3-none-any.whl.
File metadata
- Download URL: helmadm-0.2.0-py3-none-any.whl
- Upload date:
- Size: 43.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32a91dbd2f773c3aa137a75fc1d5f7d9d11eff1145c3bd21dfe189bbf6d805bb
|
|
| MD5 |
5f55ed4bc1a51e2b53b7885e8809a5ab
|
|
| BLAKE2b-256 |
70967d6b78e403fd082c3168038c94a295c210ad0460be3f7a108b8531fe0f91
|