From 28649299d7fefdf733f30bf206c7b33b600da7a2 Mon Sep 17 00:00:00 2001 From: Parker Berberian Date: Wed, 20 Dec 2017 13:37:25 -0500 Subject: Experimental JOID Support JIRA: None Adds experimental support for automatically installing joid. Only works with virtual deployments currently. Change-Id: I4536c694c0008f9a5537a89b00871bc6a05301db Signed-off-by: Parker Berberian --- laas-fog/pharoslaas/actions/joid_install.sh | 64 ++++++++++++++++++++++ laas-fog/pharoslaas/actions/joid_install.yaml | 27 +++++++++ laas-fog/pharoslaas/actions/joid_workflow.yaml | 31 +++++++++++ .../actions/workflows/joid_workflow.yaml | 11 ++++ 4 files changed, 133 insertions(+) create mode 100644 laas-fog/pharoslaas/actions/joid_install.sh create mode 100644 laas-fog/pharoslaas/actions/joid_install.yaml create mode 100644 laas-fog/pharoslaas/actions/joid_workflow.yaml create mode 100644 laas-fog/pharoslaas/actions/workflows/joid_workflow.yaml diff --git a/laas-fog/pharoslaas/actions/joid_install.sh b/laas-fog/pharoslaas/actions/joid_install.sh new file mode 100644 index 0000000..bab13e2 --- /dev/null +++ b/laas-fog/pharoslaas/actions/joid_install.sh @@ -0,0 +1,64 @@ +#!/bin/bash +############################################################################# +#Copyright 2017 Parker Berberian and others # +# # +#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. # +############################################################################# + +if [ "$1" ]; then + # parses the passed scenario + args=($(echo "$1" | tr "-" "\n")) + # args is array: [os, nosdn, nofeature, noha] +else + args=('os' 'nosdn' 'nofeature' 'noha') +fi +# the deploy script expects 'none' rather than 'nofeature' +if [ "nofeature" == "${args[2]}" ]; then + args[2]="none" +fi +if [ "os" == "${args[0]}" ]; then + args[0]="openstack" +fi +# grabs the joid repo +git clone "https://gerrit.opnfv.org/gerrit/joid.git" +# working directory has to be where 03-maasdeploy is +cd joid/ci || exit 1 +# virtualy deploy maas +./03-maasdeploy.sh virtual +# deploys OPNFV with the given scenario +./deploy.sh -o newton -s "${args[1]}" -t "${args[3]}" -l default -d xenial -m "${args[0]}" -f "${args[2]}" + +juju gui --show-credentials --no-browser &>output.juju + +DESTINATION=$( grep -E -o "[0-9].*[0-9]" output.juju | tr -d '/' | sed s/:.*//g ) +MYIP=$( ip a | grep -E -o "10.10.30.[0-9]+" | sed s/^.*255.*$//g | tr -d '\n' ) + +rm -f output.juju + + +############## Uses NAT to make juju gui available at my public address #################### + +MYIP=$1 +DESTINATION=$2 +MYBRIDGE=192.168.122.1 +DESTNETWORK=192.168.122.0/24 +PORT=17070 + +iptables -I INPUT 2 -d "$MYIP" -p tcp --dport "$PORT" -j ACCEPT +iptables -t nat -I INPUT 1 -d "$MYIP" -p tcp --dport "$PORT" -j ACCEPT +iptables -I FORWARD -p tcp --dport "$PORT" -j ACCEPT + +iptables -t nat -I PREROUTING -p tcp -d "$MYIP" --dport "$PORT" -j DNAT --to-destination "$DESTINATION:$PORT" +iptables -t nat -I POSTROUTING -p tcp -s "$DESTINATION" ! -d "$DESTNETWORK" -j SNAT --to-source "$MYIP" + +iptables -t nat -I POSTROUTING 2 -d "$DESTINATION" -j SNAT --to-source "$MYBRIDGE" diff --git a/laas-fog/pharoslaas/actions/joid_install.yaml b/laas-fog/pharoslaas/actions/joid_install.yaml new file mode 100644 index 0000000..8b26cb2 --- /dev/null +++ b/laas-fog/pharoslaas/actions/joid_install.yaml @@ -0,0 +1,27 @@ +--- +############################################################################## +# Copyright 2017 Parker Berberian and Others # +# # +# 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. # +############################################################################## + +name: "joid_install" +runner_type: "remote-shell-script" +description: "This action will install Joid onto a given host" +enabled: true +entry_point: "joid_install.sh" +parameters: + scenario: + type: string + required: false + position: 1 diff --git a/laas-fog/pharoslaas/actions/joid_workflow.yaml b/laas-fog/pharoslaas/actions/joid_workflow.yaml new file mode 100644 index 0000000..7273cf7 --- /dev/null +++ b/laas-fog/pharoslaas/actions/joid_workflow.yaml @@ -0,0 +1,31 @@ +--- +############################################################################## +# Copyright 2017 Parker Berberian and Others # +# # +# 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. # +############################################################################## + +name: "joid_workflow" +description: "installs joid" +runner_type: "action-chain" +entry_point: "workflows/joid_workflow.yaml" +enabled: true +parameters: + host: + type: "string" + required: true + scenario: + type: "string" + required: false + timeout: + default: 7200 diff --git a/laas-fog/pharoslaas/actions/workflows/joid_workflow.yaml b/laas-fog/pharoslaas/actions/workflows/joid_workflow.yaml new file mode 100644 index 0000000..610832e --- /dev/null +++ b/laas-fog/pharoslaas/actions/workflows/joid_workflow.yaml @@ -0,0 +1,11 @@ +--- +chain: + + - + name: "joid_install" + ref: "pharoslaas.joid_install" + parameters: + hosts: "{{host}}" + timeout: "{{timeout}}" + +default: "joid_install" -- cgit 1.2.3-korg