![Pei Tong](/assets/img/avatar_default.png)
Add install tool The tool aims to make the deploying of stackube as easy as possible. User could set up a whole Stackube cluster automatically by using it. It uses docker images provided by OpenStack Kolla Project to run a containerized OpenStack, and uses kubeadm to deploy kubenetes, then bootstrap the Stackube cluster. Change-Id: I6f18cf4d1a792bc505f955937f000dc0967341ce Implements: blueprint cluster-installation
80 lines
2.3 KiB
Bash
80 lines
2.3 KiB
Bash
#!/bin/bash
|
|
# Copyright (c) 2017 OpenStack 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.
|
|
|
|
#
|
|
# Dependencies:
|
|
#
|
|
# - ``KUBERNETES_API_PUBLIC_IP``
|
|
# - ``CLUSTER_CIDR``, ``CLUSTER_GATEWAY``,
|
|
# - ``KEYSTONE_ADMIN_URL`` must be defined
|
|
#
|
|
|
|
programDir=`dirname $0`
|
|
programDir=$(readlink -f $programDir)
|
|
parentDir="$(dirname $programDir)"
|
|
programDirBaseName=$(basename $programDir)
|
|
|
|
set -o errexit
|
|
set -o nounset
|
|
set -o pipefail
|
|
set -x
|
|
|
|
|
|
## install stackube addons
|
|
kubectl -n kube-system delete deployment kube-dns
|
|
kubectl -n kube-system delete daemonset kube-proxy
|
|
|
|
source /etc/stackube/openstack/admin-openrc.sh
|
|
netList=`openstack network list --long -f value`
|
|
public_network=$(echo "${netList}" | grep External | grep ' public_1 ' | awk '{print $1}')
|
|
[ "${public_network}" ]
|
|
nnn=`echo "${public_network}" | wc -l`
|
|
[ $nnn -eq 1 ]
|
|
|
|
cinderKeyring=`cat /var/lib/stackube/ceph/ceph_mon_config/ceph.client.cinder.keyring`
|
|
keyring=`echo "${cinderKeyring}" | grep 'key = ' | awk -F\ \=\ '{print $2}'`
|
|
[ "${keyring}" ]
|
|
|
|
cat > ${programDir}/stackube-configmap.yaml <<EOF
|
|
kind: ConfigMap
|
|
apiVersion: v1
|
|
metadata:
|
|
name: stackube-config
|
|
namespace: kube-system
|
|
data:
|
|
auth-url: "${KEYSTONE_ADMIN_URL}"
|
|
username: "admin"
|
|
password: "${OS_PASSWORD}"
|
|
tenant-name: "admin"
|
|
region: "RegionOne"
|
|
ext-net-id: "${public_network}"
|
|
plugin-name: "ovs"
|
|
integration-bridge: "br-int"
|
|
user-cidr: "${CLUSTER_CIDR}"
|
|
user-gateway: "${CLUSTER_GATEWAY}"
|
|
kubernetes-host: "${KUBERNETES_API_PUBLIC_IP}"
|
|
kubernetes-port: "6443"
|
|
keyring: "${keyring}"
|
|
EOF
|
|
kubectl create -f ${programDir}/stackube-configmap.yaml
|
|
kubectl create -f ${programDir}/../../deployment/stackube.yaml
|
|
kubectl create -f ${programDir}/../../deployment/stackube-proxy.yaml
|
|
kubectl create -f ${programDir}/../../deployment/flexvolume/flexvolume-ds.yaml
|
|
|
|
|
|
|
|
|
|
exit 0
|