summaryrefslogtreecommitdiffstats
path: root/mcp/config/states/virtual_control_plane
blob: 909439134aa1f8a06485973a63459a7092bbe64e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/bin/bash -e
##############################################################################
# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################

CI_DEBUG=${CI_DEBUG:-0}; [[ "${CI_DEBUG}" =~ (false|0) ]] || set -x

# shellcheck disable=SC1090
source "$(dirname "${BASH_SOURCE[0]}")/../../scripts/lib.sh"

# KVM, compute node prereqs (libvirt first), VCP deployment
salt -C 'kvm*' pkg.install bridge-utils
salt -C 'kvm*' state.apply linux.network
salt -C 'cmp*' state.apply linux.system
salt -C 'kvm* or cmp*' system.reboot
wait_for 90 "! salt -C 'kvm* or cmp*' test.ping | " \
  "tee /dev/stderr | grep -Fq 'Not connected'"

salt -C '* and not cfg01* and not mas01*' state.apply linux,ntp

wait_for 5 "salt -C 'kvm*' state.sls libvirt"

salt -C '* and not cfg01* and not mas01*' state.apply salt
salt -C 'kvm*' saltutil.sync_all
wait_for 10 "! salt -C 'kvm*' state.sls salt.control | " \
  "tee /dev/stderr | grep -Fq 'Not connected'"

vcp_nodes=$(salt --out yaml 'kvm01*' pillar.get salt:control:cluster:internal:node | \
            awk '/\s+\w+:$/ {gsub(/:$/, "*"); print $1}')

# Check all vcp nodes are available
rc=1
while [ $rc -ne 0 ]; do
  rc=0
  for node in $vcp_nodes; do
    salt "$node" test.ping 2>/dev/null || { rc=$?; break; };
  done
  sleep 5
done

wait_for 10 "salt -C '* and not cfg01* and not mas01*' saltutil.sync_all"
wait_for 10 "salt -C 'E@^(?!cfg01|mas01|kvm|cmp00).*' state.apply salt"
wait_for 10 "! salt -C 'E@^(?!cfg01|mas01|kvm|cmp00).*' state.apply linux,ntp | " \
  "tee /dev/stderr | grep -Fq 'Not connected'"

wait_for 10 "salt -C 'E@^(?!cfg01|mas01|kvm|cmp00).*' ssh.set_auth_key ${SUDO_USER} \
  $(awk 'NR==1{print $2}' "$(eval echo "~${SUDO_USER}/.ssh/authorized_keys")")"
}
general:
    directories:
        # Relative to the path where the repo is cloned:
        dir_vping:      testcases/vPing/CI/libraries/
        dir_odl:        testcases/Controllers/ODL/CI/
        dir_rally:      testcases/VIM/OpenStack/CI/libraries/
        dir_rally_scn:  testcases/VIM/OpenStack/CI/suites/
        dir_vIMS:       testcases/vIMS/CI/
        dir_onos:       testcases/Controllers/ONOS/Teston/CI/

        # Absolute path
        dir_repos:          /home/opnfv/repos
        dir_repo_functest:  /home/opnfv/repos/functest
        dir_repo_rally:     /home/opnfv/repos/rally
        dir_repo_releng:    /home/opnfv/repos/releng
        dir_repo_vims_test: /home/opnfv/repos/vims-test
        dir_repo_bgpvpn:    /home/opnfv/repos/bgpvpn
        dir_repo_onos:      /home/opnfv/repos/onos
        dir_repo_promise:   /home/opnfv/repos/promise
        dir_repo_doctor:    /home/opnfv/repos/doctor
        dir_repo_ovno:      /home/opnfv/repos/ovno
        dir_functest:       /home/opnfv/functest
        dir_results:        /home/opnfv/functest/results
        dir_functest_conf:  /home/opnfv/functest/conf
        dir_rally_res:      /home/opnfv/functest/results/rally/
        dir_functest_data:  /home/opnfv/functest/data
        dir_vIMS_data:      /home/opnfv/functest/data/vIMS
        dir_rally_inst:     ~/.rally

    repositories:
        # branch and commit ID to which the repos will be reset (HEAD)
        releng_branch:  master
        releng_commit:  latest
        rally_branch:   master
        rally_commit:   57efc5327530a34d139b5a1fd1f480195de0aadb
        vims_test_branch:   stable
        vims_test_commit:   latest
        bgpvpn_branch:   master
        bgpvpn_commit:   latest
        onos_branch:   master
        onos_commit:   latest
        promise_branch:   master
        promise_commit:   latest
        ovno_branch:   master
        ovno_commit:   latest

    openstack:
        image_name: functest-img
        image_file_name:  cirros-0.3.4-x86_64-disk.img
        image_disk_format:  qcow2

        #Public network. Optional
        neutron_public_net_name: net04_ext
        neutron_public_subnet_name: net04_ext__subnet
        neutron_public_subnet_cidr: 172.16.9.0/24
        neutron_public_subnet_start: 172.16.9.130
        neutron_public_subnet_end: 172.16.9.254
        #Private network for functest. Will be created by config_functest.py
        neutron_private_net_name: functest-net
        neutron_private_subnet_name: functest-subnet
        neutron_private_subnet_cidr: 192.168.120.0/24
        neutron_private_subnet_start: 192.168.120.2
        neutron_private_subnet_end: 192.168.120.254
        neutron_private_subnet_gateway: 192.168.120.254
        neutron_router_name: functest-router

vping:
    ping_timeout:   200
    vm_flavor: m1.small #adapt to your environment
    vm_name_1: opnfv-vping-1
    vm_name_2: opnfv-vping-2
    vping_private_net_name: vping-net
    vping_private_subnet_name: vping-subnet
    vping_private_subnet_cidr: 192.168.130.0/24
    vping_router_name: vping-router
    ip_1: 192.168.130.30
    ip_2: 192.168.130.40

tempest:
    identity:
        tenant_name: tempest
        tenant_description: Tenant for Tempest test suite
        user_name: tempest
        user_password: tempest

rally:
    deployment_name: opnfv-rally

vIMS:
    general:
        tenant_name: vIMS
        tenant_description: vIMS Functionality Testing
        images:
            ubuntu:
                image_url: 'http://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img'
                image_name: ubuntu_14.04
            centos:
                image_url: 'http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud-1510.qcow2'
                image_name: centos_7
    cloudify:
        blueprint:
            url: https://github.com/boucherv-orange/cloudify-manager-blueprints.git
            branch: "3.3-build"
        requierments:
            ram_min: 3000
            os_image: centos_7
        inputs:
            keystone_username: ""
            keystone_password: ""
            keystone_tenant_name: ""
            keystone_url: ""
            manager_public_key_name: 'manager-kp'
            agent_public_key_name: 'agent-kp'
            image_id: ""
            flavor_id: "3"
            external_network_name: ""
            ssh_user: centos
            agents_user: ubuntu
    clearwater:
        blueprint:
            file_name: 'openstack-blueprint.yaml'
            name: "clearwater-opnfv"
            destination_folder: "opnfv-cloudify-clearwater"
            url: 'https://github.com/Orange-OpenSource/opnfv-cloudify-clearwater.git'
            branch: "stable"
        deployment-name: 'clearwater-opnfv'
        requierments:
            ram_min: 1700
            os_image: ubuntu_14.04
        inputs:
            image_id: ''
            flavor_id: ''
            agent_user: 'ubuntu'
            external_network_name: ''
            public_domain: clearwater.opnfv
ONOS:
    general:
        onosbench_username: 'root'
        onosbench_password: 'root'
        onoscli_username: 'root'
        onoscli_password: 'root'
        runtimeout: 300
    environment:
        OCT: '10.20.0.1'
        OC1: '10.20.0.7'
        OC2: '10.20.0.7'
        OC3: '10.20.0.7'
        OCN: '10.20.0.4'
        OCN2: '10.20.0.5'
        installer_master: '10.20.0.2'
        installer_master_username: 'root'
        installer_master_password: 'r00tme'
results:
    test_db_url: http://213.77.62.197

# to be maintained...
# the execution order is important as some tests may be more destructive than others
# and if vPing is failing is usually not needed to continue...
test_exec_priority:
    1: vping
    2: vping_userdata
    3: tempest
    4: odl
    5: onos
    6: ovno
    #7: doctor
    8: promise
    #9: odl-vpn_service-tests
    #10: opnfv-yardstick-tc026-sdnvpn
    #11: openstack-neutron-bgpvpn-api-extension-tests
    12: vims
    13: rally
 

########################################################################
# This part lists the dependencies of the tests
#
# it is used to manage the complexity of the possible combinations
#
# 17 projects have been declared for Brahmaputra (D Milestone)
# 89 testcases are associated with these 17 projects
#
# in B-Release, Functest deals with 6 companion projects:
# - congress
# - doctor
# - ovno
# - policyTest
# - promise
# - sdnvpn
#
# constraints may be declared at the testcase or the test project level
#
# By default we consider that all the tests can be run on any configuration
#
# we defined 2 constraints
# - installer (e.g. my test can be run only with installer Compass)
# possible values: apex, compass, fuel, joid
#
# - the scenario: it described a specif installation
#    os-<controller>-<nfvfeature>-<mode>[-<extrastuff>]
# With parameters:
#    controller=(nosdn|odl_l3|odl_l2|onos|ocl)
#       No odl_l3 today
#    nfvfeature=(kvm|ovs|dpdk|nofeature)
#       '_' list separated.
#    mode=(ha|noha)
#    extrastuff=(none)
#       Optional field - Not used today#
#
# ref:https://gerrit.opnfv.org/gerrit/#/c/6323/7/jjb/joid/joid-deploy.sh (L72-82)
#  e.g my test is only possible with OVS 2.3.2 on odl
#
# in functest, we indicate the regex pattern to be checked towards the scenario
# e.g. odl-vpn_service-tests can be run if and only if
#                                - installer is fuel
#                                - scenario contains the name ovs and odl
#
#######################################################################
test-dependencies:
    doctor:
        installer: '(apex)|(fuel)'
    functest:
        vims:
        vping:
        vping_userdata:
        tempest:
        rally:
        odl:
            scenario: 'odl'
        onos:
            scenario: 'onos'
    promise:
        installer: '(fuel)|(joid)'
    ovno:
        scenario: 'ocl'
    policy-test:
        scenario: 'odl'
    sdnvpn:
        opnfv-yardstick-tc026-sdnvpn:
            installer: 'fuel'
            scenario: '(ovs)*(nosdn)'
        odl-vpn_service-tests:
            installer: 'fuel'
            scenario: '(ovs)*(odl)'
        openstack-neutron-bgpvpn-api-extension-tests:
            installer: 'fuel'
            scenario: '(ovs)*(nosdn)'