From: Mike Marchetti Date: Tue, 30 May 2017 17:13:56 +0000 (-0400) Subject: add system container for system test X-Git-Url: https://osm.etsi.org/gitweb/?a=commitdiff_plain;h=03fcdf4dea5af89d6b725797ccba1dae9ebfa8bd;p=osm%2Fdevops.git add system container for system test Change-Id: I496d825bb1bb2ac0621c02d916b48e8a063a6cba Signed-off-by: Mike Marchetti --- diff --git a/jenkins/host/start_build b/jenkins/host/start_build index a78d3944..ecb8ee56 100755 --- a/jenkins/host/start_build +++ b/jenkins/host/start_build @@ -30,6 +30,12 @@ export OSM_MDG=$1 shift OSM_load_config +if [ "$1" = "--build-container" ]; then + shift + [ $# -lt 1 ] && FATAL "missing container name with option --build-container" + export OSM_BUILD_CONTAINER=$1 +fi + if ! container_exists $OSM_BUILD_CONTAINER; then CONTAINER_OPTS="" [[ "$OSM_BUILD_CONTAINER_PRIVILEGED" == yes ]] && CONTAINER_OPTS="$CONTAINER_OPTS -c security.privileged=true" diff --git a/jenkins/system/SETTINGS b/jenkins/system/SETTINGS new file mode 100644 index 00000000..912799c6 --- /dev/null +++ b/jenkins/system/SETTINGS @@ -0,0 +1,39 @@ +# Copyright 2016 Telefónica Investigación y Desarrollo, S.A.U. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# sample SETTINGS file +# +# Authors: +# - Gerardo Garcia +# +# this variable holds the name of the container image needed to build or run this product +export OSM_BASE_IMAGE=ubuntu:16.04 +# +# this variable must be set to allow creating the build container in privileged mode +# this variable should be removed in the future when no privileged mode is required +export OSM_BUILD_CONTAINER_PRIVILEGED=yes +# +# this variable must be set to allow ensted containers in the build container +export OSM_BUILD_CONTAINER_ALLOW_NESTED=yes +# +# this variable must be set to allow creating the runtime container in privileged mode +# this variable should be removed in the future when no privileged mode is required +export OSM_RUNTIME_CONTAINER_PRIVILEGED=yes +# +# this variable must be set to allow ensted containers in the build container +export OSM_RUNTIME_CONTAINER_ALLOW_NESTED=yes +# +# +export OSM_BUILD_CONTAINER=osm +export OSM_RUNTIME_CONTAINER=osm diff --git a/jenkins/system/start_build b/jenkins/system/start_build new file mode 100755 index 00000000..716b728b --- /dev/null +++ b/jenkins/system/start_build @@ -0,0 +1,64 @@ +#!/bin/bash +# Copyright 2017 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# 01 May 2017 -- Michael Marchetti -- adapted from template +# + +HERE=$(realpath $(dirname $0)) +OSM_JENKINS=$(dirname $HERE) +. $OSM_JENKINS/common/all_funcs + +INFO "Installing packages" +apt-get update + +INFO "Configuring LXD" +# ZFS doesn't work inside a nested container. ZFS should be configured in the host LXD. +lxd init --auto +lxd waitready +systemctl stop lxd-bridge +systemctl --system daemon-reload +cat < /etc/default/lxd-bridge +USE_LXD_BRIDGE="true" +LXD_BRIDGE="lxdbr0" +UPDATE_PROFILE="true" +LXD_CONFILE="" +LXD_DOMAIN="lxd" +LXD_IPV4_ADDR="10.44.126.1" +LXD_IPV4_NETMASK="255.255.255.0" +LXD_IPV4_NETWORK="10.44.126.1/24" +LXD_IPV4_DHCP_RANGE="10.44.126.2,10.44.126.254" +LXD_IPV4_DHCP_MAX="252" +LXD_IPV4_NAT="true" +LXD_IPV6_ADDR="" +LXD_IPV6_MASK="" +LXD_IPV6_NETWORK="" +LXD_IPV6_NAT="false" +LXD_IPV6_PROXY="false" +EOF + +systemctl enable lxd-bridge +systemctl start lxd-bridge + +apt-get install -y python-pip python python-pycurl charm-tools python-pytest + +# TODO: use package when available on osm repo +git clone https://osm.etsi.org/gerrit/osm/osmclient +pip install osmclient/. + +devops/installers/install_osm.sh $* +RC=$? + +INFO "done, RC=$RC" +exit $RC