Accelerating Charm Start
[osm/devops.git] / jenkins / VCA / start_build
1 #!/bin/bash
2 #   Copyright 2016 Telefónica Investigación y Desarrollo S.A.U.
3 #
4 #   Licensed under the Apache License, Version 2.0 (the "License");
5 #   you may not use this file except in compliance with the License.
6 #   You may obtain a copy of the License at
7 #
8 #       http://www.apache.org/licenses/LICENSE-2.0
9 #
10 #   Unless required by applicable law or agreed to in writing, software
11 #   distributed under the License is distributed on an "AS IS" BASIS,
12 #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 #   See the License for the specific language governing permissions and
14 #   limitations under the License.
15 #
16 # 20 Sep 2016 -- Gerardo Garcia -- adapted from template
17 #
18
19 HERE=$(realpath $(dirname $0))
20 OSM_JENKINS=$(dirname $HERE)
21 . $OSM_JENKINS/common/all_funcs
22
23 INFO "Installing packages"
24 add-apt-repository -y ppa:juju/stable
25 apt-get update
26 apt-get install -y juju lxd squid-deb-proxy
27
28 echo 'streams.canonical' > /etc/squid-deb-proxy/mirror-dstdomain.acl.d/20-juju-streams
29
30 INFO "Configuring LXD"
31 # ZFS doesn't work inside a nested container. ZFS should be configured in the host LXD.
32 lxd init --auto
33 lxd waitready
34 systemctl stop lxd-bridge
35 systemctl --system daemon-reload
36 cat <<EOF > /etc/default/lxd-bridge
37 USE_LXD_BRIDGE="true"
38 LXD_BRIDGE="lxdbr0"
39 UPDATE_PROFILE="true"
40 LXD_CONFILE=""
41 LXD_DOMAIN="lxd"
42 LXD_IPV4_ADDR="10.44.127.1"
43 LXD_IPV4_NETMASK="255.255.255.0"
44 LXD_IPV4_NETWORK="10.44.127.1/24"
45 LXD_IPV4_DHCP_RANGE="10.44.127.2,10.44.127.254"
46 LXD_IPV4_DHCP_MAX="252"
47 LXD_IPV4_NAT="true"
48 LXD_IPV6_ADDR=""
49 LXD_IPV6_MASK=""
50 LXD_IPV6_NETWORK=""
51 LXD_IPV6_NAT="false"
52 LXD_IPV6_PROXY="false"
53 EOF
54
55 systemctl enable lxd-bridge
56 systemctl start lxd-bridge
57
58 INFO "Pre-caching Ubuntu:16.04 image (this may take several minutes)..."
59
60 # Setup a daily cron to update the cached image
61 cp $HERE/update-lxd-image.sh /etc/cron.daily
62
63 # Run it for the first time
64 /etc/cron.daily/update-lxd-image.sh xenial
65
66 INFO "Bootstrapping VCA"
67 juju bootstrap localhost osm \
68 --config default-series=xenial \
69 --config enable-os-refresh-update=false \
70 --config enable-os-upgrade=false \
71 --config apt-http-proxy=http://10.44.127.1:8000
72
73 RC=0
74
75 INFO "done, RC=$RC"
76 exit $RC