github.com/SUSE/skuba@v1.4.17/ci/infra/openstack/generate-cpi-conf.sh (about) 1 #!/bin/bash 2 #shellcheck disable=SC2145,SC2016 3 log() { (>&1 echo -e "$@") ; } 4 cmd() { log "[ CMD ] $@" ; } 5 info() { log "[ INFO ] $@" ; } 6 error() { (>&2 echo -e "[ ERROR ] $@") ;} 7 8 if [ -z "${OS_AUTH_URL}" ] || [ -z "${OS_USERNAME}" ] || \ 9 [ -z "${OS_PASSWORD}" ] || [ -z "${OS_PROJECT_ID}" ] || \ 10 [ -z "${OS_PRIVATE_SUBNET_ID}" ] || [ -z "${OS_PUBLIC_NET_ID}" ]; then 11 error '$OS_AUTH_URL $OS_USERNAME $OS_PASSWORD $OS_PROJECT_ID' 12 error '$OS_PRIVATE_SUBNET_ID $OS_PUBLIC_NET_ID must be specified' 13 error 'Please download and source your OpenStack RC file' 14 exit 1 15 fi 16 17 OPENSTACK_CONF="openstack.conf" 18 19 umask 077 20 21 cat << EOF > "${OPENSTACK_CONF}" 22 [Global] 23 auth-url="${OS_AUTH_URL}" 24 username="${OS_USERNAME}" 25 password="${OS_PASSWORD}" 26 tenant-id="${OS_PROJECT_ID}" 27 tenant-name="${OS_PROJECT_NAME}" 28 domain-id="${OS_USER_DOMAIN_ID}" 29 domain-name="${OS_USER_DOMAIN_NAME}" 30 region="${OS_REGION_NAME}" 31 ca-file="${CA_FILE}" 32 [LoadBalancer] 33 lb-version=v2 34 subnet-id="${OS_PRIVATE_SUBNET_ID}" 35 floating-network-id="${OS_PUBLIC_NET_ID}" 36 create-monitor=yes 37 monitor-delay=1m 38 monitor-timeout=30s 39 monitor-max-retries=3 40 [BlockStorage] 41 trust-device-path=false 42 bs-version=v2 43 ignore-volume-az=true 44 EOF 45 46 umask 022 47 48 [ -z "$OS_PROJECT_NAME" ] && sed -i '/^tenant-name=/d' "${OPENSTACK_CONF}" 49 [ -z "$OS_USER_DOMAIN_ID" ] && sed -i '/^domain-id=/d' "${OPENSTACK_CONF}" 50 [ -z "$OS_USER_DOMAIN_NAME" ] && sed -i '/^domain-name=/d' "${OPENSTACK_CONF}" 51 [ -z "$CA_FILE" ] && sed -i '/^ca-file=/d' "${OPENSTACK_CONF}" 52 53 if [ -z "${TR_STACK}" ] || [ -z "${TR_LB_IP}" ] || \ 54 [ -z "$TR_MASTER_IPS" ] || [ -z "$TR_WORKER_IPS" ] || \ 55 [ -z "${TR_USERNAME}" ]; then 56 error '$TR_STACK $TR_LB_IP $TR_MASTER_IPS $TR_WORKER_IPS must be specified' 57 exit 1 58 fi 59 60 info "### Run following commands to bootstrap skuba cluster:\\n" 61 cmd " skuba cluster init --control-plane ${TR_LB_IP} --cloud-provider openstack ${TR_STACK}-cluster" 62 cmd " mv openstack.conf ${TR_STACK}-cluster/cloud/openstack/openstack.conf" 63 cmd " cd ${TR_STACK}-cluster" 64 65 i=0 66 for MASTER in $TR_MASTER_IPS; do 67 if [ $i -eq "0" ]; then 68 cmd " skuba node bootstrap --target ${MASTER} --sudo --user ${TR_USERNAME} caasp-master-${TR_STACK}-0" 69 else 70 cmd " skuba node join --role master --target ${MASTER} --sudo --user ${TR_USERNAME} caasp-master-${TR_STACK}-${i}" 71 fi 72 ((++i)) 73 done 74 75 i=0 76 for WORKER in $TR_WORKER_IPS; do 77 cmd " skuba node join --role worker --target ${WORKER} --sudo --user ${TR_USERNAME} caasp-worker-${TR_STACK}-${i}" 78 ((++i)) 79 done