Skip to content

Add release notes for 3.4 release#9326

Open
pkoutsovasilis wants to merge 6 commits intoelastic:mainfrom
pkoutsovasilis:release/3.4_update_api_3rd_party_dependencie
Open

Add release notes for 3.4 release#9326
pkoutsovasilis wants to merge 6 commits intoelastic:mainfrom
pkoutsovasilis:release/3.4_update_api_3rd_party_dependencie

Conversation

@pkoutsovasilis
Copy link
Copy Markdown
Contributor

@pkoutsovasilis pkoutsovasilis commented Apr 8, 2026

This PR adds the release notes for 3.4 release

@pkoutsovasilis pkoutsovasilis self-assigned this Apr 8, 2026
@pkoutsovasilis pkoutsovasilis added >docs Documentation exclude-from-release-notes Exclude this PR from appearing in the release notes v3.4.0 labels Apr 8, 2026
@prodsecmachine
Copy link
Copy Markdown
Collaborator

prodsecmachine commented Apr 8, 2026

Snyk checks have passed. No issues have been found so far.

Status Scan Engine Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues
Licenses 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@pkoutsovasilis pkoutsovasilis force-pushed the release/3.4_update_api_3rd_party_dependencie branch 3 times, most recently from 1883dcf to a0d4ab8 Compare April 14, 2026 10:33
@pkoutsovasilis
Copy link
Copy Markdown
Contributor Author

Both #9287 and #9291 are merged and backported

For now I have included the bump of default memory limits for Kibana to 2Gi in the breaking changes section

@pkoutsovasilis pkoutsovasilis force-pushed the release/3.4_update_api_3rd_party_dependencie branch from a0d4ab8 to 7956115 Compare April 22, 2026 04:43
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 22, 2026

@github-actions
Copy link
Copy Markdown

Vale Linting Results

Summary: 2 warnings found

⚠️ Warnings (2)
File Line Rule Message
docs/reference/third-party-dependencies/3_4_0.md 17 Elastic.BritishSpellings Use American English spelling 'license' instead of British English 'Licence'.
docs/reference/third-party-dependencies/3_4_0.md 73 Elastic.BritishSpellings Use American English spelling 'license' instead of British English 'Licence'.

The Vale linter checks documentation changes against the Elastic Docs style guide.

To use Vale locally or report issues, refer to Elastic style guide for Vale.

@pkoutsovasilis pkoutsovasilis marked this pull request as ready for review April 22, 2026 04:46
@pkoutsovasilis pkoutsovasilis requested a review from a team as a code owner April 22, 2026 04:46
Comment thread docs/release-notes/breaking-changes.md Outdated
Comment thread docs/release-notes/breaking-changes.md Outdated
Comment thread docs/release-notes/index.md Outdated
Comment thread docs/release-notes/breaking-changes.md Outdated
Comment thread docs/release-notes/index.md Outdated
Comment thread docs/release-notes/index.md Outdated
Comment thread docs/release-notes/index.md Outdated
Comment thread docs/release-notes/index.md Outdated
@barkbay
Copy link
Copy Markdown
Contributor

barkbay commented Apr 22, 2026

Error: 'deploy-manage/deploy/cloud-on-k8s/advanced-elasticsearch-node-scheduling.md' has no anchor named: '#k8s-zone-awareness'.
    ┌─[/github/workspace/docs/release-notes/index.md]
    │
 26 │ ECK simplifies the configuration of zone awareness for {{es}} clusters, reducing the amount of boilerplate configuration needed to set up topology-aware allocation. For more details, refer to the [zone awareness documentation](docs-content://deploy-manage/deploy/cloud-on-k8s/advanced-elasticsearch-node-scheduling.md#k8s-zone-awareness).

I guess it is because the change is not in main yet: https://github.com/elastic/docs-content/pull/5838/changes#diff-f358dbb582798451c241f819cfdbbd0afbf58f0d4f81da5895838647e079c16f Should be ok once the docs pr is merged I guess.

@pkoutsovasilis
Copy link
Copy Markdown
Contributor Author

I guess it is because the change is not in main yet: https://github.com/elastic/docs-content/pull/5838/changes#diff-f358dbb582798451c241f819cfdbbd0afbf58f0d4f81da5895838647e079c16f Should be ok once the docs pr is merged I guess.

My guess is the same as yours 🙂

Copy link
Copy Markdown
Contributor

@barkbay barkbay left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few observations on the Features and enhancements list:

  • Validate user-supplied CA for the transport layer of {{es}} [#8953] is labeled >bug and the PR title starts with fix:. It should probably move to the Fixes section.

  • Align DaemonSet UpdateReconciled with Deployment reconciler [#9256] also has a fix: PR title and explicitly fixes #9246, aligning DaemonSet with a bug that had already been fixed in Deployment and StatefulSet. Feels like a Fixes entry?

  • Set TransformStripManagedFields on informer caches [#9321] feels too technical as written. The actual user benefit is a noticeable reduction in operator memory footprint, per the PR description. Something like "Reduce operator memory footprint by stripping managed fields from informer caches" would communicate that better.

  • Sign ECK container images (v2) [#9078] feels like it could deserve a Release Highlight. Image signing is a meaningful security feature that users can act on (verifying signatures), and it is a first for ECK.

Copy link
Copy Markdown
Collaborator

@pebrc pebrc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few comments inline. I also wanted to point out a rolling restart was not considered a breaking change in the past. I know the category also lists "operational disruptions" as "breaking" so I am OK with listing them here, even though if ECK works correctly there should not be any service disruption (but in some cases with larger nodes a drop in throughput etc).

Comment thread docs/release-notes/index.md Outdated

#### Rolling restarts of {{es}} clusters

ECK now supports triggering rolling restarts of {{es}} clusters through a new annotation-based mechanism. This enables operators to gracefully restart all nodes in a cluster without manual intervention, useful for applying configuration changes that require a restart. The [rolling restart documentation](docs-content://deploy-manage/deploy/cloud-on-k8s/nodes-orchestration.md#cluster-rolling-restart) provides more details.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The framing here is not correct imo. Configuration changes that require a restart are handled by ECK already. This is more of a troubleshooting mechanism

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

troubleshooting mechanism it is, changed in fe75460

Comment thread docs/release-notes/index.md Outdated
Comment on lines +28 to +30
#### Operator-managed FIPS keystore password support for {{es}}

ECK now automatically manages FIPS-compliant keystore passwords for {{es}}. When FIPS mode is enabled in the {{es}} configuration (`xpack.security.fips_mode.enabled: true`), the operator generates, stores, and configures a password-protected keystore — eliminating the need for manual `podTemplate` overrides. This feature activates for {{es}} 9.4.0+ and respects any existing user-provided keystore password configuration. For more details, refer to the [{{es}} FIPS keystore password documentation](docs-content://deploy-manage/deploy/cloud-on-k8s/deploy-fips-compatible-version-of-eck.md#k8s-fips-keystore-password).
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"FIPS-compliant" is a loaded term — ECK doesn't guarantee FIPS compliance, it satisfies the Elasticsearch requirement of a password-protected keystore when running in FIPS mode. Suggest rewording to avoid the compliance claim:

Suggested change
#### Operator-managed FIPS keystore password support for {{es}}
ECK now automatically manages FIPS-compliant keystore passwords for {{es}}. When FIPS mode is enabled in the {{es}} configuration (`xpack.security.fips_mode.enabled: true`), the operator generates, stores, and configures a password-protected keystore — eliminating the need for manual `podTemplate` overrides. This feature activates for {{es}} 9.4.0+ and respects any existing user-provided keystore password configuration. For more details, refer to the [{{es}} FIPS keystore password documentation](docs-content://deploy-manage/deploy/cloud-on-k8s/deploy-fips-compatible-version-of-eck.md#k8s-fips-keystore-password).
#### Operator-managed FIPS keystore password support for {{es}}
ECK now automatically manages a password-protected keystore for {{es}} when FIPS mode is enabled. When `xpack.security.fips_mode.enabled` is set to `true` in the {{es}} configuration, the operator generates, stores, and configures a password-protected keystore — eliminating the need for manual `podTemplate` overrides. This feature activates for {{es}} 9.4.0+ and respects any existing user-provided keystore password configuration. For more details, refer to the [{{es}} FIPS keystore password documentation](docs-content://deploy-manage/deploy/cloud-on-k8s/deploy-fips-compatible-version-of-eck.md#k8s-fips-keystore-password).

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

valid point, changed in fe75460

Comment thread docs/release-notes/index.md Outdated
Comment thread docs/release-notes/breaking-changes.md Outdated

**Impact**<br> Upgrading to ECK 3.4.0 will trigger a rolling restart of most managed workloads. Plan the upgrade during a maintenance window.

**Action**<br> Schedule the ECK operator upgrade during a maintenance window to account for the rolling restart.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The maintenance window recommendation here (and in the ES client cert entry on line 43) seems at odds with what ECK is designed to do — rolling restarts are supposed to be disruption-free by respecting PDBs, managing shard reallocation, and checking cluster health before proceeding. Recommending a maintenance window undermines confidence in that mechanism.

Also, the guidance is inconsistent across the four rolling restart entries: this one and the ES client cert entry recommend a maintenance window, while the Kibana init container and Kibana memory limit entries don't.

I'd suggest dropping the maintenance window language from all rolling restart entries and using consistent wording like "No action required. Be aware that [affected pods] will restart during the operator upgrade." — similar to what the Kibana init container entry already says.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dropped in fe75460

Comment thread docs/release-notes/breaking-changes.md Outdated
Comment on lines +19 to +44
::::{dropdown} Rolling restart of managed pods due to seccompProfile security context change
ECK 3.4.0 sets `seccompProfile` to `RuntimeDefault` on managed pods. This causes a rolling restart of nearly all ECK-managed pods ({{es}}, {{product.kibana}}, APM Server, Enterprise Search, Logstash, Elastic Maps Server, and Elastic Package Registry) during the operator upgrade. Beats and Elastic Agent pods are not affected. This rolling restart only occurs when the operator flag `set-default-security-context` is set to `auto-detect` (the default) or `true`.
For more information, check [PR #9012](https://github.com/elastic/cloud-on-k8s/pull/9012).

**Impact**<br> Upgrading to ECK 3.4.0 will trigger a rolling restart of most managed workloads. Plan the upgrade during a maintenance window.

**Action**<br> Schedule the ECK operator upgrade during a maintenance window to account for the rolling restart.
::::

::::{dropdown} Rolling restart of {{product.kibana}} pods due to init container security context change
ECK 3.4.0 sets a default security context on the {{product.kibana}} init container, which will cause {{product.kibana}} pods to rolling restart during the operator upgrade.
For more information, check [PR #9218](https://github.com/elastic/cloud-on-k8s/pull/9218).

**Impact**<br> {{product.kibana}} pods will be restarted as part of the operator upgrade.

**Action**<br> No action required. Be aware that {{product.kibana}} pods will restart during the upgrade.
::::

::::{dropdown} Rolling restart of {{es}} pods due to client certificate authentication support
ECK 3.4.0 adds client certificate authentication support for {{es}}. This changes the pre-stop hook and readiness probe scripts embedded in the {{es}} pod spec to handle client certificates when available, which causes a rolling restart of all {{es}} pods during the operator upgrade.
For more information, check [PR #9229](https://github.com/elastic/cloud-on-k8s/pull/9229) and [PR #9375](https://github.com/elastic/cloud-on-k8s/pull/9375).

**Impact**<br> All {{es}} pods will be restarted as part of the operator upgrade.

**Action**<br> No action required. Be aware that {{es}} pods will restart during the upgrade. Plan the upgrade during a maintenance window.
::::
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider consolidating the four rolling restart entries into one per affected workload. A customer doesn't care whether ES restarts because of the client cert feature or the seccompProfile change — they care that ES pods will restart during the upgrade. The current structure reads like an internal changelog rather than user-facing guidance.

Suggested structure:

  1. {{es}} pods will restart during the operator upgrade — one entry covering all ES pod spec changes (seccompProfile, client cert scripts). No action required beyond awareness.
  2. {{product.kibana}} pods will restart during the operator upgrade — one entry covering init container security context and memory limit changes. This one should still call out the OOM risk for users with explicit memory limits below 2Gi, since that has a distinct action item.
  3. Default PVC handling change — keep as-is, it has its own distinct action.

This reduces five entries to three, and each maps to something the user can actually act on rather than listing internal implementation reasons for the same observable outcome.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

consolidated in fe75460

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

>docs Documentation exclude-from-release-notes Exclude this PR from appearing in the release notes v3.4.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants