@@ -7,6 +7,8 @@ require 'fileutils'
7
7
gopath_folder = "/opt/gopath"
8
8
FileUtils . cp "/etc/resolv.conf" , Dir . pwd
9
9
10
+ $cluster_ip_nodes = ""
11
+
10
12
provision_common = <<SCRIPT
11
13
## setup the environment file. Export the env-vars passed as args to 'vagrant up'
12
14
echo Args passed: [[ $@ ]]
@@ -24,11 +26,9 @@ echo 'export GOSRC=$GOPATH/src' >> /etc/profile.d/envvar.sh
24
26
echo 'export PATH=$PATH:/usr/local/go/bin:$GOBIN' >> /etc/profile.d/envvar.sh
25
27
echo "export http_proxy='$4'" >> /etc/profile.d/envvar.sh
26
28
echo "export https_proxy='$5'" >> /etc/profile.d/envvar.sh
27
- echo "export no_proxy=192.168.2.10,192.168.2.11,127.0.0.1,localhost,netmaster" >> /etc/profile.d/envvar.sh
28
- echo "export CLUSTER_NODE_IPS=192.168.2.10,192.168.2.11" >> /etc/profile.d/envvar.sh
29
29
echo "export USE_RELEASE=$6" >> /etc/profile.d/envvar.sh
30
-
31
-
30
+ echo "export no_proxy=$7,127.0.0.1,localhost,netmaster" >> /etc/profile.d/envvar.sh
31
+ echo "export CLUSTER_NODE_IPS=$7" >> /etc/profile.d/envvar.sh
32
32
source /etc/profile.d/envvar.sh
33
33
34
34
mv /etc/resolv.conf /etc/resolv.conf.bak
@@ -43,21 +43,22 @@ systemctl enable docker-tcp.socket
43
43
44
44
mkdir /etc/systemd/system/docker.service.d
45
45
echo "[Service]" | sudo tee -a /etc/systemd/system/docker.service.d/http-proxy.conf
46
- echo "Environment=\\ \" no_proxy=192.168.2.10,192.168.2.11 ,127.0.0.1,localhost,netmaster\\ \" \\ \" http_proxy=$http_proxy\\ \" \\ \" https_proxy=$https_proxy\\ \" " | sudo tee -a /etc/systemd/system/docker.service.d/http-proxy.conf
46
+ echo "Environment=\\ \" no_proxy=$7 ,127.0.0.1,localhost,netmaster\\ \" \\ \" http_proxy=$http_proxy\\ \" \\ \" https_proxy=$https_proxy\\ \" " | sudo tee -a /etc/systemd/system/docker.service.d/http-proxy.conf
47
47
sudo systemctl daemon-reload
48
48
sudo systemctl stop docker
49
49
systemctl start docker-tcp.socket
50
50
sudo systemctl start docker
51
51
52
- if [ $# -gt 6 ]; then
53
- shift; shift; shift; shift; shift; shift
52
+ if [ $# -gt 7 ]; then
53
+ shift; shift; shift; shift; shift; shifti; shift
54
54
echo "export $@" >> /etc/profile.d/envvar.sh
55
55
fi
56
56
57
57
# Get swarm binary
58
58
# (wget https://cisco.box.com/shared/static/0txiq5h7282hraujk09eleoevptd5jpl -q -O /usr/bin/swarm &&
59
59
# chmod +x /usr/bin/swarm) || exit 1
60
-
60
+ #Get gobgp binary
61
+ wget https://cisco.box.com/shared/static/5leqlo84kjh0thty91ouotilm4ish3nz -q -O #{ gopath_folder } /src/github.com/contiv/netplugin/scripts/gobgp && chmod +x #{ gopath_folder } /src/github.com/contiv/netplugin/scripts/gobgp
61
62
# remove duplicate docker key
62
63
rm /etc/docker/key.json
63
64
@@ -69,25 +70,71 @@ rm /etc/docker/key.json
69
70
docker load --input #{ gopath_folder } /src/github.com/contiv/netplugin/scripts/dnscontainer.tar
70
71
SCRIPT
71
72
73
+ provision_bird = <<SCRIPT
74
+ ## setup the environment file. Export the env-vars passed as args to 'vagrant up'
75
+ echo Args passed: [[ $@ ]]
76
+ echo "export http_proxy='$1'" >> /etc/profile.d/envvar.sh
77
+ echo "export https_proxy='$2'" >> /etc/profile.d/envvar.sh
78
+ source /etc/profile.d/envvar.sh
79
+ SCRIPT
80
+
72
81
VAGRANTFILE_API_VERSION = "2"
73
82
Vagrant . configure ( VAGRANTFILE_API_VERSION ) do |config |
74
83
if ENV [ 'CONTIV_NODE_OS' ] && ENV [ 'CONTIV_NODE_OS' ] == "centos" then
75
84
config . vm . box = "contiv/centos71-netplugin"
76
- config . vm . box_version = "0.3.1"
77
85
else
78
86
config . vm . box = "contiv/ubuntu1504-netplugin"
79
- config . vm . box_version = "0.3.1"
80
87
end
81
88
num_nodes = 2
82
89
if ENV [ 'CONTIV_NODES' ] && ENV [ 'CONTIV_NODES' ] != "" then
83
90
num_nodes = ENV [ 'CONTIV_NODES' ] . to_i
84
91
end
85
92
base_ip = "192.168.2."
86
93
node_ips = num_nodes . times . collect { |n | base_ip + "#{ n +10 } " }
94
+ $cluster_ip_nodes = node_ips . join ( "," )
95
+
87
96
node_names = num_nodes . times . collect { |n | "netplugin-node#{ n +1 } " }
88
97
node_peers = [ ]
89
-
90
- num_nodes . times do |n |
98
+ if ENV [ 'CONTIV_L3' ] then
99
+ config . vm . define "quagga1" do |quagga1 |
100
+
101
+ quagga1 . vm . box = "contiv/quagga1"
102
+ quagga1 . vm . host_name = "quagga1"
103
+ quagga1 . vm . network :private_network , ip : "192.168.1.50" , virtualbox__intnet : "true" , auto_config : false
104
+ quagga1 . vm . network "private_network" ,
105
+ ip : "80.1.1.200" ,
106
+ virtualbox__intnet : "contiv_orange"
107
+ quagga1 . vm . network "private_network" ,
108
+ ip : "70.1.1.2" ,
109
+ virtualbox__intnet : "contiv_blue"
110
+ quagga1 . vm . provision "shell" do |s |
111
+ s . inline = provision_bird
112
+ s . args = [ ENV [ "http_proxy" ] || "" , ENV [ "https_proxy" ] || "" ]
113
+ end
114
+ end
115
+ config . vm . define "quagga2" do |quagga2 |
116
+
117
+ quagga2 . vm . box = "contiv/quagga2"
118
+ quagga2 . vm . host_name = "quagga2"
119
+ quagga2 . vm . network :private_network , ip : "192.168.1.50" , virtualbox__intnet : "true" , auto_config : false
120
+ quagga2 . vm . network "private_network" ,
121
+ ip : "70.1.1.1" ,
122
+ virtualbox__intnet : "contiv_blue"
123
+ quagga2 . vm . network "private_network" ,
124
+ ip : "60.1.1.200" ,
125
+ virtualbox__intnet : "contiv_green"
126
+ quagga2 . vm . network "private_network" ,
127
+ ip : "50.1.1.200" ,
128
+ virtualbox__intnet : "contiv_yellow"
129
+
130
+ quagga2 . vm . provision "shell" do |s |
131
+ s . inline = provision_bird
132
+ s . args = [ ENV [ "http_proxy" ] || "" , ENV [ "https_proxy" ] || "" ]
133
+ end
134
+ end
135
+ end
136
+
137
+ num_nodes . times do |n |
91
138
node_name = node_names [ n ]
92
139
node_addr = node_ips [ n ]
93
140
node_peers += [ "#{ node_name } =http://#{ node_addr } :2380,#{ node_name } =http://#{ node_addr } :7001" ]
@@ -103,12 +150,29 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
103
150
swarm_flag = "slave"
104
151
end
105
152
end
153
+ net_num = ( n +1 ) %3
154
+ if net_num == 0 then
155
+ network_name = "contiv_orange"
156
+ else
157
+ if net_num == 1 then
158
+ network_name = "contiv_yellow"
159
+ else
160
+ network_name = "contiv_green"
161
+ end
162
+ end
106
163
config . vm . define node_name do |node |
164
+ node . vm . box_version = "0.3.1"
165
+
107
166
# node.vm.hostname = node_name
108
167
# create an interface for etcd cluster
109
168
node . vm . network :private_network , ip : node_addr , virtualbox__intnet : "true" , auto_config : false
110
169
# create an interface for bridged network
111
- node . vm . network :private_network , ip : "0.0.0.0" , virtualbox__intnet : "true" , auto_config : false
170
+ if ENV [ 'CONTIV_L3' ] then
171
+ # create an interface for bridged network
172
+ node . vm . network :private_network , ip : "0.0.0.0" , virtualbox__intnet : network_name , auto_config : false
173
+ else
174
+ node . vm . network :private_network , ip : "0.0.0.0" , virtualbox__intnet : "true" , auto_config : false
175
+ end
112
176
node . vm . provider "virtualbox" do |v |
113
177
# make all nics 'virtio' to take benefit of builtin vlan tag
114
178
# support, which otherwise needs to be enabled in Intel drivers,
@@ -134,7 +198,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
134
198
end
135
199
node . vm . provision "shell" do |s |
136
200
s . inline = provision_common
137
- s . args = [ node_name , ENV [ "CONTIV_NODE_OS" ] || "" , node_addr , ENV [ "http_proxy" ] || "" , ENV [ "https_proxy" ] || "" , ENV [ "USE_RELEASE" ] || "" , *ENV [ 'CONTIV_ENV' ] ]
201
+ s . args = [ node_name , ENV [ "CONTIV_NODE_OS" ] || "" , node_addr , ENV [ "http_proxy" ] || "" , ENV [ "https_proxy" ] || "" , ENV [ "USE_RELEASE" ] || "" , *ENV [ 'CONTIV_ENV' ] , $cluster_ip_nodes ]
138
202
end
139
203
provision_node = <<SCRIPT
140
204
## start etcd with generated config
0 commit comments