Skip to content

Commit

Permalink
Allow patch level mismatch between Kibana and Elasticsearch (elastic#…
Browse files Browse the repository at this point in the history
…8980)

Backports PR elastic#8976

**Commit 1:**
Allow patch level mismatch between Kibana and Elasticsearch

Kibana should be able to run against Elasticsearch nodes that are at the
same minor version regardless of whether they are at the same patch
version. In the event that their patch versions differ, we render a
warning.

* Original sha: 79ea67f
* Authored by Court Ewing <court@epixa.com> on 2016-11-04T21:28:46Z
  • Loading branch information
elastic-jasper authored and cjcenizal committed Nov 5, 2016
1 parent 21d2d7f commit 838b16e
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 17 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ _Note: The version numbers below are only examples, meant to illustrate the rela
| ES patch number is newer. | 5.1.__2__ | 5.1.__5__ | ⚠️ Logged warning |
| ES minor number is newer. | 5.__1__.2 | 5.__5__.0 | ⚠️ Logged warning |
| ES major number is newer. | __5__.1.2 | __6__.0.0 | 🚫 Fatal error |
| ES patch number is older. | 5.1.__2__ | 5.1.__0__ | 🚫 Fatal error |
| ES patch number is older. | 5.1.__2__ | 5.1.__0__ | ⚠️ Logged warning |
| ES minor number is older. | 5.__1__.2 | 5.__0__.0 | 🚫 Fatal error |
| ES major number is older. | __5__.1.2 | __4__.0.0 | 🚫 Fatal error |

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,6 @@ describe('plugins/elasticsearch', () => {
it('when majors are equal, but ES minor is less than Kibana minor', () => {
expect(isEsCompatibleWithKibana('1.0.0', '1.1.0')).to.be(false);
});

it('when majors and minors are equal, but ES patch is less than Kibana patch', () => {
expect(isEsCompatibleWithKibana('1.1.0', '1.1.1')).to.be(false);
});
});

describe('returns true', () => {
Expand All @@ -35,6 +31,10 @@ describe('plugins/elasticsearch', () => {
it('when majors and minors are equal, and ES patch is greater than Kibana patch', () => {
expect(isEsCompatibleWithKibana('1.1.1', '1.1.0')).to.be(true);
});

it('when majors and minors are equal, but ES patch is less than Kibana patch', () => {
expect(isEsCompatibleWithKibana('1.1.0', '1.1.1')).to.be(true);
});
});
});
});
13 changes: 6 additions & 7 deletions src/core_plugins/elasticsearch/lib/check_es_version.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@

import _ from 'lodash';
import esBool from './es_bool';
import semver from 'semver';
import isEsCompatibleWithKibana from './is_es_compatible_with_kibana';
import SetupError from './setup_error';

Expand Down Expand Up @@ -38,9 +37,9 @@ module.exports = function checkEsVersion(server, kibanaVersion) {
return incompatibleNodes.push(esNode);
}

// It's acceptable if ES is ahead of Kibana, but we want to prompt users to upgrade Kibana
// to match it.
if (semver.gt(esNode.version, kibanaVersion)) {
// It's acceptable if ES and Kibana versions are not the same so long as
// they are not incompatible, but we should warn about it
if (esNode.version !== kibanaVersion) {
warningNodes.push(esNode);
}
});
Expand All @@ -66,9 +65,9 @@ module.exports = function checkEsVersion(server, kibanaVersion) {
lastWarnedNodesForServer.set(server, warningNodeNames);
server.log(['warning'], {
tmpl: (
`You're running Kibana ${kibanaVersion} with some newer versions of ` +
'Elasticsearch. Update Kibana to the latest version to prevent compatibility issues: ' +
warningNodeNames
`You're running Kibana ${kibanaVersion} with some different versions of ` +
'Elasticsearch. Update Kibana or Elasticsearch to the same ' +
`version to prevent compatibility issues: ${warningNodeNames}`
),
kibanaVersion,
nodes: simplifiedNodes,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,5 @@ export default function isEsCompatibleWithKibana(esVersion, kibanaVersion) {
return false;
}

// Reject older patch versions of ES.
if (esVersionNumbers.patch < kibanaVersionNumbers.patch) {
return false;
}

return true;
}

0 comments on commit 838b16e

Please sign in to comment.