-#!/bin/bash
-set +x
+#!/usr/bin/env bash
+set -eu -o pipefail
-LIBDIR="$(dirname "$(dirname "$PWD")")"
+SCRIPTDIR="$(readlink -f $(dirname ${BASH_SOURCE[0]}))"
+LIBDIR="$(dirname $(dirname ${SCRIPTDIR}))/env/lib"
-source $LIBDIR/env/lib/common.sh
+source $LIBDIR/common.sh
-function get_kud_repo {
- if [ -d $DOWNLOAD_PATH/multicloud-k8s ]; then
- rm -rf $DOWNLOAD_PATH/multicloud-k8s
- fi
+export KUBESPRAY_VERSION=2.16.0
- mkdir -p $DOWNLOAD_PATH
- pushd $DOWNLOAD_PATH
- if [ "$1" == "v1" ] ; then
- git clone --branch v1.0-icn https://github.com/akraino-icn/multicloud-k8s.git
- else
- git clone https://github.com/onap/multicloud-k8s.git
- fi
- popd
+function get_kud_repo {
+ clone_kud_repository
+ export KUD_ADDONS=multus
}
function set_ssh_key {
}
function set_bm_kud {
- pushd $DOWNLOAD_PATH/multicloud-k8s/kud/hosting_providers/vagrant/inventory
+ pushd ${KUDPATH}/kud/hosting_providers/vagrant/inventory
HOST_IP=${HOST_IP:-$(hostname -I | cut -d ' ' -f 1)}
- if [ "$1" == "minimal" ] ; then
- cat <<EOL > hosts.ini
-[all]
-$HOSTNAME ansible_ssh_host=${HOST_IP} ansible_ssh_port=22
-
-[kube-master]
-$HOSTNAME
-
-[kube-node]
-$HOSTNAME
-
-[etcd]
-$HOSTNAME
-
-[k8s-cluster:children]
-kube-node
-kube-master
-EOL
- else
+ DOCKER_OPTIONS=""
+ if [[ ! -z "${DOCKER_REGISTRY_MIRRORS+x}" ]]; then
+ OPTIONS=""
+ for mirror in ${DOCKER_REGISTRY_MIRRORS}; do
+ OPTIONS="${OPTIONS} --registry-mirror=${mirror}"
+ done
+ DOCKER_OPTIONS="docker_options=\"${OPTIONS# }\""
+ fi
cat <<EOL > hosts.ini
[all]
-$HOSTNAME ansible_ssh_host=${HOST_IP} ansible_ssh_port=22
+$HOSTNAME ansible_ssh_host=${HOST_IP} ansible_ssh_port=22 ${DOCKER_OPTIONS}
[kube-master]
$HOSTNAME
[etcd]
$HOSTNAME
-[ovn-central]
-$HOSTNAME
-
-[ovn-controller]
-$HOSTNAME
-
-[virtlet]
-$HOSTNAME
-
[k8s-cluster:children]
kube-node
kube-master
EOL
- fi
popd
}
function kud_install {
- pushd $DOWNLOAD_PATH/multicloud-k8s/kud/hosting_providers/vagrant/
- if [ "$1" == "all" -o "$1" == "vm" ]; then
- sed -i -e 's/testing_enabled=${KUD_ENABLE_TESTS:-false}/testing_enabled=${KUD_ENABLE_TESTS:-true}/g' installer.sh
- fi
- if [ "$1" == "vm" ]; then
- sed -i -e 's/^kube_pods_subnet.*/kube_pods_subnet: 172.21.64.0\/18/g' inventory/group_vars/k8s-cluster.yml
- fi
+ pushd ${KUDPATH}/kud/hosting_providers/vagrant/
./installer.sh | tee kud_deploy.log
-
- if [ "$1" == "bm" ]; then
- pushd $DOWNLOAD_PATH/multicloud-k8s/kud/tests/
- sleep 15
- bash sriov.sh
- popd
- fi
popd
}
function kud_reset {
- pushd $DOWNLOAD_PATH/multicloud-k8s/kud/hosting_providers/vagrant/
- ansible-playbook -i inventory/hosts.ini /opt/kubespray-2.10.4/reset.yml \
+ pushd ${KUDPATH}/kud/hosting_providers/vagrant/
+ ansible-playbook -i inventory/hosts.ini /opt/kubespray-${KUBESPRAY_VERSION}/reset.yml \
--become --become-user=root -e reset_confirmation=yes
popd
}
-
function verifier {
APISERVER=$(kubectl config view --minify -o \
jsonpath='{.clusters[0].cluster.server}')
exit 0
fi
-get_kud_repo $2
+get_kud_repo
set_ssh_key
-set_bm_kud $1
-kud_install $1
+set_bm_kud
+kud_install
verifier
exit 0