diff options
author | Victor Morales <v.morales@samsung.com> | 2020-06-16 18:00:04 -0700 |
---|---|---|
committer | Victor Morales <v.morales@samsung.com> | 2020-06-17 08:15:40 -0700 |
commit | dd79554660e0f81cc8723243235e82e8769490f7 (patch) | |
tree | 3bf0c12317e8cbd59a2ad85cfbc3cfa2284b76b1 /kud/tests/cFW/Vagrantfile | |
parent | 7b860ae60bf9686b449ab2fe3f18c33944bdd71c (diff) |
Update cFW instruction set
The cFW example has been changed since 1.3.0 version. This commit
reduces the steps to setup and provision this CNF. Its main goal
is to simplify deployment process.
Issue-ID: MULTICLOUD-301
Change-Id: Id96ea4b427aff4c42ecfd43b42fa5d6970c4a6df
Signed-off-by: Victor Morales <v.morales@samsung.com>
Diffstat (limited to 'kud/tests/cFW/Vagrantfile')
-rw-r--r-- | kud/tests/cFW/Vagrantfile | 93 |
1 files changed, 72 insertions, 21 deletions
diff --git a/kud/tests/cFW/Vagrantfile b/kud/tests/cFW/Vagrantfile index d02e7d01..de0031cd 100644 --- a/kud/tests/cFW/Vagrantfile +++ b/kud/tests/cFW/Vagrantfile @@ -1,33 +1,84 @@ # -*- mode: ruby -*- # vi: set ft=ruby : +############################################################################## +# Copyright (c) 2020 +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +$no_proxy = ENV['NO_PROXY'] || ENV['no_proxy'] || "127.0.0.1,localhost" +# NOTE: This range is based on vagrant-libvirt network definition CIDR 192.168.121.0/24 +(1..254).each do |i| + $no_proxy += ",192.168.121.#{i}" +end +$no_proxy += ",10.0.2.15" +$socks_proxy = ENV['socks_proxy'] || ENV['SOCKS_PROXY'] || "" Vagrant.configure("2") do |config| - config.vm.box = "elastic/ubuntu-16.04-x86_64" - config.vm.hostname = "demo" - config.vm.provision 'shell', path: 'postinstall.sh' - config.vm.network :private_network, :ip => "192.168.10.5", :type => :static # unprotected_private_net_cidr - config.vm.network :private_network, :ip => "192.168.20.5", :type => :static # protected_private_net_cidr - config.vm.network :private_network, :ip => "10.10.12.5", :type => :static, :netmask => "16" # onap_private_net_cidr + config.vm.provider :libvirt + config.vm.provider :virtualbox - if ENV['http_proxy'] != nil and ENV['https_proxy'] != nil - if not Vagrant.has_plugin?('vagrant-proxyconf') - system 'vagrant plugin install vagrant-proxyconf' - raise 'vagrant-proxyconf was installed but it requires to execute again' + config.vm.box = "generic/ubuntu1804" + config.vm.box_version = "3.0.8" + config.vm.synced_folder './', '/vagrant' + + [:virtualbox, :libvirt].each do |provider| + config.vm.provider provider do |p| + p.cpus = 2 + p.memory = 4096 end - config.proxy.http = ENV['http_proxy'] || ENV['HTTP_PROXY'] || "" - config.proxy.https = ENV['https_proxy'] || ENV['HTTPS_PROXY'] || "" - config.proxy.no_proxy = ENV['NO_PROXY'] || ENV['no_proxy'] || "127.0.0.1,localhost" - config.proxy.enabled = { docker: false } end - config.vm.provider 'virtualbox' do |v| - v.customize ["modifyvm", :id, "--memory", 8192] - v.customize ["modifyvm", :id, "--cpus", 2] + config.vm.provider "virtualbox" do |v| + v.gui = false end - config.vm.provider 'libvirt' do |v| - v.memory = 8192 - v.cpus = 2 - v.nested = true + + config.vm.provider :libvirt do |v| v.cpu_mode = 'host-passthrough' + v.random_hostname = true + v.management_network_address = "192.168.121.0/24" end + + if ENV['http_proxy'] != nil and ENV['https_proxy'] != nil + if Vagrant.has_plugin?('vagrant-proxyconf') + config.proxy.http = ENV['http_proxy'] || ENV['HTTP_PROXY'] || "" + config.proxy.https = ENV['https_proxy'] || ENV['HTTPS_PROXY'] || "" + config.proxy.no_proxy = $no_proxy + config.proxy.enabled = { docker: false, git: false } + end + end + # Install requirements + config.vm.provision 'shell', privileged: false, inline: <<-SHELL + source /etc/os-release || source /usr/lib/os-release + case ${ID,,} in + ubuntu|debian) + sudo apt-get update + sudo apt-get install -y -qq -o=Dpkg::Use-Pty=0 curl + ;; + esac + # NOTE: Shorten link -> https://github.com/electrocucaracha/pkg-mgr_scripts + curl -fsSL http://bit.ly/install_pkg | PKG="docker docker-compose" bash + SHELL + + # Deploy services + config.vm.provision 'shell', inline: <<-SHELL + set -o pipefail + set -o errexit + + cd /vagrant + docker network create --subnet 10.10.0.0/16 --opt com.docker.network.bridge.name=docker_gwbridge docker_gwbridge + docker swarm init --advertise-addr 10.0.2.15 + docker build --no-cache -t vpp vpp/ + docker-compose up -d + docker image prune --force + #curl -X PUT \ + # -H "Authorization: Basic YWRtaW46YWRtaW4=" \ + # -H "Content-Type: application/json" \ + # -H "Cache-Control: no-cache" \ + # -d '{"pg-streams":{"pg-stream": [{"id":"fw_udp1", "is-enabled":"true"},{"id":"fw_udp2", "is-enabled":"true"},{"id":"fw_udp3", "is-enabled":"true"},{"id":"fw_udp4", "is-enabled":"true"},{"id":"fw_udp5", "is-enabled":"true"}]}}' \ + # "http://127.0.0.1:8083/restconf/config/sample-plugin:sample-plugin/pg-streams" + SHELL + config.vm.network :forwarded_port, guest: 8080, host: 8080 end |