Skip to content
This repository has been archived by the owner on Jun 24, 2022. It is now read-only.

Add test for upgrading from previous version of oss to current #455

Merged
merged 4 commits into from
Jun 19, 2018
Merged
Show file tree
Hide file tree
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
10 changes: 6 additions & 4 deletions .kitchen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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:
Expand All @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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
25 changes: 25 additions & 0 deletions tasks/elasticsearch-Debian.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
7 changes: 7 additions & 0 deletions tasks/elasticsearch-RedHat.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
27 changes: 24 additions & 3 deletions tasks/elasticsearch-config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 0 additions & 4 deletions test/integration/helpers/serverspec/config_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -125,10 +125,6 @@
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
Expand Down
17 changes: 0 additions & 17 deletions test/integration/helpers/serverspec/multi_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -212,29 +212,12 @@
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

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

9 changes: 9 additions & 0 deletions test/integration/helpers/serverspec/oss_upgrade_spec.rb
Original file line number Diff line number Diff line change
@@ -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
4 changes: 0 additions & 4 deletions test/integration/helpers/serverspec/package_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -100,10 +100,6 @@
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
Expand Down
4 changes: 0 additions & 4 deletions test/integration/helpers/serverspec/standard_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -72,10 +72,6 @@
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
Expand Down
4 changes: 0 additions & 4 deletions test/integration/helpers/serverspec/xpack_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -68,10 +68,6 @@
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
Expand Down
4 changes: 0 additions & 4 deletions test/integration/helpers/serverspec/xpack_standard_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -69,10 +69,6 @@
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
Expand Down
21 changes: 21 additions & 0 deletions test/integration/oss-upgrade.yml
Original file line number Diff line number Diff line change
@@ -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"
2 changes: 2 additions & 0 deletions test/integration/oss-upgrade/oss-upgrade.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
---
- host: test-kitchen
7 changes: 7 additions & 0 deletions test/integration/oss-upgrade/serverspec/default_spec.rb
Original file line number Diff line number Diff line change
@@ -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
1 change: 1 addition & 0 deletions test/matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,4 @@ TEST_TYPE:
- xpack
- xpack-standard
- issue-test
- oss-upgrade