From f15da4871f064a9d1d7f6adfecc420374bcb2546 Mon Sep 17 00:00:00 2001 From: Cédric Ollivier Date: Wed, 5 Jul 2017 11:44:01 +0200 Subject: Add lesser containers based on Alpine MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It splits the full container into: - functest-core - functest-healthcheck - functest-smoke Smoke suite is currently partial and will be completed later (it may require updates in third party projects). Features, components and vnf suites will be integrated in other patchsets. Change-Id: I635a7fd84cac583c28bb1c82bc6cc9107a39f7ea Signed-off-by: Cédric Ollivier --- docker/core/Dockerfile | 21 ++++++ docker/healthcheck/Dockerfile | 3 + docker/healthcheck/testcases.yaml | 61 ++++++++++++++++++ docker/smoke/Dockerfile | 14 ++++ docker/smoke/testcases.yaml | 106 +++++++++++++++++++++++++++++++ docker/smoke/thirdparty-requirements.txt | 8 +++ 6 files changed, 213 insertions(+) create mode 100644 docker/core/Dockerfile create mode 100644 docker/healthcheck/Dockerfile create mode 100644 docker/healthcheck/testcases.yaml create mode 100644 docker/smoke/Dockerfile create mode 100644 docker/smoke/testcases.yaml create mode 100644 docker/smoke/thirdparty-requirements.txt diff --git a/docker/core/Dockerfile b/docker/core/Dockerfile new file mode 100644 index 000000000..4f3210d7c --- /dev/null +++ b/docker/core/Dockerfile @@ -0,0 +1,21 @@ +FROM alpine:3.6 + +RUN apk --no-cache add --update \ + python libffi libssl1.0 libjpeg-turbo py-pip bash \ + grep sed wget ca-certificates git && \ + apk --no-cache add --virtual .build-deps --update \ + python-dev build-base linux-headers libffi-dev \ + openssl-dev libjpeg-turbo-dev && \ + wget -q -O- https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=stable/ocata | \ + sed -E s/^tempest==+\(.*\)$/-e\ git+https:\\/\\/github.com\\/openstack\\/tempest@\\1#egg=tempest/ \ + > upper-constraints.txt && \ + pip install --src /src -cupper-constraints.txt \ + git+https://gerrit.opnfv.org/gerrit/releng#egg=opnfv\&subdirectory=modules \ + git+https://gerrit.opnfv.org/gerrit/snaps#egg=snaps \ + git+https://gerrit.opnfv.org/gerrit/functest#egg=functest && \ + rm upper-constraints.txt && \ + mkdir -p /etc/rally && \ + printf "[database]\nconnection = 'sqlite:////var/lib/rally/database/rally.sqlite'" > /etc/rally/rally.conf && \ + mkdir -p /var/lib/rally/database && rally-manage db create && \ + bash -c "mkdir -p /home/opnfv/functest{/conf,/data,/images,/results} /home/opnfv/repos/vnfs" && \ + apk del .build-deps diff --git a/docker/healthcheck/Dockerfile b/docker/healthcheck/Dockerfile new file mode 100644 index 000000000..e743b908f --- /dev/null +++ b/docker/healthcheck/Dockerfile @@ -0,0 +1,3 @@ +FROM ollivier/functest-core + +COPY testcases.yaml /usr/lib/python2.7/site-packages/functest/ci/testcases.yaml diff --git a/docker/healthcheck/testcases.yaml b/docker/healthcheck/testcases.yaml new file mode 100644 index 000000000..e43c7c77c --- /dev/null +++ b/docker/healthcheck/testcases.yaml @@ -0,0 +1,61 @@ +tiers: + - + name: healthcheck + order: 0 + ci_loop: '(daily)|(weekly)' + description : >- + First tier to be executed to verify the basic + operations in the VIM. + testcases: + - + case_name: connection_check + project_name: functest + criteria: 100 + blocking: true + description: >- + This test case verifies the retrieval of OpenStack clients: + Keystone, Glance, Neutron and Nova and may perform some + simple queries. When the config value of + snaps.use_keystone is True, functest must have access to + the cloud's private network. + dependencies: + installer: '^((?!netvirt).)*$' + scenario: '' + run: + module: 'functest.opnfv_tests.openstack.snaps.connection_check' + class: 'ConnectionCheck' + + - + case_name: api_check + project_name: functest + criteria: 100 + blocking: true + description: >- + This test case verifies the retrieval of OpenStack clients: + Keystone, Glance, Neutron and Nova and may perform some + simple queries. When the config value of + snaps.use_keystone is True, functest must have access to + the cloud's private network. + dependencies: + installer: '^((?!netvirt).)*$' + scenario: '' + run: + module: 'functest.opnfv_tests.openstack.snaps.api_check' + class: 'ApiCheck' + + - + case_name: snaps_health_check + project_name: functest + criteria: 100 + blocking: true + description: >- + This test case creates executes the SimpleHealthCheck + Python test class which creates an, image, flavor, network, + and Cirros VM instance and observes the console output to + validate the single port obtains the correct IP address. + dependencies: + installer: '' + scenario: '^((?!lxd).)*$' + run: + module: 'functest.opnfv_tests.openstack.snaps.health_check' + class: 'HealthCheck' diff --git a/docker/smoke/Dockerfile b/docker/smoke/Dockerfile new file mode 100644 index 000000000..ec050ea4e --- /dev/null +++ b/docker/smoke/Dockerfile @@ -0,0 +1,14 @@ +FROM ollivier/functest-core + +COPY thirdparty-requirements.txt thirdparty-requirements.txt +RUN apk --no-cache add --virtual .build-deps --update \ + python-dev build-base linux-headers libffi-dev \ + openssl-dev libjpeg-turbo-dev git && \ + pip install --src /src \ + -chttps://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=stable/ocata \ + -rthirdparty-requirements.txt && \ + ln -s /src/tempest /src/refstack-client/.tempest && \ + virtualenv --system-site-packages /src/tempest/.venv && \ + rm thirdparty-requirements.txt && \ + apk del .build-deps +COPY testcases.yaml /usr/lib/python2.7/site-packages/functest/ci/testcases.yaml diff --git a/docker/smoke/testcases.yaml b/docker/smoke/testcases.yaml new file mode 100644 index 000000000..69ea038a4 --- /dev/null +++ b/docker/smoke/testcases.yaml @@ -0,0 +1,106 @@ +tiers: + - + name: smoke + order: 1 + ci_loop: '(daily)|(weekly)' + description : >- + Set of basic Functional tests to validate the OPNFV scenarios. + testcases: + - + case_name: vping_ssh + project_name: functest + criteria: 100 + blocking: true + description: >- + This test case verifies: 1) SSH to an instance using floating + IPs over the public network. 2) Connectivity between 2 instances + over a private network. + dependencies: + installer: '' + scenario: '^((?!odl_l3|odl-bgpvpn|gluon).)*$' + run: + module: 'functest.opnfv_tests.openstack.vping.vping_ssh' + class: 'VPingSSH' + + - + case_name: vping_userdata + project_name: functest + criteria: 100 + blocking: true + description: >- + This test case verifies: 1) Boot a VM with given userdata. + 2) Connectivity between 2 instances over a private network. + dependencies: + installer: '' + scenario: '^((?!lxd).)*$' + run: + module: 'functest.opnfv_tests.openstack.vping.vping_userdata' + class: 'VPingUserdata' + + - + case_name: tempest_smoke_serial + project_name: functest + criteria: 100 + blocking: false + description: >- + This test case runs the smoke subset of the OpenStack + Tempest suite. The list of test cases is generated by + Tempest automatically and depends on the parameters of + the OpenStack deplopyment. + dependencies: + installer: '^((?!netvirt).)*$' + scenario: '' + run: + module: 'functest.opnfv_tests.openstack.tempest.tempest' + class: 'TempestSmokeSerial' + + - + case_name: rally_sanity + project_name: functest + criteria: 100 + blocking: false + description: >- + This test case runs a sub group of tests of the OpenStack + Rally suite in smoke mode. + dependencies: + installer: '' + scenario: '' + run: + module: 'functest.opnfv_tests.openstack.rally.rally' + class: 'RallySanity' + + - + case_name: refstack_defcore + project_name: functest + criteria: 100 + blocking: false + description: >- + This test case runs a sub group of tests of the OpenStack + Defcore testcases by using refstack client. + dependencies: + installer: '' + scenario: '' + run: + module: 'functest.opnfv_tests.openstack.refstack_client.refstack_client' + class: 'RefstackClient' + + - + case_name: snaps_smoke + project_name: functest + criteria: 100 + blocking: false + description: >- + This test case contains tests that setup and destroy + environments with VMs with and without Floating IPs + with a newly created user and project. Set the config + value snaps.use_floating_ips (True|False) to toggle + this functionality. When the config value of + snaps.use_keystone is True, functest must have access to + the cloud's private network. + + dependencies: + installer: '^((?!netvirt).)*$' + scenario: '^((?!lxd).)*$' + run: + module: 'functest.opnfv_tests.openstack.snaps.smoke' + class: 'SnapsSmoke' diff --git a/docker/smoke/thirdparty-requirements.txt b/docker/smoke/thirdparty-requirements.txt new file mode 100644 index 000000000..5e60fb74f --- /dev/null +++ b/docker/smoke/thirdparty-requirements.txt @@ -0,0 +1,8 @@ +git+https://gerrit.opnfv.org/gerrit/barometer#egg=baro_tests +git+https://gerrit.opnfv.org/gerrit/sdnvpn#egg=sdnvpn +git+https://gerrit.opnfv.org/gerrit/opera#egg=opera +git+https://gerrit.opnfv.org/gerrit/securityscanning#egg=securityscanning +git+https://gerrit.opnfv.org/gerrit/sfc#egg=sfc +tosca-parser>=0.7.0 # Apache-2.0 +heat-translator>=0.4.0 # Apache-2.0 +-e git+https://github.com/openstack/refstack-client#egg=refstack-client -- cgit 1.2.3-korg