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

Commit

Permalink
Merge pull request #455 from elastic/robot_arms
Browse files Browse the repository at this point in the history
Add test for upgrading from previous version of oss to current
  • Loading branch information
Crazybus authored Jun 19, 2018
2 parents 992407f + 6d6fc3a commit f61cf5e
Show file tree
Hide file tree
Showing 15 changed files with 102 additions and 44 deletions.
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

0 comments on commit f61cf5e

Please sign in to comment.