updates to deploy testing and certbot commands

This commit is contained in:
2020-06-05 08:02:45 -04:00
parent 857bf699de
commit 7175a4fb2d
14 changed files with 132 additions and 41 deletions

View File

@@ -1,13 +1,15 @@
#!/usr/bin/env bash
set -e
#set -x
set -x
LETSENCRYPT_IMAGE=dkregistry.xai-corp.net:5000/xaicorp/acme-certbot
LETSENCRYPT_MOUNT=/opt/shared/letsencrypt-2-staging
CERT_NAME=xai-corp.net
export DOCKER_HOST=${DOCKER_HOST:-'dkhost:2376'}
export LETSENCRYPT_MOUNT
export LETSENCRYPT_IMAGE
export CERT_NAME
run() {
docker-compose \
@@ -22,10 +24,4 @@ run_help() {
}
while getopts h name
do
case $name in
h) run_help $@;;
*) run $@;;
esac
done
run $@

View File

@@ -1,9 +1,10 @@
#!/usr/bin/env bash
set -e
#set -x
set -x
LETSENCRYPT_IMAGE=dkregistry.xai-corp.net:5000/xaicorp/acme-certbot
LETSENCRYPT_MOUNT=/opt/shared/letsencrypt-2-staging
CERT_NAME=xai-corp.net
LOG=$(mktemp)
@@ -25,11 +26,12 @@ update() {
export DOCKER_HOST=${DOCKER_HOST:-'dkhost:2376'}
export LETSENCRYPT_MOUNT
export LETSENCRYPT_IMAGE
export CERT_NAME
# shellcheck disable=SC2086
docker-compose \
-f docker-compose.tools.yml \
run renew ${OPTIONS}
run --name sslproxy_renew renew ${OPTIONS}
}
function trap_exit() {
@@ -58,12 +60,12 @@ print_usage() {
######
ENVIRONMENT=dev
OPTIONS=''
OPTIONS="--cert-name ${CERT_NAME}"
while getopts de: name
do
case $name in
d)
OPTIONS="$OPTIONS --dryrun"
OPTIONS="$OPTIONS --dry-run"
;;
e)
if [ $OPTARG == 'prod' ]; then

View File

@@ -1,9 +1,9 @@
#!/usr/bin/env bash
set -e
set -x
#set -x
LOCAL_IMAGE=sslproxy
#TAG=2.2.${BUILD_NUMBER:-dev}
TAG=2.2.${BUILD_NUMBER:-dev}
TAG=2.1
REMOTE_IMAGE=dkregistry.xai-corp.net:5000/${LOCAL_IMAGE}:${TAG}
APP_NAME=sslproxy_app
@@ -18,19 +18,40 @@ export DOCKER_HOST=${DOCKER_HOST:-'dkhost:2376'}
###
function deploy() {
docker pull "$REMOTE_IMAGE"
docker stack deploy \
--with-registry-auth \
--prune \
-c docker-compose.prod.yml \
sslproxy
(cd ../ && chmod +x ./scaleout.sh && ./scaleout.sh sslproxy_app 30)
docker stack ps sslproxy
sleep 2
docker service ps --filter "desired-state=Running" sslproxy_app
wait_for_completed
}
wait_for_completed() {
#states supported: "rollback_completed", "updating", "completed"
state=$(docker service inspect sslproxy_app | jq -r .[0].UpdateStatus.State)
while [ "completed" != "$state" ]; do
echo "$state"
sleep 3
state=$(docker service inspect sslproxy_app | jq -r .[0].UpdateStatus.State)
done
}
function deploy_test() {
docker ps | grep sslproxy_app
curl -If https://git.xai-corp.net/
# assertOK https abcapi.xai-corp.net
assertOK https dkui.xai-corp.net
assertOK https git.xai-corp.net
assertOK https jenkins.xai-corp.net
assertOK https xaibox.xai-corp.net
# curl -If https://git.xai-corp.net/
# curl -If -H "Host: not.xai-corp.net" https://dkhost
}
@@ -48,11 +69,21 @@ dc() {
$@
}
function assertOK() {
proto=$1
domain=$2
set -e
echo -e "\033[94m${proto}://${domain}\033[39m"
curl --no-progress-meter -IskH "Host: ${domain}" "${proto}://dkhost.xai-corp.net" \
| tee "$LOG" | grep -P "200 OK|302 Found|403 Forbidden"
}
function trap_exit() {
code=$?
docker service ls | grep "${APP_NAME}"
if [ $code -gt 0 ]; then
echo
cat "$LOG"
rm "$LOG"
echo -e "\033[31mFailed to deploy ${REMOTE_IMAGE} \033[39m"
exit $code

View File

@@ -3,5 +3,9 @@ set -e
export DOCKER_HOST=${DOCKER_HOST:-'dkhost:2376'}
docker exec $@
#docker exec $@
#docker network inspect ingress
#docker service $@
docker $@

View File

@@ -18,12 +18,26 @@ export DOCKER_HOST=${DOCKER_HOST:-'dkhost:2376'}
###
function rollback() {
docker service inspect ${APP_NAME}
# docker service inspect ${APP_NAME}
docker service update --rollback "${APP_NAME}"
docker service scale "${APP_NAME}=2"
wait_for_completed
# docker service scale "${APP_NAME}=2"
}
wait_for_completed() {
#states supported: "rollback_completed", "updating", "completed"
state=$(docker service inspect sslproxy_app | jq -r .[0].UpdateStatus.State)
while [ "rollback_completed" != "$state" ]; do
echo "$state"
sleep 3
state=$(docker service inspect sslproxy_app | jq -r .[0].UpdateStatus.State)
done
}
function rollback_test() {
docker service ps --filter "desired-state=Running" sslproxy_app
docker ps | grep "${APP_NAME}"
curl -If https://git.xai-corp.net/