Repository: elastic/cloud-on-k8s

Issue:
Investigate adding automemlimit to automatically configure GOMEMLIMIT
We have had good experience utilizing https://github.com/KimMachineGun/automemlimit in other controllers. We should discuss adding this to the ECK operator as well.

Discussion:

Solution patch:
diff --git a/.buildkite/e2e/nightly-main-matrix.yaml b/.buildkite/e2e/nightly-main-matrix.yaml
index 16e7904ca..78fdce224 100644
--- a/.buildkite/e2e/nightly-main-matrix.yaml
+++ b/.buildkite/e2e/nightly-main-matrix.yaml
@@ -3,19 +3,19 @@
   fixed:
     E2E_PROVIDER: gke
   mixed:
-    - E2E_STACK_VERSION: "8.18.0"
-    # current stack version 9.0.0 is tested in all other tests no need to test it again
+    - E2E_STACK_VERSION: "8.19.0"
+    # current stack version 9.1.2 is tested in all other tests no need to test it again
     - E2E_STACK_VERSION: "8.19.0-SNAPSHOT"
-    - E2E_STACK_VERSION: "9.1.0-SNAPSHOT"
+    - E2E_STACK_VERSION: "9.2.0-SNAPSHOT"
 
 - label: ocp
   fixed:
     E2E_PROVIDER: ocp
   mixed:
     ## Test the current stack version.
-    - E2E_STACK_VERSION: "9.0.0"
+    - E2E_STACK_VERSION: "9.1.2"
     ## Also test the next stack version to detect any change in the images that might not be compatible with the CRI-O runtime.
-    - E2E_STACK_VERSION: "9.1.0-SNAPSHOT"
+    - E2E_STACK_VERSION: "9.2.0-SNAPSHOT"
 
 - label: kind
   fixed:
diff --git a/.buildkite/e2e/release-branch-matrix.yaml b/.buildkite/e2e/release-branch-matrix.yaml
index 57df000c9..7c3982f84 100644
--- a/.buildkite/e2e/release-branch-matrix.yaml
+++ b/.buildkite/e2e/release-branch-matrix.yaml
@@ -20,11 +20,13 @@
     - E2E_STACK_VERSION: "8.14.3"
     - E2E_STACK_VERSION: "8.15.4"
     - E2E_STACK_VERSION: "8.16.6"
-    - E2E_STACK_VERSION: "8.17.5"
-    - E2E_STACK_VERSION: "8.18.0"
-    # current stack version 9.0.0 is tested in all other tests no need to test it again
+    - E2E_STACK_VERSION: "8.17.9"
+    - E2E_STACK_VERSION: "8.18.4"
+    - E2E_STACK_VERSION: "8.19.0"
+    - E2E_STACK_VERSION: "9.0.5"
+    # current stack version 9.1.2 is tested in all other tests no need to test it again
     - E2E_STACK_VERSION: "8.19.0-SNAPSHOT"
-    - E2E_STACK_VERSION: "9.1.0-SNAPSHOT"
+    - E2E_STACK_VERSION: "9.2.0-SNAPSHOT"
 
 - label: kind
   fixed:
diff --git a/Makefile b/Makefile
index 468c0ac46..2e4978ea7 100644
--- a/Makefile
+++ b/Makefile
@@ -421,7 +421,7 @@ drivah-build-e2e:
 
 # -- run
 
-E2E_STACK_VERSION          ?= 9.0.0
+E2E_STACK_VERSION          ?= 9.1.2
 # regexp to filter tests to run
 export TESTS_MATCH         ?= "^Test"
 export E2E_JSON            ?= false
diff --git a/NOTICE.txt b/NOTICE.txt
index 6d0e18601..99eb6a52b 100644
--- a/NOTICE.txt
+++ b/NOTICE.txt
@@ -46,6 +46,37 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 
+--------------------------------------------------------------------------------
+Module  : github.com/KimMachineGun/automemlimit
+Version : v0.7.4
+Time    : 2025-07-10T02:38:34Z
+Licence : MIT
+
+Contents of probable licence file $GOMODCACHE/github.com/!kim!machine!gun/automemlimit@v0.7.4/LICENSE:
+
+MIT License
+
+Copyright (c) 2022 Geon Kim
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
 --------------------------------------------------------------------------------
 Module  : github.com/Masterminds/sprig/v3
 Version : v3.3.0
@@ -15635,6 +15666,45 @@ Contents of probable licence file $GOMODCACHE/github.com/opencontainers/image-sp
    limitations under the License.
 
 
+--------------------------------------------------------------------------------
+Module  : github.com/pbnjay/memory
+Version : v0.0.0-20210728143218-7b4eea64cf58
+Time    : 2021-07-28T14:32:18Z
+Licence : BSD-3-Clause
+
+Contents of probable licence file $GOMODCACHE/github.com/pbnjay/memory@v0.0.0-20210728143218-7b4eea64cf58/LICENSE:
+
+BSD 3-Clause License
+
+Copyright (c) 2017, Jeremy Jay
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+
+* Neither the name of the copyright holder nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
 --------------------------------------------------------------------------------
 Module  : github.com/pelletier/go-toml/v2
 Version : v2.2.3
diff --git a/cmd/main.go b/cmd/main.go
index 5c52e9f2b..a39a0e022 100644
--- a/cmd/main.go
+++ b/cmd/main.go
@@ -5,6 +5,8 @@
 package main
 
 import (
+	// By default this sets `GOMEMLIMIT` to 90% of cgroup's memory limit.
+	_ "github.com/KimMachineGun/automemlimit"
 	"github.com/spf13/cobra"
 
 	"github.com/elastic/cloud-on-k8s/v3/cmd/manager"
diff --git a/config/e2e/helm-monitoring-operator.yaml b/config/e2e/helm-monitoring-operator.yaml
index 306cbf869..e70be2c08 100644
--- a/config/e2e/helm-monitoring-operator.yaml
+++ b/config/e2e/helm-monitoring-operator.yaml
@@ -6,7 +6,7 @@ managedNamespaces: [{{ .E2ENamespace }}]
 
 image:
   repository: docker.elastic.co/eck/eck-operator
-  tag: 3.0.0
+  tag: 3.1.0
 
 podAnnotations:
   co.elastic.metrics/metricsets: collector
diff --git a/config/e2e/monitoring.yaml b/config/e2e/monitoring.yaml
index 6424f04ac..160c6dd8d 100644
--- a/config/e2e/monitoring.yaml
+++ b/config/e2e/monitoring.yaml
@@ -5,7 +5,7 @@ metadata:
   name: e2e-agent
   namespace: {{ .E2ENamespace }}
 spec:
-  version: 9.0.0
+  version: 9.1.2
   elasticsearchRefs:
     - secretName: eck-{{ .TestRun }}
   daemonSet:
@@ -111,7 +111,7 @@ spec:
       meta:
         package:
           name: journald
-          version: 1.1.0
+          version: 1.2.1
       data_stream:
         namespace: default
       streams:
@@ -126,7 +126,7 @@ spec:
       meta:
         package:
           name: kubernetes
-          version: 1.49.0
+          version: 1.80.2
       data_stream:
         namespace: k8s
       processors:
@@ -227,7 +227,7 @@ spec:
       meta:
         package:
           name: system
-          version: 9.0.0
+          version: 2.5.1
       data_stream:
         namespace: default
       processors:
diff --git a/config/recipes/apm-server-jaeger/apm-server-jaeger.yaml b/config/recipes/apm-server-jaeger/apm-server-jaeger.yaml
index f6c693c01..9fe40e086 100644
--- a/config/recipes/apm-server-jaeger/apm-server-jaeger.yaml
+++ b/config/recipes/apm-server-jaeger/apm-server-jaeger.yaml
@@ -4,7 +4,7 @@ metadata:
   name: apm-server-quickstart
   namespace: default
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   config:
     name: elastic-apm
diff --git a/config/recipes/associations-rbac/apm_es_kibana_rbac.yaml b/config/recipes/associations-rbac/apm_es_kibana_rbac.yaml
index 4bcff6408..32d76ddc0 100644
--- a/config/recipes/associations-rbac/apm_es_kibana_rbac.yaml
+++ b/config/recipes/associations-rbac/apm_es_kibana_rbac.yaml
@@ -84,7 +84,7 @@ metadata:
   name: elasticsearch-sample
   namespace: elasticsearch-ns
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
     - name: default
       count: 1
@@ -97,7 +97,7 @@ metadata:
   name: kibana-sample
   namespace: kibana-ns
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   config:
     xpack.fleet.packages:
@@ -115,7 +115,7 @@ metadata:
   name: apm-apm-sample
   namespace: apmserver-ns
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   elasticsearchRef:
     name: "elasticsearch-sample"
diff --git a/config/recipes/autopilot/elasticsearch.yaml b/config/recipes/autopilot/elasticsearch.yaml
index 5bd50fbe3..2bfe61691 100644
--- a/config/recipes/autopilot/elasticsearch.yaml
+++ b/config/recipes/autopilot/elasticsearch.yaml
@@ -41,7 +41,7 @@ kind: Elasticsearch
 metadata:
   name: elasticsearch
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
   - name: default
     count: 1
diff --git a/config/recipes/autopilot/fleet-kubernetes-integration.yaml b/config/recipes/autopilot/fleet-kubernetes-integration.yaml
index 36671b952..c544780bd 100644
--- a/config/recipes/autopilot/fleet-kubernetes-integration.yaml
+++ b/config/recipes/autopilot/fleet-kubernetes-integration.yaml
@@ -41,7 +41,7 @@ kind: Elasticsearch
 metadata:
   name: elasticsearch
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
   - name: default
     count: 1
@@ -74,7 +74,7 @@ kind: Kibana
 metadata:
   name: kibana
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   elasticsearchRef:
     name: elasticsearch
@@ -138,7 +138,7 @@ kind: Agent
 metadata:
   name: fleet-server
 spec:
-  version: 9.0.0
+  version: 9.1.2
   kibanaRef:
     name: kibana
   elasticsearchRefs:
@@ -179,7 +179,7 @@ kind: Agent
 metadata: 
   name: elastic-agent
 spec:
-  version: 9.0.0
+  version: 9.1.2
   kibanaRef:
     name: kibana
   fleetServerRef: 
diff --git a/config/recipes/autopilot/kubernetes-integration.yaml b/config/recipes/autopilot/kubernetes-integration.yaml
index 437e925c9..e07c5289e 100644
--- a/config/recipes/autopilot/kubernetes-integration.yaml
+++ b/config/recipes/autopilot/kubernetes-integration.yaml
@@ -4,7 +4,7 @@ kind: Kibana
 metadata:
   name: kibana
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   elasticsearchRef:
     name: elasticsearch
@@ -27,7 +27,7 @@ kind: Agent
 metadata:
   name: elastic-agent
 spec:
-  version: 9.0.0
+  version: 9.1.2
   elasticsearchRefs:
   - name: elasticsearch
   daemonSet:
diff --git a/config/recipes/autopilot/metricbeat_hosts.yaml b/config/recipes/autopilot/metricbeat_hosts.yaml
index 5cb5e6e18..f028d30fd 100644
--- a/config/recipes/autopilot/metricbeat_hosts.yaml
+++ b/config/recipes/autopilot/metricbeat_hosts.yaml
@@ -4,7 +4,7 @@ kind: Kibana
 metadata:
   name: kibana
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   elasticsearchRef:
     name: elasticsearch
@@ -28,7 +28,7 @@ metadata:
   name: metricbeat
 spec:
   type: metricbeat
-  version: 9.0.0
+  version: 9.1.2
   elasticsearchRef:
     name: elasticsearch
   kibanaRef:
diff --git a/config/recipes/autoscaling/elasticsearch.yaml b/config/recipes/autoscaling/elasticsearch.yaml
index 4a7ff1ca6..5b140967f 100644
--- a/config/recipes/autoscaling/elasticsearch.yaml
+++ b/config/recipes/autoscaling/elasticsearch.yaml
@@ -51,7 +51,7 @@ kind: Elasticsearch
 metadata:
   name: elasticsearch-sample
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
     - name: master
       count: 3
diff --git a/config/recipes/beats/auditbeat_hosts.yaml b/config/recipes/beats/auditbeat_hosts.yaml
index 4c7c338ad..5867c4cbb 100644
--- a/config/recipes/beats/auditbeat_hosts.yaml
+++ b/config/recipes/beats/auditbeat_hosts.yaml
@@ -4,7 +4,7 @@ metadata:
   name: auditbeat
 spec:
   type: auditbeat
-  version: 9.0.0
+  version: 9.1.2
   elasticsearchRef:
     name: elasticsearch
   kibanaRef:
@@ -76,7 +76,7 @@ spec:
         #    path: /run
         #initContainers:
         #- name: cos-init
-        #  image: docker.elastic.co/beats/auditbeat:9.0.0
+        #  image: docker.elastic.co/beats/auditbeat:9.1.2
         #  volumeMounts:
         #  - name: run
         #    mountPath: /run
@@ -118,7 +118,7 @@ kind: Elasticsearch
 metadata:
   name: elasticsearch
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
   - name: default
     count: 3
@@ -130,7 +130,7 @@ kind: Kibana
 metadata:
   name: kibana
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   elasticsearchRef:
     name: elasticsearch
diff --git a/config/recipes/beats/filebeat_autodiscover.yaml b/config/recipes/beats/filebeat_autodiscover.yaml
index 217cfa203..497401fd0 100644
--- a/config/recipes/beats/filebeat_autodiscover.yaml
+++ b/config/recipes/beats/filebeat_autodiscover.yaml
@@ -4,7 +4,7 @@ metadata:
   name: filebeat
 spec:
   type: filebeat
-  version: 9.0.0
+  version: 9.1.2
   elasticsearchRef:
     name: elasticsearch
   kibanaRef:
@@ -122,7 +122,7 @@ kind: Elasticsearch
 metadata:
   name: elasticsearch
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
   - name: default
     count: 3
@@ -134,7 +134,7 @@ kind: Kibana
 metadata:
   name: kibana
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   elasticsearchRef:
     name: elasticsearch
diff --git a/config/recipes/beats/filebeat_autodiscover_by_metadata.yaml b/config/recipes/beats/filebeat_autodiscover_by_metadata.yaml
index 4c24587c6..264b80dca 100644
--- a/config/recipes/beats/filebeat_autodiscover_by_metadata.yaml
+++ b/config/recipes/beats/filebeat_autodiscover_by_metadata.yaml
@@ -4,7 +4,7 @@ metadata:
   name: filebeat
 spec:
   type: filebeat
-  version: 9.0.0
+  version: 9.1.2
   elasticsearchRef:
     name: elasticsearch
   kibanaRef:
@@ -118,7 +118,7 @@ kind: Elasticsearch
 metadata:
   name: elasticsearch
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
   - name: default
     count: 3
@@ -130,7 +130,7 @@ kind: Kibana
 metadata:
   name: kibana
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   elasticsearchRef:
     name: elasticsearch
diff --git a/config/recipes/beats/filebeat_no_autodiscover.yaml b/config/recipes/beats/filebeat_no_autodiscover.yaml
index 5ff3a8d9a..b77da475b 100644
--- a/config/recipes/beats/filebeat_no_autodiscover.yaml
+++ b/config/recipes/beats/filebeat_no_autodiscover.yaml
@@ -4,7 +4,7 @@ metadata:
   name: filebeat
 spec:
   type: filebeat
-  version: 9.0.0
+  version: 9.1.2
   elasticsearchRef:
     name: elasticsearch
   kibanaRef:
@@ -60,7 +60,7 @@ kind: Elasticsearch
 metadata:
   name: elasticsearch
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
   - name: default
     count: 3
@@ -72,7 +72,7 @@ kind: Kibana
 metadata:
   name: kibana
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   elasticsearchRef:
     name: elasticsearch
diff --git a/config/recipes/beats/heartbeat_es_kb_health.yaml b/config/recipes/beats/heartbeat_es_kb_health.yaml
index 77ea561a4..c9a16d230 100644
--- a/config/recipes/beats/heartbeat_es_kb_health.yaml
+++ b/config/recipes/beats/heartbeat_es_kb_health.yaml
@@ -4,7 +4,7 @@ metadata:
   name: heartbeat
 spec:
   type: heartbeat
-  version: 9.0.0
+  version: 9.1.2
   elasticsearchRef:
     name: elasticsearch
   config:
@@ -27,7 +27,7 @@ kind: Elasticsearch
 metadata:
   name: elasticsearch
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
   - name: default
     count: 3
@@ -39,7 +39,7 @@ kind: Kibana
 metadata:
   name: kibana
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   elasticsearchRef:
     name: elasticsearch
diff --git a/config/recipes/beats/metricbeat_hosts.yaml b/config/recipes/beats/metricbeat_hosts.yaml
index fe892e1cb..e676b3573 100644
--- a/config/recipes/beats/metricbeat_hosts.yaml
+++ b/config/recipes/beats/metricbeat_hosts.yaml
@@ -4,7 +4,7 @@ metadata:
   name: metricbeat
 spec:
   type: metricbeat
-  version: 9.0.0
+  version: 9.1.2
   elasticsearchRef:
     name: elasticsearch
   kibanaRef:
@@ -174,7 +174,7 @@ kind: Elasticsearch
 metadata:
   name: elasticsearch
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
   - name: default
     count: 3
@@ -186,7 +186,7 @@ kind: Kibana
 metadata:
   name: kibana
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   elasticsearchRef:
     name: elasticsearch
diff --git a/config/recipes/beats/openshift_monitoring.yaml b/config/recipes/beats/openshift_monitoring.yaml
index d53449fac..bc85773ff 100644
--- a/config/recipes/beats/openshift_monitoring.yaml
+++ b/config/recipes/beats/openshift_monitoring.yaml
@@ -4,7 +4,7 @@ metadata:
   name: metricbeat
 spec:
   type: metricbeat
-  version: 9.0.0
+  version: 9.1.2
   elasticsearchRef:
     name: elasticsearch
   kibanaRef:
@@ -221,7 +221,7 @@ metadata:
   name: filebeat
 spec:
   type: filebeat
-  version: 9.0.0
+  version: 9.1.2
   elasticsearchRef:
     name: elasticsearch
   kibanaRef:
@@ -324,7 +324,7 @@ kind: Elasticsearch
 metadata:
   name: elasticsearch
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
   - name: default
     count: 3
@@ -336,7 +336,7 @@ kind: Kibana
 metadata:
   name: kibana
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   elasticsearchRef:
     name: elasticsearch
diff --git a/config/recipes/beats/packetbeat_dns_http.yaml b/config/recipes/beats/packetbeat_dns_http.yaml
index f406d2227..c0a38b10e 100644
--- a/config/recipes/beats/packetbeat_dns_http.yaml
+++ b/config/recipes/beats/packetbeat_dns_http.yaml
@@ -4,7 +4,7 @@ metadata:
   name: packetbeat
 spec:
   type: packetbeat
-  version: 9.0.0
+  version: 9.1.2
   elasticsearchRef:
     name: elasticsearch
   kibanaRef:
@@ -44,7 +44,7 @@ kind: Elasticsearch
 metadata:
   name: elasticsearch
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
   - name: default
     count: 3
@@ -56,7 +56,7 @@ kind: Kibana
 metadata:
   name: kibana
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   elasticsearchRef:
     name: elasticsearch
diff --git a/config/recipes/beats/stack_monitoring.yaml b/config/recipes/beats/stack_monitoring.yaml
index 3cd1ecbb9..1bca48909 100644
--- a/config/recipes/beats/stack_monitoring.yaml
+++ b/config/recipes/beats/stack_monitoring.yaml
@@ -6,7 +6,7 @@ metadata:
   name: metricbeat
 spec:
   type: metricbeat
-  version: 9.0.0
+  version: 9.1.2
   elasticsearchRef:
     name: elasticsearch-monitoring
   config:
@@ -140,7 +140,7 @@ metadata:
   name: filebeat
 spec:
   type: filebeat
-  version: 9.0.0
+  version: 9.1.2
   elasticsearchRef:
     name: elasticsearch-monitoring
   kibanaRef:
@@ -260,7 +260,7 @@ kind: Elasticsearch
 metadata:
   name: elasticsearch
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
   - name: default
     count: 3
@@ -276,7 +276,7 @@ kind: Kibana
 metadata:
   name: kibana
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   elasticsearchRef:
     name: elasticsearch
@@ -293,7 +293,7 @@ kind: Elasticsearch
 metadata:
   name: elasticsearch-monitoring
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
   - name: default
     count: 3
@@ -305,7 +305,7 @@ kind: Kibana
 metadata:
   name: kibana-monitoring
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   elasticsearchRef:
     name: elasticsearch-monitoring
diff --git a/config/recipes/elastic-agent/fleet-apm-integration.yaml b/config/recipes/elastic-agent/fleet-apm-integration.yaml
index 2509b0c1e..3261cde4c 100644
--- a/config/recipes/elastic-agent/fleet-apm-integration.yaml
+++ b/config/recipes/elastic-agent/fleet-apm-integration.yaml
@@ -3,7 +3,7 @@ kind: Kibana
 metadata:
   name: kibana
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   elasticsearchRef:
     name: elasticsearch
@@ -61,7 +61,7 @@ kind: Elasticsearch
 metadata:
   name: elasticsearch
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
   - name: default
     count: 3
@@ -73,7 +73,7 @@ kind: Agent
 metadata:
   name: fleet-server
 spec:
-  version: 9.0.0
+  version: 9.1.2
   kibanaRef:
     name: kibana
   elasticsearchRefs:
@@ -95,7 +95,7 @@ kind: Agent
 metadata: 
   name: elastic-agent
 spec:
-  version: 9.0.0
+  version: 9.1.2
   kibanaRef:
     name: kibana
   fleetServerRef: 
diff --git a/config/recipes/elastic-agent/fleet-custom-logs-integration.yaml b/config/recipes/elastic-agent/fleet-custom-logs-integration.yaml
index 663172d1d..bcaca14e8 100644
--- a/config/recipes/elastic-agent/fleet-custom-logs-integration.yaml
+++ b/config/recipes/elastic-agent/fleet-custom-logs-integration.yaml
@@ -3,7 +3,7 @@ kind: Kibana
 metadata:
   name: kibana
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   elasticsearchRef:
     name: elasticsearch
@@ -70,7 +70,7 @@ kind: Elasticsearch
 metadata:
   name: elasticsearch
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
   - name: default
     count: 3
@@ -82,7 +82,7 @@ kind: Agent
 metadata:
   name: fleet-server
 spec:
-  version: 9.0.0
+  version: 9.1.2
   kibanaRef:
     name: kibana
   elasticsearchRefs:
@@ -104,7 +104,7 @@ kind: Agent
 metadata: 
   name: elastic-agent
 spec:
-  version: 9.0.0
+  version: 9.1.2
   kibanaRef:
     name: kibana
   fleetServerRef: 
diff --git a/config/recipes/elastic-agent/fleet-kubernetes-integration-nonroot.yaml b/config/recipes/elastic-agent/fleet-kubernetes-integration-nonroot.yaml
index 081f96104..7fc205a29 100644
--- a/config/recipes/elastic-agent/fleet-kubernetes-integration-nonroot.yaml
+++ b/config/recipes/elastic-agent/fleet-kubernetes-integration-nonroot.yaml
@@ -71,7 +71,7 @@ kind: Kibana
 metadata:
   name: kibana
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   elasticsearchRef:
     name: elasticsearch
@@ -129,7 +129,7 @@ kind: Elasticsearch
 metadata:
   name: elasticsearch
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
   - name: default
     count: 3
@@ -141,7 +141,7 @@ kind: Agent
 metadata:
   name: fleet-server
 spec:
-  version: 9.0.0
+  version: 9.1.2
   kibanaRef:
     name: kibana
   elasticsearchRefs:
@@ -161,7 +161,7 @@ kind: Agent
 metadata: 
   name: elastic-agent
 spec:
-  version: 9.0.0
+  version: 9.1.2
   kibanaRef:
     name: kibana
   fleetServerRef: 
diff --git a/config/recipes/elastic-agent/fleet-kubernetes-integration.yaml b/config/recipes/elastic-agent/fleet-kubernetes-integration.yaml
index 7e16e3f9c..c638fc050 100644
--- a/config/recipes/elastic-agent/fleet-kubernetes-integration.yaml
+++ b/config/recipes/elastic-agent/fleet-kubernetes-integration.yaml
@@ -3,7 +3,7 @@ kind: Kibana
 metadata:
   name: kibana
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   elasticsearchRef:
     name: elasticsearch
@@ -54,7 +54,7 @@ kind: Elasticsearch
 metadata:
   name: elasticsearch
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
   - name: default
     count: 3
@@ -66,7 +66,7 @@ kind: Agent
 metadata:
   name: fleet-server
 spec:
-  version: 9.0.0
+  version: 9.1.2
   kibanaRef:
     name: kibana
   elasticsearchRefs:
@@ -88,7 +88,7 @@ kind: Agent
 metadata: 
   name: elastic-agent
 spec:
-  version: 9.0.0
+  version: 9.1.2
   kibanaRef:
     name: kibana
   fleetServerRef: 
diff --git a/config/recipes/elastic-agent/ksm-sharding.yaml b/config/recipes/elastic-agent/ksm-sharding.yaml
index 884a146af..71e0bcf0c 100644
--- a/config/recipes/elastic-agent/ksm-sharding.yaml
+++ b/config/recipes/elastic-agent/ksm-sharding.yaml
@@ -3,7 +3,7 @@ kind: Agent
 metadata:
   name: elastic-agent
 spec:
-  version: 9.0.0
+  version: 9.1.2
   elasticsearchRefs:
   - name: elasticsearch
   statefulSet:
@@ -450,7 +450,7 @@ kind: Elasticsearch
 metadata:
   name: elasticsearch
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
   - name: default
     count: 3
@@ -462,7 +462,7 @@ kind: Kibana
 metadata:
   name: kibana
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   elasticsearchRef:
     name: elasticsearch
diff --git a/config/recipes/elastic-agent/kubernetes-integration.yaml b/config/recipes/elastic-agent/kubernetes-integration.yaml
index 99e10e646..f20cccd37 100644
--- a/config/recipes/elastic-agent/kubernetes-integration.yaml
+++ b/config/recipes/elastic-agent/kubernetes-integration.yaml
@@ -3,7 +3,7 @@ kind: Agent
 metadata:
   name: elastic-agent
 spec:
-  version: 9.0.0
+  version: 9.1.2
   elasticsearchRefs:
   - name: elasticsearch
   daemonSet:
@@ -213,7 +213,7 @@ kind: Elasticsearch
 metadata:
   name: elasticsearch
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
   - name: default
     count: 3
@@ -225,7 +225,7 @@ kind: Kibana
 metadata:
   name: kibana
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   elasticsearchRef:
     name: elasticsearch
diff --git a/config/recipes/elastic-agent/multi-output.yaml b/config/recipes/elastic-agent/multi-output.yaml
index 6dfbbd4e1..05b5afd25 100644
--- a/config/recipes/elastic-agent/multi-output.yaml
+++ b/config/recipes/elastic-agent/multi-output.yaml
@@ -3,7 +3,7 @@ kind: Agent
 metadata:
   name: elastic-agent
 spec:
-  version: 9.0.0
+  version: 9.1.2
   elasticsearchRefs:
   - outputName: default
     name: elasticsearch
@@ -196,7 +196,7 @@ kind: Elasticsearch
 metadata:
   name: elasticsearch
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
   - name: default
     count: 3
@@ -208,7 +208,7 @@ kind: Kibana
 metadata:
   name: kibana
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   elasticsearchRef:
     name: elasticsearch
@@ -218,7 +218,7 @@ kind: Elasticsearch
 metadata:
   name: elasticsearch-mon
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
   - name: default
     count: 3
@@ -230,7 +230,7 @@ kind: Kibana
 metadata:
   name: kibana-mon
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   elasticsearchRef:
     name: elasticsearch-mon
diff --git a/config/recipes/elastic-agent/system-integration.yaml b/config/recipes/elastic-agent/system-integration.yaml
index c7fc33eeb..e966f2b04 100644
--- a/config/recipes/elastic-agent/system-integration.yaml
+++ b/config/recipes/elastic-agent/system-integration.yaml
@@ -3,7 +3,7 @@ kind: Agent
 metadata:
   name: elastic-agent
 spec:
-  version: 9.0.0
+  version: 9.1.2
   elasticsearchRefs:
   - name: elasticsearch
   daemonSet:
@@ -31,7 +31,7 @@ spec:
       meta:
         package:
           name: system
-          version: 9.0.0
+          version: 9.1.2
       data_stream:
         namespace: default
       streams:
@@ -136,7 +136,7 @@ kind: Elasticsearch
 metadata:
   name: elasticsearch
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
   - name: default
     count: 3
@@ -148,7 +148,7 @@ kind: Kibana
 metadata:
   name: kibana
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   elasticsearchRef:
     name: elasticsearch
diff --git a/config/recipes/gclb/01-elastic-stack.yaml b/config/recipes/gclb/01-elastic-stack.yaml
index 7c5363ce9..c196c21f5 100644
--- a/config/recipes/gclb/01-elastic-stack.yaml
+++ b/config/recipes/gclb/01-elastic-stack.yaml
@@ -6,7 +6,7 @@ metadata:
   labels:
     app: hulk
 spec:
-  version: 9.0.0
+  version: 9.1.2
   http:
     service:
       metadata:
@@ -45,7 +45,7 @@ metadata:
   labels:
     app: hulk
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   http:
     service:
diff --git a/config/recipes/gclb/99-kibana-path.yaml b/config/recipes/gclb/99-kibana-path.yaml
index a504eb918..f3da59df0 100644
--- a/config/recipes/gclb/99-kibana-path.yaml
+++ b/config/recipes/gclb/99-kibana-path.yaml
@@ -7,7 +7,7 @@ metadata:
   labels:
     app: thor
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   config:
     # Make Kibana aware of the fact that it is behind a proxy
diff --git a/config/recipes/istio-gateway/03-elasticsearch-kibana.yaml b/config/recipes/istio-gateway/03-elasticsearch-kibana.yaml
index 2006fe441..6070e3d8a 100644
--- a/config/recipes/istio-gateway/03-elasticsearch-kibana.yaml
+++ b/config/recipes/istio-gateway/03-elasticsearch-kibana.yaml
@@ -7,7 +7,7 @@ metadata:
   labels:
     app: ekmnt
 spec:
-  version: 9.0.0
+  version: 9.1.2
   http:
     tls:
       selfSignedCertificate:
@@ -82,7 +82,7 @@ metadata:
   labels:
     app: ekmnt
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   http:
     tls:
diff --git a/config/recipes/logstash/logstash-eck.yaml b/config/recipes/logstash/logstash-eck.yaml
index c4539085c..c638aa93d 100644
--- a/config/recipes/logstash/logstash-eck.yaml
+++ b/config/recipes/logstash/logstash-eck.yaml
@@ -4,7 +4,7 @@ kind: Elasticsearch
 metadata:
   name: elasticsearch
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
     - name: default
       count: 3
@@ -17,7 +17,7 @@ kind: Kibana
 metadata:
   name: kibana
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   elasticsearchRef:
     name: elasticsearch
@@ -28,7 +28,7 @@ metadata:
   name: filebeat
 spec:
   type: filebeat
-  version: 9.0.0
+  version: 9.1.2
   config:
     filebeat.inputs:
       - type: filestream
@@ -68,7 +68,7 @@ metadata:
   name: logstash
 spec:
   count: 1
-  version: 9.0.0
+  version: 9.1.2
   elasticsearchRefs:
     - clusterName: eck
       name: elasticsearch
diff --git a/config/recipes/logstash/logstash-es-role.yaml b/config/recipes/logstash/logstash-es-role.yaml
index e39a1e7e0..1491c9962 100644
--- a/config/recipes/logstash/logstash-es-role.yaml
+++ b/config/recipes/logstash/logstash-es-role.yaml
@@ -15,7 +15,7 @@ kind: Elasticsearch
 metadata:
   name: elasticsearch
 spec:
-  version: 9.0.0
+  version: 9.1.2
   auth:
     roles:
       - secretName: my-roles-secret
@@ -31,7 +31,7 @@ metadata:
   name: logstash
 spec:
   count: 1
-  version: 9.0.0
+  version: 9.1.2
   elasticsearchRefs:
     - name: elasticsearch
       clusterName: eck
diff --git a/config/recipes/logstash/logstash-monitored.yaml b/config/recipes/logstash/logstash-monitored.yaml
index 3dce285ed..94127bee8 100644
--- a/config/recipes/logstash/logstash-monitored.yaml
+++ b/config/recipes/logstash/logstash-monitored.yaml
@@ -4,7 +4,7 @@ kind: Elasticsearch
 metadata:
   name: elasticsearch
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
     - name: default
       count: 3
@@ -17,7 +17,7 @@ kind: Kibana
 metadata:
   name: kibana
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   elasticsearchRef:
     name: elasticsearch
@@ -28,7 +28,7 @@ metadata:
   name: filebeat
 spec:
   type: filebeat
-  version: 9.0.0
+  version: 9.1.2
   config:
     filebeat.inputs:
       - type: filestream
@@ -68,7 +68,7 @@ metadata:
   name: logstash
 spec:
   count: 1
-  version: 9.0.0
+  version: 9.1.2
   elasticsearchRefs:
     - clusterName: eck
       name: elasticsearch
@@ -117,7 +117,7 @@ kind: Elasticsearch
 metadata:
   name: elasticsearch-monitoring
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
     - name: default
       count: 3
@@ -129,7 +129,7 @@ kind: Kibana
 metadata:
   name: kibana-monitoring
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   elasticsearchRef:
     name: elasticsearch-monitoring
diff --git a/config/recipes/logstash/logstash-multi.yaml b/config/recipes/logstash/logstash-multi.yaml
index 3db62b526..0fbe9ad73 100644
--- a/config/recipes/logstash/logstash-multi.yaml
+++ b/config/recipes/logstash/logstash-multi.yaml
@@ -12,7 +12,7 @@ metadata:
   name: qa
   namespace: qa
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
     - name: default
       count: 3
@@ -25,7 +25,7 @@ kind: Elasticsearch
 metadata:
   name: production
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
     - name: default
       count: 3
@@ -39,7 +39,7 @@ metadata:
   name: filebeat
 spec:
   type: filebeat
-  version: 9.0.0
+  version: 9.1.2
   config:
     filebeat.inputs:
       - type: filestream
@@ -79,7 +79,7 @@ metadata:
   name: logstash
 spec:
   count: 1
-  version: 9.0.0
+  version: 9.1.2
   elasticsearchRefs:
   - clusterName: prod-es
     name: production
diff --git a/config/recipes/logstash/logstash-pipeline-as-secret.yaml b/config/recipes/logstash/logstash-pipeline-as-secret.yaml
index 0b5e848e4..f49430292 100644
--- a/config/recipes/logstash/logstash-pipeline-as-secret.yaml
+++ b/config/recipes/logstash/logstash-pipeline-as-secret.yaml
@@ -4,7 +4,7 @@ kind: Elasticsearch
 metadata:
   name: elasticsearch
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
     - name: default
       count: 3
@@ -17,7 +17,7 @@ kind: Kibana
 metadata:
   name: kibana
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   elasticsearchRef:
     name: elasticsearch
@@ -28,7 +28,7 @@ metadata:
   name: filebeat
 spec:
   type: filebeat
-  version: 9.0.0
+  version: 9.1.2
   config:
     filebeat.inputs:
       - type: filestream
@@ -68,7 +68,7 @@ metadata:
   name: logstash
 spec:
   count: 1
-  version: 9.0.0
+  version: 9.1.2
   elasticsearchRefs:
     - clusterName: eck
       name: elasticsearch
diff --git a/config/recipes/logstash/logstash-pipeline-as-volume.yaml b/config/recipes/logstash/logstash-pipeline-as-volume.yaml
index 503ed88bb..8a8699935 100644
--- a/config/recipes/logstash/logstash-pipeline-as-volume.yaml
+++ b/config/recipes/logstash/logstash-pipeline-as-volume.yaml
@@ -4,7 +4,7 @@ kind: Elasticsearch
 metadata:
   name: elasticsearch
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
     - name: default
       count: 3
@@ -17,7 +17,7 @@ kind: Kibana
 metadata:
   name: kibana
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   elasticsearchRef:
     name: elasticsearch
@@ -28,7 +28,7 @@ metadata:
   name: filebeat
 spec:
   type: filebeat
-  version: 9.0.0
+  version: 9.1.2
   config:
     filebeat.inputs:
       - type: filestream
@@ -68,7 +68,7 @@ metadata:
   name: logstash
 spec:
   count: 1
-  version: 9.0.0
+  version: 9.1.2
   elasticsearchRefs:
     - clusterName: eck
       name: elasticsearch
diff --git a/config/recipes/logstash/logstash-volumes.yaml b/config/recipes/logstash/logstash-volumes.yaml
index 92d13c7b5..3421c8d66 100644
--- a/config/recipes/logstash/logstash-volumes.yaml
+++ b/config/recipes/logstash/logstash-volumes.yaml
@@ -4,7 +4,7 @@ kind: Elasticsearch
 metadata:
   name: elasticsearch
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
     - name: default
       count: 3
@@ -18,7 +18,7 @@ metadata:
   name: filebeat
 spec:
   type: filebeat
-  version: 9.0.0
+  version: 9.1.2
   config:
     filebeat.inputs:
       - type: filestream
@@ -58,7 +58,7 @@ metadata:
   name: logstash
 spec:
   count: 1
-  version: 9.0.0
+  version: 9.1.2
   elasticsearchRefs:
     - clusterName: eck
       name: elasticsearch
diff --git a/config/recipes/maps/01-ems.yaml b/config/recipes/maps/01-ems.yaml
index 253587c5b..fae3e338c 100644
--- a/config/recipes/maps/01-ems.yaml
+++ b/config/recipes/maps/01-ems.yaml
@@ -3,5 +3,5 @@ kind: ElasticMapsServer
 metadata:
   name: ems-sample
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
diff --git a/config/recipes/maps/02-es-kb.yaml b/config/recipes/maps/02-es-kb.yaml
index 4c856311d..54458c542 100644
--- a/config/recipes/maps/02-es-kb.yaml
+++ b/config/recipes/maps/02-es-kb.yaml
@@ -4,7 +4,7 @@ kind: Elasticsearch
 metadata:
   name: elasticsearch
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
     - name: default
       count: 3
@@ -27,7 +27,7 @@ kind: Kibana
 metadata:
   name: kibana
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   config:
     # Configure this to a domain you control
diff --git a/config/recipes/remoteclusters/elasticsearch.yaml b/config/recipes/remoteclusters/elasticsearch.yaml
index ab330a03a..7409abb4a 100644
--- a/config/recipes/remoteclusters/elasticsearch.yaml
+++ b/config/recipes/remoteclusters/elasticsearch.yaml
@@ -9,7 +9,7 @@ metadata:
   name: cluster1
   namespace: ns1
 spec:
-  version: 9.0.0
+  version: 9.1.2
   remoteClusters:
     - name: to-ns2-cluster2
       elasticsearchRef:
@@ -38,7 +38,7 @@ spec:
 #      spec:
 #        # expose this cluster Service with a LoadBalancer
 #        type: LoadBalancer
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   elasticsearchRef:
     name: "cluster1"
@@ -54,7 +54,7 @@ metadata:
   name: cluster2
   namespace: ns2
 spec:
-  version: 9.0.0
+  version: 9.1.2
   ## Required for this cluster to be accessed using remote cluster API keys.
   remoteClusterServer:
     enabled: true
@@ -75,7 +75,7 @@ spec:
 #      spec:
 #        # expose this cluster Service with a LoadBalancer
 #        type: LoadBalancer
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   elasticsearchRef:
     name: "cluster2"
\ No newline at end of file
diff --git a/config/recipes/traefik/02-elastic-stack.yaml b/config/recipes/traefik/02-elastic-stack.yaml
index fe79e8644..46a924e07 100644
--- a/config/recipes/traefik/02-elastic-stack.yaml
+++ b/config/recipes/traefik/02-elastic-stack.yaml
@@ -6,7 +6,7 @@ metadata:
   labels:
     app: hulk
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
   - name: master
     count: 1
@@ -41,7 +41,7 @@ metadata:
   labels:
     app: hulk
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   config:
     xpack.fleet.packages:
@@ -57,7 +57,7 @@ metadata:
   labels:
     app: hulk
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   elasticsearchRef:
     name: hulk
diff --git a/config/samples/apm/apm_es_kibana.yaml b/config/samples/apm/apm_es_kibana.yaml
index aaae96ff6..6189258cc 100644
--- a/config/samples/apm/apm_es_kibana.yaml
+++ b/config/samples/apm/apm_es_kibana.yaml
@@ -5,7 +5,7 @@ kind: Elasticsearch
 metadata:
   name: es-apm-sample
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
   - name: default
     count: 3
@@ -19,7 +19,7 @@ kind: Kibana
 metadata:
   name: kb-apm-sample
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   elasticsearchRef:
     name: "es-apm-sample"
@@ -33,7 +33,7 @@ kind: ApmServer
 metadata:
   name: apm-apm-sample
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   elasticsearchRef:
     name: "es-apm-sample"
diff --git a/config/samples/elasticsearch/elasticsearch.yaml b/config/samples/elasticsearch/elasticsearch.yaml
index fef14ea9f..772ebe697 100644
--- a/config/samples/elasticsearch/elasticsearch.yaml
+++ b/config/samples/elasticsearch/elasticsearch.yaml
@@ -7,7 +7,7 @@ metadata:
   #  eck.k8s.elastic.co/downward-node-labels: "topology.kubernetes.io/zone"
   name: elasticsearch-sample
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
   - name: default
     config:
diff --git a/config/samples/enterprisesearch/ent_es.yaml b/config/samples/enterprisesearch/ent_es.yaml
index 988a1df36..90d457874 100644
--- a/config/samples/enterprisesearch/ent_es.yaml
+++ b/config/samples/enterprisesearch/ent_es.yaml
@@ -4,7 +4,7 @@ kind: Elasticsearch
 metadata:
   name: elasticsearch-sample
 spec:
-  version: 8.18.0
+  version: 8.19.0
   nodeSets:
     - name: default
       count: 1
@@ -23,7 +23,7 @@ kind: Kibana
 metadata:
   name: kibana-sample
 spec:
-  version: 8.18.0
+  version: 8.19.0
   count: 1
   elasticsearchRef:
     name: elasticsearch-sample
@@ -35,7 +35,7 @@ kind: EnterpriseSearch
 metadata:
   name: ent-sample
 spec:
-  version: 8.18.0
+  version: 8.19.0
   count: 1
   elasticsearchRef:
     name: elasticsearch-sample
diff --git a/config/samples/kibana/kibana_es.yaml b/config/samples/kibana/kibana_es.yaml
index 310a474a9..6d394b453 100644
--- a/config/samples/kibana/kibana_es.yaml
+++ b/config/samples/kibana/kibana_es.yaml
@@ -4,7 +4,7 @@ kind: Elasticsearch
 metadata:
   name: elasticsearch-sample
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
   - name: default
     count: 1
@@ -18,7 +18,7 @@ kind: Kibana
 metadata:
   name: kibana-sample
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 1
   elasticsearchRef:
     name: "elasticsearch-sample"
diff --git a/config/samples/logstash/logstash.yaml b/config/samples/logstash/logstash.yaml
index 82520b31c..b3372885a 100644
--- a/config/samples/logstash/logstash.yaml
+++ b/config/samples/logstash/logstash.yaml
@@ -3,7 +3,7 @@ kind: Logstash
 metadata:
   name: logstash-sample
 spec:
-  version: 9.0.0
+  version: 9.1.2
   count: 3
   config:
     log.level: info
diff --git a/config/samples/logstash/logstash_es.yaml b/config/samples/logstash/logstash_es.yaml
index 8ccaaf230..fe64f7047 100644
--- a/config/samples/logstash/logstash_es.yaml
+++ b/config/samples/logstash/logstash_es.yaml
@@ -3,7 +3,7 @@ kind: Elasticsearch
 metadata:
   name: elasticsearch-sample
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
     - name: default
       count: 2
@@ -16,7 +16,7 @@ metadata:
   name: logstash-sample
 spec:
   count: 1
-  version: 9.0.0
+  version: 9.1.2
   elasticsearchRefs:
     - clusterName: production
       name: elasticsearch-sample
diff --git a/config/samples/logstash/logstash_pv.yaml b/config/samples/logstash/logstash_pv.yaml
index 916b1a5c5..e690d6b8c 100644
--- a/config/samples/logstash/logstash_pv.yaml
+++ b/config/samples/logstash/logstash_pv.yaml
@@ -4,7 +4,7 @@ metadata:
   name: d
 spec:
   count: 1
-  version: 9.0.0
+  version: 9.1.2
   config:
     queue.type: persisted
   pipelines:
diff --git a/config/samples/logstash/logstash_stackmonitor.yaml b/config/samples/logstash/logstash_stackmonitor.yaml
index 1e9ecb030..cdf95a198 100644
--- a/config/samples/logstash/logstash_stackmonitor.yaml
+++ b/config/samples/logstash/logstash_stackmonitor.yaml
@@ -4,7 +4,7 @@ kind: Elasticsearch
 metadata:
   name: monitoring
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
     - name: default
       count: 3
@@ -17,7 +17,7 @@ metadata:
   name: logstash-sample
 spec:
   count: 1
-  version: 9.0.0
+  version: 9.1.2
   config:
     log.level: info
     api.http.host: "0.0.0.0"
@@ -55,7 +55,7 @@ kind: Kibana
 metadata:
   name: kibana-sample
 spec:
-  version: 9.0.0
+  version: 9.1.2
   elasticsearchRef:
     name: monitoring
   count: 1
diff --git a/config/samples/logstash/logstash_svc.yaml b/config/samples/logstash/logstash_svc.yaml
index 19f2132b9..d2b0ba1cd 100644
--- a/config/samples/logstash/logstash_svc.yaml
+++ b/config/samples/logstash/logstash_svc.yaml
@@ -3,7 +3,7 @@ kind: Elasticsearch
 metadata:
   name: elasticsearch-sample
 spec:
-  version: 9.0.0
+  version: 9.1.2
   nodeSets:
     - name: default
       count: 3
@@ -16,7 +16,7 @@ metadata:
   name: logstash-sample
 spec:
   count: 2
-  version: 9.0.0
+  version: 9.1.2
   config:
     log.level: info
     api.http.host: "0.0.0.0"
diff --git a/docs/reference/third-party-dependencies/main.md b/docs/reference/third-party-dependencies/main.md
index 1735c0a4f..025c8fa34 100644
--- a/docs/reference/third-party-dependencies/main.md
+++ b/docs/reference/third-party-dependencies/main.md
@@ -17,6 +17,7 @@ This page lists the third-party dependencies used to build {{eck}} from the main
 | Name | Version | Licence |
 | --- | --- | --- |
 | [dario.cat/mergo](https://dario.cat/mergo) | v1.0.2 | BSD-3-Clause |
+| [github.com/KimMachineGun/automemlimit](https://github.com/KimMachineGun/automemlimit) | v0.7.4 | MIT |
 | [github.com/Masterminds/sprig/v3](https://github.com/Masterminds/sprig) | v3.3.0 | MIT |
 | [github.com/blang/semver/v4](https://github.com/blang/semver) | v4.0.0 | MIT |
 | [github.com/davecgh/go-spew](https://github.com/davecgh/go-spew) | v1.1.2-0.20180830191138-d8f796af33cc | ISC |
@@ -143,6 +144,7 @@ This page lists the third-party dependencies used to build {{eck}} from the main
 | [github.com/onsi/gomega](https://github.com/onsi/gomega) | v1.38.1 | MIT |
 | [github.com/opencontainers/go-digest](https://github.com/opencontainers/go-digest) | v1.0.0 | Apache-2.0 |
 | [github.com/opencontainers/image-spec](https://github.com/opencontainers/image-spec) | v1.1.1 | Apache-2.0 |
+| [github.com/pbnjay/memory](https://github.com/pbnjay/memory) | v0.0.0-20210728143218-7b4eea64cf58 | BSD-3-Clause |
 | [github.com/pelletier/go-toml/v2](https://github.com/pelletier/go-toml) | v2.2.3 | MIT |
 | [github.com/prashantv/gostub](https://github.com/prashantv/gostub) | v1.1.0 | MIT |
 | [github.com/prometheus/client_model](https://github.com/prometheus/client_model) | v0.6.2 | Apache-2.0 |
diff --git a/go.mod b/go.mod
index df1bd086c..ae81b06f9 100644
--- a/go.mod
+++ b/go.mod
@@ -4,6 +4,7 @@ go 1.24.5
 
 require (
 	dario.cat/mergo v1.0.2
+	github.com/KimMachineGun/automemlimit v0.7.4
 	github.com/Masterminds/sprig/v3 v3.3.0
 	github.com/blang/semver/v4 v4.0.0
 	github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
@@ -115,6 +116,7 @@ require (
 	github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect
 	github.com/opencontainers/go-digest v1.0.0 // indirect
 	github.com/opencontainers/image-spec v1.1.1 // indirect
+	github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect
 	github.com/pelletier/go-toml/v2 v2.2.3 // indirect
 	github.com/prometheus/client_model v0.6.2 // indirect
 	github.com/prometheus/procfs v0.16.1 // indirect
diff --git a/go.sum b/go.sum
index 851341e4f..be2be2eb7 100644
--- a/go.sum
+++ b/go.sum
@@ -2,6 +2,8 @@ cel.dev/expr v0.24.0 h1:56OvJKSH3hDGL0ml5uSxZmz3/3Pq4tJ+fb1unVLAFcY=
 cel.dev/expr v0.24.0/go.mod h1:hLPLo1W4QUmuYdA72RBX06QTs6MXw941piREPl3Yfiw=
 dario.cat/mergo v1.0.2 h1:85+piFYR1tMbRrLcDwR18y4UKJ3aH1Tbzi24VRW1TK8=
 dario.cat/mergo v1.0.2/go.mod h1:E/hbnu0NxMFBjpMIE34DRGLWqDy0g5FuKDhCb31ngxA=
+github.com/KimMachineGun/automemlimit v0.7.4 h1:UY7QYOIfrr3wjjOAqahFmC3IaQCLWvur9nmfIn6LnWk=
+github.com/KimMachineGun/automemlimit v0.7.4/go.mod h1:QZxpHaGOQoYvFhv/r4u3U0JTC2ZcOwbSr11UZF46UBM=
 github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI=
 github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU=
 github.com/Masterminds/semver/v3 v3.3.0 h1:B8LGeaivUe71a5qox1ICM/JLl0NqZSW5CHyL+hmvYS0=
@@ -216,6 +218,8 @@ github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8
 github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
 github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040=
 github.com/opencontainers/image-spec v1.1.1/go.mod h1:qpqAh3Dmcf36wStyyWU+kCeDgrGnAve2nCC8+7h8Q0M=
+github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 h1:onHthvaw9LFnH4t2DcNVpwGmV9E1BkGknEliJkfwQj0=
+github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58/go.mod h1:DXv8WO4yhMYhSNPKjeNKa5WY9YCIEBRbNzFFPJbWO6Y=
 github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M=
 github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc=
 github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=



Test patch:
diff --git a/test/e2e/agent/recipes_test.go b/test/e2e/agent/recipes_test.go
index 138cc774e..ab201fdb9 100644
--- a/test/e2e/agent/recipes_test.go
+++ b/test/e2e/agent/recipes_test.go
@@ -132,6 +132,16 @@ func TestFleetKubernetesNonRootIntegrationRecipe(t *testing.T) {
 		t.SkipNow()
 	}
 
+	if (v.GE(version.MinFor(9, 0, 1)) && v.LE(version.MinFor(9, 0, 4))) ||
+		(v.EQ(version.From(9, 1, 0))) {
+		t.Skipf("Skipped as version %s is affected by https://github.com/elastic/kibana/pull/230211", v)
+	}
+
+	// TODO: see https://github.com/elastic/cloud-on-k8s/issues/8820
+	if v.GE(version.From(9, 1, 0)) {
+		t.Skipf("Skipped as version %s is affected by https://github.com/elastic/kibana/issues/233780", v)
+	}
+
 	// The recipe does not work fully within an openshift cluster without modifications.
 	if test.Ctx().OcpCluster {
 		t.SkipNow()
@@ -225,17 +235,17 @@ func runAgentRecipe(
 
 		// TODO: remove once https://github.com/elastic/cloud-on-k8s/issues/4092 is resolved
 		if test.Ctx().HasTag("ipv6") {
-			t.SkipNow()
+			t.Skipf("Test skipped on IPv6")
 		}
 
 		if isStackIncompatible(agentBuilder.Agent) {
-			t.SkipNow()
+			t.Skipf("Agent version %s is not compatible with stack %s", agentBuilder.Agent.Spec.Version, test.Ctx().ElasticStackVersion)
 		}
 
 		// OpenShift requires different securityContext than provided in the recipe.
 		// Skipping it altogether to reduce maintenance burden.
 		if strings.HasPrefix(test.Ctx().Provider, "ocp") {
-			t.SkipNow()
+			t.Skipf("Test skipped on OpenShift clusters")
 		}
 
 		agentBuilder.Suffix = suffix
diff --git a/test/e2e/test/helper/yaml.go b/test/e2e/test/helper/yaml.go
index 032769f32..984e4f03f 100644
--- a/test/e2e/test/helper/yaml.go
+++ b/test/e2e/test/helper/yaml.go
@@ -249,6 +249,7 @@ func transformToE2E(namespace, fullTestName, suffix string, transformers []Build
 			b := elasticsearch.NewBuilderWithoutSuffix(decodedObj.Name)
 			b.Elasticsearch = *decodedObj
 			b = b.WithNamespace(namespace).
+				WithVersion(test.Ctx().ElasticStackVersion).
 				WithSuffix(suffix).
 				WithRestrictedSecurityContext().
 				WithLabel(run.TestNameLabel, fullTestName).
@@ -265,6 +266,7 @@ func transformToE2E(namespace, fullTestName, suffix string, transformers []Build
 			b := kibana.NewBuilderWithoutSuffix(decodedObj.Name)
 			b.Kibana = *decodedObj
 			builder = b.WithNamespace(namespace).
+				WithVersion(test.Ctx().ElasticStackVersion).
 				WithSuffix(suffix).
 				WithElasticsearchRef(tweakServiceRef(b.Kibana.Spec.ElasticsearchRef, suffix)).
 				WithRestrictedSecurityContext().
@@ -275,6 +277,7 @@ func transformToE2E(namespace, fullTestName, suffix string, transformers []Build
 			b := apmserver.NewBuilderWithoutSuffix(decodedObj.Name)
 			b.ApmServer = *decodedObj
 			builder = b.WithNamespace(namespace).
+				WithVersion(test.Ctx().ElasticStackVersion).
 				WithSuffix(suffix).
 				WithElasticsearchRef(tweakServiceRef(b.ApmServer.Spec.ElasticsearchRef, suffix)).
 				WithKibanaRef(tweakServiceRef(b.ApmServer.Spec.KibanaRef, suffix)).
@@ -285,6 +288,7 @@ func transformToE2E(namespace, fullTestName, suffix string, transformers []Build
 		case *beatv1beta1.Beat:
 			b := beat.NewBuilderFromBeat(decodedObj)
 			b = b.WithNamespace(namespace).
+				WithVersion(test.Ctx().ElasticStackVersion).
 				WithSuffix(suffix).
 				WithElasticsearchRef(tweakServiceRef(b.Beat.Spec.ElasticsearchRef, suffix)).
 				WithLabel(run.TestNameLabel, fullTestName).
@@ -301,6 +305,7 @@ func transformToE2E(namespace, fullTestName, suffix string, transformers []Build
 			b := enterprisesearch.NewBuilderWithoutSuffix(decodedObj.Name)
 			b.EnterpriseSearch = *decodedObj
 			builder = b.WithNamespace(namespace).
+				WithVersion(test.Ctx().ElasticStackVersion).
 				WithSuffix(suffix).
 				WithElasticsearchRef(tweakServiceRef(b.EnterpriseSearch.Spec.ElasticsearchRef, suffix)).
 				WithRestrictedSecurityContext().
@@ -309,6 +314,7 @@ func transformToE2E(namespace, fullTestName, suffix string, transformers []Build
 		case *agentv1alpha1.Agent:
 			b := agent.NewBuilderFromAgent(decodedObj)
 			b = b.WithNamespace(namespace).
+				WithVersion(test.Ctx().ElasticStackVersion).
 				WithSuffix(suffix).
 				WithElasticsearchRefs(tweakOutputRefs(b.Agent.Spec.ElasticsearchRefs, suffix)...).
 				WithLabel(run.TestNameLabel, fullTestName).