From d7be712c806e8acc8356ac5faaf18fddfcc7b33e Mon Sep 17 00:00:00 2001 From: Evans Mungai Date: Fri, 27 Mar 2026 15:46:01 +0100 Subject: [PATCH 1/5] chore: update release notes for Embedded Cluster 2.15.0 Signed-off-by: Evans Mungai --- docs/partials/helm/_helm-cr-upgrade-flags.mdx | 4 ++- docs/release-notes/rn-embedded-cluster.md | 33 +++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/docs/partials/helm/_helm-cr-upgrade-flags.mdx b/docs/partials/helm/_helm-cr-upgrade-flags.mdx index 4b41f0cc98..76a0b53a79 100644 --- a/docs/partials/helm/_helm-cr-upgrade-flags.mdx +++ b/docs/partials/helm/_helm-cr-upgrade-flags.mdx @@ -1,6 +1,8 @@ Specifies additional flags to pass to the `helm upgrade` command for charts. These flags are passed in addition to any flags Replicated KOTS passes by default. The values specified here take precedence if KOTS already passes the same flag. The `helmUpgradeFlags` attribute can be parsed by template functions. For more information about template functions, see [About template function contexts](template-functions-about). -KOTS uses `helm upgrade` for _all_ deployments of an application, not just upgrades, by specifying the `--install` flag. For non-boolean flags that require an additional argument, such as `--timeout 1200s`, you must use an equal sign (`=`) or specify the additional argument separately in the array. +KOTS uses `helm upgrade` for _all_ deployments of an application, not just upgrades, by specifying the `--install` flag. For non-boolean flags that require an additional argument, such as `--timeout 1200s`, you must use an equal sign (`=`) or specify the additional argument separately in the array. + +With Helm v4 (available in Embedded Cluster 2.15.0 and later), if `helmUpgradeFlags` includes `--take-ownership` or `--force-replace`/`--force`, KOTS automatically appends `--server-side=false` to ensure compatibility. **Example:** diff --git a/docs/release-notes/rn-embedded-cluster.md b/docs/release-notes/rn-embedded-cluster.md index a33f73fb87..b8fe1f55ae 100644 --- a/docs/release-notes/rn-embedded-cluster.md +++ b/docs/release-notes/rn-embedded-cluster.md @@ -12,6 +12,39 @@ Additionally, these release notes list the versions of Kubernetes and Replicated +## 2.15.0 + +Released on March 26, 2026 + + + + + + + + + + + + + + + + + + +
Version2.15.0+k8s-1.342.15.0+k8s-1.332.15.0+k8s-1.32
Kubernetes Version1.34.61.33.101.32.13
KOTS Version1.129.4-ec.3
+ +### New features {#new-features-2-15-0} +* Migrates Helm to version 4. + +### Improvements {#improvements-2-15-0} +* Updates Kubernetes to 1.34.6 and 1.33.10 across the supported versions. + +### Bug fixes {#bug-fixes-2-15-0} +* Fixes an issue in high availability (HA) installations where the registry could fail due to missing shared HTTP secret or stale bucket hooks. +* Fixes an issue where adding a Helm repository was attempted during air gap installations, causing failures. + ## 2.14.1 Released on March 16, 2026 From 227cd3a0c6d004862f58ecb896023fa7c97aec68 Mon Sep 17 00:00:00 2001 From: Evans Mungai Date: Fri, 27 Mar 2026 15:51:08 +0100 Subject: [PATCH 2/5] Change Signed-off-by: Evans Mungai --- docs/partials/helm/_helm-cr-upgrade-flags.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/partials/helm/_helm-cr-upgrade-flags.mdx b/docs/partials/helm/_helm-cr-upgrade-flags.mdx index 76a0b53a79..7c7f52835d 100644 --- a/docs/partials/helm/_helm-cr-upgrade-flags.mdx +++ b/docs/partials/helm/_helm-cr-upgrade-flags.mdx @@ -2,7 +2,9 @@ Specifies additional flags to pass to the `helm upgrade` command for charts. The KOTS uses `helm upgrade` for _all_ deployments of an application, not just upgrades, by specifying the `--install` flag. For non-boolean flags that require an additional argument, such as `--timeout 1200s`, you must use an equal sign (`=`) or specify the additional argument separately in the array. -With Helm v4 (available in Embedded Cluster 2.15.0 and later), if `helmUpgradeFlags` includes `--take-ownership` or `--force-replace`/`--force`, KOTS automatically appends `--server-side=false` to ensure compatibility. +> Introduced in Embedded Cluster v2.15.0 + +With Helm v4, if `helmUpgradeFlags` includes `--take-ownership` or `--force-replace`/`--force`, KOTS automatically appends `--server-side=false` to ensure compatibility. **Example:** From 90d8dcfa83d91afccac3107d41ba6b042c141300 Mon Sep 17 00:00:00 2001 From: Evans Mungai Date: Fri, 27 Mar 2026 15:58:12 +0100 Subject: [PATCH 3/5] change Signed-off-by: Evans Mungai --- docs/partials/helm/_helm-cr-upgrade-flags.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/partials/helm/_helm-cr-upgrade-flags.mdx b/docs/partials/helm/_helm-cr-upgrade-flags.mdx index 7c7f52835d..631aeae4ee 100644 --- a/docs/partials/helm/_helm-cr-upgrade-flags.mdx +++ b/docs/partials/helm/_helm-cr-upgrade-flags.mdx @@ -4,7 +4,7 @@ KOTS uses `helm upgrade` for _all_ deployments of an application, not just upgra > Introduced in Embedded Cluster v2.15.0 -With Helm v4, if `helmUpgradeFlags` includes `--take-ownership` or `--force-replace`/`--force`, KOTS automatically appends `--server-side=false` to ensure compatibility. +With Helm v4, if `helmUpgradeFlags` includes `--take-ownership` or `--force-replace`/`--force`, KOTS automatically appends `--server-side=false`. Resources previously deployed using HelmChart v1 without `useHelmInstall: true` were applied with `kubectl apply`, which uses client-side apply (CSA). When Helm v4 attempts to take ownership of those resources using SSA, field manager conflicts cause an error. The `--force` and `--force-replace` flags are also not permitted by Helm when SSA is enabled. **Example:** From a9cc9c1e59af3f0ffa2c945b28a721ee837404ea Mon Sep 17 00:00:00 2001 From: Evans Mungai Date: Fri, 27 Mar 2026 16:04:57 +0100 Subject: [PATCH 4/5] fix: address vale linting comments in helmUpgradeFlags partial --- docs/partials/helm/_helm-cr-upgrade-flags.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/partials/helm/_helm-cr-upgrade-flags.mdx b/docs/partials/helm/_helm-cr-upgrade-flags.mdx index 631aeae4ee..f01f971953 100644 --- a/docs/partials/helm/_helm-cr-upgrade-flags.mdx +++ b/docs/partials/helm/_helm-cr-upgrade-flags.mdx @@ -4,7 +4,7 @@ KOTS uses `helm upgrade` for _all_ deployments of an application, not just upgra > Introduced in Embedded Cluster v2.15.0 -With Helm v4, if `helmUpgradeFlags` includes `--take-ownership` or `--force-replace`/`--force`, KOTS automatically appends `--server-side=false`. Resources previously deployed using HelmChart v1 without `useHelmInstall: true` were applied with `kubectl apply`, which uses client-side apply (CSA). When Helm v4 attempts to take ownership of those resources using SSA, field manager conflicts cause an error. The `--force` and `--force-replace` flags are also not permitted by Helm when SSA is enabled. +With Helm v4, if `helmUpgradeFlags` includes `--take-ownership` or `--force-replace`/`--force`, KOTS automatically appends `--server-side=false`. HelmChart v1 without `useHelmInstall: true` uses `kubectl apply` to deploy resources, which uses client-side apply (CSA). When Helm v4 attempts to take ownership of those resources, server-side apply (SSA) causes field manager conflicts. Helm also does not allow `--force` or `--force-replace` with SSA. **Example:** From e4abc432ff1d1c7c1207c7611a8c513bc3065415 Mon Sep 17 00:00:00 2001 From: Evans Mungai Date: Fri, 27 Mar 2026 16:11:54 +0100 Subject: [PATCH 5/5] move: Helm v4 SSA note to helm-v2-migrate page --- docs/partials/helm/_helm-cr-upgrade-flags.mdx | 4 ---- docs/vendor/helm-v2-migrate.md | 6 ++++++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/partials/helm/_helm-cr-upgrade-flags.mdx b/docs/partials/helm/_helm-cr-upgrade-flags.mdx index f01f971953..553fdaddf2 100644 --- a/docs/partials/helm/_helm-cr-upgrade-flags.mdx +++ b/docs/partials/helm/_helm-cr-upgrade-flags.mdx @@ -2,10 +2,6 @@ Specifies additional flags to pass to the `helm upgrade` command for charts. The KOTS uses `helm upgrade` for _all_ deployments of an application, not just upgrades, by specifying the `--install` flag. For non-boolean flags that require an additional argument, such as `--timeout 1200s`, you must use an equal sign (`=`) or specify the additional argument separately in the array. -> Introduced in Embedded Cluster v2.15.0 - -With Helm v4, if `helmUpgradeFlags` includes `--take-ownership` or `--force-replace`/`--force`, KOTS automatically appends `--server-side=false`. HelmChart v1 without `useHelmInstall: true` uses `kubectl apply` to deploy resources, which uses client-side apply (CSA). When Helm v4 attempts to take ownership of those resources, server-side apply (SSA) causes field manager conflicts. Helm also does not allow `--force` or `--force-replace` with SSA. - **Example:** ```yaml diff --git a/docs/vendor/helm-v2-migrate.md b/docs/vendor/helm-v2-migrate.md index 71b101ad9d..65571163ce 100644 --- a/docs/vendor/helm-v2-migrate.md +++ b/docs/vendor/helm-v2-migrate.md @@ -195,6 +195,12 @@ The `--take-ownership` flag is required for the following types of migrations: `--take-ownership` is _not_ needed when migrating from HelmChart v1 with `useHelmInstall: true` to HelmChart v2. +### How does Helm v4 affect `--take-ownership` and `--force`? + +> Introduced in Embedded Cluster v2.15.0 + +With Helm v4, if `helmUpgradeFlags` includes `--take-ownership` or `--force-replace`/`--force`, KOTS automatically appends `--server-side=false`. HelmChart v1 without `useHelmInstall: true` uses `kubectl apply` to deploy resources, which uses client-side apply (CSA). When Helm v4 attempts to take ownership of those resources, server-side apply (SSA) causes field manager conflicts. Helm also does not allow `--force` or `--force-replace` with SSA. + ### What is the difference between HelmChart v1 with `useHelmInstall: false` and `useHelmInstall: true`? With HelmChart v1 and `useHelmInstall: false`, KOTS renders the Helm templates and deploys them as standard Kubernetes manifests using `kubectl apply`. This differs from both the HelmChart v1 with `useHelmInstall: true` and HelmChart v2 methods, where KOTS installs the application using Helm.