diff --git a/BREAKING_CHANGES.md b/BREAKING_CHANGES.md index e4cddb1d2..90c04c386 100644 --- a/BREAKING_CHANGES.md +++ b/BREAKING_CHANGES.md @@ -3,6 +3,11 @@ + - [7.10.0](#7100) + - [Migration to Helm 3](#migration-to-helm-3) + - [Metricbeat upgrade](#metricbeat-upgrade) + - [Elasticsearch upgrade with persistence.labels.enabled](#elasticsearch-upgrade-with-persistencelabelsenabled) + - [Rendered manifests contain a resource that already exists error](#rendered-manifests-contain-a-resource-that-already-exists-error) - [7.9.3 - 2020/10/22](#793---20201022) - [Fix Logstash headless Service (end)](#fix-logstash-headless-service-end) - [6.8.13 - 2020/10/22](#6813---20201022) @@ -39,6 +44,87 @@ +## 7.10.0 + +### Migration to Helm 3 + +Starting from the 7.10.0 release, Helm 3 is fully supported in Elastic Helm charts +and Helm 2 is deprecated. + +In most cases, [Helm 2to3][] can be used to migrate from previous charts +releases deployed with Helm 2: + +```shell +# Install Helm 3 + +# Install 2to3 plugin +helm plugin install https://github.com/helm/helm-2to3.git + +# Migrate Helm 2 local config +helm3 2to3 move config + +# Migrate Helm 2 releases +helm3 2to3 convert + +# Upgrade to 7.10.0 +helm upgrade elastic/ --version 7.10.0 + +# Cleanup Helm 2 datas +helm3 2to3 cleanup +``` + +Migration to Helm 3 with 7.10.0 charts release should work smoothly for the +following charts. + +- apm-server >= 7.6.0 +- elasticsearch >= 7.4.0 (except when `persistence.labels.enabled` is true) +- filebeat >= 7.9.0 +- kibana >= 7.4.0 +- logstash >= 7.9.0 + +#### Metricbeat upgrade + +Metricbeat 7.10.0 introduce a breaking change in [#516][] to make it compatible +with Helm 3. + +The removing of some `heritage` labels in Metricbeat deployment make upgrade +fail with the following error: + +``` +UPGRADE FAILED +Error: Deployment.apps "mb-metricbeat-metrics" is invalid: spec.selector: Invalid value: v1.LabelSelector{MatchLabels:map[string]string{"app":"mb-metricbeat-metrics", "release":"mb"}, MatchExpressions:[]v1.LabelSelectorRequirement(nil)}: field is immutable +Error: UPGRADE FAILED: Deployment.apps "mb-metricbeat-metrics" is invalid: spec.selector: Invalid value: v1.LabelSelector{MatchLabels:map[string]string{"app":"mb-metricbeat-metrics", "release":"mb"}, MatchExpressions:[]v1.LabelSelectorRequirement(nil)}: field is immutable +``` + +Unfortunately using `helm upgrade --force` with Helm 3 is not enough. This chart +will need to be uninstalled and re-installed. + +#### Elasticsearch upgrade with persistence.labels.enabled + +If you are using `persistence.labels.enabled=true` with Elasticsearch, upgrade +will fail even with `--force`. + +You'll need to deploy a new release with the same `clusterName` using Helm 3, +migrate your data, then remove the old release. + +#### Rendered manifests contain a resource that already exists error + +We experimented some `rendered manifests contain a resource that already exists` +errors with some charts upgrade, mostly for charts deploying `ClusterRole` and +`ClusterRoleBinding`resources. + +Helm 3 is automatically adding some new annotations (`meta.helm.sh/release-name` +and `meta.helm.sh/release-namespace`) and labels (`app.kubernetes.io/managed-by`) +to the charts resources during upgrade. However it sometimes fail to add the annotations with the below error: + +``` +Error: UPGRADE FAILED: rendered manifests contain a resource that already exists. Unable to continue with update: ClusterRole "apm-apm-server-cluster-role" in namespace "" exists and cannot be imported into the current release: invalid ownership metadata; label validation error: missing key "app.kubernetes.io/managed-by": must be set to "Helm"; annotation validation error: missing key "meta.helm.sh/release-name": must be set to "apm"; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "default" +``` + +The workaround is to manually add these annotations and labels to the existing failing resources +using `kubectl edit` for example, then relaunch the upgrade command. + + ## 7.9.3 - 2020/10/22 ### Fix Logstash headless Service (end) @@ -57,7 +143,7 @@ See [7.9.3 - 2020/10/22](#793---20201022) and [7.9.1 - 2020/09/03](#791---202009 ### Fix Logstash headless Service [#776][] fixed an issue with headless `Service` when using `extraPorts` value -(see [Add headless Service for StatefulSet](#add-headless-service-for-statefulset) +(see [Add headless Service for StatefulSet](#add-headless-service-for-statefulset) for more details). Unfortunately, it introduced a new bug when using a `NodePort` `Service` ([#807][]). This is fixed by [#839][] in 7.9.3 (and 6.8.13). @@ -290,6 +376,7 @@ volumeClaimTemplate: [#352]: https://github.com/elastic/helm-charts/pull/352 [#437]: https://github.com/elastic/helm-charts/pull/437 [#458]: https://github.com/elastic/helm-charts/pull/458 +[#516]: https://github.com/elastic/helm/pull/516 [#540]: https://github.com/elastic/helm-charts/pull/540 [#568]: https://github.com/elastic/helm-charts/pull/568 [#572]: https://github.com/elastic/helm-charts/pull/572 @@ -307,6 +394,7 @@ volumeClaimTemplate: [elastic elasticsearch chart]: https://github.com/elastic/helm-charts/tree/master/elasticsearch [elastic helm repo]: https://helm.elastic.co [github releases]: https://github.com/elastic/helm-charts/releases +[helm 2to3]: https://helm.sh/blog/migrate-from-helm-v2-to-helm-v3/ [migration guide]: https://github.com/elastic/helm-charts/blob/master/elasticsearch/examples/migration/README.md [new branching model]: https://github.com/elastic/helm-charts/blob/master/CONTRIBUTING.md#branching [kube-state-metrics]: https://github.com/helm/charts/tree/master/stable/kube-state-metrics diff --git a/CHANGELOG.md b/CHANGELOG.md index 9b8879472..a9310835f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,29 @@ # Changelog +## 7.10.0 + +* 7.10.0 as default version. + + +| PR | Author | Title | +| --- | --- | --- | +| [#927](https://github.com/elastic/helm-charts/pull/927) | [@jmlrt](https://github.com/jmlrt) | [meta] Remove version from dev install section title | +| [#922](https://github.com/elastic/helm-charts/pull/922) | [@jmlrt](https://github.com/jmlrt) | [meta] Remove support for k8s <1.14 & helm <2.17.0 (#916) [7.10] | +| [#919](https://github.com/elastic/helm-charts/pull/919) | [@jmlrt](https://github.com/jmlrt) | [meta] Upgrade test (#907) [7.10] | +| [#914](https://github.com/elastic/helm-charts/pull/914) | [@jmlrt](https://github.com/jmlrt) | [meta] Initiate 7.10 branch | +| [#897](https://github.com/elastic/helm-charts/pull/897) | [@cospeedster](https://github.com/cospeedster) | [elasticsearch] Fix spelling | +| [#911](https://github.com/elastic/helm-charts/pull/911) | [@jmlrt](https://github.com/jmlrt) | [elasticsearch] Update test hook annotations | +| [#910](https://github.com/elastic/helm-charts/pull/910) | [@jmlrt](https://github.com/jmlrt) | [meta] Add link to eck chart doc | +| [#902](https://github.com/elastic/helm-charts/pull/902) | [@jmlrt](https://github.com/jmlrt) | [meta] Helm 3 (#516) | +| [#891](https://github.com/elastic/helm-charts/pull/891) | [@jmlrt](https://github.com/jmlrt) | [meta] Increase helm timeout | +| [#890](https://github.com/elastic/helm-charts/pull/890) | [@jmlrt](https://github.com/jmlrt) | [meta] Update rbac.authorization.k8s.io api | +| [#887](https://github.com/elastic/helm-charts/pull/887) | [@nkammah](https://github.com/nkammah) | [meta] Add warning comment placeholder (7.x branch) | +| [#882](https://github.com/elastic/helm-charts/pull/882) | [@jmlrt](https://github.com/jmlrt) | [metricbeat] Use relocated stable repo for kube-state-metrics | +| [#880](https://github.com/elastic/helm-charts/pull/880) | [@jmlrt](https://github.com/jmlrt) | [meta] Add support for helm 2.17.0 and k8s 1.17 | +| [#854](https://github.com/elastic/helm-charts/pull/854) | [@jmlrt](https://github.com/jmlrt) | [elasticsearch] Add coordinator node to multi test | +| [#860](https://github.com/elastic/helm-charts/pull/860) | [@nkammah](https://github.com/nkammah) | [meta] Simplify doc in 7.x branch | + + ## 7.9.3 * 7.9.3 as default version. diff --git a/README.md b/README.md index 087c02509..9dfa5edee 100644 --- a/README.md +++ b/README.md @@ -37,12 +37,12 @@ versions. | Chart | Docker documentation | Latest 7 Version | Latest 6 Version | |--------------------------------------------|---------------------------------------------------------------------------------|----------------------------|-----------------------------| -| [APM-Server](./apm-server/README.md) | https://www.elastic.co/guide/en/apm/server/current/running-on-docker.html | [`7.9.3`][apm-7] | [`6.8.13`][apm-6] | -| [Elasticsearch](./elasticsearch/README.md) | https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html | [`7.9.3`][elasticsearch-7] | [`6.8.13`][elasticsearch-6] | -| [Filebeat](./filebeat/README.md) | https://www.elastic.co/guide/en/beats/filebeat/current/running-on-docker.html | [`7.9.3`][filebeat-7] | [`6.8.13`][filebeat-6] | -| [Kibana](./kibana/README.md) | https://www.elastic.co/guide/en/kibana/current/docker.html | [`7.9.3`][kibana-7] | [`6.8.13`][kibana-6] | -| [Logstash](./logstash/README.md) | https://www.elastic.co/guide/en/logstash/current/docker.html | [`7.9.3`][logstash-7] | [`6.8.13`][logstash-6] | -| [Metricbeat](./metricbeat/README.md) | https://www.elastic.co/guide/en/beats/metricbeat/current/running-on-docker.html | [`7.9.3`][metricbeat-7] | [`6.8.13`][metricbeat-6] | +| [APM-Server](./apm-server/README.md) | https://www.elastic.co/guide/en/apm/server/current/running-on-docker.html | [`7.10.0`][apm-7] | [`6.8.13`][apm-6] | +| [Elasticsearch](./elasticsearch/README.md) | https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html | [`7.10.0`][elasticsearch-7] | [`6.8.13`][elasticsearch-6] | +| [Filebeat](./filebeat/README.md) | https://www.elastic.co/guide/en/beats/filebeat/current/running-on-docker.html | [`7.10.0`][filebeat-7] | [`6.8.13`][filebeat-6] | +| [Kibana](./kibana/README.md) | https://www.elastic.co/guide/en/kibana/current/docker.html | [`7.10.0`][kibana-7] | [`6.8.13`][kibana-6] | +| [Logstash](./logstash/README.md) | https://www.elastic.co/guide/en/logstash/current/docker.html | [`7.10.0`][logstash-7] | [`6.8.13`][logstash-6] | +| [Metricbeat](./metricbeat/README.md) | https://www.elastic.co/guide/en/beats/metricbeat/current/running-on-docker.html | [`7.10.0`][metricbeat-7] | [`6.8.13`][metricbeat-6] | ## Supported Configurations @@ -98,15 +98,15 @@ Kubernetes. There is a dedicated Helm chart for ECK which can be found [helpers/matrix.yml]: https://github.com/elastic/helm-charts/blob/master/helpers/matrix.yml [operator pattern]: https://kubernetes.io/docs/concepts/extend-kubernetes/operator/ [elasticsearch-771]: https://github.com/elastic/helm-charts/tree/7.7.1/elasticsearch/ -[apm-7]: https://github.com/elastic/helm-charts/tree/7.9.3/apm-server/README.md +[apm-7]: https://github.com/elastic/helm-charts/tree/7.10.0/apm-server/README.md [apm-6]: https://github.com/elastic/helm-charts/tree/6.8.13/apm-server/README.md -[elasticsearch-7]: https://github.com/elastic/helm-charts/tree/7.9.3/elasticsearch/README.md +[elasticsearch-7]: https://github.com/elastic/helm-charts/tree/7.10.0/elasticsearch/README.md [elasticsearch-6]: https://github.com/elastic/helm-charts/tree/6.8.13/elasticsearch/README.md -[filebeat-7]: https://github.com/elastic/helm-charts/tree/7.9.3/filebeat/README.md +[filebeat-7]: https://github.com/elastic/helm-charts/tree/7.10.0/filebeat/README.md [filebeat-6]: https://github.com/elastic/helm-charts/tree/6.8.13/filebeat/README.md -[kibana-7]: https://github.com/elastic/helm-charts/tree/7.9.3/kibana/README.md +[kibana-7]: https://github.com/elastic/helm-charts/tree/7.10.0/kibana/README.md [kibana-6]: https://github.com/elastic/helm-charts/tree/6.8.13/kibana/README.md -[logstash-7]: https://github.com/elastic/helm-charts/tree/7.9.3/logstash/README.md +[logstash-7]: https://github.com/elastic/helm-charts/tree/7.10.0/logstash/README.md [logstash-6]: https://github.com/elastic/helm-charts/tree/6.8.13/logstash/README.md -[metricbeat-7]: https://github.com/elastic/helm-charts/tree/7.9.3/metricbeat/README.md +[metricbeat-7]: https://github.com/elastic/helm-charts/tree/7.10.0/metricbeat/README.md [metricbeat-6]: https://github.com/elastic/helm-charts/tree/6.8.13/metricbeat/README.md