From 2ebe40eaedfa9985ff19acc7f7b914d813f8f904 Mon Sep 17 00:00:00 2001 From: Martin Polreich Date: Thu, 30 Mar 2017 14:51:08 +0200 Subject: [PATCH 1/1] Added Kitchen tests and Travis --- .kitchen.yml | 52 ++++++++++++++++++++++++++++++++++++++++ .travis.yml | 39 ++++++++++++++++++++++++++++++ influxdb/server.sls | 15 ++++++++++++ tests/pillar/cluster.sls | 16 +++++++++++++ tests/pillar/single.sls | 8 +++++++ 5 files changed, 130 insertions(+) create mode 100644 .kitchen.yml create mode 100644 .travis.yml diff --git a/.kitchen.yml b/.kitchen.yml new file mode 100644 index 0000000..3f7ad13 --- /dev/null +++ b/.kitchen.yml @@ -0,0 +1,52 @@ +--- +driver: + name: docker + hostname: influxdb.ci.local + use_sudo: false + +provisioner: + name: salt_solo + salt_install: bootstrap + salt_bootstrap_url: https://bootstrap.saltstack.com + salt_version: latest + require_chef: false + log_level: error + formula: influxdb + grains: + noservices: True + state_top: + base: + "*": + - influxdb + pillars: + top.sls: + base: + "*": + - influxdb + dependencies: + - name: linux + repo: git + source: https://github.com/salt-formulas/salt-formula-linux.git + +verifier: + name: inspec + sudo: true + +platforms: + - name: <%=ENV['PLATFORM'] || 'ubuntu-xenial'%> + driver_config: + image: <%=ENV['PLATFORM'] || 'trevorj/salty-whales:xenial'%> + platform: ubuntu + +suites: + + - name: cluster + provisioner: + pillars-from-files: + influxdb.sls: tests/pillar/cluster.sls + + - name: single + provisioner: + pillars-from-files: + influxdb.sls: tests/pillar/single.sls +# vim: ft=yaml sw=2 ts=2 sts=2 tw=125 diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..7a77247 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,39 @@ +sudo: required +services: + - docker + +install: + - pip install PyYAML + - pip install virtualenv + - | + test -e Gemfile || cat < Gemfile + source 'https://rubygems.org' + gem 'rake' + gem 'test-kitchen' + gem 'kitchen-docker' + gem 'kitchen-inspec' + gem 'inspec' + gem 'kitchen-salt', :git => 'https://github.com/salt-formulas/kitchen-salt.git' + - bundle install + +env: + - PLATFORM=trevorj/salty-whales:trusty + - PLATFORM=trevorj/salty-whales:xenial + +before_script: + - set -o pipefail + - make test | tail + +script: + - test ! -e .kitchen.yml || bundle exec kitchen test -t tests/integration + +notifications: + webhooks: + urls: + - https://webhooks.gitter.im/e/6123573504759330786b + on_success: change # options: [always|never|change] default: always + on_failure: never # options: [always|never|change] default: always + on_start: never # options: [always|never|change] default: always + on_cancel: never # options: [always|never|change] default: always + on_error: never # options: [always|never|change] default: always + email: false diff --git a/influxdb/server.sls b/influxdb/server.sls index c77ec82..4276a8e 100644 --- a/influxdb/server.sls +++ b/influxdb/server.sls @@ -1,6 +1,15 @@ {%- from "influxdb/map.jinja" import server with context %} +{% from "linux/map.jinja" import system with context %} + {%- if server.enabled %} +linux_packages: + pkg.installed: + - pkgs: {{ system.pkgs }} + +include: + - linux.system.repo + influxdb_packages: pkg.installed: - names: {{ server.pkgs }} @@ -21,6 +30,8 @@ influxdb_default: - require: - pkg: influxdb_packages +{%- if not grains.get('noservices', False) %} + influxdb_service: service.running: - enable: true @@ -32,6 +43,8 @@ influxdb_service: - file: influxdb_config - file: influxdb_default +{%- endif %} + {% set url_for_query = "http://{}:{}/query".format(server.http.bind.address, server.http.bind.port) %} {% set admin_created = false %} @@ -41,8 +54,10 @@ influxdb_service: influxdb_create_admin: cmd.run: - name: curl -f -S -POST "{{ url_for_query }}" {{ query_create_admin }} || curl -f -S -POST "{{ admin_url }}" {{ query_create_admin }} + {%- if not grains.get('noservices', False) %} - require: - service: influxdb_service + {%- endif %} {% set url_for_query = admin_url %} {% set admin_created = true %} {%- endif %} diff --git a/tests/pillar/cluster.sls b/tests/pillar/cluster.sls index 19911cb..2de3ef4 100644 --- a/tests/pillar/cluster.sls +++ b/tests/pillar/cluster.sls @@ -2,11 +2,19 @@ influxdb: server: enabled: true meta: + enabled: true bind: address: 0.0.0.0 port: 8088 http_address: 0.0.0.0 http_port: 8091 + admin: + enabled: true + bind: + address: 0.0.0.0 + port: 8081 + http_address: 0.0.0.0 + http_port: 8083 cluster: members: - host: idb01.local @@ -15,3 +23,11 @@ influxdb: port: 8091 - host: idb03.local port: 8091 +linux: + system: + enabled: true + repo: + docker: + source: 'deb https://repos.influxdata.com/ubuntu {{ grains.get('oscodename') }} stable' + key_url: https://repos.influxdata.com/influxdb.key + file: /etc/apt/sources.list diff --git a/tests/pillar/single.sls b/tests/pillar/single.sls index 21c12b0..c6a9124 100644 --- a/tests/pillar/single.sls +++ b/tests/pillar/single.sls @@ -1,3 +1,11 @@ influxdb: server: enabled: true +linux: + system: + enabled: true + repo: + docker: + source: 'deb https://repos.influxdata.com/ubuntu {{ grains.get('oscodename') }} stable' + key_url: https://repos.influxdata.com/influxdb.key + file: /etc/apt/sources.list -- 2.32.7