Skip to main content

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

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

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

helmadm-0.2.1.tar.gz (73.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

helmadm-0.2.1-py3-none-any.whl (45.5 kB view details)

Uploaded Python 3

File details

Details for the file helmadm-0.2.1.tar.gz.

File metadata

  • Download URL: helmadm-0.2.1.tar.gz
  • Upload date:
  • Size: 73.1 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

Hashes for helmadm-0.2.1.tar.gz
Algorithm Hash digest
SHA256 7ad708d541f39ab79d4ac391115e7c12aadcaeb35dc7206642febd2e81547eb8
MD5 2011f9729f2935c2c95cc0d6a4e311fa
BLAKE2b-256 c0e297dfcc5263efa2b793e41666737ceb2be46b094403d7f227c9aeaf19ed48

See more details on using hashes here.

File details

Details for the file helmadm-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: helmadm-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 45.5 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

Hashes for helmadm-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 dd42c1c0b0940176c9b48aff5414a7cf37665fb0b31db1556facfcae40ca16ed
MD5 7852e4c19f98c7856b6adb5789ac25e6
BLAKE2b-256 9cca1292013785ab8f56a6ce29c5e5ffa03b889b488e53bf09cdce62c89c89d2

See more details on using hashes here.

Supported by

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