blob: 4b11c19c97116a58ba67172f180af7af2cc8e77a [file] [log] [blame]
#!/bin/bash
#
# Copyright 2017-present Open Networking Foundation
#
# 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.
set -xe
# This script assumes the following repos exist
# ~/cord/automation-tools
# Location of 'cord' directory for checkouts on the local system
CORDDIR="${CORDDIR:-${HOME}/cord}"
[ ! -d "$CORDDIR" ] && mkdir -p "$CORDDIR"
[ ! -d "$CORDDIR"/automation-tools ] && cd "$CORDDIR" && git clone https://gerrit.opencord.org/automation-tools
[ ! -d "$CORDDIR"/helm-charts ] && cd "$CORDDIR" && git clone https://gerrit.opencord.org/helm-charts
# Install K8S, Helm, Openstack
"$CORDDIR"/automation-tools/openstack-helm/openstack-helm-dev-setup.sh
# VTN requirements
POD=$( kubectl get pod --namespace openstack|grep openvswitch-db|awk '{print $1}' )
kubectl --namespace openstack exec "$POD" \
-- ovs-appctl -t ovsdb-server ovsdb-server/add-remote ptcp:6641
# Add keys for VTN
[ ! -e ~/.ssh/id_rsa ] && ssh-keygen -f ~/.ssh/id_rsa -t rsa -N ""
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
cp ~/.ssh/id_rsa "$CORDDIR"/helm-charts/xos-profiles/base-openstack/files/node_key
# Add dummy fabric interface
sudo modprobe dummy
sudo ip link set name fabric dev dummy0
sudo ifconfig fabric up
# Install charts for M-CORD
cd "$CORDDIR"/helm-charts
helm dep update ./xos-core
helm upgrade --install xos-core ./xos-core
~/openstack-helm/tools/deployment/common/wait-for-pods.sh default
helm dep update ./xos-profiles/base-openstack
helm upgrade --install base-openstack ./xos-profiles/base-openstack \
--set computeNodes.master.name="$( hostname )" \
--set vtn-service.sshUser="$( whoami )"
~/openstack-helm/tools/deployment/common/wait-for-pods.sh default
helm upgrade --install onos-cord ./onos
~/openstack-helm/tools/deployment/common/wait-for-pods.sh default
helm dep update ./xos-profiles/mcord
helm upgrade --install mcord ./xos-profiles/mcord \
--set global.proxySshUser="$( whoami )"
~/openstack-helm/tools/deployment/common/wait-for-pods.sh default
# Firewall VNC ports for security
sudo ufw default allow incoming
sudo ufw default allow outgoing
sudo ufw default allow routed
sudo ufw deny proto tcp from any to any port 5900:5950 comment 'vnc'
sudo ufw --force enable
echo "M-CORD has been successfully installed"