Merge pull request #455 from elastic/robot_arms

Add test for upgrading from previous version of oss to current
This commit is contained in:
Michael Russell 2018-06-19 07:01:33 +02:00 committed by GitHub
commit f61cf5e590
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 102 additions and 44 deletions

View file

@ -41,7 +41,6 @@ platforms:
use_sudo: false
volume:
- <%=ENV['ES_XPACK_LICENSE_FILE']%>:/tmp/license.json
- /etc/elasticsearch
- name: ubuntu-16.04
driver_config:
image: dliappis/ubuntu-devopsci:16.04
@ -55,7 +54,6 @@ platforms:
use_sudo: false
volume:
- <%=ENV['ES_XPACK_LICENSE_FILE']%>:/tmp/license.json
- /etc/elasticsearch
run_command: "/sbin/init"
- name: debian-8
driver_config:
@ -71,7 +69,6 @@ platforms:
- pip uninstall -y ansible
volume:
- <%=ENV['ES_XPACK_LICENSE_FILE']%>:/tmp/license.json
- /etc/elasticsearch
use_sudo: false
run_command: "/sbin/init"
- name: centos-7
@ -88,7 +85,6 @@ platforms:
- pip install jmespath
volume:
- <%=ENV['ES_XPACK_LICENSE_FILE']%>:/tmp/license.json
- /etc/elasticsearch
run_command: "/usr/sbin/init"
privileged: true
use_sudo: false
@ -133,3 +129,9 @@ suites:
provisioner:
playbook: test/integration/issue-test.yml
idempotency_test: false
- name: oss-upgrade
run_list:
attributes:
provisioner:
playbook: test/integration/oss-upgrade.yml
idempotency_test: false

View file

@ -25,6 +25,31 @@
- { repo: "{{ es_apt_url }}", state: "present" }
when: es_use_repository
- name: Gracefully stop and remove elasticsearch if we are switching to the oss version
when:
- es_package_name == 'elasticsearch-oss'
block:
- name: Check if the elasticsearch package is installed
shell: dpkg-query -W -f'${Status}' elasticsearch
register: elasticsearch_package
failed_when: False
changed_when: False
- name: stop elasticsearch
become: yes
service:
name: '{{ instance_init_script | basename }}'
state: stopped
when: elasticsearch_package.stdout == 'install ok installed'
- name: Debian - Remove elasticsearch package if we are installing the oss package
become: yes
apt:
name: 'elasticsearch'
state: absent
when: elasticsearch_package.stdout == 'install ok installed'
- name: Debian - Ensure elasticsearch is installed
become: yes
apt:

View file

@ -13,6 +13,13 @@
include: elasticsearch-RedHat-version-lock.yml
when: es_version_lock
- name: RedHat - Remove non oss package if the old elasticsearch package is installed
become: yes
yum:
name: 'elasticsearch'
state: 'absent'
when: es_package_name == 'elasticsearch-oss'
- name: RedHat - Install Elasticsearch
become: yes
yum:

View file

@ -86,9 +86,30 @@
content: ''
when: ansible_os_family == 'RedHat'
- name: Delete Default Sysconfig File
become: yes
file: dest="{{ sysd_script }}" state=absent
- name: Symlink default systemd service to first instance of elasticsearch
when: use_system_d
block:
- name: Check if default systemd file exists
stat:
path: "{{ sysd_script }}"
register: sysd_stat_result
- name: Remove if it is a normal file
file:
path: "{{ sysd_script }}"
state: absent
when: not sysd_stat_result.stat.islnk
- name: Create a symbolic link to the default systemd location to the first instance running on this host
become: yes
file:
state: link
src: "{{ instance_sysd_script }}"
path: "{{ sysd_script }}"
when: not sysd_stat_result.stat.islnk
notify:
- reload systemd configuration
- restart elasticsearch
- name: Delete Default Configuration File
become: yes

View file

@ -125,10 +125,6 @@ shared_examples 'config::init' do |vars|
end
end
describe file('/usr/lib/systemd/system/elasticsearch.service') do
it { should_not exist }
end
describe file('/etc/elasticsearch/elasticsearch.yml') do
it { should_not exist }
end

View file

@ -212,10 +212,6 @@ shared_examples 'multi::init' do |vars|
end
end
describe file('/usr/lib/systemd/system/elasticsearch.service') do
it { should_not exist }
end
describe file('/etc/elasticsearch/elasticsearch.yml') do
it { should_not exist }
end
@ -223,18 +219,5 @@ shared_examples 'multi::init' do |vars|
describe file('/etc/elasticsearch/logging.yml') do
it { should_not exist }
end
#Test server spec file has been created and modified - currently not possible as not copied for debian 8
#describe file('/usr/lib/systemd/system/master_elasticsearch.service') do
# it { should be_file }
# it { should contain 'LimitMEMLOCK=infinity' }
#end
#describe file('/usr/lib/systemd/system/node1_elasticsearch.service') do
# it { should be_file }
# it { should_not contain 'LimitMEMLOCK=infinity' }
#end
end

View file

@ -0,0 +1,9 @@
require 'spec_helper'
shared_examples 'oss_upgrade::init' do |vars|
describe 'version check' do
it 'should be reported as version '+vars['es_version'] do
expect(curl_json('http://localhost:9200')['version']['number']).to eq(vars['es_version'])
end
end
end

View file

@ -100,10 +100,6 @@ shared_examples 'package::init' do |vars|
end
end
describe file('/usr/lib/systemd/system/elasticsearch.service') do
it { should_not exist }
end
describe file('/etc/elasticsearch/elasticsearch.yml') do
it { should_not exist }
end

View file

@ -72,10 +72,6 @@ shared_examples 'standard::init' do |vars|
end
end
describe file('/usr/lib/systemd/system/elasticsearch.service') do
it { should_not exist }
end
describe file('/etc/elasticsearch/elasticsearch.yml') do
it { should_not exist }
end

View file

@ -68,10 +68,6 @@ shared_examples 'xpack::init' do |vars|
end
end
describe file('/usr/lib/systemd/system/elasticsearch.service') do
it { should_not exist }
end
describe file('/etc/elasticsearch/elasticsearch.yml') do
it { should_not exist }
end

View file

@ -69,10 +69,6 @@ shared_examples 'xpack_standard::init' do |vars|
end
end
describe file('/usr/lib/systemd/system/elasticsearch.service') do
it { should_not exist }
end
describe file('/etc/elasticsearch/elasticsearch.yml') do
it { should_not exist }
end

View file

@ -0,0 +1,21 @@
---
- name: Standard test for single node setup. Tests idempotence.
hosts: localhost
tasks:
- include: elasticsearch/test/integration/debug.yml
roles:
- { role: elasticsearch, es_instance_name: "node1" }
vars:
es_version: "{{ '6.2.4' if es_major_version == '6.x' else '5.6.9' }}" # This is set to an older version than the current default to force an upgrade
es_enable_xpack: false
es_heap_size: "1g"
- name: Standard test for single node setup. Tests idempotence.
hosts: localhost
tasks:
- include: elasticsearch/test/integration/debug.yml
roles:
- { role: elasticsearch, es_instance_name: "node1" }
vars:
es_enable_xpack: false
es_heap_size: "1g"

View file

@ -0,0 +1,2 @@
---
- host: test-kitchen

View file

@ -0,0 +1,7 @@
require 'oss_upgrade_spec'
require 'json'
vars = JSON.parse(File.read('/tmp/vars.json'))
describe 'oss upgrade Tests' do
include_examples 'oss_upgrade::init', vars
end

View file

@ -14,3 +14,4 @@ TEST_TYPE:
- xpack
- xpack-standard
- issue-test
- oss-upgrade