From d6b142fda1ef85c214b2af24d8fb576919dc12d2 Mon Sep 17 00:00:00 2001 From: Jakub Pavlik Date: Tue, 20 Sep 2016 13:54:11 +0000 Subject: [PATCH] Revert "introduce test-kitchen" This reverts commit 10261034b8c35ee7582344e344a722295e390932. Change-Id: I95fe33bc7123917cfc31f03c5db227bbc329447c --- .kitchen.docker.yml | 12 -- .kitchen.openstack.yml | 41 ------- .kitchen.yml | 53 -------- INTEGRATION.rst | 114 ------------------ Makefile | 42 +------ README.rst | 51 +------- tests/integration/helpers/spec_helper.rb | 0 .../server-cluster/inspec/heat_spec.rb | 0 .../server-single/inspec/heat_spec.rb | 0 tests/pillar/server_cluster.sls | 3 - tests/pillar/server_single.sls | 3 - 11 files changed, 2 insertions(+), 317 deletions(-) delete mode 100644 .kitchen.docker.yml delete mode 100644 .kitchen.openstack.yml delete mode 100644 .kitchen.yml delete mode 100644 INTEGRATION.rst delete mode 100644 tests/integration/helpers/spec_helper.rb delete mode 100644 tests/integration/server-cluster/inspec/heat_spec.rb delete mode 100644 tests/integration/server-single/inspec/heat_spec.rb diff --git a/.kitchen.docker.yml b/.kitchen.docker.yml deleted file mode 100644 index 68c2f19..0000000 --- a/.kitchen.docker.yml +++ /dev/null @@ -1,12 +0,0 @@ ---- -driver: - name: docker - hostname: heat.ci.local - use_sudo: false - - -provisioner: - grains: - noservices: True - - diff --git a/.kitchen.openstack.yml b/.kitchen.openstack.yml deleted file mode 100644 index 6dbf7b2..0000000 --- a/.kitchen.openstack.yml +++ /dev/null @@ -1,41 +0,0 @@ - -# usage: `KITCHEN_LOCAL_YAML=.kitchen.openstack.yml kitchen test` - -# https://docs.chef.io/config_yml_kitchen.html -# https://github.com/test-kitchen/kitchen-openstack - ---- -driver: - name: openstack - openstack_auth_url: <%= ENV['OS_AUTH_URL'] %>/tokens - openstack_username: <%= ENV['OS_USERNAME'] || 'ci' %> - openstack_api_key: <%= ENV['OS_PASSWORD'] || 'ci' %> - openstack_tenant: <%= ENV['OS_TENANT_NAME'] || 'ci_jenkins' %> - - #floating_ip_pool: <%= ENV['OS_FLOATING_IP_POOL'] || 'nova' %> - key_name: <%= ENV['BOOTSTRAP_SSH_KEY_NAME'] || 'bootstrap_insecure' %> - private_key_path: <%= ENV['BOOTSTRAP_SSH_KEY_PATH'] || "#{ENV['HOME']}/.ssh/id_rsa_bootstrap_insecure" %> - - -platforms: - - name: ubuntu-14.04 - driver: - username: <%= ENV['OS_UBUNTU_IMAGE_USER'] || 'root' %> - image_ref: <%= ENV['OS_UBUNTU_IMAGE_REF'] || 'ubuntu-14-04-x64-1455869035' %> - flavor_ref: m1.medium - network_ref: - <% if ENV['OS_NETWORK_REF'] -%> - - <% ENV['OS_NETWORK_REF'] %> - <% else -%> - - ci-net - <% end -%> - # force update apt cache on the image - run_list: - - recipe[apt] - attributes: - apt: - compile_time_update: true -transport: - username: <%= ENV['OS_UBUNTU_IMAGE_USER'] || 'root' %> - -# vim: ft=yaml sw=2 ts=2 sts=2 tw=125 diff --git a/.kitchen.yml b/.kitchen.yml deleted file mode 100644 index 2595dad..0000000 --- a/.kitchen.yml +++ /dev/null @@ -1,53 +0,0 @@ ---- -driver: - name: vagrant - vm_hostname: heat.ci.local - use_sudo: false - customize: - memory: 512 - - -provisioner: - name: salt_solo - salt_install: bootstrap - salt_bootstrap_url: https://bootstrap.saltstack.com - salt_version: latest - formula: heat - log_level: info - state_top: - base: - "*": - - heat - pillars: - top.sls: - base: - "*": - - heat - grains: - noservices: False - - -verifier: - name: inspec - sudo: true - - -platforms: - - name: ubuntu-14.04 - - name: ubuntu-16.04 - #- name: centos-7.1 - - -suites: - - - name: server-cluster - provisioner: - pillars-from-files: - heat.sls: tests/pillar/server_cluster.sls - - - name: server-single - provisioner: - pillars-from-files: - heat.sls: tests/pillar/server_single.sls - -# vim: ft=yaml sw=2 ts=2 sts=2 tw=125 diff --git a/INTEGRATION.rst b/INTEGRATION.rst deleted file mode 100644 index 6555079..0000000 --- a/INTEGRATION.rst +++ /dev/null @@ -1,114 +0,0 @@ - -Continuous Integration -====================== - -We are using Jenkins to spin a kitchen instances in Docker or OpenStack environment. - -If you would like to repeat, then you may use ``.kitchen..yml`` configuration yaml in the main directory -to override ``.kitchen.yml`` at some points. -Usage: ``KITCHEN_LOCAL_YAML=.kitchen..yml kitchen verify server-ubuntu-1404 -t tests/integration``. -Example: ``KITCHEN_LOCAL_YAML=.kitchen.docker.yml kitchen verify server-ubuntu-1404 -t tests/integration``. - -Be aware of fundamental differences of backends. The formula verification scripts are primarily tested with -Vagrant driver. - -CI uses a tuned `make kitchen` target defined in `Makefile` to perform following (Kitchen Test) actions: - -1. *create*, provision an test instance (VM, container) -2. *converge*, run a provisioner (shell script, kitchen-salt) -3. *verify*, run a verification (inspec, other may be added) -4. *destroy* - - -Test Kitchen ------------- - - -To install Test Kitchen is as simple as: - -.. code-block:: shell - - # install kitchen - gem install test-kitchen - - # install required plugins - gem install kitchen-vagrant kitchen-docker kitchen-salt - - # install additional plugins & tools - gem install kitchen-openstack kitchen-inspec busser-serverspec - - kitchen list - kitchen test - -of course you have to have installed Ruby and it's package manager `gem `_ first. - -One may be satisfied installing it system-wide right from OS package manager which is preferred installation method. -For advanced users or the sake of complex environments you may use `rbenv `_ for user side ruby installation. - - * https://github.com/rbenv/rbenv - * http://kitchen.ci/docs/getting-started/installing - -An example steps then might be: - -.. code-block:: shell - - # get rbenv - git clone https://github.com/rbenv/rbenv.git ~/.rbenv - - # configure - cd ~/.rbenv && src/configure && make -C src # don't worry if it fails - echo 'export PATH="$HOME/.rbenv/bin:$PATH"'>> ~/.bash_profile - # Ubuntu Desktop note: Modify your ~/.bashrc instead of ~/.bash_profile. - cd ~/.rbenv; git fetch - - # install ruby-build, which provides the rbenv install command - git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build - - # list all available versions: - rbenv install -l - - # install a Ruby version - # maybe you will need additional packages: libssl-dev, libreadline-dev, zlib1g-dev - rbenv install 2.0.0-p648 - - # activate - rbenv local 2.0.0-p648 - - # install test kitchen - gem install test-kitchen - - -An optional ``Gemfile`` in the main directory may contain Ruby dependencies to be required for Test Kitchen workflow. -To install them you have to install first ``gem install bundler`` and then run ``bundler install``. - - - -Verifier --------- - -The `Busser `_ *Verifier* goes with test-kitchen by default. -It is used to setup and run tests implemented in `/test/integration`. It guess and installs the particular driver to tested instance. -By default `InSpec `_ is expected. - -You may avoid to install busser framework if you configure specific verifier in `.kitchen.yml` and install it kitchen plugin locally: - - verifier: - name: serverspec - -If you would to write another verification scripts than InSpec store them in ``/tests/integration///*``. -``Busser `` is a test setup and execution framework under test kitchen. - - - -InSpec -~~~~~~ - -Implement integration tests under ``/tests/integration///*`` directory with ``_spec.rb`` filename -suffix. - -Docs: - -* https://github.com/chef/inspec -* https://github.com/chef/kitchen-inspec - - diff --git a/Makefile b/Makefile index fa15e0f..fc83783 100644 --- a/Makefile +++ b/Makefile @@ -1,28 +1,11 @@ DESTDIR=/ SALTENVDIR=/usr/share/salt-formulas/env RECLASSDIR=/usr/share/salt-formulas/reclass -FORMULANAME=$(shell grep name: metadata.yml|head -1|cut -d : -f 2|grep -Eo '[a-z0-9\-\_]*') - -MAKE_PID := $(shell echo $$PPID) -JOB_FLAG := $(filter -j%, $(subst -j ,-j,$(shell ps T | grep "^\s*$(MAKE_PID).*$(MAKE)"))) - -ifneq ($(subst -j,,$(JOB_FLAG)),) -JOBS := $(subst -j,,$(JOB_FLAG)) -else -JOBS := 1 -endif - -KITCHEN_LOCAL_YAML?=.kitchen.yml -KITCHEN_OPTS?="--concurrency=$(JOBS)" -KITCHEN_OPTS_CREATE?="" -KITCHEN_OPTS_CONVERGE?="" -KITCHEN_OPTS_VERIFY?="" -KITCHEN_OPTS_TEST?="" +FORMULANAME=$(shell grep name: metadata.yml|head -1|cut -d : -f 2|grep -Eo '[a-z0-9\-]*') all: @echo "make install - Install into DESTDIR" @echo "make test - Run tests" - @echo "make kitchen - Run Kitchen CI tests (create, converge, verify)" @echo "make clean - Cleanup after tests run" install: @@ -38,29 +21,6 @@ install: test: [ ! -d tests ] || (cd tests; ./run_tests.sh) -kitchen: kitchen-create kitchen-converge kitchen-verify kitchen-list - -kitchen-create: - kitchen create ${KITCHEN_OPTS} ${KITCHEN_OPTS_CREATE} - [ "$(shell echo $(KITCHEN_LOCAL_YAML)|grep -Eo docker)" = "docker" ] || sleep 120 - -kitchen-converge: - kitchen converge ${KITCHEN_OPTS} ${KITCHEN_OPTS_CONVERGE} &&\ - kitchen converge ${KITCHEN_OPTS} ${KITCHEN_OPTS_CONVERGE} - -kitchen-verify: - [ ! -d tests/integration ] || kitchen verify -t tests/integration ${KITCHEN_OPTS} ${KITCHEN_OPTS_VERIFY} - [ -d tests/integration ] || kitchen verify ${KITCHEN_OPTS} ${KITCHEN_OPTS_VERIFY} - -kitchen-test: - [ ! -d tests/integration ] || kitchen test -t tests/integration ${KITCHEN_OPTS} ${KITCHEN_OPTS_TEST} - [ -d tests/integration ] || kitchen test ${KITCHEN_OPTS} ${KITCHEN_OPTS_TEST} - -kitchen-list: - kitchen list - clean: - [ ! -x "$(shell which kitchen)" ] || kitchen destroy - [ ! -d .kitchen ] || rm -rf .kitchen [ ! -d tests/build ] || rm -rf tests/build [ ! -d build ] || rm -rf build diff --git a/README.rst b/README.rst index 84c3c0b..5980b93 100644 --- a/README.rst +++ b/README.rst @@ -161,53 +161,4 @@ repository at: Developers should also join the discussion on the IRC list, at: - https://wiki.openstack.org/wiki/Meetings/openstack-salt -Development and testing -======================= - -Development and test workflow with `Test Kitchen `_ and -`kitchen-salt `_ provisioner plugin. - -Test Kitchen is a test harness tool to execute your configured code on one or more platforms in isolation. -There is a ``.kitchen.yml`` in main directory that defines *platforms* to be tested and *suites* to execute on them. - -Kitchen CI can spin instances locally or remote, based on used *driver*. -For local development ``.kitchen.yml`` defines a `vagrant `_ or -`docker `_ driver. - -To use backend drivers or implement your CI follow the section `INTEGRATION.rst#Continuous Integration`__. - -A listing of scenarios to be executed: - -.. code-block:: shell - - $ kitchen list - - Instance Driver Provisioner Verifier Transport Last Action - - server-cluster-ubuntu-1404 Vagrant SaltSolo Inspec Ssh - server-cluster-ubuntu-1604 Vagrant SaltSolo Inspec Ssh - server-cluster-centos-71 Vagrant SaltSolo Inspec Ssh - server-single-ubuntu-1404 Vagrant SaltSolo Inspec Ssh - server-single-ubuntu-1604 Vagrant SaltSolo Inspec Ssh - server-single-centos-71 Vagrant SaltSolo Inspec Ssh - -The `Busser `_ *Verifier* is used to setup and run tests -implementated in `/test/integration`. It installs the particular driver to tested instance -(`Serverspec `_, -`InSpec `_, Shell, Bats, ...) prior the verification is executed. - - -Usage: - -.. code-block:: shell - - # list instances and status - kitchen list - - # manually execute integration tests - kitchen [test || [create|converge|verify|exec|login|destroy|...]] [instance] -t tests/integration - - # use with provided Makefile (ie: within CI pipeline) - make kitchen - + https://wiki.openstack.org/wiki/Meetings/openstack-salt \ No newline at end of file diff --git a/tests/integration/helpers/spec_helper.rb b/tests/integration/helpers/spec_helper.rb deleted file mode 100644 index e69de29..0000000 diff --git a/tests/integration/server-cluster/inspec/heat_spec.rb b/tests/integration/server-cluster/inspec/heat_spec.rb deleted file mode 100644 index e69de29..0000000 diff --git a/tests/integration/server-single/inspec/heat_spec.rb b/tests/integration/server-single/inspec/heat_spec.rb deleted file mode 100644 index e69de29..0000000 diff --git a/tests/pillar/server_cluster.sls b/tests/pillar/server_cluster.sls index 1a338d4..32c54d7 100644 --- a/tests/pillar/server_cluster.sls +++ b/tests/pillar/server_cluster.sls @@ -37,9 +37,6 @@ heat: tenant: service user: heat password: password - admin_tenant: admin - admin_user: admin - admin_password: admin message_queue: engine: rabbitmq members: diff --git a/tests/pillar/server_single.sls b/tests/pillar/server_single.sls index c90d7ed..ff7ed5b 100644 --- a/tests/pillar/server_single.sls +++ b/tests/pillar/server_single.sls @@ -37,9 +37,6 @@ heat: tenant: service user: heat password: password - admin_tenant: admin - admin_user: admin - admin_password: admin message_queue: engine: rabbitmq host: 127.0.0.1