Skip to main content

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).

Nicer diffs: pipe stdout through delta (-s for side-by-side; --paging never when piping so delta does not open its own pager):

helmadm drift -n monitoring prometheus --detect-extras | delta -s --paging never
uv run helmadm drift -n monitoring prometheus --detect-extras | delta -s --paging never

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

Metadata

Release files for helmadm 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for helmadm 0.2.1
File Size Uploaded
helmadm-0.2.1.tar.gz 73.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for helmadm 0.2.1
File Interpreter ABI Platform
helmadm-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 118.6 kB

Release files / helmadm-0.2.1.tar.gz

Download URL helmadm-0.2.1.tar.gz
Size 73.1 kB
Tags Source
SHA-256 checksum
How to use checksums
7ad708d541f39ab79d4ac391115e7c12aadcaeb35dc7206642febd2e81547eb8
BLAKE2b-256 checksum
How to use checksums
c0e297dfcc5263efa2b793e41666737ceb2be46b094403d7f227c9aeaf19ed48
Upload date
Uploaded using Trusted Publishing?
What is 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}

Release files / helmadm-0.2.1-py3-none-any.whl

Download URL helmadm-0.2.1-py3-none-any.whl
Size 45.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dd42c1c0b0940176c9b48aff5414a7cf37665fb0b31db1556facfcae40ca16ed
BLAKE2b-256 checksum
How to use checksums
9cca1292013785ab8f56a6ce29c5e5ffa03b889b488e53bf09cdce62c89c89d2
Upload date
Uploaded using Trusted Publishing?
What is 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}

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page