Skip to content

Helm (selm)

The selm subcommand group wraps Helm operations for chart management, deployment, and release lifecycle in Kubernetes clusters.

Synopsis

smurf selm <command> [flags] [args]

Commands

Command Description
create Create a new Helm chart
install Install a chart into a cluster
upgrade Upgrade (or install) a release
uninstall Remove a release
rollback Roll back to a previous revision
status Show release status
list List all releases
history Show revision history for a release
lint Lint a chart
template Render chart templates locally
pull Download a chart from a repository
provision Run install → upgrade → lint → template
repo add Add a chart repository
repo update Update chart repositories
repo debug Show debug information about Helm repository configuration
plugin install Install a Helm plugin
plugin list List installed plugins
plugin uninstall Remove a Helm plugin
init Generate Helm-focused smurf.yaml

install

Install a Helm chart into a Kubernetes cluster.

smurf selm install [RELEASE] [CHART] [flags]

Common flags:

Flag Description
-n, --namespace Target namespace
-f, --values Values file(s)
--set Set values on the command line
--atomic Roll back on failure
--timeout Operation timeout in seconds
--debug Enable debug output
smurf selm install my-release ./charts/my-app -n production -f values.yaml

upgrade

Upgrade an existing release or install if not present.

smurf selm upgrade [RELEASE] [CHART] [flags]

Common flags:

Flag Description
--install Install if release does not exist
--atomic Roll back on failure
--wait Wait for resources to be ready
--force Force resource updates
--history-max Maximum revision history to retain
-n, --namespace Target namespace
-f, --values Values file(s)
--set Set values on the command line
--timeout Operation timeout in seconds
--debug Enable debug output
smurf selm upgrade my-release ./charts/my-app -n production --install --atomic --wait

Multi-threading

As of v0.1.2+, smurf selm upgrade supports multi-threaded monitoring for faster readiness checks.

provision

Run a full Helm workflow: install, upgrade, lint, and template in one command.

smurf selm provision [RELEASE] [CHART] [flags]
smurf selm provision my-release ./charts/my-app -n production
smurf selm provision   # reads from smurf.yaml

lint

Validate a chart against best practices.

smurf selm lint <CHART_PATH>

template

Render chart templates locally without installing.

smurf selm template [RELEASE] [CHART] [flags]

rollback

Roll back a release to a previous revision.

smurf selm rollback <RELEASE> [REVISION] [flags]

history

Show revision history for a release.

smurf selm history <RELEASE> [flags]

Use --history-max on upgrade to control how many revisions are retained.

pull

Download a chart from a remote repository.

smurf selm pull <CHART> [flags]

Supports OCI registries and traditional Helm repositories.

repo

Manage Helm chart repositories.

smurf selm repo add <NAME> <URL>
smurf selm repo update
smurf selm repo debug

plugin

Manage Helm plugins.

smurf selm plugin install <PATH_OR_URL>
smurf selm plugin list
smurf selm plugin uninstall <PLUGIN>

Using smurf.yaml

Generate a Helm config:

smurf selm init
selm:
  releaseName: "my-app"
  namespace: "production"
  chartName: "./charts/my-app"
  revision: 0

Then run commands without positional arguments:

smurf selm upgrade --install --atomic
smurf selm provision

GitHub Actions example

jobs:
  helm-deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5

      - name: Setup Smurf
        uses: clouddrove/[email protected]
        with:
          version: v1.1.9

      - name: Lint chart
        run: smurf selm lint ./charts/my-app

      - name: Render templates
        run: smurf selm template my-app ./charts/my-app

      - name: Deploy
        run: |
          smurf selm upgrade my-app ./charts/my-app \
            --install --atomic --wait \
            -n production \
            -f ./charts/my-app/values.yaml

See Configuration for the full smurf.yaml reference.