Update complete example to reflect recent changes

* Adds retries to parts of the teardown script.
* Caches tar_urls from Promenade config.

Change-Id: I009eff2479cf486d03bececc975aba6c08b9a8f6
This commit is contained in:
Mark Burnett 2018-02-09 13:46:13 -06:00
parent e9f8035c60
commit 9e0ab1871a
8 changed files with 96 additions and 15 deletions

View File

@ -1127,7 +1127,10 @@ data:
- release_group: armada-ucp
values:
labels:
jobs:
job:
node_selector_key: ucp-control-plane
node_selector_value: enabled
provisioner:
node_selector_key: ucp-control-plane
node_selector_value: enabled
endpoints:
@ -1216,7 +1219,7 @@ data:
ks_service: docker.io/kolla/ubuntu-source-heat-engine:3.0.3
ks_user: docker.io/kolla/ubuntu-source-heat-engine:3.0.3
labels:
jobs:
job:
node_selector_key: ucp-control-plane
node_selector_value: enabled
endpoints:
@ -1271,8 +1274,9 @@ data:
dep_check: quay.io/stackanetes/kubernetes-entrypoint:v0.2.1
mariadb: docker.io/mariadb:10.1.23
labels:
node_selector_key: ucp-control-plane
node_selector_value: enabled
server:
node_selector_key: ucp-control-plane
node_selector_value: enabled
pod:
replicas:
server: 1
@ -1432,6 +1436,12 @@ data:
upgrade:
no_hooks: false
values:
endpoints:
maas_db:
auth:
admin:
username: postgres
password: sergtsop
images:
tags:
bootstrap: sthussey/maas-region-controller:2.3
@ -1515,8 +1525,12 @@ data:
replicas:
server: 1
labels:
node_selector_key: ucp-control-plane
node_selector_value: enabled
server:
node_selector_key: ucp-control-plane
node_selector_value: enabled
prometheus_rabbitmq_exporter:
node_selector_key: ucp-control-plane
node_selector_value: enabled
source:
type: git
location: https://git.openstack.org/openstack/openstack-helm
@ -1550,6 +1564,9 @@ data:
replicas:
api: 1
labels:
job:
node_selector_key: ucp-control-plane
node_selector_value: enabled
node_selector_key: ucp-control-plane
node_selector_value: enabled
images:
@ -1657,6 +1674,12 @@ data:
upgrade:
no_hooks: false
values:
endpoints:
postgresql:
auth:
admin:
username: postgres
password: sergtsop
images:
tags:
deckhand: quay.io/attcomdev/deckhand:latest
@ -1720,6 +1743,11 @@ data:
enabled: true
port: 31000
endpoints:
postgresql:
auth:
admin:
username: postgres
password: sergtsop
physicalprovisioner:
port:
api:
@ -1835,6 +1863,17 @@ data:
upgrade:
no_hooks: false
values:
endpoints:
postgresql_airflow_db:
auth:
admin:
username: postgres
password: sergtsop
postgresql_shipyard_db:
auth:
admin:
username: postgres
password: sergtsop
prod_environment: true
images:
tags:
@ -1842,7 +1881,7 @@ data:
shipyard: quay.io/attcomdev/shipyard:latest
dep_check: quay.io/stackanetes/kubernetes-entrypoint:v0.2.1
shipyard_db_init: docker.io/postgres:9.5
shipyard_db_sync: docker.io/postgres:9.5
shipyard_db_sync: quay.io/attcomdev/shipyard:latest
airflow_db_init: docker.io/postgres:9.5
airflow_db_sync: quay.io/attcomdev/airflow:latest
ks_user: docker.io/kolla/ubuntu-source-heat-engine:3.0.3

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
{% include "header.sh" with context %}
{% set hostname = config.get_first('Genesis:hostname', 'KubernetesNode:hostname') -%}
@ -12,7 +12,29 @@ fi
# Evict pods
kubectl drain --force --timeout 3600s --grace-period 1800 --ignore-daemonsets --delete-local-data {{ hostname }} || true
kubectl label node {{ hostname }} $(kubectl get node {{ hostname }} -o 'jsonpath={.metadata.labels}' | sed 's/map\[//' | sed 's/\]//' | tr ' ' '\n' | sed 's/:.*/-/g' | grep -v 'kubernetes.io')
LABELS=()
for attempt in $(seq 5); do
LABELS=($(kubectl get node {{ hostname }} -o 'jsonpath={.metadata.labels}' | sed 's/map\[//' | sed 's/\]//' | tr ' ' '\n' | sed 's/:.*/-/g' | grep -v 'kubernetes.io'))
if [[ ! -z "${LABELS[@]}" ]]; then
log "Got labels for host."
break
fi
log "Didn't get labels for host, retrying.."
sleep 5
done
if [[ -z "${LABELS[@]}" ]]; then
log "Failed to get labels for host. Aborting teardown."
exit 1
fi
for attempt in $(seq 5); do
if kubectl label node {{ hostname }} "${LABELS[@]}"; then
break
fi
log "Failed to remove labels from node, retrying.."
sleep 5
done
sleep 30

View File

@ -1,6 +1,9 @@
export TEMP_DIR=${TEMP_DIR:-$(mktemp -d)}
export BASE_IMAGE_SIZE=${BASE_IMAGE_SIZE:-68719476736}
export BASE_IMAGE_URL=${BASE_IMAGE_URL:-https://cloud-images.ubuntu.com/releases/16.04/release/ubuntu-16.04-server-cloudimg-amd64-disk1.img}
export IMAGE_PROMENADE=${IMAGE_PROMENADE:-quay.io/attcomdev/promenade:latest}
export NGINX_DIR="${TEMP_DIR}/nginx"
export NGINX_URL="http://192.168.77.1:7777"
export PROMENADE_DEBUG=${PROMENADE_DEBUG:-0}
export REGISTRY_DATA_DIR=${REGISTRY_DATA_DIR:-/mnt/registry}
export VIRSH_POOL=${VIRSH_POOL:-promenade}

View File

@ -8,7 +8,7 @@ nginx_down() {
nginx_up() {
log Starting nginx server to serve configuration files
mkdir -p "${TEMP_DIR}/nginx"
mkdir -p "${NGINX_DIR}"
docker run -d \
-p 7777:80 \
--restart=always \
@ -16,3 +16,19 @@ nginx_up() {
-v "${TEMP_DIR}/nginx:/usr/share/nginx/html:ro" \
nginx:stable &>> "${LOG_FILE}"
}
nginx_cache_and_replace_tar_urls() {
log "Finding tar_url options to cache.."
TAR_NUM=0
for file in "$@"; do
grep -Po "^ +tar_url: \K.+$" "${file}" | while read tar_url ; do
# NOTE(mark-burnet): Does not yet ignore repeated files.
log "Caching ${tar_url} in file: ${file}"
DEST_PATH="${NGINX_DIR}/cached-tar-${TAR_NUM}.tgz"
REPLACEMENT_URL="${NGINX_URL}/cached-tar-${TAR_NUM}.tgz"
curl -Lo "${DEST_PATH}" "${tar_url}"
sed -i "s;${tar_url};${REPLACEMENT_URL};" "${file}"
TAR_NUM=$((TAR_NUM + 1))
done
done
}

View File

@ -20,5 +20,5 @@ docker run --rm -t \
-o scripts \
config/*.yaml
mkdir -p "${TEMP_DIR}/nginx/"
mkdir -p "${NGINX_DIR}"
cat "${TEMP_DIR}"/config/*.yaml > "${TEMP_DIR}/nginx/promenade.yaml"

View File

@ -14,6 +14,8 @@ for source_dir in $(config_configuration); do
cat "${WORKSPACE}/${source_dir}"/*.yaml >> "${OUTPUT_FILE}"
done
log "Setting up local caches.."
nginx_cache_and_replace_tar_urls "${OUTPUT_DIR}"/*.yaml
registry_replace_references "${OUTPUT_DIR}"/*.yaml
FILES=($(ls "${OUTPUT_DIR}"))

View File

@ -66,7 +66,7 @@ render_curl_url() {
if [[ ${USE_DECKHAND} == 1 ]]; then
DESIGN_REF="design_ref=deckhand%2Bhttp://deckhand-int.ucp.svc.cluster.local:9000/api/v1.0/revisions/${DECKHAND_REVISION}/rendered-documents"
else
DESIGN_REF="design_ref=http://192.168.77.1:7777/promenade.yaml"
DESIGN_REF="design_ref=${NGINX_URL}/promenade.yaml"
fi
HOST_PARAMS="hostname=${NAME}&ip=$(config_vm_ip "${NAME}")"

View File

@ -5,8 +5,6 @@ set -e
SCRIPT_DIR=$(realpath "$(dirname "${0}")")
WORKSPACE=$(realpath "${SCRIPT_DIR}/..")
GATE_UTILS=${WORKSPACE}/tools/g2/lib/all.sh
TEMP_DIR=${TEMP_DIR:-$(mktemp -d)}
chmod -R 755 "${TEMP_DIR}"
GATE_COLOR=${GATE_COLOR:-1}
@ -16,11 +14,12 @@ GATE_MANIFEST=${WORKSPACE}/tools/g2/manifests/${MANIFEST_ARG}.json
export GATE_COLOR
export GATE_MANIFEST
export GATE_UTILS
export TEMP_DIR
export WORKSPACE
source "${GATE_UTILS}"
chmod -R 755 "${TEMP_DIR}"
STAGES_DIR=${WORKSPACE}/tools/g2/stages
log_temp_dir "${TEMP_DIR}"