summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorParker Berberian <pberberian@iol.unh.edu>2017-12-20 13:37:25 -0500
committerParker Berberian <pberberian@iol.unh.edu>2017-12-20 13:37:25 -0500
commit28649299d7fefdf733f30bf206c7b33b600da7a2 (patch)
tree019cb409c4dea59d3e62cb07cc4665abf40d94c0
parentbda40346e2211e581f283ca9db6e3a337af47880 (diff)
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 <pberberian@iol.unh.edu>
-rw-r--r--laas-fog/pharoslaas/actions/joid_install.sh64
-rw-r--r--laas-fog/pharoslaas/actions/joid_install.yaml27
-rw-r--r--laas-fog/pharoslaas/actions/joid_workflow.yaml31
-rw-r--r--laas-fog/pharoslaas/actions/workflows/joid_workflow.yaml11
4 files changed, 133 insertions, 0 deletions
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"