diff --git a/docs/examples/apps-per-ns/helmwave.yml b/docs/examples/apps-per-ns/helmwave.yml index 765d301f..3d2cebec 100644 --- a/docs/examples/apps-per-ns/helmwave.yml +++ b/docs/examples/apps-per-ns/helmwave.yml @@ -13,7 +13,7 @@ repositories: # General options .options: &options - wait: true + wait: watcher wait_for_jobs: true force: false timeout: 10m diff --git a/docs/examples/apps-per-ns/helmwave.yml.tpl b/docs/examples/apps-per-ns/helmwave.yml.tpl index 204f5b09..939fea45 100644 --- a/docs/examples/apps-per-ns/helmwave.yml.tpl +++ b/docs/examples/apps-per-ns/helmwave.yml.tpl @@ -13,7 +13,7 @@ repositories: # General options .options: &options - wait: true + wait: watcher wait_for_jobs: true force: false timeout: 10m diff --git a/docs/examples/cross-release-reference/helmwave.yml b/docs/examples/cross-release-reference/helmwave.yml index e1b4aeaf..185aa7e1 100644 --- a/docs/examples/cross-release-reference/helmwave.yml +++ b/docs/examples/cross-release-reference/helmwave.yml @@ -7,7 +7,7 @@ repositories: .options: &options namespace: my-namespace - wait: true + wait: watcher releases: # redis is built first (no dependencies) diff --git a/docs/examples/full/helmwave.yml b/docs/examples/full/helmwave.yml index f7a276b9..d152cd1c 100644 --- a/docs/examples/full/helmwave.yml +++ b/docs/examples/full/helmwave.yml @@ -91,11 +91,13 @@ releases: disable_hooks: false disable_openapi_validation: false force: false + force_conflicts: false + server_side_apply: auto + post_render_strategy: combined enable_dns: false - recreate: false reset_values: false reuse_values: false skip_crds: false sub_notes: false - wait: true + wait: watcher wait_for_jobs: true \ No newline at end of file diff --git a/docs/examples/graph/helmwave.yml b/docs/examples/graph/helmwave.yml index 38610eea..68cac072 100644 --- a/docs/examples/graph/helmwave.yml +++ b/docs/examples/graph/helmwave.yml @@ -8,7 +8,7 @@ registries: .options: &options namespace: my-namespace create_namespace: true - wait: true + wait: watcher timeout: 1m max_history: 3 # best practice offline_kube_version: 1.22.2 diff --git a/docs/examples/kubedog/helmwave.yml b/docs/examples/kubedog/helmwave.yml index 3bc31bf8..4dbbaa18 100644 --- a/docs/examples/kubedog/helmwave.yml +++ b/docs/examples/kubedog/helmwave.yml @@ -18,5 +18,5 @@ releases: - values.yml namespace: my-redis create_namespace: true - wait: true + wait: watcher timeout: 3m diff --git a/docs/examples/lifecycle/helmwave.yml b/docs/examples/lifecycle/helmwave.yml index 59c03673..f45926db 100644 --- a/docs/examples/lifecycle/helmwave.yml +++ b/docs/examples/lifecycle/helmwave.yml @@ -30,7 +30,7 @@ registries: namespace: my-namespace create_namespace: true offline_kube_version: 1.22.0 - wait: true + wait: watcher timeout: 1m max_history: 3 # best practice chart: diff --git a/docs/examples/monitors/helmwave.yml b/docs/examples/monitors/helmwave.yml index 30eb1722..cecefb0e 100644 --- a/docs/examples/monitors/helmwave.yml +++ b/docs/examples/monitors/helmwave.yml @@ -28,7 +28,7 @@ monitors: .options: &options namespace: nats create_namespace: true - wait: true + wait: watcher timeout: 1m max_history: 3 # best practice chart: diff --git a/docs/examples/private-github-repo/helmwave.yml b/docs/examples/private-github-repo/helmwave.yml index ff58dd54..f10237cf 100644 --- a/docs/examples/private-github-repo/helmwave.yml +++ b/docs/examples/private-github-repo/helmwave.yml @@ -5,7 +5,7 @@ repositories: .options: &options namespace: ips create_namespace: true - wait: true + wait: watcher releases: - name: hello diff --git a/docs/examples/private-github-repo/helmwave.yml.tpl b/docs/examples/private-github-repo/helmwave.yml.tpl index 70216156..407520f1 100644 --- a/docs/examples/private-github-repo/helmwave.yml.tpl +++ b/docs/examples/private-github-repo/helmwave.yml.tpl @@ -9,7 +9,7 @@ repositories: .options: &options namespace: {{ requiredEnv "NS" }} create_namespace: true - wait: true + wait: watcher releases: diff --git a/docs/examples/quick-start/helmwave.yml b/docs/examples/quick-start/helmwave.yml index 54d3c572..1fa548f5 100644 --- a/docs/examples/quick-start/helmwave.yml +++ b/docs/examples/quick-start/helmwave.yml @@ -8,7 +8,7 @@ registries: .options: &options namespace: my-namespace create_namespace: true - wait: true + wait: watcher timeout: 1m max_history: 3 # best practice chart: diff --git a/docs/examples/umbrella-evil/helmwave.yml b/docs/examples/umbrella-evil/helmwave.yml index 185c66c8..633f15c6 100644 --- a/docs/examples/umbrella-evil/helmwave.yml +++ b/docs/examples/umbrella-evil/helmwave.yml @@ -7,7 +7,7 @@ repositories: .options: &options namespace: stage - wait: true + wait: watcher max_history: 5 releases: diff --git a/docs/examples/values-delimiter-flags/helmwave.yml b/docs/examples/values-delimiter-flags/helmwave.yml index 6580bad5..615bf444 100644 --- a/docs/examples/values-delimiter-flags/helmwave.yml +++ b/docs/examples/values-delimiter-flags/helmwave.yml @@ -7,7 +7,7 @@ repositories: .options: &options namespace: my-namespace - wait: true + wait: watcher releases: - name: nginx diff --git a/docs/examples/values-dependencies/helmwave.yml b/docs/examples/values-dependencies/helmwave.yml index ea69c436..4c391cfe 100644 --- a/docs/examples/values-dependencies/helmwave.yml +++ b/docs/examples/values-dependencies/helmwave.yml @@ -7,7 +7,7 @@ repositories: .options: &options namespace: my-namespace - wait: true + wait: watcher releases: - name: nginx diff --git a/docs/examples/values-disable-render/helmwave.yml b/docs/examples/values-disable-render/helmwave.yml index fb1f2419..68b4fd27 100644 --- a/docs/examples/values-disable-render/helmwave.yml +++ b/docs/examples/values-disable-render/helmwave.yml @@ -7,7 +7,7 @@ repositories: .options: &options namespace: my-namespace - wait: true + wait: watcher releases: - name: nginx diff --git a/docs/examples/values-sops/helmwave.yml b/docs/examples/values-sops/helmwave.yml index 12a282fe..498038f1 100644 --- a/docs/examples/values-sops/helmwave.yml +++ b/docs/examples/values-sops/helmwave.yml @@ -7,7 +7,7 @@ repositories: .options: &options namespace: my-namespace - wait: true + wait: watcher releases: - name: nginx diff --git a/docs/examples/values-strict-flag/helmwave.yml b/docs/examples/values-strict-flag/helmwave.yml index 4499a0a9..03ca74d2 100644 --- a/docs/examples/values-strict-flag/helmwave.yml +++ b/docs/examples/values-strict-flag/helmwave.yml @@ -7,7 +7,7 @@ repositories: .options: &options namespace: my-namespace - wait: true + wait: watcher releases: - name: nginx diff --git a/docs/examples/vault/helmwave.yml b/docs/examples/vault/helmwave.yml index 42fc1741..d53e806e 100644 --- a/docs/examples/vault/helmwave.yml +++ b/docs/examples/vault/helmwave.yml @@ -9,6 +9,6 @@ releases: - name: app chart: bitnami/nginx namespace: test - wait: true + wait: watcher values: - values-secret.yaml diff --git a/docs/yaml.md b/docs/yaml.md index 905052b9..fa2ac707 100644 --- a/docs/yaml.md +++ b/docs/yaml.md @@ -348,7 +348,7 @@ Almost all options that are here are native :simple-helm: helm options. | monitors | 🙅 | array | [] | ✅ | | | allow_failure | 🙅 | bool | false | | | | pending_release_strategy | 🙅 | string | "" | | | -| wait | 🙅 | bool | false | | :simple-helm: | +| wait | 🙅 | string | "hookOnly" | | :simple-helm: | | wait_for_jobs | 🙅 | bool | false | | :simple-helm: | | timeout | 🙅 | interval | 5m | | :simple-helm: | | max_history | 🙅 | int | 0 | | :simple-helm: | @@ -359,17 +359,19 @@ Almost all options that are here are native :simple-helm: helm options. | disable_hooks | 🙅 | bool | false | | :simple-helm: | | disable_open_api_validation | 🙅 | bool | false | | :simple-helm: | | force | 🙅 | bool | false | | :simple-helm: | +| force_conflicts | 🙅 | bool | false | | :simple-helm: | | enable_dns | 🙅 | bool | false | | :simple-helm: | -| recreate | 🙅 | bool | false | | :simple-helm: | | reset_values | 🙅 | bool | false | | :simple-helm: | | reuse_values | 🙅 | bool | false | | :simple-helm: | | reset_then_reuse_values | 🙅 | bool | false | | :simple-helm: | | skip_crds | 🙅 | bool | false | | :simple-helm: | | take_ownership | 🙅 | bool | false | | :simple-helm: | | skip_schema_validation | 🙅 | bool | false | | :simple-helm: | +| server_side_apply | 🙅 | string | "auto" | | :simple-helm: | | hide_notes | 🙅 | bool | true | | :simple-helm: | | sub_notes | 🙅 | bool | false | | :simple-helm: | | post_renderer | 🙅 | array | [] | ✅ | :simple-helm: | +| post_render_strategy | 🙅 | string | "combined" | | :simple-helm: | | delete_propagation | 🙅 | string | "background" | | :simple-helm: | | labels | 🙅 | object | {} | | :simple-helm: | | tests | 🙅 | object | {} | | :simple-helm: | @@ -757,7 +759,19 @@ it will follow specified strategy: ### wait -We recommend using `wait` for all releases. It will wait for all resources to be ready. +> Changed in [:material-tag: v0.44.4](https://github.com/helmwave/helmwave/releases/tag/v0.44.4) + +How to wait for the release resources: + +- `watcher` — wait for every resource using kubernetes watches; +- `legacy` — wait by polling; +- `hookOnly` (default) — wait only for hooks, not for the chart's own resources. + +We recommend `watcher` for all releases. + +!!! danger "The booleans are gone since v0.44.4" + + `wait: true` and `wait: false` are rejected: use `watcher` instead of `true` and `hookOnly` instead of `false`. ### wait_for_jobs @@ -836,6 +850,12 @@ Force resource updates through a replacement strategy !!! tip "We don't recommend using this option." +### force_conflicts + +> Introduced in [:material-tag: v0.44.4](https://github.com/helmwave/helmwave/releases/tag/v0.44.4) + +Force [server-side apply](#server_side_apply) changes against field-ownership conflicts. + ### enable_dns > Introduced in [:material-tag: v0.27.1](https://github.com/helmwave/helmwave/releases/tag/v0.27.1) @@ -844,11 +864,8 @@ Enable DNS resolution in templates. ### recreate -> Introduced in [:material-tag: v0.5.0](https://github.com/helmwave/helmwave/releases/tag/v0.5.0) - -Allows deleting and then creating resources (pods) when needed instead of updating. - -!!! tip "We don't recommend using this option." +> Removed in [:material-tag: v0.44.4](https://github.com/helmwave/helmwave/releases/tag/v0.44.4) — helm v4 +> removed the option behind it. The key is still parsed but has no effect. ### reset_values @@ -903,6 +920,12 @@ Will ignore the check for helm annotations and take ownership of the resources Determines if JSON schema validation is disabled +### server_side_apply + +> Introduced in [:material-tag: v0.44.4](https://github.com/helmwave/helmwave/releases/tag/v0.44.4) + +Whether to apply objects server-side: `true`, `false` or `auto` (default). + ### post_renderer > Introduced in [:material-tag: v0.24.0](https://github.com/helmwave/helmwave/releases/tag/v0.24.0) @@ -911,6 +934,20 @@ You can use custom commands to change rendered manifests. Check out [:material-duck: the example](../examples/helm-patch-with-kustomize) +!!! note "Since v0.44.4 the command also receives hook manifests by default" + + Set [`post_render_strategy: nohooks`](#post_render_strategy) to feed it manifests only. + +### post_render_strategy + +> Introduced in [:material-tag: v0.44.4](https://github.com/helmwave/helmwave/releases/tag/v0.44.4) + +How manifests are handed to the [`post_renderer`](#post_renderer): + +- `combined` (default) — templates and hooks in one stream; +- `separate` — templates and hooks in separate runs; +- `nohooks` — templates only. + ### hide_notes (ex:show_notes) > Introduced in [:material-tag: v0.31.0](https://github.com/helmwave/helmwave/releases/tag/v0.31.0) diff --git a/mkdocs.yml b/mkdocs.yml index e31d8182..eafd6403 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -121,7 +121,7 @@ theme: - search.highlight extra: - ver: 0.43.0 + ver: 0.44.4 version: provider: mike default: latest