๐ CLI Referenceยถ
NAME:
helmwave - true release management for helm
USAGE:
helmwave [global options] command [command options]
VERSION:
0.41.1
DESCRIPTION:
This tool helps you compose your helm releases!
0. $ helmwave yml
1. $ helmwave build
2. $ helmwave up
COMMANDS:
yml ๐ render helmwave.yml.tpl -> helmwave.yml
manifests, manifest show only manifests
help, h Shows a list of commands or help for one command
BUILD:
build ๐ build a plan
diff, vs ๐ show differences
validate ๐ validate your plan
graph show graph
DEPLOY:
up ๐ข apply your plan
list, ls ๐ list of deployed releases
rollback โฎ rollback your plan
status ๐๏ธstatus of deployed releases
down ๐ช delete all
SUPPORT:
schema generate json schema
version, ver show shorts version
completion generate completion script
GLOBAL OPTIONS:
--cache-dir value base directory for cache (default: "/home/runner/.cache/helmwave") [$HELMWAVE_CACHE_DIR, $HELMWAVE_CACHE_HOME]
--handle-signal cancel helm on SigINT,SigTERM (default: false) [$HELMWAVE_HANDLE_SIGNAL]
--help, -h show help
--parallel-limit value limit amount of parallel releases (default: 0) [$HELMWAVE_PARALLEL_LIMIT]
--version, -v print the version
LOGGER
--log-color on/off color (default: true) [$HELMWAVE_LOG_COLOR]
--log-format value You can set: [ text | json | pad | emoji ] (default: "emoji") [$HELMWAVE_LOG_FORMAT]
--log-level value You can set: [ debug | info | warn | fatal | panic | trace ] (default: "info") [$HELMWAVE_LOG_LEVEL, $HELMWAVE_LOG_LVL]
--log-timestamps Add timestamps to log messages (default: false) [$HELMWAVE_LOG_TIMESTAMPS]
workflow
yml
ยถ
This command renders helmwave.yml.tpl
to helmwave.yml
.
Flags
--file value, -f value main yml file (default: "helmwave.yml") [$HELMWAVE_YAML, $HELMWAVE_YML]
--templater value select template engine: [ sprig | gomplate ] (default: "sprig") [$HELMWAVE_TEMPLATER, $HELMWAVE_TEMPLATE_ENGINE]
--tpl value main tpl file (default: "helmwave.yml.tpl") [$HELMWAVE_TPL]
--tpl
ยถ
Set path to helmwave.yml.tpl
--file
ยถ
Set path to helmwave.yml
--templater
ยถ
Introduced in v0.17.0
You can define template engine, which will be used to render helmwave.yml
file or values
files.
Please visit templating reference for more details.
build
ยถ
Helmwave builds plan in complete plan directory (.helmwave
by default) that other commands use.
Build process by default includes schema validation against specific Kubernetes version (taken online), as well as diff. To build plan offline, combine --diff-mode=local
or --diff-mode=none
with offline_kube_version
.
A plan includes:
- Downloaded remote charts
- Downloaded and templated all used values files
- Rendered manifests for each release
- Markdown file with dependency graph as mermaid diagram
- Rendered
helmwave.yml
that uses plan files (e.g., downloaded chart and values)
Flags
As you can see, build
command includes yml
command flags.
You can pass --yml
flag into build
command for launching yml
command before building a plan.
--dependencies evaluate releases dependencies and add them to the plan even if they don't match provided tags (default: true) [$HELMWAVE_DEPENDENCIES_ENABLED, $HELMWAVE_DEPENDENCIES]
--graph-width value set ceil width: 1 โ disable graph; 0 โ full names; N>1 โ show only N symbols; N<0 โ drop N symbols from end. (default: 0) [$HELMWAVE_GRAPH_WIDTH]
--plandir value, -p value path to plandir (default: ".helmwave/") [$HELMWAVE_PLANDIR, $HELMWAVE_PLAN]
--remote-source value go-getter URL to download build sources [$HELMWAVE_REMOTE_SOURCE]
--skip-unchanged skip unchanged releases (default: false) [$HELMWAVE_SKIP_UNCHANGED]
--3-way-merge show 3-way merge diff (default: false) [$HELMWAVE_DIFF_3_WAY_MERGE]
--diff-mode value you can set: [ live | local | none ] (default: "live") [$HELMWAVE_DIFF_MODE]
--find-renames value enable rename detection if set to any value greater than 0. (default: 1) [$HELMWAVE_DIFF_FIND_RENAMES]
--show-secret show secret in diff (default: true) [$HELMWAVE_DIFF_SHOW_SECRET]
--strip-trailing-cr strip trailing carriage return on input (default: false) [$HELMWAVE_DIFF_STRIP_TRAILING_CR]
--suppress value [ --suppress value ] allows suppression kinds of the values listed in the diff output ("Secret" for example) [$HELMWAVE_DIFF_SUPPRESS, $HELMWAVE_DIFF_SUPPRESS_KINDS]
--wide value show line around changes (default: 5) [$HELMWAVE_DIFF_WIDE]
--match-all-tags, --tt match all provided tags (default: false) [$HELMWAVE_MATCH_ALL_TAGS]
--tags value, -t value [ --tags value, -t value ] build releases by tags: -t tag1 -t tag3,tag4 [$HELMWAVE_TAGS]
--file value, -f value main yml file (default: "helmwave.yml") [$HELMWAVE_YAML, $HELMWAVE_YML]
--templater value select template engine: [ sprig | gomplate ] (default: "sprig") [$HELMWAVE_TEMPLATER, $HELMWAVE_TEMPLATE_ENGINE]
--tpl value main tpl file (default: "helmwave.yml.tpl") [$HELMWAVE_TPL]
--yml auto helmwave.yml.tpl --> helmwave.yml (default: false) [$HELMWAVE_AUTO_YML, $HELMWAVE_AUTO_YAML]
--yml
ยถ
Enable execute yml
command before build
command.
helmwave yml
[๐ aka INFO]: ๐ YML is ready!
build plan with next command: helmwave build -f helmwave.yml
--tags
ยถ
Allow to filter releases by tags. You can use this flag multiple times.
It works with --match-all-tags
flag and tags
field in helmwave.yaml
file.
--match-all-tags
ยถ
Change behavior of --tags
flag. If --match-all-tags
is set, then all tags should be matched. Otherwise, at least one tag should be matched.
--skip-unchanged
ยถ
Introduced in v0.27.0
This flag will skip unchanged helm releases.
TODO: add example
--graph-width
ยถ
Introduced in v0.27.1
You can change logic of graph rendering by changing this flag.
- 1:
--graph-width=1
- disable graph rendering - 2:
--graph-width=0
- try to detect max width of ceil by release name - N<0:
--graph-width=-10
- drop 10 symbols. - N>1:
--graph-width=10
- show only first 10 symbols.
--remote-source
ยถ
Introduced in v0.33.0
Remote source to use for building plan. go-getter URL format is used. The downloaded remote source is cached and the cache is reused.
--diff-mode
ยถ
Introduced in v0.12.0
live
- diff with live clusterlocal
- diff with local plannone
- disable diff
Combine --diff-mode=local
or --diff-mode=none
with offline_kube_version
to build a plan without kubernetes.
--wide
ยถ
Set wide output for diff.
TODO: add example
--show-secret
ยถ
Introduced in v0.16.0
Enable showing secret values in diff output.
TODO: add example
--3-way-merge
ยถ
Introduced in v0.24.4
Enable 3-way merge for diff.
TODO: add example
--suppress
ยถ
Introduced in v0.35.0
Allows suppression of the values listed in the diff output
helmwave build --suppress Secret
--strip-trailing-cr
ยถ
Introduced in v0.35.0
strip trailing carriage return on input
--find-renames
ยถ
Introduced in v0.35.0
Enable rename detection if set to any value greater than 0.
up
ยถ
Helmwave will install repositories and helm releases from a plan.
Flags
--build auto build (default: false) [$HELMWAVE_AUTO_BUILD]
--dependencies evaluate releases dependencies and add them to the plan even if they don't match provided tags (default: true) [$HELMWAVE_DEPENDENCIES_ENABLED, $HELMWAVE_DEPENDENCIES]
--graph-width value set ceil width: 1 โ disable graph; 0 โ full names; N>1 โ show only N symbols; N<0 โ drop N symbols from end. (default: 0) [$HELMWAVE_GRAPH_WIDTH]
--plandir value, -p value path to plandir (default: ".helmwave/") [$HELMWAVE_PLANDIR, $HELMWAVE_PLAN]
--remote-source value go-getter URL to download build sources [$HELMWAVE_REMOTE_SOURCE]
--skip-unchanged skip unchanged releases (default: false) [$HELMWAVE_SKIP_UNCHANGED]
--3-way-merge show 3-way merge diff (default: false) [$HELMWAVE_DIFF_3_WAY_MERGE]
--diff-mode value you can set: [ live | local | none ] (default: "live") [$HELMWAVE_DIFF_MODE]
--find-renames value enable rename detection if set to any value greater than 0. (default: 1) [$HELMWAVE_DIFF_FIND_RENAMES]
--show-secret show secret in diff (default: true) [$HELMWAVE_DIFF_SHOW_SECRET]
--strip-trailing-cr strip trailing carriage return on input (default: false) [$HELMWAVE_DIFF_STRIP_TRAILING_CR]
--suppress value [ --suppress value ] allows suppression kinds of the values listed in the diff output ("Secret" for example) [$HELMWAVE_DIFF_SUPPRESS, $HELMWAVE_DIFF_SUPPRESS_KINDS]
--wide value show line around changes (default: 5) [$HELMWAVE_DIFF_WIDE]
--kubedog enable/disable kubedog (default: false) [$HELMWAVE_KUBEDOG_ENABLED, $HELMWAVE_KUBEDOG]
--kubedog-log-width value set kubedog max log line width (default: 140) [$HELMWAVE_KUBEDOG_LOG_WIDTH]
--kubedog-start-delay value delay kubedog start, don't make it too late (default: 1s) [$HELMWAVE_KUBEDOG_START_DELAY]
--kubedog-status-interval value interval of kubedog status messages: set -1s to stop showing status progress (default: 5s) [$HELMWAVE_KUBEDOG_STATUS_INTERVAL]
--kubedog-timeout value timeout of kubedog multitrackers (default: 5m0s) [$HELMWAVE_KUBEDOG_TIMEOUT]
--kubedog-track-all track almost all resources, experimental (default: false) [$HELMWAVE_KUBEDOG_TRACK_ALL]
--progress enable progress logs of helm (INFO log level) (default: false) [$HELMWAVE_PROGRESS]
--match-all-tags, --tt match all provided tags (default: false) [$HELMWAVE_MATCH_ALL_TAGS]
--tags value, -t value [ --tags value, -t value ] build releases by tags: -t tag1 -t tag3,tag4 [$HELMWAVE_TAGS]
--file value, -f value main yml file (default: "helmwave.yml") [$HELMWAVE_YAML, $HELMWAVE_YML]
--templater value select template engine: [ sprig | gomplate ] (default: "sprig") [$HELMWAVE_TEMPLATER, $HELMWAVE_TEMPLATE_ENGINE]
--tpl value main tpl file (default: "helmwave.yml.tpl") [$HELMWAVE_TPL]
--yml auto helmwave.yml.tpl --> helmwave.yml (default: false) [$HELMWAVE_AUTO_YML, $HELMWAVE_AUTO_YAML]
--build
ยถ
Enable execute build
command before.
And you can also use --yml
flag that renders helmwave.yml.tpl
to helmwave.yml
before running --build
command.
--progress
ยถ
Introduced in v0.17.0
Enable helm debug progress output.
helmwave up --progress=false
[๐ aka INFO]: ๐ sync repositories...
[๐ aka INFO]: ๐ sync registries...
[๐ aka INFO]: ๐ฅ sync releases...
[๐ aka INFO]: ๐ฅ deploying...
release: a@my-namespace
[๐ aka INFO]: ๐ฅ deploying...
release: b@my-namespace
[๐ aka INFO]: โ
release: b@my-namespace
[๐ aka INFO]: โ
release: a@my-namespace
[๐ aka INFO]: Success 2 / 2
helmwave up --progress
[๐ aka INFO]: ๐ sync repositories...
[๐ aka INFO]: ๐ sync registries...
[๐ aka INFO]: ๐ฅ sync releases...
[๐ aka INFO]: ๐ฅ deploying...
release: a@my-namespace
[๐ aka INFO]: ๐ฅ deploying...
release: b@my-namespace
[๐ aka INFO]: getting history for release b
[๐ aka INFO]: getting history for release a
[๐ aka INFO]: preparing upgrade for b
[๐ aka INFO]: preparing upgrade for a
[๐ aka INFO]: performing update for a
[๐ aka INFO]: performing update for b
[๐ aka INFO]: creating upgraded release for a
[๐ aka INFO]: creating upgraded release for b
[๐ aka INFO]: checking 4 resources for changes
[๐ aka INFO]: checking 4 resources for changes
[๐ aka INFO]: Patch Secret "a-nats" in namespace my-namespace
[๐ aka INFO]: Patch Secret "b-nats" in namespace my-namespace
[๐ aka INFO]: Looks like there are no changes for Service "a-nats-headless"
[๐ aka INFO]: Looks like there are no changes for Service "b-nats-headless"
[๐ aka INFO]: Patch Service "a-nats" in namespace my-namespace
[๐ aka INFO]: Patch Service "b-nats" in namespace my-namespace
[๐ aka INFO]: Patch StatefulSet "a-nats" in namespace my-namespace
[๐ aka INFO]: Patch StatefulSet "b-nats" in namespace my-namespace
[๐ aka INFO]: waiting for release a resources (created: 0 updated: 4 deleted: 0)
[๐ aka INFO]: beginning wait for 4 resources with timeout of 1m0s
[๐ aka INFO]: waiting for release b resources (created: 0 updated: 4 deleted: 0)
[๐ aka INFO]: beginning wait for 4 resources with timeout of 1m0s
[๐ aka INFO]: StatefulSet is not ready: my-namespace/a-nats. 0 out of 1 expected pods have been scheduled
[๐ aka INFO]: StatefulSet is not ready: my-namespace/b-nats. 0 out of 1 expected pods have been scheduled
[๐ aka INFO]: StatefulSet is not ready: my-namespace/a-nats. 0 out of 1 expected pods are ready
[๐ aka INFO]: StatefulSet is not ready: my-namespace/b-nats. 0 out of 1 expected pods have been scheduled
[๐ aka INFO]: StatefulSet is not ready: my-namespace/a-nats. 0 out of 1 expected pods are ready
[๐ aka INFO]: StatefulSet is not ready: my-namespace/b-nats. 0 out of 1 expected pods have been scheduled
[๐ aka INFO]: StatefulSet is not ready: my-namespace/a-nats. 0 out of 1 expected pods are ready
[๐ aka INFO]: StatefulSet is not ready: my-namespace/b-nats. 0 out of 1 expected pods have been scheduled
[๐ aka INFO]: StatefulSet is not ready: my-namespace/a-nats. 0 out of 1 expected pods are ready
[๐ aka INFO]: StatefulSet is not ready: my-namespace/b-nats. 0 out of 1 expected pods have been scheduled
[๐ aka INFO]: StatefulSet is not ready: my-namespace/a-nats. 0 out of 1 expected pods are ready
[๐ aka INFO]: StatefulSet is not ready: my-namespace/b-nats. 0 out of 1 expected pods are ready
[๐ aka INFO]: StatefulSet is ready: my-namespace/a-nats. 1 out of 1 expected pods are ready
[๐ aka INFO]: StatefulSet is not ready: my-namespace/b-nats. 0 out of 1 expected pods are ready
[๐ aka INFO]: updating status for upgraded release for a
[๐ aka INFO]: StatefulSet is not ready: my-namespace/b-nats. 0 out of 1 expected pods are ready
[๐ aka INFO]: โ
release: a@my-namespace
[๐ aka INFO]: StatefulSet is not ready: my-namespace/b-nats. 0 out of 1 expected pods are ready
[๐ aka INFO]: StatefulSet is not ready: my-namespace/b-nats. 0 out of 1 expected pods are ready
[๐ aka INFO]: StatefulSet is ready: my-namespace/b-nats. 1 out of 1 expected pods are ready
[๐ aka INFO]: updating status for upgraded release for b
[๐ aka INFO]: โ
release: b@my-namespace
[๐ aka INFO]: Success 2 / 2
--parallel-limit
ยถ
Introduced in v0.20.0
Limit the number of parallel helm operations.
After v0.39.1 It affected to values and manifests building process.
Introduced in v0.8.0
--kubedog
ยถ
Enable kubedog.
--kubedog-status-interval
ยถ
Set interval for kubedog status.
--kubedog-start-delay
ยถ
Set delay before kubedog will start.
--kubedog-timeout
ยถ
Set timeout for kubedog.
--kubedog-log-width
ยถ
Set width of kubedog logboek.
--kubedog-track-all
ยถ
Introduced in v0.30.0
Track all resources, not only Deployment
, DaemonSet
, StatefulSet
, Job
.
Annotations are also respected for these resources but it wasn't tested.
It will probably fail for some non-namespaced custom resources because kubedog can track only namespaced resources. In this case kubedog will fail with a warning
down
ยถ
Introduced in v0.12.2
Helmwave will uninstall helm releases from plan.
Flags
--build auto build (default: false) [$HELMWAVE_AUTO_BUILD]
--dependencies evaluate releases dependencies and add them to the plan even if they don't match provided tags (default: true) [$HELMWAVE_DEPENDENCIES_ENABLED, $HELMWAVE_DEPENDENCIES]
--graph-width value set ceil width: 1 โ disable graph; 0 โ full names; N>1 โ show only N symbols; N<0 โ drop N symbols from end. (default: 0) [$HELMWAVE_GRAPH_WIDTH]
--plandir value, -p value path to plandir (default: ".helmwave/") [$HELMWAVE_PLANDIR, $HELMWAVE_PLAN]
--remote-source value go-getter URL to download build sources [$HELMWAVE_REMOTE_SOURCE]
--skip-unchanged skip unchanged releases (default: false) [$HELMWAVE_SKIP_UNCHANGED]
--3-way-merge show 3-way merge diff (default: false) [$HELMWAVE_DIFF_3_WAY_MERGE]
--diff-mode value you can set: [ live | local | none ] (default: "live") [$HELMWAVE_DIFF_MODE]
--find-renames value enable rename detection if set to any value greater than 0. (default: 1) [$HELMWAVE_DIFF_FIND_RENAMES]
--show-secret show secret in diff (default: true) [$HELMWAVE_DIFF_SHOW_SECRET]
--strip-trailing-cr strip trailing carriage return on input (default: false) [$HELMWAVE_DIFF_STRIP_TRAILING_CR]
--suppress value [ --suppress value ] allows suppression kinds of the values listed in the diff output ("Secret" for example) [$HELMWAVE_DIFF_SUPPRESS, $HELMWAVE_DIFF_SUPPRESS_KINDS]
--wide value show line around changes (default: 5) [$HELMWAVE_DIFF_WIDE]
--match-all-tags, --tt match all provided tags (default: false) [$HELMWAVE_MATCH_ALL_TAGS]
--tags value, -t value [ --tags value, -t value ] build releases by tags: -t tag1 -t tag3,tag4 [$HELMWAVE_TAGS]
--file value, -f value main yml file (default: "helmwave.yml") [$HELMWAVE_YAML, $HELMWAVE_YML]
--templater value select template engine: [ sprig | gomplate ] (default: "sprig") [$HELMWAVE_TEMPLATER, $HELMWAVE_TEMPLATE_ENGINE]
--tpl value main tpl file (default: "helmwave.yml.tpl") [$HELMWAVE_TPL]
--yml auto helmwave.yml.tpl --> helmwave.yml (default: false) [$HELMWAVE_AUTO_YML, $HELMWAVE_AUTO_YAML]
$ helmwave down
[๐ aka INFO]: โ
frontend@test uninstalled!
[๐ aka INFO]: โ
database@test uninstalled!
[๐ aka INFO]: โ
backend@test uninstalled!
ls
ยถ
Introduced in v0.11.0
Helmwave will get a list of helm releases from a plan.
Flags
--build auto build (default: false) [$HELMWAVE_AUTO_BUILD]
--dependencies evaluate releases dependencies and add them to the plan even if they don't match provided tags (default: true) [$HELMWAVE_DEPENDENCIES_ENABLED, $HELMWAVE_DEPENDENCIES]
--graph-width value set ceil width: 1 โ disable graph; 0 โ full names; N>1 โ show only N symbols; N<0 โ drop N symbols from end. (default: 0) [$HELMWAVE_GRAPH_WIDTH]
--plandir value, -p value path to plandir (default: ".helmwave/") [$HELMWAVE_PLANDIR, $HELMWAVE_PLAN]
--remote-source value go-getter URL to download build sources [$HELMWAVE_REMOTE_SOURCE]
--skip-unchanged skip unchanged releases (default: false) [$HELMWAVE_SKIP_UNCHANGED]
--3-way-merge show 3-way merge diff (default: false) [$HELMWAVE_DIFF_3_WAY_MERGE]
--diff-mode value you can set: [ live | local | none ] (default: "live") [$HELMWAVE_DIFF_MODE]
--find-renames value enable rename detection if set to any value greater than 0. (default: 1) [$HELMWAVE_DIFF_FIND_RENAMES]
--show-secret show secret in diff (default: true) [$HELMWAVE_DIFF_SHOW_SECRET]
--strip-trailing-cr strip trailing carriage return on input (default: false) [$HELMWAVE_DIFF_STRIP_TRAILING_CR]
--suppress value [ --suppress value ] allows suppression kinds of the values listed in the diff output ("Secret" for example) [$HELMWAVE_DIFF_SUPPRESS, $HELMWAVE_DIFF_SUPPRESS_KINDS]
--wide value show line around changes (default: 5) [$HELMWAVE_DIFF_WIDE]
--match-all-tags, --tt match all provided tags (default: false) [$HELMWAVE_MATCH_ALL_TAGS]
--tags value, -t value [ --tags value, -t value ] build releases by tags: -t tag1 -t tag3,tag4 [$HELMWAVE_TAGS]
--file value, -f value main yml file (default: "helmwave.yml") [$HELMWAVE_YAML, $HELMWAVE_YML]
--templater value select template engine: [ sprig | gomplate ] (default: "sprig") [$HELMWAVE_TEMPLATER, $HELMWAVE_TEMPLATE_ENGINE]
--tpl value main tpl file (default: "helmwave.yml.tpl") [$HELMWAVE_TPL]
--yml auto helmwave.yml.tpl --> helmwave.yml (default: false) [$HELMWAVE_AUTO_YML, $HELMWAVE_AUTO_YAML]
$ helmwave ls
[๐ aka INFO]: Should be 3 releases
NAME | NAMESPACE | REVISION | UPDATED | STATUS | CHART | VERSION
-----------+-----------+----------+--------------------------------+----------+-------+----------
frontend | test | 1 | 2021-11-10 04:41:23.330989 | deployed | this | 0.1.0
| | | +0300 MSK | | |
database | test | 1 | 2021-11-10 04:41:23.353473 | deployed | this | 0.1.0
| | | +0300 MSK | | |
backend | test | 1 | 2021-11-10 04:41:23.270076 | deployed | this | 0.1.0
| | | +0300 MSK | | |
status
ยถ
Introduced in v0.11.0
Helmwave try getting status of helm releases from a plan.
Flags
--build auto build (default: false) [$HELMWAVE_AUTO_BUILD]
--dependencies evaluate releases dependencies and add them to the plan even if they don't match provided tags (default: true) [$HELMWAVE_DEPENDENCIES_ENABLED, $HELMWAVE_DEPENDENCIES]
--graph-width value set ceil width: 1 โ disable graph; 0 โ full names; N>1 โ show only N symbols; N<0 โ drop N symbols from end. (default: 0) [$HELMWAVE_GRAPH_WIDTH]
--plandir value, -p value path to plandir (default: ".helmwave/") [$HELMWAVE_PLANDIR, $HELMWAVE_PLAN]
--remote-source value go-getter URL to download build sources [$HELMWAVE_REMOTE_SOURCE]
--skip-unchanged skip unchanged releases (default: false) [$HELMWAVE_SKIP_UNCHANGED]
--3-way-merge show 3-way merge diff (default: false) [$HELMWAVE_DIFF_3_WAY_MERGE]
--diff-mode value you can set: [ live | local | none ] (default: "live") [$HELMWAVE_DIFF_MODE]
--find-renames value enable rename detection if set to any value greater than 0. (default: 1) [$HELMWAVE_DIFF_FIND_RENAMES]
--show-secret show secret in diff (default: true) [$HELMWAVE_DIFF_SHOW_SECRET]
--strip-trailing-cr strip trailing carriage return on input (default: false) [$HELMWAVE_DIFF_STRIP_TRAILING_CR]
--suppress value [ --suppress value ] allows suppression kinds of the values listed in the diff output ("Secret" for example) [$HELMWAVE_DIFF_SUPPRESS, $HELMWAVE_DIFF_SUPPRESS_KINDS]
--wide value show line around changes (default: 5) [$HELMWAVE_DIFF_WIDE]
--match-all-tags, --tt match all provided tags (default: false) [$HELMWAVE_MATCH_ALL_TAGS]
--tags value, -t value [ --tags value, -t value ] build releases by tags: -t tag1 -t tag3,tag4 [$HELMWAVE_TAGS]
--file value, -f value main yml file (default: "helmwave.yml") [$HELMWAVE_YAML, $HELMWAVE_YML]
--templater value select template engine: [ sprig | gomplate ] (default: "sprig") [$HELMWAVE_TEMPLATER, $HELMWAVE_TEMPLATE_ENGINE]
--tpl value main tpl file (default: "helmwave.yml.tpl") [$HELMWAVE_TPL]
--yml auto helmwave.yml.tpl --> helmwave.yml (default: false) [$HELMWAVE_AUTO_YML, $HELMWAVE_AUTO_YAML]
$ helmwave status
[๐ aka INFO]: Status of frontend@test
status: deployed
revision: 1
name: frontend
namespace: test
chart: frontend-0.1.0
last deployed: 2021-11-10 04:41:23.330989 +0300 MSK
[๐ aka INFO]: Status of database@test
status: deployed
revision: 1
name: database
namespace: test
chart: database-0.1.0
last deployed: 2021-11-10 04:41:23.353473 +0300 MSK
[๐ aka INFO]: Status of backend@test
name: backend
namespace: test
chart: backend-0.1.0
last deployed: 2021-11-10 04:41:23.270076 +0300 MSK
status: deployed
revision: 1
rollback
ยถ
Introduced in v0.12.0
Rollback helm releases from a plan.
Flags
--revision value rollback all releases to this revision (default: -1)
--build auto build (default: false) [$HELMWAVE_AUTO_BUILD]
--dependencies evaluate releases dependencies and add them to the plan even if they don't match provided tags (default: true) [$HELMWAVE_DEPENDENCIES_ENABLED, $HELMWAVE_DEPENDENCIES]
--graph-width value set ceil width: 1 โ disable graph; 0 โ full names; N>1 โ show only N symbols; N<0 โ drop N symbols from end. (default: 0) [$HELMWAVE_GRAPH_WIDTH]
--plandir value, -p value path to plandir (default: ".helmwave/") [$HELMWAVE_PLANDIR, $HELMWAVE_PLAN]
--remote-source value go-getter URL to download build sources [$HELMWAVE_REMOTE_SOURCE]
--skip-unchanged skip unchanged releases (default: false) [$HELMWAVE_SKIP_UNCHANGED]
--3-way-merge show 3-way merge diff (default: false) [$HELMWAVE_DIFF_3_WAY_MERGE]
--diff-mode value you can set: [ live | local | none ] (default: "live") [$HELMWAVE_DIFF_MODE]
--find-renames value enable rename detection if set to any value greater than 0. (default: 1) [$HELMWAVE_DIFF_FIND_RENAMES]
--show-secret show secret in diff (default: true) [$HELMWAVE_DIFF_SHOW_SECRET]
--strip-trailing-cr strip trailing carriage return on input (default: false) [$HELMWAVE_DIFF_STRIP_TRAILING_CR]
--suppress value [ --suppress value ] allows suppression kinds of the values listed in the diff output ("Secret" for example) [$HELMWAVE_DIFF_SUPPRESS, $HELMWAVE_DIFF_SUPPRESS_KINDS]
--wide value show line around changes (default: 5) [$HELMWAVE_DIFF_WIDE]
--kubedog enable/disable kubedog (default: false) [$HELMWAVE_KUBEDOG_ENABLED, $HELMWAVE_KUBEDOG]
--kubedog-log-width value set kubedog max log line width (default: 140) [$HELMWAVE_KUBEDOG_LOG_WIDTH]
--kubedog-start-delay value delay kubedog start, don't make it too late (default: 1s) [$HELMWAVE_KUBEDOG_START_DELAY]
--kubedog-status-interval value interval of kubedog status messages: set -1s to stop showing status progress (default: 5s) [$HELMWAVE_KUBEDOG_STATUS_INTERVAL]
--kubedog-timeout value timeout of kubedog multitrackers (default: 5m0s) [$HELMWAVE_KUBEDOG_TIMEOUT]
--kubedog-track-all track almost all resources, experimental (default: false) [$HELMWAVE_KUBEDOG_TRACK_ALL]
--match-all-tags, --tt match all provided tags (default: false) [$HELMWAVE_MATCH_ALL_TAGS]
--tags value, -t value [ --tags value, -t value ] build releases by tags: -t tag1 -t tag3,tag4 [$HELMWAVE_TAGS]
--file value, -f value main yml file (default: "helmwave.yml") [$HELMWAVE_YAML, $HELMWAVE_YML]
--templater value select template engine: [ sprig | gomplate ] (default: "sprig") [$HELMWAVE_TEMPLATER, $HELMWAVE_TEMPLATE_ENGINE]
--tpl value main tpl file (default: "helmwave.yml.tpl") [$HELMWAVE_TPL]
--yml auto helmwave.yml.tpl --> helmwave.yml (default: false) [$HELMWAVE_AUTO_YML, $HELMWAVE_AUTO_YAML]
--revision
ยถ
Rollback all releases to specific revision.
Introduced in v0.30.0
--kubedog
ยถ
Enable kubedog.
--kubedog-status-interval
ยถ
Set interval for kubedog status.
--kubedog-start-delay
ยถ
Set delay before kubedog will start.
--kubedog-timeout
ยถ
Set timeout for kubedog.
--kubedog-log-width
ยถ
Set width of kubedog logboek.
--kubedog-track-all
ยถ
Introduced in v0.30.0
Track all resources, not only Deployment
, DaemonSet
, StatefulSet
, Job
.
Annotations are also respected for these resources but it wasn't tested.
It will probably fail for some non-namespaced custom resources because kubedog can track only namespaced resources. In this case kubedog will fail with a warning
$ helmwave rollback
[๐ aka INFO]: โ
frontend@test rollback!
[๐ aka INFO]: โ
database@test rollback!
[๐ aka INFO]: โ
backend@test rollback!
graph
ยถ
Introduced in v0.27.2
Show only graph of helm releases from plan. Graph draws with helmwave/asciigraph
Flags
--build auto build (default: false) [$HELMWAVE_AUTO_BUILD]
--dependencies evaluate releases dependencies and add them to the plan even if they don't match provided tags (default: true) [$HELMWAVE_DEPENDENCIES_ENABLED, $HELMWAVE_DEPENDENCIES]
--graph-width value set ceil width: 1 โ disable graph; 0 โ full names; N>1 โ show only N symbols; N<0 โ drop N symbols from end. (default: 0) [$HELMWAVE_GRAPH_WIDTH]
--plandir value, -p value path to plandir (default: ".helmwave/") [$HELMWAVE_PLANDIR, $HELMWAVE_PLAN]
--remote-source value go-getter URL to download build sources [$HELMWAVE_REMOTE_SOURCE]
--skip-unchanged skip unchanged releases (default: false) [$HELMWAVE_SKIP_UNCHANGED]
--3-way-merge show 3-way merge diff (default: false) [$HELMWAVE_DIFF_3_WAY_MERGE]
--diff-mode value you can set: [ live | local | none ] (default: "live") [$HELMWAVE_DIFF_MODE]
--find-renames value enable rename detection if set to any value greater than 0. (default: 1) [$HELMWAVE_DIFF_FIND_RENAMES]
--show-secret show secret in diff (default: true) [$HELMWAVE_DIFF_SHOW_SECRET]
--strip-trailing-cr strip trailing carriage return on input (default: false) [$HELMWAVE_DIFF_STRIP_TRAILING_CR]
--suppress value [ --suppress value ] allows suppression kinds of the values listed in the diff output ("Secret" for example) [$HELMWAVE_DIFF_SUPPRESS, $HELMWAVE_DIFF_SUPPRESS_KINDS]
--wide value show line around changes (default: 5) [$HELMWAVE_DIFF_WIDE]
--match-all-tags, --tt match all provided tags (default: false) [$HELMWAVE_MATCH_ALL_TAGS]
--tags value, -t value [ --tags value, -t value ] build releases by tags: -t tag1 -t tag3,tag4 [$HELMWAVE_TAGS]
--file value, -f value main yml file (default: "helmwave.yml") [$HELMWAVE_YAML, $HELMWAVE_YML]
--templater value select template engine: [ sprig | gomplate ] (default: "sprig") [$HELMWAVE_TEMPLATER, $HELMWAVE_TEMPLATE_ENGINE]
--tpl value main tpl file (default: "helmwave.yml.tpl") [$HELMWAVE_TPL]
--yml auto helmwave.yml.tpl --> helmwave.yml (default: false) [$HELMWAVE_AUTO_YML, $HELMWAVE_AUTO_YAML]
--graph-width
ยถ
Introduced in v0.27.1
You can change logic of graph rendering by changing this flag.
- 1:
--graph-width=1
- disable graph rendering - 2:
--graph-width=0
- try to detect max width of ceil by release name - N<0:
--graph-width=-10
- drop 10 symbols. - N>1:
--graph-width=10
- show only first 10 symbols.
validate
ยถ
Introduced in v0.12.0
Helmwave will validate a plan. Helmwave always validates plan before any command.
Flags
--plandir value, -p value path to plandir (default: ".helmwave/") [$HELMWAVE_PLANDIR, $HELMWAVE_PLAN]
$ helmwave validate
$ echo $?
0
diff
ยถ
Introduced in v0.18.0
Flags
--3-way-merge show 3-way merge diff (default: false) [$HELMWAVE_DIFF_3_WAY_MERGE]
--find-renames value enable rename detection if set to any value greater than 0. (default: 1) [$HELMWAVE_DIFF_FIND_RENAMES]
--show-secret show secret in diff (default: true) [$HELMWAVE_DIFF_SHOW_SECRET]
--strip-trailing-cr strip trailing carriage return on input (default: false) [$HELMWAVE_DIFF_STRIP_TRAILING_CR]
--suppress value [ --suppress value ] allows suppression kinds of the values listed in the diff output ("Secret" for example) [$HELMWAVE_DIFF_SUPPRESS, $HELMWAVE_DIFF_SUPPRESS_KINDS]
--wide value show line around changes (default: 5) [$HELMWAVE_DIFF_WIDE]
--wide
ยถ
Set wide output for diff.
TODO: add example
--show-secret
ยถ
Introduced in v0.16.0
Enable showing secret values in diff output.
TODO: add example
--3-way-merge
ยถ
Introduced in v0.24.4
Enable 3-way merge for diff.
TODO: add example
--suppress
ยถ
Introduced in v0.35.0
Allows suppression of the values listed in the diff output
helmwave build --suppress Secret
--strip-trailing-cr
ยถ
Introduced in v0.35.0
strip trailing carriage return on input
--find-renames
ยถ
Introduced in v0.35.0
Enable rename detection if set to any value greater than 0.
Diff has 2 subcommands plan
and live
.
This command will diff with manifests in the kubernetes cluster
--plandir value, -p value path to plandir (default: ".helmwave/") [$HELMWAVE_PLANDIR, $HELMWAVE_PLAN]
--3-way-merge show 3-way merge diff (default: false) [$HELMWAVE_DIFF_3_WAY_MERGE]
helmwave diff live
This command will diff with local plan
--plandir1 value path to plandir1 (default: ".helmwave/") [$HELMWAVE_PLANDIR_1, $HELMWAVE_PLANDIR]
--plandir2 value path to plandir2 (default: ".helmwave/") [$HELMWAVE_PLANDIR_2]
helmwave diff plan
version
ยถ
Get version of current helmwave.
$ helmwave --version
helmwave version 0.41.1
$ helmwave -v
helmwave version 0.41.1
$ helmwave version
0.41.1
$ helmwave ver
0.41.1
completion
ยถ
Generates scripts for shell completion.
Add this code to your ~/.bashrc
source <(helmwave completion bash)
echo "source <(helmwave completion bash)" >> ~/.bashrc
Add this code to your ~/.zshrc
source <(helmwave completion zsh)
echo "source <(helmwave completion zsh)" >> ~/.zshrc
schema
ยถ
You can generate json schema for autocomplete and validate helmwave.yml
in your IDE.
helmwave schema > helmwave.schema.json
๐ณ๏ธ Global flagsยถ
Global flags available in any command.
Flags
--log-color on/off color (default: true) [$HELMWAVE_LOG_COLOR]
--log-format value You can set: [ text | json | pad | emoji ] (default: "emoji") [$HELMWAVE_LOG_FORMAT]
--log-level value You can set: [ debug | info | warn | fatal | panic | trace ] (default: "info") [$HELMWAVE_LOG_LEVEL, $HELMWAVE_LOG_LVL]
--log-timestamps Add timestamps to log messages (default: false) [$HELMWAVE_LOG_TIMESTAMPS]
Helmwave uses sirupsen/logrus as internal logger.
--cache-dir
ยถ
Introduced in v0.33.0
The directory to use for storing remote sources.
--log-format
ยถ
Helmwave supports different log formatters
features | text |
json |
pad |
emoji (default) |
---|---|---|---|---|
Color | โ | โ | โ | ๐ |
Human readable | ๐ง | ๐ค | ๐ง๐ง | โ |
Performance | ๐ | ๐ข | โ๏ธ | ๐ข |
Module | TextFormatter (in-built logrus formatter) |
JSONFormatter (in-built logrus formatter) |
TextFormatter (in-built logrus formatter) |
logrus-emoji-formatter special for helmwave |
$ helmwave --log-format text build -f docs/examples/quick-start/helmwave.yml
INFO ๐จ Building releases...
INFO ๐จ Building graphs...
INFO show graph:
โโโโโโโโโโโโโโโโโโโ
โ a@my-namespace โ
โโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโ
โ b@my-namespace โ
โโโโโโโโโโโโโโโโโโโ
INFO ๐จ Building values...
INFO ๐จ no values provided release=a@my-namespace
INFO ๐จ no values provided release=b@my-namespace
INFO ๐จ Building repositories...
INFO ๐จ Building registries...
INFO ๐ registry has been added to the plan registry=registry-1.docker.io
INFO ๐จ Building charts...
INFO Pulled: registry-1.docker.io/bitnamicharts/nats:7.8.3
INFO Digest: sha256:5f80350b8a85177e4a9c7ed968f77c47bedcc461418172fb66594bc61fa1ffac
INFO Pulled: registry-1.docker.io/bitnamicharts/nats:7.8.3
INFO Digest: sha256:5f80350b8a85177e4a9c7ed968f77c47bedcc461418172fb66594bc61fa1ffac
INFO ๐จ Building manifests...
INFO โ skipping updating dependencies for remote chart release=b@my-namespace
INFO โ skipping updating dependencies for remote chart release=a@my-namespace
INFO Pulled: registry-1.docker.io/bitnamicharts/nats:7.8.3
INFO Digest: sha256:5f80350b8a85177e4a9c7ed968f77c47bedcc461418172fb66594bc61fa1ffac
INFO Pulled: registry-1.docker.io/bitnamicharts/nats:7.8.3
INFO Digest: sha256:5f80350b8a85177e4a9c7ed968f77c47bedcc461418172fb66594bc61fa1ffac
...
$ helmwave --log-format json build -f docs/examples/quick-start/helmwave.yml
{
"level": "info",
"msg": "๐จ Building releases...",
}
{
"level": "info",
"msg": "๐จ Building graphs...",
}
{
"level": "info",
"msg": "show graph:\nโโโโโโโโโโโโโโโโโโโ\nโ a@my-namespace โ\nโโโโโโโโโโโโโโโโโโโ\n \n \n \nโโโโโโโโโโโโโโโโโโโ\nโ b@my-namespace โ\nโโโโโโโโโโโโโโโโโโโ\n",
}
{
"level": "info",
"msg": "๐จ Building values...",
}
$ helmwave --log-format pad build -f docs/examples/quick-start/helmwave.yml
INFO ๐จ Building releases...
INFO ๐จ Building graphs...
INFO show graph:
โโโโโโโโโโโโโโโโโโโ
โ a@my-namespace โ
โโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโ
โ b@my-namespace โ
โโโโโโโโโโโโโโโโโโโ
INFO ๐จ Building values...
INFO ๐จ no values provided release=b@my-namespace
INFO ๐จ no values provided release=a@my-namespace
INFO ๐จ Building repositories...
INFO ๐จ Building registries...
INFO ๐ registry has been added to the plan registry=registry-1.docker.io
INFO ๐จ Building charts...
$ helmwave --log-format emoji build -f docs/examples/quick-start/helmwave.yml
[๐ aka INFO]: ๐จ Building releases...
[๐ aka INFO]: ๐จ Building graphs...
[๐ aka INFO]: show graph:
โโโโโโโโโโโโโโโโโโโ
โ a@my-namespace โ
โโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโ
โ b@my-namespace โ
โโโโโโโโโโโโโโโโโโโ
[๐ aka INFO]: ๐จ Building values...
[๐ aka INFO]: ๐จ no values provided
release: b@my-namespace
[๐ aka INFO]: ๐จ no values provided
release: a@my-namespace
[๐ aka INFO]: ๐จ Building repositories...
[๐ aka INFO]: ๐จ Building registries...
[๐ aka INFO]: ๐ registry has been added to the plan
registry: registry-1.docker.io
[๐ aka INFO]: ๐จ Building charts...
[๐ aka INFO]: Pulled: registry-1.docker.io/bitnamicharts/nats:7.8.3
--log-level
ยถ
This option manage how much information you want to get. This modern way instead of verbose (-vvvvv
) logging.
_ | info (default) |
debug |
warn |
fatal |
panic |
trace |
---|---|---|---|---|---|---|
general info | โ | โ | โ | โ | โ | โ |
incompatible version | โ | โ | โ | โ | โ | โ |
helm-debug without --progress |
โ | โ | โ | โ | โ | โ |
helm-debug with --progress |
โ | โ | โ | โ | โ | โ |
lifecycle hooks show=true |
โ | โ | โ | โ | โ | โ |
lifecycle hooks show=false |
โ | โ | โ | โ | โ | โ |
file content | โ | โ | โ | โ | โ | โ |
helm manifests, bug report | โ | โ | โ | โ | โ | โ |
--log-color
ยถ
Enable/Disable color in output.
--log-timestamps
ยถ
Add additional block with timestamp information in logs.
helmwave --log-timestamps --log-format text build -f docs/examples/quick-start/helmwave.yml
INFO[2023-06-19T05:51:32+04:00] ๐จ Building releases...
INFO[2023-06-19T05:51:32+04:00] ๐จ Building graphs...
INFO[2023-06-19T05:51:32+04:00] show graph:
โโโโโโโโโโโโโโโโโโโ
โ a@my-namespace โ
โโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโ
โ b@my-namespace โ
โโโโโโโโโโโโโโโโโโโ
INFO[2023-06-19T05:51:32+04:00] ๐จ Building values...
INFO[2023-06-19T05:51:32+04:00] ๐จ no values provided release=b@my-namespace
INFO[2023-06-19T05:51:32+04:00] ๐จ no values provided release=a@my-namespace
INFO[2023-06-19T05:51:32+04:00] ๐จ Building repositories...
INFO[2023-06-19T05:51:32+04:00] ๐จ Building registries...
INFO[2023-06-19T05:51:32+04:00] ๐ registry has been added to the plan registry=registry-1.docker.io
INFO[2023-06-19T05:51:32+04:00] ๐จ Building charts...
INFO[2023-06-19T05:51:34+04:00] Pulled: registry-1.docker.io/bitnamicharts/nats:7.8.3
helmwave --log-timestamps --log-format json build -f docs/examples/quick-start/helmwave.yml
{
"level": "info",
"msg": "๐จ Building releases...",
"time": "2023-06-19T05:52:24+04:00"
}
{
"level": "info",
"msg": "๐จ Building graphs...",
"time": "2023-06-19T05:52:24+04:00"
}
{
"level": "info",
"msg": "show graph:\nโโโโโโโโโโโโโโโโโโโ\nโ a@my-namespace โ\nโโโโโโโโโโโโโโโโโโโ\n \n \n \nโโโโโโโโโโโโโโโโโโโ\nโ b@my-namespace โ\nโโโโโโโโโโโโโโโโโโโ\n",
"time": "2023-06-19T05:52:24+04:00"
}
{
"level": "info",
"msg": "๐จ Building values...",
"time": "2023-06-19T05:52:24+04:00"
}
{
"level": "info",
"msg": "๐จ no values provided",
"release": "b@my-namespace",
"time": "2023-06-19T05:52:24+04:00"
}
{
"level": "info",
"msg": "๐จ no values provided",
"release": "a@my-namespace",
"time": "2023-06-19T05:52:24+04:00"
}
{
"level": "info",
"msg": "๐จ Building repositories...",
"time": "2023-06-19T05:52:24+04:00"
}
{
"level": "info",
"msg": "๐จ Building registries...",
"time": "2023-06-19T05:52:24+04:00"
}
$ helmwave --log-timestamps build -f docs/examples/quick-start/helmwave.yml
[2023-06-19T03:31:18+04:00] [๐ aka INFO]: ๐จ Building releases...
[2023-06-19T03:31:18+04:00] [๐ aka INFO]: ๐จ Building graphs...
[2023-06-19T03:31:18+04:00] [๐ aka INFO]: show graph:
โโโโโโโโโโโโโโโโโโโ
โ a@my-namespace โ
โโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโ
โ b@my-namespace โ
โโโโโโโโโโโโโโโโโโโ
[2023-06-19T03:31:18+04:00] [๐ aka INFO]: ๐จ Building values...
[2023-06-19T03:31:18+04:00] [๐ aka INFO]: ๐จ no values provided
release: b@my-namespace
[2023-06-19T03:31:18+04:00] [๐ aka INFO]: ๐จ no values provided
release: a@my-namespace
[2023-06-19T03:31:18+04:00] [๐ aka INFO]: ๐จ Building repositories...