#!/bin/bash # Copyright 2017 The Openstack-Helm Authors. # # 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. set -xe : ${HELM_VERSION:="v2.11.0"} : ${KUBE_VERSION:="v1.12.2"} : ${MINIKUBE_VERSION:="v0.30.0"} : ${CALICO_VERSION:="v3.3"} export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true # NOTE: Clean Up hosts file sudo sed -i '/^127.0.0.1/c\127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4' /etc/hosts sudo sed -i '/^::1/c\::1 localhost6 localhost6.localdomain6' /etc/hosts # NOTE: Install required packages on host sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 460F3994 RELEASE_NAME=$(grep 'CODENAME' /etc/lsb-release | awk -F= '{print $2}') sudo add-apt-repository "deb https://download.ceph.com/debian-luminous/ ${RELEASE_NAME} main" sudo -E apt-get update sudo -E apt-get install -y \ docker.io \ socat \ jq \ util-linux \ ceph-common \ rbd-nbd \ nfs-common \ bridge-utils \ libxtables11 sudo -E tee /etc/modprobe.d/rbd.conf <&1) Restart=always ExecStart=/usr/local/bin/helm serve [Install] WantedBy=multi-user.target EOF sudo chmod 0640 /etc/systemd/system/helm-serve.service sudo systemctl restart helm-serve sudo systemctl daemon-reload sudo systemctl enable helm-serve # NOTE: Set up local helm repo helm repo add local http://localhost:8879/charts helm repo update uptime make # NOTE: Set required labels on host(s) kubectl label nodes --all openstack-control-plane=enabled kubectl label nodes --all openstack-compute-node=enabled kubectl label nodes --all openvswitch=enabled kubectl label nodes --all linuxbridge=enabled kubectl label nodes --all ceph-mon=enabled kubectl label nodes --all ceph-osd=enabled kubectl label nodes --all ceph-mds=enabled kubectl label nodes --all ceph-rgw=enabled kubectl label nodes --all ceph-mgr=enabled # NOTE: Setup resolv.conf to use the k8s api server, which is required for the # kubelet to resolve cluster services. sudo -E rm -rf /etc/resolv.conf sudo -E tee /etc/resolv.conf <