Skip to content

Updates Upgrade ECK page #702

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Mar 11, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 18 additions & 10 deletions deploy-manage/upgrade/orchestrator/upgrade-cloud-on-k8s.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@ This page provides instructions on how to upgrade the ECK operator.
For upgrades of Elastic Stack applications like Elasticsearch or Kibana, check [Upgrade the Elastic Stack version](../deployment-or-cluster.md).


## Before you upgrade to ECK 2.16.1 [k8s-ga-upgrade]
## Before you upgrade to ECK 3.0.0 [k8s-ga-upgrade]

The upgrade process results in an update to all the existing managed resources. This potentially triggers a rolling restart of all Elasticsearch and Kibana pods. This [list](#k8s-beta-to-ga-rolling-restart) details the affected target versions that will cause a rolling restart. If you have a large Elasticsearch cluster or multiple Elastic Stack deployments, the rolling restart could cause a performance degradation. When you plan to upgrade ECK for production workloads, take into consideration the time required to upgrade the ECK operator plus the time required to roll all managed workloads and Elasticsearch clusters. Check for more information on how to [control the rolling restarts during the upgrade](#k8s-beta-to-ga-rolling-restart).
The upgrade process results in an update to all the existing managed resources. This potentially triggers a rolling restart of all Elasticsearch and Kibana pods. This [list](#k8s-beta-to-ga-rolling-restart) details the affected target versions that will cause a rolling restart. If you have a large Elasticsearch cluster or multiple Elastic Stack deployments, the rolling restart could cause a performance degradation. When you plan to upgrade ECK for production workloads, take into consideration the time required to upgrade the ECK operator plus the time required to roll all managed workloads and Elasticsearch clusters. For more details on controlling rolling restarts during the upgrade, refer to the [control the rolling restarts during the upgrade](#k8s-beta-to-ga-rolling-restart) section.

Before upgrading, refer to the [release notes](https://www.elastic.co/guide/en/cloud-on-k8s/current/release-notes-2.16.1.html) to make sure that the release does not contain any breaking changes that could affect you. The [release highlights document](https://www.elastic.co/guide/en/cloud-on-k8s/current/release-highlights-2.16.1.html) provides more details and possible workarounds for any breaking changes or known issues in each release.
Before upgrading, refer to the [release notes](cloud-on-k8s://release-notes/index.md) to make sure that the release does not contain any breaking changes that could affect you. The [release highlights document](cloud-on-k8s://release-notes/index.md) provides more details and possible workarounds for any breaking changes or known issues in each release.

Note that the release notes and highlights only list the changes since the last release. If during the upgrade you skip any intermediate versions and go for example from 1.0.0 directly to 2.16.1, review the release notes and highlights of each of the skipped releases to understand all the breaking changes you might encounter during and after the upgrade.
Note that the release notes and highlights only list the changes since the last release. If during the upgrade you skip any intermediate versions and go for example from 1.0.0 directly to 3.0.0, review the release notes and highlights of each of the skipped releases to understand all the breaking changes you might encounter during and after the upgrade.

::::{warning}
When upgrading always ensure that the version of the CRDs installed in the cluster matches the version of the operator. If you are using Helm, the CRDs are upgraded automatically as part of the Helm chart. If you are using the YAML manifests, you must upgrade the CRDs manually. Running differing versions of the CRDs and the operator is not a supported configuration and can lead to unexpected behavior.
Expand All @@ -32,14 +32,14 @@ When upgrading always ensure that the version of the CRDs installed in the clust
Release 1.7.0 moved the [CustomResourceDefinitions](https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/) (CRD) used by ECK to the v1 version. If you upgrade from a previous version of ECK, the new version of the CRDs replaces the existing CRDs. If you cannot remove the current ECK installation because you have production workloads that must not be deleted, the following approach is recommended.

```shell
kubectl replace -f https://download.elastic.co/downloads/eck/2.16.1/crds.yaml
kubectl replace -f https://download.elastic.co/downloads/eck/3.0.0/crds.yaml
```

::::{note}
If you skipped a release in which new CRDs where introduced, you will get an error message similar to `Error from server (NotFound): error when replacing "config/crds.yaml": customresourcedefinitions.apiextensions.k8s.io ... not found`. To add the missing CRDs run

```shell
kubectl create -f https://download.elastic.co/downloads/eck/2.16.1/crds.yaml
kubectl create -f https://download.elastic.co/downloads/eck/3.0.0/crds.yaml
```

::::
Expand All @@ -48,9 +48,11 @@ kubectl create -f https://download.elastic.co/downloads/eck/2.16.1/crds.yaml
Then upgrade the remaining objects with the operator manifest:

```shell
kubectl apply -f https://download.elastic.co/downloads/eck/2.16.1/operator.yaml
kubectl apply -f https://download.elastic.co/downloads/eck/3.0.0/operator.yaml
```

If you are using Helm: force upgrade the CRD chart to move to the v1 CRDs.

```shell
helm upgrade elastic-operator elastic/eck-operator-crds -n elastic-system --force
```
Expand All @@ -71,13 +73,17 @@ Operator Lifecycle Manager (OLM) and OpenShift OperatorHub users that run with a

### Upgrading from ECK 2.0 or later [k8s_upgrading_from_eck_2_0_or_later]

There are no special instructions to follow if you upgrade from any 2.x version to 2.16.1. Use the upgrade method applicable to your installation method of choice.
There are no special instructions to follow if you upgrade from any 2.x version to 3.0.0. Use the upgrade method applicable to your installation method of choice.

If you are using our YAML manifests:

```shell
kubectl apply -f https://download.elastic.co/downloads/eck/2.16.1/crds.yaml
kubectl apply -f https://download.elastic.co/downloads/eck/2.16.1/operator.yaml
kubectl apply -f https://download.elastic.co/downloads/eck/3.0.0/crds.yaml
kubectl apply -f https://download.elastic.co/downloads/eck/3.0.0/operator.yaml
```

If you are using Helm:

```shell
helm upgrade elastic-operator elastic/eck-operator -n elastic-system
```
Expand All @@ -103,6 +109,8 @@ If you have a very large Elasticsearch cluster or multiple Elastic Stack deploym
Once a resource is excluded from being managed by ECK, you will not be able to add/remove nodes, upgrade Stack version, or perform other [orchestration tasks](../../deploy/cloud-on-k8s/configure-deployments.md) by updating the resource manifest. You must remember to remove the exclusion to ensure that your Elastic Stack deployment is continually monitored and managed by the operator.
::::

Exclude Elastic resources from being managed by the operator:


```shell
ANNOTATION='eck.k8s.elastic.co/managed=false'
Expand Down