RELEASE_EMAIL="${RELEASE_EMAIL}, ${PROJECT}-dev@lists.opendaylight.org"
fi
- echo "${BODY}" | mail -a /tmp/error.txt \
- -r "Jenkins <jenkins-dontreply@opendaylight.org>" \
- -s "${SUBJECT}" "${RELEASE_EMAIL}"
+ # Only send emails in production (releng), not testing (sandbox)
+ if [ "${SILO}" == "releng" ]; then
+ echo "${BODY}" | mail -a /tmp/error.txt \
+ -r "Jenkins <jenkins-dontreply@opendaylight.org>" \
+ -s "${SUBJECT}" "${RELEASE_EMAIL}"
+ elif [ "${SILO}" == "sandbox" ]; then
+ echo "Running in sandbox, not actually sending notification emails"
+ echo "Subject: ${SUBJECT}"
+ echo "Body: ${BODY}"
+ else
+ echo "Not sure how to notify in \"${SILO}\" Jenkins silo"
+ fi
fi
rm $CONSOLE_LOG
- mitaka:
openstack-branch: 'stable/mitaka'
odl-ml2-branch: 'stable/mitaka'
- odl-ml2-driver-version: 'v1'
- liberty:
openstack-branch: 'stable/liberty'
odl-ml2-branch: 'stable/liberty'
- odl-ml2-driver-version: 'v1'
schedule: 'H H * * *'
- odl-enable-l3: 'yes'
-
public-bridge: 'br-int'
- public-physical-network: 'physnet1'
-
- enable-networking-l2gw: 'no'
-
- disable-odl-l3-service-plugin: 'no'
-
- enable-openstack-services: 'q-svc,q-dhcp,q-meta,n-cauth,tempest'
-
- disable-openstack-services: 'swift,cinder,n-net,q-vpn,n-cpu'
-
- tenant-network-type: 'vxlan'
+ enable-openstack-plugins: 'networking-odl'
security-group-mode: 'none'
-
- robot-options: ''
enable_service ${service_name}
EOF
done
+for plugin_name in ${ENABLE_OS_PLUGINS}
+do
+if [ "$plugin_name" == "networking-odl" ]; then
+ ENABLE_PLUGIN_ARGS="${ODL_ML2_DRIVER_REPO} ${ODL_ML2_BRANCH}"
+elif [ "$plugin_name" == "kuryr-kubernetes" ]; then
+ ENABLE_PLUGIN_ARGS="${DEVSTACK_KUBERNETES_PLUGIN_REPO} master" # note: kuryr-kubernetes only exists in master at the moment
+elif [ "$plugin_name" == "neutron-lbaas" ]; then
+ ENABLE_PLUGIN_ARGS="${DEVSTACK_LBAAS_PLUGIN_REPO} ${OPENSTACK_BRANCH}"
+else
+ echo "Error: Invalid plugin $plugin_name, unsupported"
+ continue
+fi
+cat >> ${local_conf_file_name} << EOF
+enable_plugin ${plugin_name} ${ENABLE_PLUGIN_ARGS}
+EOF
+done
unset IFS
-
+if [ "${OPENSTACK_BRANCH}" == "master" ] || [ "${OPENSTACK_BRANCH}" == "stable/ocata" ]; then # Ocata+
+ # placement is mandatory for nova since Ocata, note that this requires computes to enable placement-client
+ # this should be moved into enabled_services for each job (but only for Ocata)
+ echo "enable_service placement-api" >> ${local_conf_file_name}
+fi
cat >> ${local_conf_file_name} << EOF
HOST_IP=$OPENSTACK_CONTROL_NODE_IP
SERVICE_HOST=\$HOST_IP
-NEUTRON_CREATE_INITIAL_NETWORKS=False
+NEUTRON_CREATE_INITIAL_NETWORKS=${CREATE_INITIAL_NETWORKS}
Q_PLUGIN=ml2
Q_ML2_TENANT_NETWORK_TYPE=${TENANT_NETWORK_TYPE}
Q_OVS_USE_VETH=True
SERVICE_PASSWORD=admin
ADMIN_PASSWORD=admin
-enable_plugin networking-odl ${ODL_ML2_DRIVER_REPO} ${ODL_ML2_BRANCH}
-
ODL_PORT=8080
ODL_MODE=externalodl
+ODL_PORT_BINDING_CONTROLLER=${ODL_ML2_PORT_BINDING}
+
LIBVIRT_TYPE=qemu
+NEUTRON_LBAAS_SERVICE_PROVIDERV2=${LBAAS_SERVICE_PROVIDER} # Only relevant if neutron-lbaas plugin is enabled
EOF
if [ "${ENABLE_NETWORKING_L2GW}" == "yes" ]; then
if [ "${ODL_ENABLE_L3_FWD}" == "yes" ]; then
cat >> ${local_conf_file_name} << EOF
PUBLIC_BRIDGE=${PUBLIC_BRIDGE}
-PUBLIC_PHYSICAL_NETWORK=physnet1 # FIXME this should be a parameter
-ML2_VLAN_RANGES=physnet1
+PUBLIC_PHYSICAL_NETWORK=${PUBLIC_PHYSICAL_NETWORK}
+ML2_VLAN_RANGES=${PUBLIC_PHYSICAL_NETWORK}
ODL_PROVIDER_MAPPINGS=${ODL_PROVIDER_MAPPINGS}
disable_service q-l3
minimize_polling=True
[ml2]
-# Needed for VLAN provider tests - because our provider networks are always encapsulated in VXLAN (br-physnet1)
-# MTU(1440) + VXLAN(50) + VLAN(4) = 1494 < MTU eth0/br-phynset1(1500)
-physical_network_mtus = physnet1:1440
+# Needed for VLAN provider tests - because our provider networks are always encapsulated in VXLAN (br-phys1)
+# MTU(1440) + VXLAN(50) + VLAN(4) = 1494 < MTU eth0/br-phys1(1500)
+physical_network_mtus = ${PUBLIC_PHYSICAL_NETWORK}:1440
[[post-config|/etc/neutron/dhcp_agent.ini]]
[DEFAULT]
else
RECLONE=yes
fi
+if [ "${OPENSTACK_BRANCH}" == "master" ] || [ "${OPENSTACK_BRANCH}" == "stable/ocata" ]; then # Ocata+
+ # placement is mandatory for nova since Ocata, note that this requires controller to enable placement-api
+ ENABLED_SERVICES="n-cpu,placement-client"
+else
+ ENABLED_SERVICES="n-cpu"
+fi
+
local_conf_file_name=${WORKSPACE}/local.conf_compute_${HOSTIP}
cat > ${local_conf_file_name} << EOF
[[local|localrc]]
NOVA_VNC_ENABLED=True
MULTI_HOST=1
-ENABLED_SERVICES=n-cpu
-
+ENABLED_SERVICES=${ENABLED_SERVICES}
HOST_IP=${HOSTIP}
SERVICE_HOST=${OPENSTACK_CONTROL_NODE_IP}
SERVICE_PASSWORD=admin
ADMIN_PASSWORD=admin
-enable_plugin networking-odl ${ODL_ML2_DRIVER_REPO} ${ODL_ML2_BRANCH}
ODL_MODE=compute
+ODL_PORT_BINDING_CONTROLLER=${ODL_ML2_PORT_BINDING}
LIBVIRT_TYPE=qemu
EOF
+if [[ "${ENABLE_OS_PLUGINS}" =~ networking-odl ]]; then
+cat >> ${local_conf_file_name} << EOF
+enable_plugin networking-odl ${ODL_ML2_DRIVER_REPO} ${ODL_ML2_BRANCH}
+EOF
+fi
+
if [ "${NUM_ODL_SYSTEM}" -gt 1 ]; then
odl_list=${ODL_SYSTEM_1_IP}
for i in `seq 2 ${NUM_ODL_SYSTEM}`
ODL_L3=${ODL_L3}
PUBLIC_INTERFACE=br100 # FIXME do we use br100 at all?
PUBLIC_BRIDGE=${PUBLIC_BRIDGE}
-PUBLIC_PHYSICAL_NETWORK=physnet1 # FIXME this should be a parameter
+PUBLIC_PHYSICAL_NETWORK=${PUBLIC_PHYSICAL_NETWORK}
ODL_PROVIDER_MAPPINGS=${ODL_PROVIDER_MAPPINGS}
EOF
fi
mkdir -p ${OS_CTRL_FOLDER}
scp ${OPENSTACK_CONTROL_NODE_IP}:/opt/stack/devstack/nohup.out ${OS_CTRL_FOLDER}/stack.log
scp ${OPENSTACK_CONTROL_NODE_IP}:/var/log/openvswitch/ovs-vswitchd.log ${OS_CTRL_FOLDER}/ovs-vswitchd.log
+scp ${OPENSTACK_CONTROL_NODE_IP}:/etc/neutron/neutron.conf ${OS_CTRL_FOLDER}/neutron.conf
rsync -avhe ssh ${OPENSTACK_CONTROL_NODE_IP}:/opt/stack/logs/* ${OS_CTRL_FOLDER} # rsync to prevent copying of symbolic links
scp extra_debug.sh ${OPENSTACK_CONTROL_NODE_IP}:/tmp
${SSH} ${OPENSTACK_CONTROL_NODE_IP} "bash /tmp/extra_debug.sh > /tmp/extra_debug.log"
mkdir -p ${OS_COMPUTE_FOLDER}
scp ${!OSIP}:/opt/stack/devstack/nohup.out ${OS_COMPUTE_FOLDER}/stack.log
scp ${!OSIP}:/var/log/openvswitch/ovs-vswitchd.log ${OS_COMPUTE_FOLDER}/ovs-vswitchd.log
+ scp ${!OSIP}:/etc/nova/nova.conf ${OS_COMPUTE_FOLDER}/nova.conf
rsync -avhe ssh ${!OSIP}:/opt/stack/logs/* ${OS_COMPUTE_FOLDER} # rsync to prevent copying of symbolic links
scp extra_debug.sh ${!OSIP}:/tmp
${SSH} ${!OSIP} "bash /tmp/extra_debug.sh > /tmp/extra_debug.log"
ssh ${OPENSTACK_CONTROL_NODE_IP} "cd /opt/stack; git clone https://git.openstack.org/openstack/requirements; cd requirements; git checkout stable/newton; sed -i /appdirs/d upper-constraints.txt"
fi
-
for i in `seq 1 $((NUM_OPENSTACK_SYSTEM - 1))`
do
COMPUTEIP=OPENSTACK_COMPUTE_NODE_${i}_IP
# Control Node - PUBLIC_BRIDGE will act as the external router
GATEWAY_IP="10.10.10.250" # FIXME this should be a parameter, also shared with integration-test
-${SSH} ${OPENSTACK_CONTROL_NODE_IP} "sudo ifconfig $PUBLIC_BRIDGE up ${GATEWAY_IP}/24"
+${SSH} ${OPENSTACK_CONTROL_NODE_IP} "sudo ip link add link ${PUBLIC_BRIDGE} name ${PUBLIC_BRIDGE}.167 type vlan id 167"
+${SSH} ${OPENSTACK_CONTROL_NODE_IP} "sudo ifconfig ${PUBLIC_BRIDGE} up"
+${SSH} ${OPENSTACK_CONTROL_NODE_IP} "sudo ifconfig ${PUBLIC_BRIDGE}.167 up ${GATEWAY_IP}/24"
compute_index=1
for compute_ip in ${COMPUTE_IPS[*]}
do
name: ODL_ML2_DRIVER_VERSION
default: '{odl-ml2-driver-version}'
description: 'Mode of networking-odl (v1 or v2)'
+ - string:
+ name: ODL_ML2_PORT_BINDING
+ default: '{odl-ml2-port-binding}'
+ description: 'Method of networking-odl port-binding (pseudo-agentdb-binding or legacy-port-binding or
+ network-topology)'
+ - string:
+ name: DEVSTACK_KUBERNETES_PLUGIN_REPO
+ default: '{devstack-kubernetes-plugin-repo}'
+ description: 'URL to fetch kubernetes devstack plugin'
+ - string:
+ name: DEVSTACK_LBAAS_PLUGIN_REPO
+ default: '{devstack-lbaas-plugin-repo}'
+ description: 'URL to fetch neutron-lbaas devstack plugin'
- string:
name: ODL_ENABLE_L3_FWD
default: '{odl-enable-l3}'
name: ENABLE_OS_SERVICES
default: '{enable-openstack-services}'
description: 'comma seperated list of services to enable'
+ - string:
+ name: ENABLE_OS_PLUGINS
+ default: '{enable-openstack-plugins}'
+ description: 'comma seperated list of plugins to enable'
- string:
name: DISABLE_OS_SERVICES
default: '{disable-openstack-services}'
name: DISABLE_ODL_L3_PLUGIN
default: '{disable-odl-l3-service-plugin}'
description: 'Disable odl l3 service plugin'
+ - string:
+ name: CREATE_INITIAL_NETWORKS
+ default: '{create-initial-networks}'
+ description: 'Toggles the option of letting devstack create initial networks (True/False)'
+ - string:
+ name: LBAAS_SERVICE_PROVIDER
+ default: '{lbaas-service-provider}'
+ description: 'The NEUTRON_LBAAS_SERVICE_PROVIDERV2 value to be used in local.conf - only relevant when using
+ neutron-lbaas'
scm:
- integration-gerrit-scm:
basedir: 'test'
name: ODL_ML2_DRIVER_VERSION
default: '{odl-ml2-driver-version}'
description: 'Mode of networking-odl (v1 or v2)'
+ - string:
+ name: ODL_ML2_PORT_BINDING
+ default: '{odl-ml2-port-binding}'
+ description: 'Method of networking-odl port-binding (pseudo-agentdb-binding or legacy-port-binding or
+ network-topology)'
+ - string:
+ name: DEVSTACK_KUBERNETES_PLUGIN_REPO
+ default: '{devstack-kubernetes-plugin-repo}'
+ description: 'URL to fetch kubernetes devstack plugin'
+ - string:
+ name: DEVSTACK_LBAAS_PLUGIN_REPO
+ default: '{devstack-lbaas-plugin-repo}'
+ description: 'URL to fetch neutron-lbaas devstack plugin'
- string:
name: ODL_ENABLE_L3_FWD
default: '{odl-enable-l3}'
name: ENABLE_OS_SERVICES
default: '{enable-openstack-services}'
description: 'comma seperated list of services to enable'
+ - string:
+ name: ENABLE_OS_PLUGINS
+ default: '{enable-openstack-plugins}'
+ description: 'comma seperated list of plugins to enable'
- string:
name: DISABLE_OS_SERVICES
default: '{disable-openstack-services}'
name: DISABLE_ODL_L3_PLUGIN
default: '{disable-odl-l3-service-plugin}'
description: 'Disable odl l3 service plugin'
-
+ - string:
+ name: CREATE_INITIAL_NETWORKS
+ default: '{create-initial-networks}'
+ description: 'Toggles the option of letting devstack create initial networks (True/False)'
+ - string:
+ name: LBAAS_SERVICE_PROVIDER
+ default: '{lbaas-service-provider}'
+ description: 'The NEUTRON_LBAAS_SERVICE_PROVIDERV2 value to be used in local.conf - only relevant when using
+ neutron-lbaas'
scm:
- integration-gerrit-scm:
basedir: 'test'
- mitaka:
openstack-branch: 'stable/mitaka'
odl-ml2-branch: 'stable/mitaka'
- odl-ml2-driver-version: 'v1'
openstack_system_image: 'CentOS 7 - devstack-mitaka - 20170314-2255'
- newton:
openstack-branch: 'stable/newton'
odl-ml2-branch: 'stable/newton'
- odl-ml2-driver-version: 'v1'
openstack_system_image: 'CentOS 7 - devstack-newton - 20170314-2256'
- newton-nodl-v2:
openstack-branch: 'stable/newton'
tools_system_image: 'Ubuntu 14.04 - mininet-ovs-25 - 20170210-0300'
- odl-enable-l3: 'yes'
-
enable-networking-l2gw: 'yes'
disable-odl-l3-service-plugin: 'yes'
- public-bridge: 'br-physnet1'
-
- public-physical-network: 'physnet1'
-
enable-openstack-services: 'q-svc,q-dhcp,q-meta,n-cauth,tempest,l2gw-plugin'
- disable-openstack-services: 'swift,cinder,n-net,q-vpn,n-cpu'
-
- tenant-network-type: 'vxlan'
-
security-group-mode: '{sg-mode}'
-
- robot-options: ''
- mitaka:
openstack-branch: 'stable/mitaka'
odl-ml2-branch: 'stable/mitaka'
- odl-ml2-driver-version: 'v1'
openstack_system_image: 'CentOS 7 - devstack-mitaka - 20170314-2255'
- newton:
openstack-branch: 'stable/newton'
odl-ml2-branch: 'stable/newton'
- odl-ml2-driver-version: 'v1'
openstack_system_image: 'CentOS 7 - devstack-newton - 20170314-2256'
- newton-nodl-v2:
openstack-branch: 'stable/newton'
odl-ml2-driver-version: 'v2'
openstack_system_image: 'CentOS 7 - devstack-newton - 20170314-2256'
- odl-enable-l3: 'yes'
-
- public-bridge: 'br-physnet1'
-
- public-physical-network: 'physnet1'
-
- enable-networking-l2gw: 'no'
-
- disable-odl-l3-service-plugin: 'no'
-
- enable-openstack-services: 'q-svc,q-dhcp,q-meta,n-cauth,tempest'
-
- disable-openstack-services: 'swift,cinder,n-net,q-vpn,n-cpu'
-
- tenant-network-type: 'vxlan'
-
security-group-mode: '{sg-mode}'
-
- robot-options: ''
- mitaka:
openstack-branch: 'stable/mitaka'
odl-ml2-branch: 'stable/mitaka'
- odl-ml2-driver-version: 'v1'
openstack_system_image: 'CentOS 7 - devstack-mitaka - 20170314-2255'
- newton:
openstack-branch: 'stable/newton'
odl-ml2-branch: 'stable/newton'
- odl-ml2-driver-version: 'v1'
openstack_system_image: 'CentOS 7 - devstack-newton - 20170314-2256'
- newton-nodl-v2:
openstack-branch: 'stable/newton'
odl-ml2-driver-version: 'v2'
openstack_system_image: 'CentOS 7 - devstack-newton - 20170314-2256'
- odl-enable-l3: 'yes'
-
public-bridge: 'br-ex'
-
- public-physical-network: 'physnet1'
-
- enable-networking-l2gw: 'no'
-
- disable-odl-l3-service-plugin: 'no'
-
- enable-openstack-services: 'q-svc,q-dhcp,q-meta,n-cauth,tempest'
-
- disable-openstack-services: 'swift,cinder,n-net,q-vpn,n-cpu'
-
- tenant-network-type: 'vxlan'
-
- security-group-mode: 'none'
-
- robot-options: ''
- '{project-name}-merge-{stream}'
- '{project-name}-validate-autorelease-{stream}'
- '{project-name}-verify-{stream}-{maven}-{jdks}'
+ - '{project-name}-verify-tox-{stream}'
stream: carbon
project: 'odlparent'
- job-template:
name: 'packaging-build-deb-{stream}'
- node: ubuntu-trusty-mininet-2c-2g
+ node: ubuntu1404-mininet-2c-2g
project-type: freestyle
- job-template:
name: 'packaging-test-ansible-deb-{stream}'
- node: ubuntu-xenial-mininet-ovs-25-2c-4g
+ node: ubuntu1604-mininet-ovs-25-2c-4g
project-type: freestyle
email-recipients: 'jenkins@lists.opendaylight.org'
odl-ml2-driver-repo: 'https://github.com/openstack/networking-odl'
networking-l2gw-repo: 'http://git.openstack.org/openstack/networking-l2gw'
+ devstack-kubernetes-plugin-repo: 'https://github.com/openstack/kuryr-kubernetes'
+ devstack-lbaas-plugin-repo: 'https://github.com/openstack/neutron-lbaas'
server-name: 'OpenDaylight'
git-url: 'ssh://jenkins-$SILO@git.opendaylight.org:29418'
+ public-bridge: 'br-physnet1'
+ public-physical-network: 'physnet1'
+ odl-enable-l3: 'yes'
+ disable-odl-l3-service-plugin: 'no'
+ odl-ml2-driver-version: 'v1'
+ odl-ml2-port-binding: 'network-topology'
+ enable-openstack-plugins: 'networking-odl'
+ enable-openstack-services: 'q-svc,q-dhcp,q-meta,n-cauth,tempest'
+ disable-openstack-services: 'swift,cinder,n-net,q-vpn,n-cpu'
+ enable-networking-l2gw: 'no'
+ lbaas-service-provider: ''
+ create-initial-networks: 'False'
+ tenant-network-type: 'vxlan'
+ security-group-mode: 'none'
+
# openstack-infra-parameters defaults
archive-artifacts: ''
branch: master
- mitaka:
openstack-branch: 'stable/mitaka'
odl-ml2-branch: 'stable/mitaka'
- odl-ml2-driver-version: 'v1'
openstack_system_image: 'CentOS 7 - devstack-mitaka - 20170314-2255'
- newton:
openstack-branch: 'stable/newton'
odl-ml2-branch: 'stable/newton'
- odl-ml2-driver-version: 'v1'
openstack_system_image: 'CentOS 7 - devstack-newton - 20170314-2256'
schedule: ''
disable-openstack-services: 'n-net,q-l3'
tenant-network-type: 'local'
-
- public-physical-network: 'physnet1'
-
- enable-networking-l2gw: 'no'
-
- disable-odl-l3-service-plugin: 'no'
-
- security-group-mode: 'none'
-
- robot-options: ''