summaryrefslogtreecommitdiffstats
path: root/kud/hosting_providers
diff options
context:
space:
mode:
Diffstat (limited to 'kud/hosting_providers')
-rwxr-xr-xkud/hosting_providers/baremetal/aio.sh (renamed from kud/hosting_providers/vagrant/aio.sh)24
-rw-r--r--kud/hosting_providers/vagrant/Vagrantfile2
-rwxr-xr-xkud/hosting_providers/vagrant/installer.sh48
3 files changed, 40 insertions, 34 deletions
diff --git a/kud/hosting_providers/vagrant/aio.sh b/kud/hosting_providers/baremetal/aio.sh
index 0d06cc65..c9903cd3 100755
--- a/kud/hosting_providers/vagrant/aio.sh
+++ b/kud/hosting_providers/baremetal/aio.sh
@@ -12,18 +12,16 @@ set -o errexit
set -o nounset
set -o pipefail
-if [[ $(whoami) != 'root' ]];then
- echo "This bash script must be executed as root user"
- exit 1
-fi
-
-echo "Cloning and configuring KUD project..."
-rm -rf k8s
-git clone https://git.onap.org/multicloud/k8s/
-cd k8s/kud/hosting_providers/baremetal/
+aio_dir=$(cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd)
+cd ${aio_dir}/../vagrant
+
+# For aio inventory by default get ovn central ip from local host default interface.
+# This variable used only in this file, but env variable defined to enable user to override it prior calling aio.sh.
+OVN_CENTRAL_IP_ADDRESS=${OVN_CENTRAL_IP_ADDRESS:-$(hostname -I | cut -d ' ' -f 1)}
+
cat <<EOL > inventory/hosts.ini
[all]
-localhost
+localhost ansible_ssh_host=${OVN_CENTRAL_IP_ADDRESS} ansible_ssh_port=22
[kube-master]
localhost
@@ -47,14 +45,14 @@ localhost
kube-node
kube-master
EOL
-sed -i '/andrewrothstein.kubectl/d' ../../deployment_infra/playbooks/configure-*.yml
+
rm -f ~/.ssh/id_rsa
echo -e "\n\n\n" | ssh-keygen -t rsa -N ""
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod og-wx ~/.ssh/authorized_keys
echo "Enabling nested-virtualization"
-./node.sh
+sudo ./node.sh
-echo "Deploying KRD project"
+echo "Deploying KUD project"
./installer.sh | tee kud_installer.log
diff --git a/kud/hosting_providers/vagrant/Vagrantfile b/kud/hosting_providers/vagrant/Vagrantfile
index d068b84a..2d1b5ab4 100644
--- a/kud/hosting_providers/vagrant/Vagrantfile
+++ b/kud/hosting_providers/vagrant/Vagrantfile
@@ -120,7 +120,7 @@ Vagrant.configure("2") do |config|
installer.vm.network :private_network, :ip => "10.10.10.2", :type => :static
installer.vm.synced_folder '../../../', '/home/vagrant/multicloud-k8s/', type: sync_type
installer.vm.provision 'shell', privileged: false do |sh|
- sh.env = {'KUD_PLUGIN_ENABLED': 'false'}
+ sh.env = {'KUD_PLUGIN_ENABLED': 'false', 'OVN_CENTRAL_INTERFACE': 'eth1'}
sh.inline = <<-SHELL
cp /vagrant/insecure_keys/key.pub /home/vagrant/.ssh/id_rsa.pub
cp /vagrant/insecure_keys/key /home/vagrant/.ssh/id_rsa
diff --git a/kud/hosting_providers/vagrant/installer.sh b/kud/hosting_providers/vagrant/installer.sh
index 1d84646c..ca14bad7 100755
--- a/kud/hosting_providers/vagrant/installer.sh
+++ b/kud/hosting_providers/vagrant/installer.sh
@@ -9,8 +9,13 @@
##############################################################################
set -o errexit
+set -o nounset
set -o pipefail
+INSTALLER_DIR=$(cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd)
+
+source ${INSTALLER_DIR}/../../tests/_functions.sh
+
# _install_go() - Install GoLang package
function _install_go {
version=$(grep "go_version" ${kud_playbooks}/kud-vars.yml | awk -F "'" '{print $2}')
@@ -63,15 +68,15 @@ function _install_docker {
sudo apt-get install -y docker-ce
sudo mkdir -p /etc/systemd/system/docker.service.d
- if [ $http_proxy ]; then
+ if [ ${http_proxy:-} ]; then
echo "[Service]" | sudo tee /etc/systemd/system/docker.service.d/http-proxy.conf
echo "Environment=\"HTTP_PROXY=$http_proxy\"" | sudo tee --append /etc/systemd/system/docker.service.d/http-proxy.conf
fi
- if [ $https_proxy ]; then
+ if [ ${https_proxy:-} ]; then
echo "[Service]" | sudo tee /etc/systemd/system/docker.service.d/https-proxy.conf
echo "Environment=\"HTTPS_PROXY=$https_proxy\"" | sudo tee --append /etc/systemd/system/docker.service.d/https-proxy.conf
fi
- if [ $no_proxy ]; then
+ if [ ${no_proxy:-} ]; then
echo "[Service]" | sudo tee /etc/systemd/system/docker.service.d/no-proxy.conf
echo "Environment=\"NO_PROXY=$no_proxy\"" | sudo tee --append /etc/systemd/system/docker.service.d/no-proxy.conf
fi
@@ -86,13 +91,12 @@ function _install_docker {
}
function _set_environment_file {
- ansible_ifconfig=$(ansible ovn-central[0] -i $kud_inventory -m shell -a "ifconfig eth1 |grep \"inet addr\" |awk '{print \$2}' |awk -F: '{print \$2}'")
- if [[ $ansible_ifconfig != *CHANGED* ]]; then
- echo "Fail to get the OVN central IP address from eth1 nic"
- exit
- fi
- echo "export OVN_CENTRAL_ADDRESS=$(echo ${ansible_ifconfig#*>>} | tr '\n' ':')6641" | sudo tee --append /etc/environment
+ # By default ovn central interface is the first active network interface on localhost. If other wanted, need to export this variable in aio.sh or Vagrant file.
+ OVN_CENTRAL_INTERFACE=${OVN_CENTRAL_INTERFACE:-$(ip addr show | awk '/inet.*brd/{print $NF; exit}')}
+ echo "export OVN_CENTRAL_INTERFACE=${OVN_CENTRAL_INTERFACE}" | sudo tee --append /etc/environment
+ echo "export OVN_CENTRAL_ADDRESS=$(get_ovn_central_address)" | sudo tee --append /etc/environment
echo "export KUBE_CONFIG_DIR=/opt/kubeconfig" | sudo tee --append /etc/environment
+ echo "export CSAR_DIR=/opt/csar" | sudo tee --append /etc/environment
}
# install_k8s() - Install Kubernetes using kubespray tool
@@ -102,7 +106,7 @@ function install_k8s {
version=$(grep "kubespray_version" ${kud_playbooks}/kud-vars.yml | awk -F ': ' '{print $2}')
local_release_dir=$(grep "local_release_dir" $kud_inventory_folder/group_vars/k8s-cluster.yml | awk -F "\"" '{print $2}')
local tarball=v$version.tar.gz
- sudo apt-get install -y sshpass
+ sudo apt-get install -y sshpass make unzip # install make to run mitogen target and unzip is mitogen playbook dependency
_install_docker
_install_ansible
wget https://github.com/kubernetes-incubator/kubespray/archive/$tarball
@@ -112,18 +116,21 @@ function install_k8s {
sudo mkdir -p ${local_release_dir}/containers
rm $tarball
- sudo -E pip install -r $dest_folder/kubespray-$version/requirements.txt
+ pushd $dest_folder/kubespray-$version/
+ sudo -E pip install -r ./requirements.txt
+ make mitogen
+ popd
rm -f $kud_inventory_folder/group_vars/all.yml 2> /dev/null
- if [[ -n "${verbose}" ]]; then
+ if [[ -n "${verbose:-}" ]]; then
echo "kube_log_level: 5" | tee $kud_inventory_folder/group_vars/all.yml
else
echo "kube_log_level: 2" | tee $kud_inventory_folder/group_vars/all.yml
fi
echo "kubeadm_enabled: true" | tee --append $kud_inventory_folder/group_vars/all.yml
- if [[ -n "${http_proxy}" ]]; then
+ if [[ -n "${http_proxy:-}" ]]; then
echo "http_proxy: \"$http_proxy\"" | tee --append $kud_inventory_folder/group_vars/all.yml
fi
- if [[ -n "${https_proxy}" ]]; then
+ if [[ -n "${https_proxy:-}" ]]; then
echo "https_proxy: \"$https_proxy\"" | tee --append $kud_inventory_folder/group_vars/all.yml
fi
ansible-playbook $verbose -i $kud_inventory $dest_folder/kubespray-$version/cluster.yml --become --become-user=root | sudo tee $log_folder/setup-kubernetes.log
@@ -162,13 +169,12 @@ function install_plugin {
sudo mkdir -p /opt/{kubeconfig,consul/config}
sudo cp $HOME/.kube/config /opt/kubeconfig/kud
- _set_environment_file
source /etc/environment
pushd $kud_folder/../../../deployments
sudo ./build.sh
if [[ "${testing_enabled}" == "true" ]]; then
- docker-compose up -d
+ sudo ./start.sh
pushd $kud_tests
for functional_test in plugin plugin_edgex; do
bash ${functional_test}.sh
@@ -196,6 +202,7 @@ function _print_kubernetes_info {
echo "Admin password: secret" >> $k8s_info_file
}
+sudo -k # forgot sudo password
if ! sudo -n "true"; then
echo ""
echo "passwordless sudo is needed for '$(id -nu)' user."
@@ -206,26 +213,26 @@ if ! sudo -n "true"; then
exit 1
fi
-if [[ -n "${KUD_DEBUG}" ]]; then
+verbose=""
+if [[ -n "${KUD_DEBUG:-}" ]]; then
set -o xtrace
verbose="-vvv"
fi
# Configuration values
log_folder=/var/log/kud
-kud_folder=$(pwd)
+kud_folder=${INSTALLER_DIR}
kud_infra_folder=$kud_folder/../../deployment_infra
export kud_inventory_folder=$kud_folder/inventory
kud_inventory=$kud_inventory_folder/hosts.ini
kud_playbooks=$kud_infra_folder/playbooks
-kud_tests=$kud_folder/tests
+kud_tests=$kud_folder/../../tests
k8s_info_file=$kud_folder/k8s_info.log
testing_enabled=${KUD_ENABLE_TESTS:-false}
sudo mkdir -p $log_folder
sudo mkdir -p /opt/csar
sudo chown -R $USER /opt/csar
-echo "export CSAR_DIR=/opt/csar" | sudo tee --append /etc/environment
# Install dependencies
# Setup proxy variables
@@ -236,6 +243,7 @@ fi
sudo apt-get update
install_k8s
install_addons
+_set_environment_file
if ${KUD_PLUGIN_ENABLED:-false}; then
install_plugin
fi