From 0ed35881347dc09ede49d1520f4870a326bf640e Mon Sep 17 00:00:00 2001 From: Bryan Sullivan Date: Mon, 4 Dec 2017 16:19:31 -0800 Subject: Add centos support JIRA: MODELS-2 Reverified ubuntu still works Change-Id: I388238b70306cd9c6989d11c09dddcf809d081a1 Signed-off-by: Bryan Sullivan --- tools/kubernetes/ceph-helm.sh | 93 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 84 insertions(+), 9 deletions(-) (limited to 'tools/kubernetes/ceph-helm.sh') diff --git a/tools/kubernetes/ceph-helm.sh b/tools/kubernetes/ceph-helm.sh index a1be588..084a4f7 100644 --- a/tools/kubernetes/ceph-helm.sh +++ b/tools/kubernetes/ceph-helm.sh @@ -37,21 +37,75 @@ function log() { echo "$f:$l ($(date)) $1" } +function make_ceph_setup() { + tee ~/ceph_setup.sh <<'EOG' +#!/bin/bash +# Basic server pre-reqs +dist=$(grep --m 1 ID /etc/os-release | awk -F '=' '{print $2}' | sed 's/"//g') +if [[ "$dist" == "ubuntu" ]]; then + sudo apt-get install -y ceph ceph-common +else + # per http://docs.ceph.com/docs/master/install/get-packages/ + sudo tee /etc/yum.repos.d/ceph.repo <<'EOF' +[ceph] +name=Ceph packages for $basearch +baseurl=https://download.ceph.com/rpm-luminous/el7/x86_64 +enabled=1 +priority=2 +gpgcheck=1 +gpgkey=https://download.ceph.com/keys/release.asc + +[ceph-noarch] +name=Ceph noarch packages +baseurl=https://download.ceph.com/rpm-luminous/el7/noarch +enabled=1 +priority=2 +gpgcheck=1 +gpgkey=https://download.ceph.com/keys/release.asc + +[ceph-source] +name=Ceph source packages +baseurl=https://download.ceph.com/rpm-luminous/el7/SRPMS +enabled=0 +priority=2 +gpgcheck=1 +gpgkey=https://download.ceph.com/keys/release.asc +EOF + # TODO: find out why package us unsigned and thus need --nogpgcheck + sudo rpm --import 'https://download.ceph.com/keys/release.asc' + sudo yum install --nogpgcheck -y ceph ceph-common +fi +EOG +} + function setup_ceph() { nodes=$1 private_net=$2 public_net=$3 dev=$4 - - log "Install ceph prerequisites" - sudo apt-get -y install ceph ceph-common + log "Install ceph and ceph-common" + make_ceph_setup + bash ~/ceph_setup.sh + # per https://github.com/att/netarbiter/tree/master/sds/ceph-docker/examples/helm log "Clone netarbiter" git clone https://github.com/att/netarbiter.git - cd netarbiter/sds/ceph-docker/examples/helm + + if [[ "$dist" != "ubuntu" ]]; then + log "Update ceph-helm chart to point to centos images" + sed -i -- 's~daemon: docker.io/knowpd~#daemon: docker.io/knowpd~' \ + netarbiter/sds/ceph-docker/examples/helm/ceph/values.yaml + sed -i -- 's~#daemon: docker.io/ceph~daemon: docker.io/ceph~' \ + netarbiter/sds/ceph-docker/examples/helm/ceph/values.yaml + sed -i -- 's~ceph_init: docker.io/knowpd~#ceph_init: docker.io/knowpd~' \ + netarbiter/sds/ceph-docker/examples/helm/ceph/values.yaml + sed -i -- 's~#ceph_init: docker.io/kollakube~ceph_init: docker.io/kollakube~' \ + netarbiter/sds/ceph-docker/examples/helm/ceph/values.yaml + fi log "Prepare a ceph namespace in your K8s cluster" + cd netarbiter/sds/ceph-docker/examples/helm ./prep-ceph-ns.sh log "Run ceph-mon, ceph-mgr, ceph-mon-check, and rbd-provisioner" @@ -93,24 +147,45 @@ EOF for node in $nodes; do log "install ceph, setup resolv.conf, zap disk for $node" - ssh -x -o StrictHostKeyChecking=no ubuntu@$node <