summaryrefslogtreecommitdiffstats
path: root/ci/01-deploybundle.sh
blob: e07ca0ed4a749800968a8a81b239db48ce02b73a (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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
#!/bin/bash
#placeholder for deployment script.
set -ex

#    ./01-deploybundle.sh $opnfvtype $openstack $opnfvlab $opnfvsdn $opnfvfeature $opnfvdistro

    #copy and download charms
    cp $4/fetch-charms.sh ./fetch-charms.sh
    #modify the ubuntu series wants to deploy
    sed -i -- "s|distro=trusty|distro=$6|g" ./fetch-charms.sh
    sh ./fetch-charms.sh $6


case "$1" in
    'nonha' )
        cp $4/juju-deployer/ovs-$4-nonha.yaml ./bundles.yaml
        ;;
    'ha' )
        cp $4/juju-deployer/ovs-$4-ha.yaml ./bundles.yaml
        ;;
    'tip' )
        cp $4/juju-deployer/ovs-$4-tip.yaml ./bundles.yaml
        cp common/source/* ./
        sed -i -- "s|branch: master|branch: stable/$2|g" ./*.yaml
        ;;
    * )
        cp $4/juju-deployer/ovs-$4-nonha.yaml ./bundles.yaml
        ;;
esac


case "$3" in
    'orangepod1' )
        # As per your lab vip address list be deafult uses 10.4.1.11 - 10.4.1.20
         sed -i -- 's/10.4.1.1/192.168.1.2/g' ./bundles.yaml
        # choose the correct interface to use for data network
         sed -i -- 's/#os-data-network: 10.4.8.0\/21/os-data-network: 192.168.11.0\/24/g' ./bundles.yaml
        # Choose the external port to go out from gateway to use.
         sed -i -- 's/#ext-port: "eth1"/ext-port: "eth1"/g' ./bundles.yaml
        # Use host for public API for Orange pod2
        # sed -i -- 's/#os-public-hostname: api.public-fqdn/os-public-hostname: api.pod2.opnfv.fr/g' ./bundles.yaml
         ;;
    'orangepod2' )
        # As per your lab vip address list be deafult uses 10.4.1.11 - 10.4.1.20
         sed -i -- 's/10.4.1.1/192.168.2.2/g' ./bundles.yaml
        # choose the correct interface to use for data network
         sed -i -- 's/#os-data-network: 10.4.8.0\/21/os-data-network: 192.168.12.0\/24/g' ./bundles.yaml
        # Choose the external port to go out from gateway to use.
         sed -i -- 's/#ext-port: "eth1"/ext-port: "eth1"/g' ./bundles.yaml
        # Use host for public API for Orange pod2
        # sed -i -- 's/#os-public-hostname: api.public-fqdn/os-public-hostname: api.pod2.opnfv.fr/g' ./bundles.yaml
         ;;
     'intelpod9' )
        # As per your lab vip address list be deafult uses 10.9.1.11 - 10.9.1.20
         sed -i -- 's/10.4.1.1/10.9.1.2/g' ./bundles.yaml
        # choose the correct interface to use for data network
         sed -i -- 's/#os-data-network: 10.4.8.0\/21/os-data-network: 10.9.12.0\/24/g' ./bundles.yaml
        # Choose the external port to go out from gateway to use.
         sed -i -- 's/#ext-port: "eth1"/ext-port: "eth1.905"/g' ./bundles.yaml
        # Provide the gateway MAC to route the traffic externally.
         sed -i -- 's/#gateway-mac: "default"/gateway-mac: "default"/g' ./bundles.yaml
         ;;
     'intelpod6' )
        # As per your lab vip address list be deafult uses 10.4.1.11 - 10.4.1.20
         sed -i -- 's/10.4.1.1/10.6.1.2/g' ./bundles.yaml
        # choose the correct interface to use for data network
         sed -i -- 's/#os-data-network: 10.4.8.0\/21/os-data-network: 10.6.12.0\/24/g' ./bundles.yaml
        # Choose the external port to go out from gateway to use.
         sed -i -- 's/#ext-port: "eth1"/ext-port: "eth5"/g' ./bundles.yaml
        # Provide the gateway MAC to route the traffic externally.
         sed -i -- 's/#gateway-mac: "default"/gateway-mac: "default"/g' ./bundles.yaml
         ;;
     'intelpod5' )
        # As per your lab vip address list be deafult uses 10.4.1.11 - 10.4.1.20
         sed -i -- 's/10.4.1.1/10.5.1.2/g' ./bundles.yaml
        # choose the correct interface to use for data network
         sed -i -- 's/#os-data-network: 10.4.8.0\/21/os-data-network: 10.5.12.0\/24/g' ./bundles.yaml
        # Choose the external port to go out from gateway to use.
         sed -i -- 's/#ext-port: "eth1"/ext-port: "eth5"/g' ./bundles.yaml
        # Provide the gateway MAC to route the traffic externally.
         sed -i -- 's/#gateway-mac: "default"/gateway-mac: "default"/g' ./bundles.yaml
        ;;
     'attvirpod1' )
        # As per your lab vip address list be deafult uses 10.4.1.11 - 10.4.1.20
         sed -i -- 's/10.4.1.1/192.168.10.1/g' ./bundles.yaml
        # Choose the external port to go out from gateway to use.
         sed -i -- 's/#ext-port: "eth1"/ext-port: "eth1"/g' ./bundles.yaml
        ;;
     'cengnlynxpod1' )
        # Chose the hard drive(s) to use for CEPH OSD
         sed -i -- 's|osd-devices: /srv|osd-devices: /dev/sdb|g' ./bundles.yaml
        # As per your lab vip address list be deafult uses 10.4.1.11 - 10.4.1.20
         sed -i -- 's/10.4.1.1/10.120.0.1/g' ./bundles.yaml
        # choose the correct interface to use for data network
         sed -i -- 's/#os-data-network: 10.4.8.0\/21/os-data-network: 172.16.121.0\/24/g' ./bundles.yaml
        # Choose the external port to go out from gateway to use.
         sed -i -- 's/#ext-port: "eth1"/ext-port: "eth1.1202"/g' ./bundles.yaml
        ;;
     'juniperpod1' )
         sed -i -- 's/10.4.1.1/172.16.50.1/g' ./bundles.yaml
         sed -i -- 's/#ext-port: "eth1"/ext-port: "eth1"/g' ./bundles.yaml
         ;;
     'ravellodemopod' )
         sed -i -- 's/#ext-port: "eth1"/ext-port: "eth2"/g' ./bundles.yaml
        ;;
     'custom' )
         sed -i -- 's/10.4.1.1/192.168.122.1/g' ./bundles.yaml
         sed -i -- 's/#ext-port: "eth1"/ext-port: "eth1"/g' ./bundles.yaml
        ;;
     'default' )
         sed -i -- 's/10.4.1.1/192.168.122.1/g' ./bundles.yaml
         sed -i -- 's/#ext-port: "eth1"/ext-port: "eth1"/g' ./bundles.yaml
        ;;
esac

for feature in $5; do
    case "$feature" in
        'ipv6' )
             sed -i -- 's/#prefer-ipv6: true/prefer-ipv6: true/g' ./bundles.yaml
            ;;
        'dvr' )
             sed -i -- 's/#enable-dvr: true/enable-dvr: true/g' ./bundles.yaml
             sed -i -- 's/#l2-population: true/l2-population: true/g' ./bundles.yaml
            ;;
        'sfc' )
             sed -i -- 's/profile: "openvswitch-odl-Be"/profile: "openvswitch-odl-beryllium-sfc"/g' ./bundles.yaml
            ;;
        'vpn' )
             sed -i -- 's/profile: "openvswitch-odl-Be"/profile: "openvswitch-odl-beryllium-vpn"/g' ./bundles.yaml
            ;;
        'odl_l3' )
             sed -i -- 's/profile: "openvswitch-odl-Be"/profile: "openvswitch-odl-beryllium-l3"/g' ./bundles.yaml
            ;;
        'dpdk' )
             sed -i -- 's/#dpdk_enable: true/dpdk_enable: true/g' ./bundles.yaml
             sed -i -- 's/#hugepages: '50%'/hugepages: '50%'/g' ./bundles.yaml
        'lxd' )
             sed -i -- 's/#- - nova-compute:lxd/- - nova-compute:lxd/g' ./bundles.yaml
             sed -i -- 's/#- - lxd:lxd/- - lxd:lxd/g' ./bundles.yaml
             sed -i -- 's/#virt-type: lxd/virt-type: lxd/g' ./bundles.yaml
             # adding the lxd subordinate charm
             echo "    lxd:" >> ./bundles.yaml
             echo "      charm: local:xenial/lxd" >> ./bundles.yaml
            ;;
    esac
done

#changing the target to the openstack release we want to deploy.
sed -i -- "s|mitaka|$2|g" ./bundles.yaml

#update source if trusty is target distribution
case "$6" in
    'trusty' )
        sed -i -- "s|#source|source|g" ./bundles.yaml
        ;;
    'xenial' )
        #changing the target to the ubuntu distro we want to deploy.
        sed -i -- "s|trusty|$6|g" ./bundles.yaml
        ;;
esac

echo "... Deployment Started ...."
        juju-deployer -vW -d -t 3600 -c bundles.yaml $6-"$2"-nodes
        juju-deployer -vW -d -t 7200 -r 5 -c bundles.yaml $6-"$2"