Yaml
works on helm v3.9.3
Project
Reserved for future.
Version
Helmwave will check current version and project version.
In the future it is planned to be used for major compatibility.
Registries[]
OCI registries
field | required | type | default |
---|---|---|---|
host | ✅ | string | "" |
username | string | "" | |
password | string | "" | |
insecure | bool | false |
Examples
Repositories[]
field | required | type | default |
---|---|---|---|
name | ✅ | string | "" |
url | ✅ | url | "" |
username | 🙅 | string | "" |
password | 🙅 | string | "" |
certfile | 🙅 | string | "" |
keyfile | 🙅 | string | "" |
cafile | 🙅 | string | "" |
insecureskiptlsverify | 🙅 | bool | false |
force | 🙅 | bool | false |
name
Local name alias
url
URL for chart repository
force
Don't skip if repository exists.
Releases[]
Almost all options that are here are native helm options
field | required | type | default | helmwave build |
helmwave up |
---|---|---|---|---|---|
name | ✅ | string | "" | ✅ | ✅ |
namespace | ✅ | string | "" | ✅ | ✅ |
chart | ✅ | string or object | {} | ✅ | ✅ |
description | 🙅 | string | "" | ||
depends_on | 🙅 | array | [] | ✅ | |
allow_failure | 🙅 | bool | false | ✅ | |
values | 🙅 | array | [] | ✅ | ✅ |
tags | 🙅 | array | [] | ✅ | |
store | 🙅 | object | {} | ✅ | |
timeout | 🙅 | interval | 0s | ✅ | |
max_history | 🙅 | int | 0 | ✅ | |
create_namespace | 🙅 | bool | false | ✅ | |
reset_values | 🙅 | bool | false | ✅ | |
recreate | 🙅 | bool | false | ✅ | |
force | 🙅 | bool | false | ✅ | |
atomic | 🙅 | bool | false | ✅ | |
cleanup_on_fail | 🙅 | bool | false | ✅ | |
subnotes | 🙅 | bool | false | ✅ | |
disable_hooks | 🙅 | bool | false | ✅ | |
disable_open_api_validation | 🙅 | bool | false | ✅ | |
wait_for_jobs | 🙅 | bool | false | ✅ | |
wait | 🙅 | bool | false | ✅ | |
skip_crds | 🙅 | bool | false | ✅ | |
devel | 🙅 | bool | false | ✅ | |
reuse_values | 🙅 | bool | false | ✅ |
name
Release name
I hope you know what it is.
namespace
Kubernetes namespace
create_namespace
if
true
Helmwave will create the release namespace if not present
timeout
time to wait for any individual Kubernetes operation
Chart Options
field | required | type | default |
---|---|---|---|
name | ✅ | string | "" |
version | 🙅 | string | "" |
username | 🙅 | string | "" |
password | 🙅 | string | "" |
certfile | 🙅 | string | "" |
keyfile | 🙅 | string | "" |
cafile | 🙅 | string | "" |
insecureskiptlsverify | 🙅 | bool | false |
Values option
field | required | type | default |
---|---|---|---|
src | ✅ | string | "" |
strict | 🙅 | bool | false |
render | 🙅 | bool | true |
🗳️ Store
It allows to pass your custom fields from
helmwave.yml
to values.
It works when you call $ helmwave build
🔖 Tags
It allows you to choose releases for build
It works with next options when you call $ helmwave build
:
--tags value, -t value It allows you choose releases for build. Example: -t tag1 -t tag3,tag4 [$HELMWAVE_TAGS]
--match-all-tags Match all provided tags (default: false) [$HELMWAVE_MATCH_ALL_TAGS]
Matching with tags
Suppose we have next helmwave.yml
with 4 releases.
- redis-a
- redis-b
- memcached-a
- memcached-b
repositories:
- name: bitnami
url: https://charts.bitnami.com/bitnami
releases:
- name: redis-a
namespace: test
chart:
name: bitnami/redis
tags:
- a
- redis
- name: redis-b
namespace: test
chart:
name: bitnami/redis
tags:
- b
- redis
- name: memcached-a
namespace: test
chart:
name: bitnami/redis
tags:
- a
- memcached
- name: memcached-b
namespace: test
chart:
name: bitnami/memcached
tags:
- b
- memcached
Match all redis
helmwave build -t redis
[🙃 aka INFO]: 🏗 Plan
releases:
- redis-a@test
- redis-b@test
Match the group a
helmwave build -t a
[🙃 aka INFO]: 🏗 Plan
releases:
- redis-a@test
- memcached-a@test
Match multiply group.
If you know SQL. It looks like that:
SELECT * FROM releases WHERE tag = "redis" OR tag = "a"
helmwave build -t redis -t a
[🙃 aka INFO]: 🏗 Plan
releases:
- redis-a@test
- redis-b@test
- memcached-a@test
All that was above, we used the logical OR
operator.
If you need strongly logic with AND
you should use --match-all-tags
flag.
This flag changes logic for query releases.
If you know SQL. It looks like that:
SELECT * FROM releases WHERE tag = "redis" AND tag = "a"
helmwave build -t redis -t a --match-all-tags
[🙃 aka INFO]: 🏗 Plan
releases:
- redis-a@test
depends_on
It allows waiting releases
It works when you call $ helmwave up
Example for 3-tier application
Your helmwave.yml
will
releases:
- name: frontend
depends_on: backend@test
namespace: test
- name: backend
depends_on: db@test
namespace: test
- name: db
allow_failure: false
namespace: test
allow_failure
When allow_failure
is set true. It allows the installation to proceed.
pending_release_strategy
Strategy to handle releases in pending statuses (
pending-install
,pending-upgrade
,pending-rollback
)
If helmwave tries to upgrade release that is currently in one of pending statuses it will follow specified strategy:
""
(or not specified) - do nothing. Helm will fail in this caserollback
- rollback release to previous version. Upgrade will happen after rollback is completeuninstall
- uninstall release. Upgrade will happen after uninstall is complete