From 04f9ce6f4f7d399105172ba841fefa6e376f2572 Mon Sep 17 00:00:00 2001 From: Victor Morales Date: Fri, 16 Nov 2018 08:29:07 -0800 Subject: Document All-in-One Bare-Metal provisioning This document describe the proces to do an All-in-One deployment in a Bare-Metal deployment, listing the Hardware and Software minimal requirements, it also uses the aio.sh bash script for reducing the number of manual steps. Vagrantfile and installer.sh has been modified to disable functional tests by default and includes the passwordless sudo verification. Change-Id: Iec7b0bb37d2a46342e6b7e60bed37dbdf2019a10 Signed-off-by: Victor Morales Issue-ID: MULTICLOUD-408 --- vagrant/Vagrantfile | 2 +- vagrant/aio.sh | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++ vagrant/installer.sh | 16 ++++++++++++--- 3 files changed, 72 insertions(+), 4 deletions(-) create mode 100755 vagrant/aio.sh (limited to 'vagrant') diff --git a/vagrant/Vagrantfile b/vagrant/Vagrantfile index c4d35368..8cfa4e04 100644 --- a/vagrant/Vagrantfile +++ b/vagrant/Vagrantfile @@ -116,7 +116,7 @@ Vagrant.configure("2") do |config| installer.vm.network :private_network, :ip => "10.10.10.2", :type => :static installer.vm.synced_folder '../', '/root/go/src/k8-plugin-multicloud/', type: sync_type installer.vm.provision 'shell' do |sh| - sh.env = {'KRD_ENABLE_TESTS': 'false'} + sh.env = {'KRD_PLUGIN_ENABLED': 'true'} sh.path = "main.sh" end end diff --git a/vagrant/aio.sh b/vagrant/aio.sh new file mode 100755 index 00000000..413e4672 --- /dev/null +++ b/vagrant/aio.sh @@ -0,0 +1,58 @@ +#!/bin/bash +# SPDX-license-identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2018 +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +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 KRD project..." +git clone https://git.onap.org/multicloud/k8s/ +cd k8s/vagrant/ +cat < inventory/hosts.ini +[all] +localhost + +[kube-master] +localhost + +[kube-node] +localhost + +[etcd] +localhost + +[ovn-central] +localhost + +[ovn-controller] +localhost + +[virtlet] +localhost + +[k8s-cluster:children] +kube-node +kube-master +EOL +sed -i '/andrewrothstein.kubectl/d' playbooks/configure-*.yml +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 + +echo "Deploying KRD project" +./installer.sh | tee krd_installer.log diff --git a/vagrant/installer.sh b/vagrant/installer.sh index b621afaa..860f63d6 100755 --- a/vagrant/installer.sh +++ b/vagrant/installer.sh @@ -158,7 +158,7 @@ function install_plugin { pushd $GOPATH/src/k8-plugin-multicloud/deployments ./build.sh - if [[ "${testing_enabled}" = "true" ]]; then + if [[ "${testing_enabled}" == "true" ]]; then docker-compose up -d pushd $krd_tests for functional_test in plugin plugin_edgex; do @@ -187,6 +187,16 @@ function _print_kubernetes_info { echo "Admin password: secret" >> $k8s_info_file } +if ! sudo -n "true"; then + echo "" + echo "passwordless sudo is needed for '$(id -nu)' user." + echo "Please fix your /etc/sudoers file. You likely want an" + echo "entry like the following one..." + echo "" + echo "$(id -nu) ALL=(ALL) NOPASSWD: ALL" + exit 1 +fi + if [[ -n "${KRD_DEBUG}" ]]; then set -o xtrace verbose="-vvv" @@ -200,7 +210,7 @@ krd_inventory=$krd_inventory_folder/hosts.ini krd_playbooks=$krd_folder/playbooks krd_tests=$krd_folder/tests k8s_info_file=$krd_folder/k8s_info.log -testing_enabled=${KRD_ENABLE_TESTS:-true} +testing_enabled=${KRD_ENABLE_TESTS:-false} mkdir -p $log_folder mkdir -p /opt/csar @@ -216,7 +226,7 @@ fi apt-get update install_k8s install_addons -if [[ "${KRD_PLUGIN_ENABLED:-true}" ]]; then +if [[ "${KRD_PLUGIN_ENABLED:-false}" ]]; then install_plugin fi _print_kubernetes_info -- cgit 1.2.3-korg