๐ CLI Referenceยถ
NAME:
helmwave - true release management for helm
USAGE:
helmwave [global options] command [command options] [arguments...]
VERSION:
0.33.0
DESCRIPTION:
This tool helps you compose your helm releases!
0. $ helmwave yml
1. $ helmwave build
2. $ helmwave up
COMMANDS:
build ๐ build a plan
diff, vs ๐ show differences
up ๐ข apply your plan
list, ls ๐ list of deployed releases
rollback โฎ rollback your plan
status ๐๏ธstatus of deployed releases
down ๐ช delete all
validate ๐ validate your plan
yml ๐ render helmwave.yml.tpl -> helmwave.yml
schema generate json schema
graph show graph
version, ver show shorts version
completion generate completion script
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--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-color on/off color (default: true) [$HELMWAVE_LOG_COLOR]
--log-timestamps Add timestamps to log messages (default: false) [$HELMWAVE_LOG_TIMESTAMPS]
--cache-dir value base directory for cache (default: "/home/runner/.cache/helmwave") [$HELMWAVE_CACHE_DIR, $HELMWAVE_CACHE_HOME]
--help, -h show help
--version, -v print the version
workflow
yml
ยถ
This command renders helmwave.yml.tpl
to helmwave.yml
.
Flags
--tpl value main tpl file (default: "helmwave.yml.tpl") [$HELMWAVE_TPL]
--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
ยถ
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.
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.
--plandir value, -p value path to plandir (default: ".helmwave/") [$HELMWAVE_PLANDIR, $HELMWAVE_PLAN]
--tags value, -t value [ --tags value, -t value ] build releases by tags: -t tag1 -t tag3,tag4 [$HELMWAVE_TAGS]
--match-all-tags match all provided tags (default: false) [$HELMWAVE_MATCH_ALL_TAGS]
--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]
--skip-unchanged skip unchanged releases (default: false) [$HELMWAVE_SKIP_UNCHANGED]
--diff-mode value you can set: [ live | local | none ] (default: "live") [$HELMWAVE_DIFF_MODE]
--yml auto helmwave.yml.tpl --> helmwave.yml (default: false) [$HELMWAVE_AUTO_YML, $HELMWAVE_AUTO_YAML]
--remote-source value go-getter URL to download build sources [$HELMWAVE_REMOTE_SOURCE]
--wide value show line around changes (default: 5) [$HELMWAVE_DIFF_WIDE]
--show-secret show secret in diff (default: true) [$HELMWAVE_DIFF_SHOW_SECRET]
--3-way-merge show 3-way merge diff (default: false) [$HELMWAVE_DIFF_3_WAY_MERGE]
--tpl value main tpl file (default: "helmwave.yml.tpl") [$HELMWAVE_TPL]
--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]
--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 clusterplan
- diff with local plannone
- disable diff
--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 when call diff.
TODO: add example
up
ยถ
Helmwave will install repositories and helm releases from a plan.
Flags
--build auto build (default: false) [$HELMWAVE_AUTO_BUILD]
--progress enable progress logs of helm (INFO log level) (default: false) [$HELMWAVE_PROGRESS]
--parallel-limit value limit amount of parallel releases (default: 0) [$HELMWAVE_PARALLEL_LIMIT]
--kubedog enable/disable kubedog (default: false) [$HELMWAVE_KUBEDOG_ENABLED, $HELMWAVE_KUBEDOG]
--kubedog-status-interval value interval of kubedog status messages: set -1s to stop showing status progress (default: 5s) [$HELMWAVE_KUBEDOG_STATUS_INTERVAL]
--kubedog-start-delay value delay kubedog start, don't make it too late (default: 1s) [$HELMWAVE_KUBEDOG_START_DELAY]
--kubedog-timeout value timeout of kubedog multitrackers (default: 5m0s) [$HELMWAVE_KUBEDOG_TIMEOUT]
--kubedog-log-width value set kubedog max log line width (default: 140) [$HELMWAVE_KUBEDOG_LOG_WIDTH]
--kubedog-track-all track almost all resources, experimental (default: false) [$HELMWAVE_KUBEDOG_TRACK_ALL]
--plandir value, -p value path to plandir (default: ".helmwave/") [$HELMWAVE_PLANDIR, $HELMWAVE_PLAN]
--tags value, -t value [ --tags value, -t value ] build releases by tags: -t tag1 -t tag3,tag4 [$HELMWAVE_TAGS]
--match-all-tags match all provided tags (default: false) [$HELMWAVE_MATCH_ALL_TAGS]
--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]
--skip-unchanged skip unchanged releases (default: false) [$HELMWAVE_SKIP_UNCHANGED]
--diff-mode value you can set: [ live | local | none ] (default: "live") [$HELMWAVE_DIFF_MODE]
--yml auto helmwave.yml.tpl --> helmwave.yml (default: false) [$HELMWAVE_AUTO_YML, $HELMWAVE_AUTO_YAML]
--remote-source value go-getter URL to download build sources [$HELMWAVE_REMOTE_SOURCE]
--wide value show line around changes (default: 5) [$HELMWAVE_DIFF_WIDE]
--show-secret show secret in diff (default: true) [$HELMWAVE_DIFF_SHOW_SECRET]
--3-way-merge show 3-way merge diff (default: false) [$HELMWAVE_DIFF_3_WAY_MERGE]
--tpl value main tpl file (default: "helmwave.yml.tpl") [$HELMWAVE_TPL]
--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]
--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.
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]
--plandir value, -p value path to plandir (default: ".helmwave/") [$HELMWAVE_PLANDIR, $HELMWAVE_PLAN]
--tags value, -t value [ --tags value, -t value ] build releases by tags: -t tag1 -t tag3,tag4 [$HELMWAVE_TAGS]
--match-all-tags match all provided tags (default: false) [$HELMWAVE_MATCH_ALL_TAGS]
--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]
--skip-unchanged skip unchanged releases (default: false) [$HELMWAVE_SKIP_UNCHANGED]
--diff-mode value you can set: [ live | local | none ] (default: "live") [$HELMWAVE_DIFF_MODE]
--yml auto helmwave.yml.tpl --> helmwave.yml (default: false) [$HELMWAVE_AUTO_YML, $HELMWAVE_AUTO_YAML]
--remote-source value go-getter URL to download build sources [$HELMWAVE_REMOTE_SOURCE]
--wide value show line around changes (default: 5) [$HELMWAVE_DIFF_WIDE]
--show-secret show secret in diff (default: true) [$HELMWAVE_DIFF_SHOW_SECRET]
--3-way-merge show 3-way merge diff (default: false) [$HELMWAVE_DIFF_3_WAY_MERGE]
--tpl value main tpl file (default: "helmwave.yml.tpl") [$HELMWAVE_TPL]
--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]
$ 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]
--plandir value, -p value path to plandir (default: ".helmwave/") [$HELMWAVE_PLANDIR, $HELMWAVE_PLAN]
--tags value, -t value [ --tags value, -t value ] build releases by tags: -t tag1 -t tag3,tag4 [$HELMWAVE_TAGS]
--match-all-tags match all provided tags (default: false) [$HELMWAVE_MATCH_ALL_TAGS]
--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]
--skip-unchanged skip unchanged releases (default: false) [$HELMWAVE_SKIP_UNCHANGED]
--diff-mode value you can set: [ live | local | none ] (default: "live") [$HELMWAVE_DIFF_MODE]
--yml auto helmwave.yml.tpl --> helmwave.yml (default: false) [$HELMWAVE_AUTO_YML, $HELMWAVE_AUTO_YAML]
--remote-source value go-getter URL to download build sources [$HELMWAVE_REMOTE_SOURCE]
--wide value show line around changes (default: 5) [$HELMWAVE_DIFF_WIDE]
--show-secret show secret in diff (default: true) [$HELMWAVE_DIFF_SHOW_SECRET]
--3-way-merge show 3-way merge diff (default: false) [$HELMWAVE_DIFF_3_WAY_MERGE]
--tpl value main tpl file (default: "helmwave.yml.tpl") [$HELMWAVE_TPL]
--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]
$ 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]
--plandir value, -p value path to plandir (default: ".helmwave/") [$HELMWAVE_PLANDIR, $HELMWAVE_PLAN]
--tags value, -t value [ --tags value, -t value ] build releases by tags: -t tag1 -t tag3,tag4 [$HELMWAVE_TAGS]
--match-all-tags match all provided tags (default: false) [$HELMWAVE_MATCH_ALL_TAGS]
--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]
--skip-unchanged skip unchanged releases (default: false) [$HELMWAVE_SKIP_UNCHANGED]
--diff-mode value you can set: [ live | local | none ] (default: "live") [$HELMWAVE_DIFF_MODE]
--yml auto helmwave.yml.tpl --> helmwave.yml (default: false) [$HELMWAVE_AUTO_YML, $HELMWAVE_AUTO_YAML]
--remote-source value go-getter URL to download build sources [$HELMWAVE_REMOTE_SOURCE]
--wide value show line around changes (default: 5) [$HELMWAVE_DIFF_WIDE]
--show-secret show secret in diff (default: true) [$HELMWAVE_DIFF_SHOW_SECRET]
--3-way-merge show 3-way merge diff (default: false) [$HELMWAVE_DIFF_3_WAY_MERGE]
--tpl value main tpl file (default: "helmwave.yml.tpl") [$HELMWAVE_TPL]
--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]
$ 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]
--kubedog enable/disable kubedog (default: false) [$HELMWAVE_KUBEDOG_ENABLED, $HELMWAVE_KUBEDOG]
--kubedog-status-interval value interval of kubedog status messages: set -1s to stop showing status progress (default: 5s) [$HELMWAVE_KUBEDOG_STATUS_INTERVAL]
--kubedog-start-delay value delay kubedog start, don't make it too late (default: 1s) [$HELMWAVE_KUBEDOG_START_DELAY]
--kubedog-timeout value timeout of kubedog multitrackers (default: 5m0s) [$HELMWAVE_KUBEDOG_TIMEOUT]
--kubedog-log-width value set kubedog max log line width (default: 140) [$HELMWAVE_KUBEDOG_LOG_WIDTH]
--kubedog-track-all track almost all resources, experimental (default: false) [$HELMWAVE_KUBEDOG_TRACK_ALL]
--plandir value, -p value path to plandir (default: ".helmwave/") [$HELMWAVE_PLANDIR, $HELMWAVE_PLAN]
--tags value, -t value [ --tags value, -t value ] build releases by tags: -t tag1 -t tag3,tag4 [$HELMWAVE_TAGS]
--match-all-tags match all provided tags (default: false) [$HELMWAVE_MATCH_ALL_TAGS]
--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]
--skip-unchanged skip unchanged releases (default: false) [$HELMWAVE_SKIP_UNCHANGED]
--diff-mode value you can set: [ live | local | none ] (default: "live") [$HELMWAVE_DIFF_MODE]
--yml auto helmwave.yml.tpl --> helmwave.yml (default: false) [$HELMWAVE_AUTO_YML, $HELMWAVE_AUTO_YAML]
--remote-source value go-getter URL to download build sources [$HELMWAVE_REMOTE_SOURCE]
--wide value show line around changes (default: 5) [$HELMWAVE_DIFF_WIDE]
--show-secret show secret in diff (default: true) [$HELMWAVE_DIFF_SHOW_SECRET]
--3-way-merge show 3-way merge diff (default: false) [$HELMWAVE_DIFF_3_WAY_MERGE]
--tpl value main tpl file (default: "helmwave.yml.tpl") [$HELMWAVE_TPL]
--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]
--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]
--plandir value, -p value path to plandir (default: ".helmwave/") [$HELMWAVE_PLANDIR, $HELMWAVE_PLAN]
--tags value, -t value [ --tags value, -t value ] build releases by tags: -t tag1 -t tag3,tag4 [$HELMWAVE_TAGS]
--match-all-tags match all provided tags (default: false) [$HELMWAVE_MATCH_ALL_TAGS]
--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]
--skip-unchanged skip unchanged releases (default: false) [$HELMWAVE_SKIP_UNCHANGED]
--diff-mode value you can set: [ live | local | none ] (default: "live") [$HELMWAVE_DIFF_MODE]
--yml auto helmwave.yml.tpl --> helmwave.yml (default: false) [$HELMWAVE_AUTO_YML, $HELMWAVE_AUTO_YAML]
--remote-source value go-getter URL to download build sources [$HELMWAVE_REMOTE_SOURCE]
--wide value show line around changes (default: 5) [$HELMWAVE_DIFF_WIDE]
--show-secret show secret in diff (default: true) [$HELMWAVE_DIFF_SHOW_SECRET]
--3-way-merge show 3-way merge diff (default: false) [$HELMWAVE_DIFF_3_WAY_MERGE]
--tpl value main tpl file (default: "helmwave.yml.tpl") [$HELMWAVE_TPL]
--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]
--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
--wide value show line around changes (default: 5) [$HELMWAVE_DIFF_WIDE]
--show-secret show secret in diff (default: true) [$HELMWAVE_DIFF_SHOW_SECRET]
--3-way-merge show 3-way merge diff (default: false) [$HELMWAVE_DIFF_3_WAY_MERGE]
--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 when call diff.
TODO: add example
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]
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.33.0
$ helmwave -v
helmwave version 0.33.0
$ helmwave version
0.33.0
$ helmwave ver
0.33.0
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-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-color on/off color (default: true) [$HELMWAVE_LOG_COLOR]
--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...