CORD-3065 Install openstack-helm on a single node
Change-Id: Iaf213a564ee2cb8704c2f8d115e005170178997f
diff --git a/openstack-helm/openstack-helm-dev-setup.sh b/openstack-helm/openstack-helm-dev-setup.sh
new file mode 100644
index 0000000..83f355a
--- /dev/null
+++ b/openstack-helm/openstack-helm-dev-setup.sh
@@ -0,0 +1,113 @@
+#!/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.
+
+###########################################################
+# Install openstack-helm dev setup on Ubuntu 16.04 server #
+# Including customizations to Neutron for CORD #
+###########################################################
+
+set -xe
+
+# CORD versioning
+OPENSTACK_HELM_BRANCH="${OPENSTACK_HELM_BRANCH:-master}"
+
+# openstack-helm steps to execute
+STEPS="000-install-packages 010-deploy-k8s 020-setup-client 030-ingress 040-ceph 045-ceph-ns-activate 050-mariadb 060-rabbitmq 070-memcached 080-keystone 090-heat 110-ceph-radosgateway 120-glance 140-openvswitch 150-libvirt 160-compute-kit"
+
+
+# Set up extra disk space if running on CloudLab
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+if [ -d /usr/local/etc/emulab ]
+then
+ sudo delgroup docker || true
+ "$DIR"/cloudlab-disk-setup.sh
+fi
+
+cd ~
+[ ! -e openstack-helm-infra ] && git clone https://git.openstack.org/openstack/openstack-helm-infra.git -b "${OPENSTACK_HELM_BRANCH}"
+[ ! -e openstack-helm ] && git clone https://git.openstack.org/openstack/openstack-helm.git -b "${OPENSTACK_HELM_BRANCH}"
+
+# Customizations for CORD
+cat <<EOF > /tmp/glance-cord.yaml
+---
+network:
+ api:
+ ingress:
+ annotations:
+ nginx.ingress.kubernetes.io/proxy-body-size: "0"
+EOF
+export OSH_EXTRA_HELM_ARGS_GLANCE="-f /tmp/glance-cord.yaml"
+
+cat <<EOF > /tmp/nova-cord.yaml
+---
+labels:
+ api_metadata:
+ node_selector_key: openstack-helm-node-class
+ node_selector_value: primary
+network:
+ backend: []
+pod:
+ replicas:
+ api_metadata: 1
+ placement: 1
+ osapi: 1
+ conductor: 1
+ consoleauth: 1
+ scheduler: 1
+ novncproxy: 1
+EOF
+export OSH_EXTRA_HELM_ARGS_NOVA="-f /tmp/nova-cord.yaml"
+
+cat <<EOF > /tmp/neutron-cord.yaml
+---
+images:
+ tags:
+ neutron_server: xosproject/neutron-onos:newton
+manifests:
+ daemonset_dhcp_agent: false
+ daemonset_l3_agent: false
+ daemonset_lb_agent: false
+ daemonset_metadata_agent: false
+ daemonset_ovs_agent: false
+ daemonset_sriov_agent: false
+network:
+ backend: []
+ interface:
+ tunnel: "eth0"
+pod:
+ replicas:
+ server: 1
+conf:
+ plugins:
+ ml2_conf:
+ ml2:
+ type_drivers: vxlan
+ tenant_network_types: vxlan
+ mechanism_drivers: onos_ml2
+ ml2_type_vxlan:
+ vni_ranges: 1001:2000
+ onos:
+ url_path: http://onos-cord-ui.default.svc.cluster.local:8181/onos/cordvtn
+ username: onos
+ password: rocks
+EOF
+export OSH_EXTRA_HELM_ARGS_NEUTRON="-f /tmp/neutron-cord.yaml"
+
+cd ~/openstack-helm
+for STEP in $STEPS
+do
+ ./tools/deployment/developer/ceph/"$STEP".sh
+done