+++ /dev/null
-Project: Release Engineering (Releng)
-Project Creation Date: July 14, 2015
-Project Category: Integration & Testing
-Lifecycle State: Incubation
-Primary Contact: Fatih Degirmenci
-Project Lead: Fatih Degirmenci
-Jira Project Name: Release Engineering
-Jira Project Prefix: RELENG
-Mailing list tag: [releng]
-IRC: Server:freenode.net Channel:#opnfv-octopus
-Repository: releng
-Other Repositories: releng-xci, releng-testresults
-
-Committers:
-Fatih Degirmenci (Ericsson, fatih.degirmenci@ericsson.com)
-Aric Gardner (Linux Foundation, agardner@linuxfoundation.org)
-Tim Rozet (Red Hat, trozet@redhat.com)
-Morgan Richomme (Orange, morgan.richomme@orange.com)
-Jose Lausuch (Ericsson, jose.lausuch@ericsson.com)
-Ryota Mibu (NEC, r-mibu@cq.jp.nec.com)
-Mei Mei (Huawei, meimei@huawei.com)
-Trevor Bramwell (Linux Foundation, tbramwell@linuxfoundation.org)
-Serena Feng (ZTE, feng.xiaowei@zte.com.cn)
-Yolanda Robla Mota (Red Hat, yroblamo@redhat.com)
-Markos Chandras (SUSE, mchandras@suse.de)
-Luke Hinds (Red Hat, lhinds@redhat.com)
-
-Link to TSC approval of the project: http://ircbot.wl.linuxfoundation.org/meetings/opnfv-meeting/2015/opnfv-meeting.2015-07-14-14.00.html
-Link to TSC voting for removal of Victor Laza as committer: http://meetbot.opnfv.org/meetings/opnfv-meeting/2016/opnfv-meeting.2016-02-16-14.59.html
-Link to nomination and acceptance of Mei Mei as committer: http://lists.opnfv.org/pipermail/opnfv-tsc/2016-March/002228.html
-Links to nomination and accceptance of Trevor Bramwell as committer: http://lists.opnfv.org/pipermail/opnfv-tech-discuss/2016-July/011659.html and http://lists.opnfv.org/pipermail/opnfv-tech-discuss/2016-July/011714.html
Clone and setup the repo::
- git clone ssh://YOU@gerrit.opnfv.org:29418/releng
+ git clone --recursive ssh://YOU@gerrit.opnfv.org:29418/releng
cd releng
git review -s
Test with tox::
- tox -v -ejjb
+ tox -e jjb
.. note:: You can also test the jobs under a single jjb directory by
specifying the directory. For example to test only the releng jobs, you
could run:
- tox -v -e jjb -- jjb/releng
+ tox -e jjb -- jjb/global:jjb/global-jjb:jjb/releng
Submit the change to gerrit::
+++ /dev/null
----
-- project:
- name: 'releng-sandbox-jobs'
- jobs:
- - 'releng-deploy-sandbox'
-
- project: 'releng'
- node: 'releng-sandbox'
-
-- job-template:
- name: 'releng-deploy-sandbox'
- node: '{node}'
-
- parameters:
- - project-parameter:
- project: '{project}'
- branch: 'master'
- scm:
- - git-scm-gerrit
-
- triggers:
- - gerrit:
- trigger-on:
- - patchset-created-event:
- exclude-drafts: 'false'
- exclude-trivial-rebase: 'false'
- exclude-no-code-change: 'false'
- - draft-published-event
- - comment-added-contains-event:
- comment-contains-value: 'redeploy'
- custom-url: '$BUILD_URL deploying to $JENKINS_URL'
- silent-start: true
- skip-vote:
- successful: true
- failed: true
- unstable: true
- notbuilt: true
- projects:
- - project-compare-type: 'ANT'
- project-pattern: 'releng'
- branches:
- - branch-compare-type: 'ANT'
- branch-pattern: '**/master'
- file-paths:
- - compare-type: ANT
- pattern: jjb-sandbox/**
-
- wrappers: ''
-
- builders:
- - shell:
- !include-raw-escape: verify-sandbox-jobs.sh
- # yamllint disable rule:line-length
- - shell: |
- #!/bin/bash
- jenkins-jobs update --delete-old -r jjb/releng-defaults.yaml:jjb/releng-macros.yaml:jjb/opnfv/installer-params.yml:jjb/opnfv/slave-params.yml:jjb-sandbox
- # yamllint enable
- publishers:
- - archive-artifacts:
- artifacts: 'job_output/*'
- - email-jenkins-admins-on-failure
+++ /dev/null
-#!/bin/bash
-# SPDX-license-identifier: Apache-2.0
-##############################################################################
-# Copyright (c) 2016 Linux Foundation 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
-##############################################################################
-#test for non-ascii characters, these can pass the test and end up breaking things in production
-for x in $(find . -name *\.yml); do
-
- if LC_ALL=C grep -q '[^[:print:][:space:]]' "$x"; then
- echo "file "$x" contains non-ascii characters"
- exit 1
- fi
-
-done
-
-jenkins-jobs test -r jjb/releng-defaults.yaml:jjb/releng-macros.yaml:jjb/opnfv/installer-params.yml:jjb/opnfv/slave-params.yml:jjb-sandbox \
- -o job_output
# start deployment
sudo ${DEPLOY_CMD} -d ${DEPLOY_FILE} -n ${NETWORK_FILE} --debug
-if [[ "$PROMOTE" == 'True' ]]; then
- echo "CSIT job: setting host route for floating ip routing"
- # csit route to allow docker container to reach floating ips
- UNDERCLOUD=$(sudo virsh domifaddr undercloud | grep -Eo "[0-9\.]+{3}[0-9]+")
- if sudo route | grep 192.168.37.128 > /dev/null; then
- sudo route del -net 192.168.37.128 netmask 255.255.255.128
- fi
- sudo route add -net 192.168.37.128 netmask 255.255.255.128 gw ${UNDERCLOUD}
-fi
-
echo
echo "--------------------------------------------------------"
echo "Done!"
done
# copy virsh net definitions
-for net in admin api external storage tenant; do
- sudo virsh net-dumpxml ${net} > ${net}.xml
-done
+sudo virsh net-dumpxml admin > admin.xml
sudo chown jenkins-ci:jenkins-ci *
- master: &master
branch: '{stream}'
gs-pathname: ''
- verify-scenario: 'os-odl-nofeature-ha'
+ verify-scenario: 'os-nosdn-nofeature-ha'
disabled: false
- fraser: &fraser
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
- verify-scenario: 'os-odl-nofeature-ha'
+ verify-scenario: 'os-nosdn-nofeature-ha'
disabled: false
- danube: &danube
branch: 'stable/{stream}'
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+ FUNCTEST_SUITE_NAME=tempest_smoke_serial
+ FUNCTEST_MODE=testcase
node-parameters: false
kill-phase-on: FAILURE
abort-all-job: true
kill-phase-on: FAILURE
abort-all-job: true
git-revision: true
+ - shell: |
+ if echo $DEPLOY_SCENARIO | grep queens &> /dev/null; then
+ echo 'REPO=opnfv' > functest_repo
+ else
+ echo 'REPO=ollivier' > functest_repo
+ fi
+ - inject:
+ properties-file: functest_repo
- multijob:
name: functest-smoke
condition: ALWAYS
current-parameters: false
predefined-parameters: |
DEPLOY_SCENARIO=$DEPLOY_SCENARIO
- FUNCTEST_MODE=tier
- FUNCTEST_TIER=healthcheck
+ FUNCTEST_SUITE_NAME=tempest_smoke_serial
+ FUNCTEST_MODE=testcase
+ REPO=$REPO
GERRIT_BRANCH=$GERRIT_BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
node-parameters: true
kill-phase-on: NEVER
+ enable-condition: "def m = '$DEPLOY_SCENARIO' != k8s-nosdn-nofeature-noha"
abort-all-job: true
git-revision: false
- multijob:
<<: *danube
- 'os-ovn-nofeature-noha':
<<: *danube
+ - 'os-nosdn-nofeature-noha':
+ <<: *master
+ - 'os-nosdn-nofeature-ha':
+ <<: *master
- 'os-odl-nofeature-noha':
<<: *master
- 'os-odl-nofeature-ha':
<<: *master
+ - 'os-nosdn-queens-noha':
+ <<: *master
+ - 'os-nosdn-queens-ha':
+ <<: *master
- 'os-odl-queens-noha':
<<: *master
- 'os-odl-queens-ha':
parameters:
- '{project}-defaults'
- '{project}-virtual-{stream}-defaults'
+ - 'functest-suite-parameter'
- project-parameter:
project: '{project}'
branch: '{branch}'
kill-phase-on: FAILURE
abort-all-job: true
git-revision: true
+ - shell: |
+ if echo $DEPLOY_SCENARIO | grep queens &> /dev/null; then
+ echo 'REPO=opnfv' > functest_repo
+ else
+ echo 'REPO=ollivier' > functest_repo
+ fi
+ - inject:
+ properties-file: functest_repo
- multijob:
name: functest-smoke
condition: ALWAYS
current-parameters: false
predefined-parameters: |
DEPLOY_SCENARIO=$DEPLOY_SCENARIO
- FUNCTEST_SUITE_NAME=healthcheck
+ FUNCTEST_MODE=$FUNCTEST_MODE
+ FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME
+ REPO=$REPO
GERRIT_BRANCH=$GERRIT_BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
predefined-parameters:
DEPLOY_SCENARIO=$DEPLOY_SCENARIO
kill-phase-on: NEVER
- enable-condition: "def m = '$DEPLOY_SCENARIO' ==~ /os-(nosdn-nofeature|odl-bgpvpn)-ha/
- && $BUILD_NUMBER % 2 == 1"
+ enable-condition: "def m = '$DEPLOY_SCENARIO' ==~ /os-(nosdn-nofeature|odl-bgpvpn)-ha/"
abort-all-job: false
git-revision: false
- multijob:
predefined-parameters:
DEPLOY_SCENARIO=$DEPLOY_SCENARIO
kill-phase-on: NEVER
- enable-condition: "def m = '$DEPLOY_SCENARIO' ==~ /os-(nosdn-nofeature|odl-bgpvpn)-ha/
- && $BUILD_NUMBER % 2 == 0"
+ enable-condition: "def m = '$DEPLOY_SCENARIO' ==~ /os-(nosdn-nofeature|odl-bgpvpn)-ha/"
abort-all-job: false
git-revision: false
- multijob:
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+ FUNCTEST_SUITE_NAME=tempest_smoke_serial
+ FUNCTEST_MODE=testcase
node-parameters: true
kill-phase-on: FAILURE
abort-all-job: true
name: Baremetal Deploy and Test Phase
condition: SUCCESSFUL
projects:
+ - name: 'apex-os-nosdn-nofeature-noha-baremetal-master'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
+ - name: 'apex-os-nosdn-nofeature-ha-baremetal-master'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
- name: 'apex-os-odl-nofeature-noha-baremetal-master'
node-parameters: false
current-parameters: false
kill-phase-on: NEVER
abort-all-job: true
git-revision: false
+ - name: 'apex-os-nosdn-queens-noha-baremetal-master'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
+ - name: 'apex-os-nosdn-queens-ha-baremetal-master'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
- name: 'apex-os-odl-queens-noha-baremetal-master'
node-parameters: false
current-parameters: false
parameters:
- '{project}-defaults'
- '{project}-virtual-{stream}-defaults'
+ - 'functest-suite-parameter'
- project-parameter:
project: '{project}'
branch: '{branch}'
kill-phase-on: FAILURE
abort-all-job: true
git-revision: true
+ - shell: |
+ if echo $DEPLOY_SCENARIO | grep queens &> /dev/null; then
+ echo 'REPO=opnfv' > functest_repo
+ else
+ echo 'REPO=ollivier' > functest_repo
+ fi
+ - inject:
+ properties-file: functest_repo
- multijob:
name: functest-smoke
condition: ALWAYS
current-parameters: false
predefined-parameters: |
DEPLOY_SCENARIO=$DEPLOY_SCENARIO
- FUNCTEST_SUITE_NAME=healthcheck
+ FUNCTEST_MODE=$FUNCTEST_MODE
+ FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME
+ REPO=$REPO
GERRIT_BRANCH=$GERRIT_BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
predefined-parameters:
DEPLOY_SCENARIO=$DEPLOY_SCENARIO
kill-phase-on: NEVER
- enable-condition: "def m = '$DEPLOY_SCENARIO' ==~ /os-(nosdn-nofeature|odl-bgpvpn)-ha/
- && $BUILD_NUMBER % 2 == 1"
+ enable-condition: "def m = '$DEPLOY_SCENARIO' ==~ /os-(nosdn-nofeature|odl-bgpvpn)-ha/"
abort-all-job: false
git-revision: false
- multijob:
predefined-parameters:
DEPLOY_SCENARIO=$DEPLOY_SCENARIO
kill-phase-on: NEVER
- enable-condition: "def m = '$DEPLOY_SCENARIO' ==~ /os-(nosdn-nofeature|odl-bgpvpn)-ha/
- && $BUILD_NUMBER % 2 == 0"
+ enable-condition: "def m = '$DEPLOY_SCENARIO' ==~ /os-(nosdn-nofeature|odl-bgpvpn)-ha/"
abort-all-job: false
git-revision: false
- multijob:
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+ FUNCTEST_SUITE_NAME=tempest_smoke_serial
+ FUNCTEST_MODE=testcase
node-parameters: true
kill-phase-on: FAILURE
abort-all-job: true
master:
+ - 'os-nosdn-nofeature-noha'
+ - 'os-nosdn-nofeature-ha'
- 'os-odl-nofeature-noha'
- 'os-odl-nofeature-ha'
+ - 'os-nosdn-queens-noha'
+ - 'os-nosdn-queens-ha'
- 'os-odl-queens-noha'
- 'os-odl-queens-ha'
fraser:
- string:
name: DEPLOY_SCENARIO
default: 'os-odl-nofeature-ha'
+ - string:
+ name: PROJECT
+ default: '{project}'
scm:
- git-scm
---
+# jenkins job templates for Auto
- project:
- name: auto
+ name: 'auto-ci-jobs'
+ project: 'auto'
- project: '{name}'
+ # -------------------------------
+ # BRANCH ANCHORS
+ # -------------------------------
+ master: &master
+ stream: master
+ branch: '{stream}'
+ gs-pathname: ''
+ disabled: false
+ fraser: &fraser
+ stream: fraser
+ branch: 'stable/{stream}'
+ gs-pathname: '/{stream}'
+ disabled: false
+ # -------------------------------
+ # DEPLOY TYPE ANCHORS
+ # -------------------------------
+ baremetal: &baremetal
+ installer: 'fuel'
+ slave-label: 'auto-baremetal'
+ # -------------------------------
+ # POD, INSTALLER, AND BRANCH MAPPING
+ # -------------------------------
+ # CI POD's
+ # -------------------------------
+ # fraser
+ # -------------------------------
+ pod:
+ # yamllint disable rule:key-duplicates
+ - auto-baremetal:
+ <<: *baremetal
+ <<: *fraser
+ # -------------------------------
+ # master
+ # -------------------------------
+ - auto-baremetal:
+ <<: *baremetal
+ <<: *master
+ # yamllint enable rule:key-duplicates
+ # -------------------------------
+ # scenarios
+ # -------------------------------
+ scenario:
+ # HA scenarios
+ - 'os-nosdn-onap-ha':
+ auto-trigger-name: 'fuel-{scenario}-{pod}-{stream}-trigger'
jobs:
+ - '{installer}-{scenario}-{pod}-auto-daily-{stream}'
+ - '{installer}-deploy-{pod}-daily-{stream}'
- '{project}-verify-basic'
+
+########################
+# job templates
+########################
+- job-template:
+ name: '{installer}-{scenario}-{pod}-auto-daily-{stream}'
+
+ disabled: '{obj:disabled}'
+
+ concurrent: false
+
+ properties:
+ - logrotate-default
+ - throttle:
+ enabled: true
+ max-total: 4
+ max-per-node: 1
+ option: 'project'
+ - build-blocker:
+ use-build-blocker: true
+ blocking-jobs:
+ - '{installer}-os-.*?-{pod}-auto-daily-.*'
+ block-level: 'NODE'
+
+ wrappers:
+ - build-name:
+ name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
+
+ triggers:
+ - '{auto-trigger-name}'
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - '{installer}-defaults':
+ gs-pathname: '{gs-pathname}'
+ - '{slave-label}-defaults':
+ installer: '{installer}'
+ - string:
+ name: DEPLOY_SCENARIO
+ default: '{scenario}'
+
+ builders:
+ - trigger-builds:
+ - project: '{installer}-deploy-{pod}-daily-{stream}'
+ current-parameters: false
+ predefined-parameters: |
+ DEPLOY_SCENARIO=os-nosdn-nofeature-ha
+ PROJECT=armband
+ same-node: true
+ block: true
+
+########################
+# trigger macros
+########################
+# CI PODs
+# ----------------------------------------------------------------
+# Auto CI Baremetal Triggers running against master branch
+# ----------------------------------------------------------------
+- trigger:
+ name: 'fuel-os-nosdn-onap-ha-auto-baremetal-master-trigger'
+ triggers:
+ - timed: '0 1 * * *'
+# ---------------------------------------------------------------------
+# Auto CI Baremetal Triggers running against fraser branch
+# ---------------------------------------------------------------------
+- trigger:
+ name: 'fuel-os-nosdn-onap-ha-auto-baremetal-fraser-trigger'
+ triggers:
+ - timed: ''
- condition-kind: regex-match
regex: os-(nosdn|odl_l3)-nofeature-ha
label: '{scenario}'
- - condition-kind: day-of-week
- day-selector: select-days
- days:
- MON: true
- TUES: true
- use-build-time: true
steps:
- trigger-builds:
- project: 'dovetail-compass-{pod}-default-{stream}'
- condition-kind: regex-match
regex: os-(nosdn|odl_l3)-nofeature-ha
label: '{scenario}'
- - condition-kind: day-of-week
- day-selector: select-days
- days:
- THURS: true
- FRI: true
- use-build-time: true
steps:
- trigger-builds:
- project: 'dovetail-compass-{pod}-proposed_tests-{stream}'
- 'doctor-parameter':
docker-tag: '{docker-tag}'
scenario: '{scenario}'
- - 'doctor-functest-parameter'
+ - 'doctor-functest-parameter':
+ gs-pathname: '{gs-pathname}'
+ inspector: '{inspector}'
scm:
- git-scm-gerrit
builders:
[ -d ${releng_repo} ] && sudo rm -rf ${releng_repo}
git clone https://gerrit.opnfv.org/gerrit/releng ${releng_repo} >/dev/null
+pharos_repo=${WORKSPACE}/pharos
+[ -d ${pharos_repo} ] && sudo rm -rf ${pharos_repo}
+git clone https://git.opnfv.org/pharos ${pharos_repo} >/dev/null
+
if [[ ${INSTALLER_TYPE} != 'joid' ]]; then
echo "SUT branch is $SUT_BRANCH"
echo "dovetail branch is $BRANCH"
fi
cat $OPENRC
+# These packages are used for parsing yaml files and decrypting ipmi user and password.
+sudo pip install shyaml
+sudo yum install -y rubygems || sudo apt-get install -y ruby
+sudo gem install hiera-eyaml
+
if [[ ! "${SUT_BRANCH}" =~ "danube" && ${INSTALLER_TYPE} == "compass" ]]; then
compass_repo=${WORKSPACE}/compass4nfv/
git clone https://github.com/opnfv/compass4nfv.git ${compass_repo} >/dev/null
- sudo pip install shyaml
scenario_file=${compass_repo}/deploy/conf/hardware_environment/$NODE_NAME/os-nosdn-nofeature-ha.yml
ipmiIp=$(cat ${scenario_file} | shyaml get-value hosts.0.ipmiIp)
ipmiPass=$(cat ${scenario_file} | shyaml get-value hosts.0.ipmiPass)
fuel_ctl_ssh_options="${ssh_options} -i ${SSH_KEY}"
ssh_user="ubuntu"
fuel_ctl_ip=$(ssh 2>/dev/null ${fuel_ctl_ssh_options} "${ssh_user}@${INSTALLER_IP}" \
- "sudo salt --out yaml 'ctl*' pillar.get _param:openstack_control_address | \
- awk '{print \$2; exit}'") &> /dev/null
+ "sudo salt 'cfg*' pillar.get _param:openstack_control_address --out text| \
+ cut -f2 -d' '")
+ ipmi_index=$(ssh 2>/dev/null ${fuel_ctl_ssh_options} "${ssh_user}@${INSTALLER_IP}" \
+ "sudo salt 'ctl*' network.ip_addrs cidr=${fuel_ctl_ip} --out text | grep ${fuel_ctl_ip} | cut -c 5")
+ organization="$(cut -d'-' -f1 <<< "${NODE_NAME}")"
+ pod_name="$(cut -d'-' -f2 <<< "${NODE_NAME}")"
+ pdf_file=${pharos_repo}/labs/${organization}/${pod_name}.yaml
+ ipmiIp=$(cat ${pdf_file} | shyaml get-value nodes.$[ipmi_index-1].remote_management.address)
+ ipmiIp="$(cut -d'/' -f1 <<< "${ipmiIp}")"
+ ipmiPass=$(cat ${pdf_file} | shyaml get-value nodes.$[ipmi_index-1].remote_management.pass)
+ ipmiUser=$(cat ${pdf_file} | shyaml get-value nodes.$[ipmi_index-1].remote_management.user)
+ [[ $ipmiUser == ENC* ]] && ipmiUser=$(eyaml decrypt -s ${ipmiUser//[[:blank:]]/})
+ [[ $ipmiPass == ENC* ]] && ipmiPass=$(eyaml decrypt -s ${ipmiPass//[[:blank:]]/})
+
cat << EOF >${DOVETAIL_CONFIG}/pod.yaml
nodes:
-- {ip: ${fuel_ctl_ip}, name: node1, key_filename: /home/opnfv/userconfig/pre_config/id_rsa, role: controller, user: ${ssh_user}}
+- {ip: ${INSTALLER_IP}, name: node0, key_filename: /home/opnfv/userconfig/pre_config/id_rsa,
+ role: Jumpserver, user: ${ssh_user}}
+- {ip: ${fuel_ctl_ip}, name: node1, key_filename: /home/opnfv/userconfig/pre_config/id_rsa,
+ role: controller, user: ${ssh_user}, ipmi_ip: ${ipmiIp}, ipmi_user: ${ipmiUser}, ipmi_password: ${ipmiPass}}
EOF
fi
if [ -f ${DOVETAIL_CONFIG}/pod.yaml ]; then
sudo chmod 666 ${DOVETAIL_CONFIG}/pod.yaml
echo "Adapt process info for $INSTALLER_TYPE ..."
- attack_process='rabbitmq'
+ if [ "$INSTALLER_TYPE" == "apex" ]; then
+ attack_process='rabbitmq_server'
+ else
+ attack_process='rabbitmq'
+ fi
cat << EOF >> ${DOVETAIL_CONFIG}/pod.yaml
process_info:
-- {testcase_name: dovetail.ha.tc010, attack_process: ${attack_process}}
+- {testcase_name: dovetail.ha.rabbitmq, attack_process: ${attack_process}}
EOF
echo "file ${DOVETAIL_CONFIG}/pod.yaml:"
fi
else
SUDO=
- # Armband currently supports arm, enea labs
- if [[ ! "${LAB_NAME}" =~ (arm|enea) ]]; then
+ # Armband currently supports arm, enea, unh labs
+ if [[ ! "${LAB_NAME}" =~ (arm|enea|unh) ]]; then
echo "Unsupported/unidentified lab ${LAB_NAME}. Cannot continue!"
exit 1
fi
set +u
set +o pipefail
+REPO=${REPO:-opnfv}
CI_LOOP=${CI_LOOP:-daily}
TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results
ENERGY_RECORDER_API_URL=http://energy.opnfv.fr/resources
check_os_deployment() {
- FUNCTEST_IMAGE=opnfv/functest-healthcheck:${DOCKER_TAG}
+ FUNCTEST_IMAGE=${REPO}/functest-healthcheck:${DOCKER_TAG}
echo "Functest: Pulling Functest Docker image ${FUNCTEST_IMAGE} ..."
docker pull ${FUNCTEST_IMAGE}>/dev/null
- cmd="docker run --rm --privileged=true ${volumes} ${FUNCTEST_IMAGE} check_deployment"
+ cmd="docker run --rm ${volumes} ${FUNCTEST_IMAGE} check_deployment"
echo "Checking deployment, CMD: ${cmd}"
eval ${cmd}
ret_value=$?
echo 0 > ${ret_val_file}
for tier in ${tiers[@]}; do
- FUNCTEST_IMAGE=opnfv/functest-${tier}:${DOCKER_TAG}
+ FUNCTEST_IMAGE=${REPO}/functest-${tier}:${DOCKER_TAG}
echo "Functest: Pulling Functest Docker image ${FUNCTEST_IMAGE} ..."
docker pull ${FUNCTEST_IMAGE}>/dev/null
- cmd="docker run --rm --privileged=true ${envs} ${volumes} ${TESTCASE_OPTIONS} ${FUNCTEST_IMAGE} /bin/bash -c '${cmd_opt}'"
+ cmd="docker run --rm ${envs} ${volumes} ${TESTCASE_OPTIONS} ${FUNCTEST_IMAGE} /bin/bash -c '${cmd_opt}'"
echo "Running Functest tier '${tier}'. CMD: ${cmd}"
eval ${cmd}
ret_value=$?
# Determine which Functest image should be used for the test case
case ${test_name} in
connection_check|api_check|snaps_health_check)
- FUNCTEST_IMAGE=opnfv/functest-healthcheck:${DOCKER_TAG} ;;
- vping_ssh|vping_userdata|tempest_smoke_serial|rally_sanity|refstack_defcore|odl|odl_netvirt|snaps_smoke)
- FUNCTEST_IMAGE=opnfv/functest-smoke:${DOCKER_TAG} ;;
+ FUNCTEST_IMAGE=${REPO}/functest-healthcheck:${DOCKER_TAG} ;;
+ vping_ssh|vping_userdata|cinder_test|tempest_smoke_serial|rally_sanity|refstack_defcore|patrole|odl|snaps_smoke|neutron_trunk)
+ FUNCTEST_IMAGE=${REPO}/functest-smoke:${DOCKER_TAG} ;;
tempest_full_parallel|rally_full)
- FUNCTEST_IMAGE=opnfv/functest-components:${DOCKER_TAG} ;;
- cloudify_ims|orchestra_openims|orchestra_clearwaterims|vyos_vrouter)
- FUNCTEST_IMAGE=opnfv/functest-vnf:${DOCKER_TAG} ;;
- promise|doctor-notification|bgpvpn|functest-odl-sfc|domino-multinode|barometercollectd|fds)
- FUNCTEST_IMAGE=opnfv/functest-features:${DOCKER_TAG} ;;
+ FUNCTEST_IMAGE=${REPO}/functest-components:${DOCKER_TAG} ;;
+ cloudify_ims|vyos_vrouter|juju_epc)
+ FUNCTEST_IMAGE=${REPO}/functest-vnf:${DOCKER_TAG} ;;
+ doctor-notification|bgpvpn|functest-odl-sfc|barometercollectd|fds)
+ FUNCTEST_IMAGE=${REPO}/functest-features:${DOCKER_TAG} ;;
parser-basics)
- FUNCTEST_IMAGE=opnfv/functest-parser:${DOCKER_TAG} ;;
+ FUNCTEST_IMAGE=${REPO}/functest-parser:${DOCKER_TAG} ;;
*)
echo "Unkown test case $test_name"
exit 1
esac
echo "Functest: Pulling Functest Docker image ${FUNCTEST_IMAGE} ..."
docker pull ${FUNCTEST_IMAGE}>/dev/null
- cmd="docker run --rm --privileged=true ${envs} ${volumes} ${TESTCASE_OPTIONS} ${FUNCTEST_IMAGE} /bin/bash -c '${cmd_opt}'"
+ cmd="docker run --rm ${envs} ${volumes} ${TESTCASE_OPTIONS} ${FUNCTEST_IMAGE} /bin/bash -c '${cmd_opt}'"
echo "Running Functest test case '${test_name}'. CMD: ${cmd}"
eval ${cmd}
ret_value=$?
rc_file_vol="-v ${rc_file}:${FUNCTEST_DIR}/conf/env_file"
-# Set iptables rule to allow forwarding return traffic for container
-if ! sudo iptables -C FORWARD -j RETURN 2> ${redirect} || ! sudo iptables -L FORWARD | awk 'NR==3' | grep RETURN 2> ${redirect}; then
- sudo iptables -I FORWARD -j RETURN
-fi
-
echo "Functest: Start Docker and prepare environment"
echo "Functest: Download images that will be used by test cases"
run_tiers ${tiers}
else
if [ ${DEPLOY_TYPE} == 'baremetal' ] && [ "${HOST_ARCH}" != "aarch64" ]; then
- tiers=(healthcheck smoke features vnf parser)
+ if [[ ${BRANCH} == "stable/fraser" ]]; then
+ tiers=(healthcheck smoke features vnf parser)
+ else
+ tiers=(healthcheck smoke features vnf)
+ fi
else
- tiers=(healthcheck smoke features parser)
+ if [[ ${BRANCH} == "stable/fraser" ]]; then
+ tiers=(healthcheck smoke features parser)
+ else
+ tiers=(healthcheck smoke features)
+ fi
fi
run_tiers ${tiers}
fi
- 'connection_check'
- 'api_check'
- 'snaps_health_check'
- - 'vping_userdata'
- 'vping_ssh'
+ - 'vping_userdata'
+ - 'cinder_test'
- 'tempest_smoke_serial'
- 'rally_sanity'
+ - 'refstack_defcore'
+ - 'patrole'
- 'odl'
- - 'odl_netvirt'
- 'snaps_smoke'
- - 'refstack_defcore'
- - 'promise'
- - 'doctor'
+ - 'neutron_trunk'
+ - 'doctor-notification'
- 'bgpvpn'
- - 'parser'
- - 'security_scan'
+ - 'functest-odl-sfc'
+ - 'barometercollectd'
+ - 'fds'
- 'tempest_full_parallel'
- 'rally_full'
- 'cloudify_ims'
- - 'cloudify_vrouter'
- - 'orchestra_openims'
- - 'orchestra_clearwaterims'
+ - 'vyos_vrouter'
+ - 'juju_epc'
+ - 'parser'
default: 'connection_check'
- choice:
name: FUNCTEST_TIER
- 'features'
- 'components'
- 'vnf'
+ - 'parser'
default: 'healthcheck'
- string:
name: TESTCASE_OPTIONS
name: RC_FILE_PATH
default: ''
description: "Path to the OS credentials file if given"
+ - string:
+ name: REPO
+ default: "opnfv"
+ description: "Repository name for functest images"
########################
# trigger macros
########################
# yamllint disable rule:key-duplicates
image:
- 'core'
+ - 'tempest'
- 'healthcheck'
- 'features'
- 'components'
- 'smoke'
- 'vnf'
+ exclude:
+ - stream: 'master'
+ image: 'parser'
+ - stream: 'fraser'
+ image: 'tempest'
+
# settings for jobs run in multijob phases
build-job-settings: &build-job-settings
current-parameters: false
projects:
- name: 'functest-core-docker-manifest-{stream}'
<<: *manifest-job-settings
+ - multijob:
+ name: 'build functest-tempest images'
+ execution-type: PARALLEL
+ projects:
+ - name: 'functest-tempest-docker-build-amd64-{stream}'
+ <<: *build-job-settings
+ - name: 'functest-tempest-docker-build-arm64-{stream}'
+ <<: *build-job-settings
+ - multijob:
+ name: 'publish functest-tempest manifests'
+ execution-type: PARALLEL
+ projects:
+ - name: 'functest-tempest-docker-manifest-{stream}'
+ <<: *manifest-job-settings
- multijob:
name: 'build all functest images'
condition: SUCCESSFUL
default: ssh://jenkins-enea@gerrit.opnfv.org:29418/securedlab
description: 'Base URI to the configuration directory'
+- parameter:
+ name: 'auto-baremetal-defaults'
+ parameters:
+ - label:
+ name: SLAVE_LABEL
+ default: 'auto-baremetal'
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/$PROJECT
+ description: 'Git URL to use on this Jenkins Slave'
+
- parameter:
name: 'joid-baremetal-defaults'
parameters:
arch_tag:
- 'amd64':
slave_label: 'opnfv-build-ubuntu'
- dockerfile: 'Dockerfile'
+ docker_file: 'Dockerfile'
- 'arm64':
slave_label: 'opnfv-build-ubuntu-arm'
- dockerfile: 'Dockerfile-arm64'
+ docker_file: 'Dockerfile-arm64'
# yamllint disable rule:key-duplicates
image:
PUSH_IMAGE=$PUSH_IMAGE
COMMIT_ID=$COMMIT_ID
GERRIT_REFNAME=$GERRIT_REFNAME
- DOCKERFILE=$DOCKERFILE
kill-phase-on: FAILURE
abort-all-jobs: false
project: '{project}'
branch: '{branch}'
slave_label: 'opnfv-build-ubuntu'
+ docker_file: 'Dockerfile'
+ arch_tag: 'amd64'
properties:
- throttle:
project: '{project}'
branch: '{branch}'
slave_label: '{slave_label}'
+ docker_file: '{docker_file}'
+ arch_tag: '{arch_tag}'
- string:
name: DOCKER_REPO_NAME
default: "opnfv/compass-{image}"
name: DOCKER_DIR
default: "compass-{image}"
description: "Directory containing files needed by the Dockerfile"
- - string:
- name: DOCKERFILE
- default: '{dockerfile}'
- description: "Dockerfile to use for creating the image."
- - string:
- name: ARCH_TAG
- default: "{arch_tag}"
- description: "If set, this value will be added to the docker image tag as a prefix"
scm:
- git-scm
builders:
project: '{project}'
branch: '{branch}'
slave_label: 'opnfv-build-ubuntu'
+ docker_file: 'Dockerfile'
+ arch_tag: 'amd64'
builders:
- shell: |
#!/bin/bash -ex
name: GERRIT_REFNAME
default: ""
description: "Docker tag to be built, e.g. refs/tags/5.0.0, refs/tags/opnfv-5.0.0, refs/tags/5.0.RC1"
+ - string:
+ name: DOCKERFILE
+ default: '{docker_file}'
+ description: "Dockerfile to use for creating the image."
+ - string:
+ name: ARCH_TAG
+ default: "{arch_tag}"
+ description: "If set, this value will be added to the docker image tag as a prefix"
- string:
name: PROJECT
default: "{project}"
<<: *master
<<: *other-receivers
# projects with jobs for euphrates
+ - 'barometer-collectd':
+ project: 'barometer'
+ dockerdir: 'docker/barometer-collectd'
+ <<: *fraser
+ <<: *other-receivers
+ - 'barometer-grafana':
+ project: 'barometer'
+ dockerdir: 'docker/barometer-grafana'
+ <<: *fraser
+ <<: *other-receivers
+ - 'barometer-influxdb':
+ project: 'barometer'
+ dockerdir: 'docker/barometer-influxdb'
+ <<: *fraser
+ <<: *other-receivers
+ - 'barometer-kafka':
+ project: 'barometer'
+ dockerdir: 'docker/barometer-kafka'
+ <<: *fraser
+ <<: *other-receivers
+ - 'barometer-ves':
+ project: 'barometer'
+ dockerdir: 'docker/barometer-ves'
+ <<: *fraser
+ <<: *other-receivers
+ - 'barometer-snmp':
+ project: 'barometer'
+ dockerdir: 'docker/barometer-snmp'
+ <<: *fraser
+ <<: *other-receivers
- 'bottlenecks':
project: 'bottlenecks'
<<: *euphrates
git clone "https://gerrit.opnfv.org/gerrit/$PROJECT.git" $CLONE_PATH/$PROJECT
else
pushd "$CLONE_PATH/$PROJECT" &>/dev/null
- git pull -f
+ git pull -f origin master
popd &> /dev/null
fi
unstable: false
notbuilt: false
- centos:
- disabled: false
+ disabled: true
successful: true
failed: true
unstable: true
publishers:
- email:
- recipients: jean.gaoliang@huawei.com limingjiang@huawei.com ross.b.brattain@intel.com
+ recipients: jean.gaoliang@huawei.com limingjiang@huawei.com
- email-jenkins-admins-on-failure
########################
location:
auto: b718a43380376d2b19222c4203c97a95ca849ae8
+ - version: opnfv-6.1.1
+ location:
+ auto: 0f43563624832c5908e6fc00eb0a4bbc6cc82c33
+
branches:
- name: stable/fraser
location:
[testenv:jjb]
deps =
- jenkins-job-builder==1.6.1
+ jenkins-job-builder==2.0.3
commands=
- jenkins-jobs test -o job_output -r jjb/global:{posargs:"jjb/"}
+ jenkins-jobs test -o job_output -r {posargs:"jjb/"}
[testenv:docs]
deps = -r{toxinidir}/docs/requirements.txt
# src: https://wiki.opnfv.org/display/INF/Hardware+Infrastructure
# + intel-pod12 (vsperf)
node_list=(\
-'lf-pod1' 'lf-pod2' 'intel-pod2' 'intel-pod12' \
+'lf-pod1' 'lf-pod2' \
'lf-virtual2' 'lf-virtual3' \
-'intel-pod5' 'intel-pod6' 'intel-pod7' 'intel-pod8' 'intel-pod18' \
+'intel-pod12' 'intel-pod18' \
'ericsson-pod1' 'ericsson-pod2' \
'ericsson-virtual1' 'ericsson-virtual2' 'ericsson-virtual3' \
-'ericsson-virtual4' 'ericsson-virtual5' 'ericsson-virtual12' \
-'arm-pod1' 'arm-pod5' 'arm-pod6' \
-'huawei-pod1' 'huawei-pod2' 'huawei-pod3' 'huawei-pod4' 'huawei-pod5' \
+'ericsson-virtual4' 'ericsson-virtual5' \
+'arm-pod5' 'arm-pod6' \
+'huawei-pod1' 'huawei-pod2' 'huawei-pod3' 'huawei-pod4' \
'huawei-pod6' 'huawei-pod7' 'huawei-pod12' \
'huawei-virtual1' 'huawei-virtual2' 'huawei-virtual3' 'huawei-virtual4' \
'huawei-virtual5' 'huawei-virtual8' 'huawei-virtual9' \