
This ps makes following changes to upgrade kubernetes from v1.17.3 to v1.18.6. - Updated all references to k8s images to 1.18.6 - Updated command options and api object and versions based on k8s 1.18 release notes: https://kubernetes.io/docs/setup/release/notes/ - Uplifted uwsgi to 2.0.19.1 to align with other airship components, and to bring in fixes and improvements. - Added build-essentials and python3-dev packages to pass the zull gate, which was looking for a c compiler. Change-Id: I1160d1e6e2f02a0524043641b9296ea39edb301e
85 lines
2.5 KiB
Bash
Executable File
85 lines
2.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -eux
|
|
|
|
IMAGE_PROMENADE=${IMAGE_PROMENADE:-quay.io/airshipit/promenade:master}
|
|
IMAGE_HYPERKUBE=${IMAGE_HYPERKUBE:-gcr.io/google_containers/hyperkube-amd64:v1.18.6}
|
|
PROMENADE_DEBUG=${PROMENADE_DEBUG:-0}
|
|
|
|
SCRIPT_DIR=$(realpath $(dirname $0))
|
|
CONFIG_SOURCE=$(realpath ${1:-${SCRIPT_DIR}/../examples/basic})
|
|
BUILD_DIR=$(realpath ${2:-${SCRIPT_DIR}/../build})
|
|
REPLACE=${3:-false}
|
|
HOSTNAME=$(hostname)
|
|
HOST_IFACE=$(ip route | grep "^default" | head -1 | awk '{ print $5 }')
|
|
# If not provided, interface is set to HOST_IFACE by default
|
|
INTERFACE=${4:-$HOST_IFACE}
|
|
# If not provided, it takes a guess at the host IP Address
|
|
HOSTIP=${5:-$(hostname -I | cut -d' ' -f 1)}
|
|
# Ceph CIDR provide like 10.0.0.0\\\/24
|
|
HOSTCIDR=${6:-"$(hostname -I | cut -d'.' -f 1,2,3).0\/24"}
|
|
|
|
|
|
echo === Cleaning up old data ===
|
|
rm -rf ${BUILD_DIR}
|
|
mkdir -p ${BUILD_DIR}
|
|
chmod 777 ${BUILD_DIR}
|
|
|
|
PROMENADE_TMP_LOCAL="$(basename "$PROMENADE_TMP_LOCAL")"
|
|
PROMENADE_TMP="${SCRIPT_DIR}/${PROMENADE_TMP_LOCAL}"
|
|
mkdir -p "$PROMENADE_TMP"
|
|
chmod 777 "$PROMENADE_TMP"
|
|
|
|
cp "${CONFIG_SOURCE}"/*.yaml ${BUILD_DIR}
|
|
|
|
if [ ${REPLACE} == 'replace' ]
|
|
then
|
|
sed -i "s/-n0/-${HOSTNAME}/g" "${BUILD_DIR}"/*.yaml
|
|
sed -i "s/- n0/- ${HOSTNAME}/g" "${BUILD_DIR}"/*.yaml
|
|
sed -i "s/: n0/: ${HOSTNAME}/g" "${BUILD_DIR}"/*.yaml
|
|
sed -i "s/:n0/:${HOSTNAME}/g" "${BUILD_DIR}"/*.yaml
|
|
sed -i "s/192.168.77.10/${HOSTIP}/g" "${BUILD_DIR}"/*.yaml
|
|
sed -i "s/192.168.77.0\/24/${HOSTCIDR}/g" "${BUILD_DIR}"/*.yaml
|
|
sed -i "s/=ens3/=${INTERFACE}/g" "${BUILD_DIR}"/*.yaml
|
|
fi
|
|
|
|
if [[ -z $1 ]] || [[ $1 = generate-certs ]]; then
|
|
echo === Generating updated certificates ===
|
|
docker run --rm -t \
|
|
-w /target \
|
|
-e PROMENADE_DEBUG=$PROMENADE_DEBUG \
|
|
-v ${BUILD_DIR}:/target \
|
|
${IMAGE_PROMENADE} \
|
|
promenade \
|
|
generate-certs \
|
|
-o /target \
|
|
$(ls ${BUILD_DIR})
|
|
fi
|
|
|
|
if [[ -z $1 ]] || [[ $1 = build-all ]]; then
|
|
echo === Prepare hyperkube ===
|
|
docker run --rm -t \
|
|
-v "${PROMENADE_TMP}:/tmp/${PROMENADE_TMP_LOCAL}" \
|
|
--entrypoint 'cp' \
|
|
"${IMAGE_HYPERKUBE}" \
|
|
/hyperkube "/tmp/${PROMENADE_TMP_LOCAL}"
|
|
|
|
echo === Building bootstrap scripts ===
|
|
docker run --rm -t \
|
|
-w /target \
|
|
-e PROMENADE_DEBUG=$PROMENADE_DEBUG \
|
|
-e http_proxy=${HTTP_PROXY} \
|
|
-e https_proxy=${HTTPS_PROXY} \
|
|
-e no_proxy=${NO_PROXY} \
|
|
-v "${PROMENADE_TMP}:/tmp/${PROMENADE_TMP_LOCAL}" \
|
|
-v ${BUILD_DIR}:/target \
|
|
${IMAGE_PROMENADE} \
|
|
promenade \
|
|
build-all \
|
|
-o /target \
|
|
--validators \
|
|
$(ls ${BUILD_DIR})
|
|
fi
|
|
|
|
echo === Done ===
|