Skip to content
This repository has been archived by the owner on May 16, 2023. It is now read-only.

[meta] add support for k8s 1.16 #635

Merged
merged 14 commits into from
May 29, 2020
9 changes: 3 additions & 6 deletions elasticsearch/examples/upgrade/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,12 @@ default: test
include ../../../helpers/examples.mk

RELEASE := helm-es-upgrade
KUBE_MINOR_VERSION := $(shell kubectl version -o json | jq -c '.serverVersion.minor' | sed 's/[^0-9]*//g')
Conky5 marked this conversation as resolved.
Show resolved Hide resolved
VERSION := $(shell test $(KUBE_MINOR_VERSION) -lt 16 && echo 7.0.0-alpha1 || echo 7.4.0)

# Right now the version is hardcoded because helm install will ignore
# anything with an alpha tag when trying to install the latest release
# This hardcoding can be removed once we drop the alpha tag
# The "--set terminationGracePeriod=121" always makes sure that a rolling
# upgrade is forced for this test
install:
helm repo add elastic https://helm.elastic.co && \
helm upgrade --wait --timeout=600 --install $(RELEASE) elastic/elasticsearch --version 7.0.0-alpha1 --set clusterName=upgrade ; \
helm upgrade --wait --timeout=600 --install $(RELEASE) elastic/elasticsearch --version $(VERSION) --set clusterName=upgrade ; \
kubectl rollout status sts/upgrade-master --timeout=600s
helm upgrade --wait --timeout=600 --set terminationGracePeriod=121 --install $(RELEASE) ../../ --set clusterName=upgrade ; \
kubectl rollout status sts/upgrade-master --timeout=600s
Expand Down
13 changes: 9 additions & 4 deletions elasticsearch/examples/upgrade/README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
# Upgrade

This example deploy a 3 nodes Elasticsearch cluster using [7.0.0-alpha1][] chart
version, then upgrade it to 7.7.0 version.
This example deploy a 3 nodes Elasticsearch cluster using an old chart version,
then upgrade it to 7.7.0 version.
jmlrt marked this conversation as resolved.
Show resolved Hide resolved

The following upgrades are tested:
- Upgrade from [7.0.0-alpha1][] version on K8S <1.16
- Upgrade from [7.4.0][] version on K8S >=1.16 (Elasticsearch chart < 7.4.0 are
not compatible with K8S >= 1.16)


## Usage

Running `make install` command will do both 7.0.0-alpha1 install and 7.7.0
upgrade
Running `make install` command will do first install and 7.7.0 upgrade


## Testing
Expand All @@ -16,4 +20,5 @@ You can also run [goss integration tests][] using `make test`


[7.0.0-alpha1]: https://github.com/elastic/helm-charts/releases/tag/7.0.0-alpha1
[7.4.0]: https://github.com/elastic/helm-charts/releases/tag/7.4.0
[goss integration tests]: https://github.com/elastic/helm-charts/tree/master/elasticsearch/examples/upgrade/test/goss.yaml
1 change: 1 addition & 0 deletions helpers/matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,3 +40,4 @@ APM_SERVER_SUITE:
KUBERNETES_VERSION:
- '1.14'
- '1.15'
- '1.16'
Copy link
Contributor

@Conky5 Conky5 May 29, 2020

Choose a reason for hiding this comment

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

I wish we could define the chart versions for upgrade testing here somehow so it is very clear what the test cases are, something like this

 - kubernetes_version: '1.14'
   upgrade_from_chart_version: '7.0.0-alpha1'
 - kubernetes_version: '1.15'
   upgrade_from_chart_version: '7.0.0-alpha1'
 - kubernetes_version: '1.16'
   upgrade_from_chart_version: '7.4.0'

But I think we can only fit this logic into the jenkins job inline shell script, or the Makefile inline shell script the way the job axes work, so adding into the Makefile makes sense to me.