From 16aa6fd65aed2ea47bf7f91187a368a8a4cb7cab Mon Sep 17 00:00:00 2001 From: gberl002 Date: Tue, 1 Aug 2023 15:05:36 -0400 Subject: [PATCH 1/4] Adding ability to customize the image tag or default to latest Signed-off-by: gberl002 --- quickstart/docker/README.md | 3 +++ quickstart/docker/createLocalImage.sh | 2 +- quickstart/docker/pushLatestDocker.sh | 8 +++++++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/quickstart/docker/README.md b/quickstart/docker/README.md index 77516fb3e..b6ebbf772 100644 --- a/quickstart/docker/README.md +++ b/quickstart/docker/README.md @@ -15,17 +15,20 @@ First, decide what you are trying to do. Are you trying to: 1. copy the `ziti` CLI to `./ziti-bin`: `cp /path/to/ziti ./ziti-bin` 1. run the script `./createLocalImage.sh` which will create a `openziti/quickstart:latest` tag using the `ziti` CLI located in `./ziti-bin` + 1. Optionally, you may provide an argument for the image tag. `./createLocalImage.sh ` ## Build Docker Image for Docker-related Changes 1. change to this directory from checkout root: `cd quickstart/docker` 1. run the script `./createLocalImage.sh` which will create a `openziti/quickstart:latest` tag using the latest `ziti` [release from GitHub](https://github.com/openziti/ziti/releases/latest) + 1. Optionally, you may provide an argument for the image tag. `./createLocalImage.sh ` ## Build Docker Image with Specific ziti Version 1. change to this directory from checkout root: `cd quickstart/docker` 1. set `ZITI_VERSION_OVERRIDE` to desired version: `export ZITI_VERSION_OVERRIDE=v0.28.4` 1. run the script `./createLocalImage.sh` which will create a `openziti/quickstart:latest` tag using the specified version of `ziti` [from GitHub](https://github.com/openziti/ziti/releases/tag/v0.28.4) + 1. Optionally, you may provide an argument for the image tag. `./createLocalImage.sh ` ## ERROR: existing instance for "ziti-builder" When running the `./createLocalImage.sh` script, you might get this error: diff --git a/quickstart/docker/createLocalImage.sh b/quickstart/docker/createLocalImage.sh index e1170e45d..42fa9489b 100755 --- a/quickstart/docker/createLocalImage.sh +++ b/quickstart/docker/createLocalImage.sh @@ -17,4 +17,4 @@ else echo "" fi -$SCRIPT_DIR/pushLatestDocker.sh local \ No newline at end of file +$SCRIPT_DIR/pushLatestDocker.sh local "${1}" \ No newline at end of file diff --git a/quickstart/docker/pushLatestDocker.sh b/quickstart/docker/pushLatestDocker.sh index 5110ede0e..d93d1780b 100755 --- a/quickstart/docker/pushLatestDocker.sh +++ b/quickstart/docker/pushLatestDocker.sh @@ -15,6 +15,12 @@ if [ -z "${ZITI_VERSION}" ]; then exit 1 fi +IMAGE_TAG="${2-}" +if [ -z "${IMAGE_TAG}" ]; then + IMAGE_TAG="latest" + echo "image tag name was not provided, using default '${IMAGE_TAG}'" +fi + docker buildx create --use --name=ziti-builder if [ "local" == "${1}" ]; then @@ -28,5 +34,5 @@ fi docker buildx build ${_BUILDX_PLATFORM} "${SCRIPT_DIR}/image" \ --build-arg ZITI_VERSION_OVERRIDE="v${ZITI_VERSION}" \ --tag "openziti/quickstart:${ZITI_VERSION}" \ - --tag "openziti/quickstart:latest" \ + --tag "openziti/quickstart:${IMAGE_TAG}" \ ${_BUILDX_ACTION} \ No newline at end of file From 9c1c4ab3ef6ea242ff70a9f16f8e2e1588ea55a7 Mon Sep 17 00:00:00 2001 From: gberl002 Date: Tue, 1 Aug 2023 15:06:05 -0400 Subject: [PATCH 2/4] Fixing race condition with .env file in docker compose Signed-off-by: gberl002 --- quickstart/docker/docker-compose.yml | 26 +++++++++++++++++++------- quickstart/docker/image/run-router.sh | 8 +------- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/quickstart/docker/docker-compose.yml b/quickstart/docker/docker-compose.yml index 13d1f6797..9f0d705bf 100644 --- a/quickstart/docker/docker-compose.yml +++ b/quickstart/docker/docker-compose.yml @@ -2,6 +2,11 @@ version: '2.4' services: ziti-controller: image: "${ZITI_IMAGE}:${ZITI_VERSION}" + healthcheck: + test: curl -m 1 -s -k https://${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS:-ziti-edge-controller}:${ZITI_CTRL_EDGE_ADVERTISED_PORT:-1280}/edge/client/v1/version + interval: 1s + timeout: 3s + retries: 30 env_file: - ./.env ports: @@ -32,7 +37,8 @@ services: ziti-controller-init-container: image: "${ZITI_IMAGE}:${ZITI_VERSION}" depends_on: - - ziti-controller + ziti-controller: + condition: service_healthy environment: - ZITI_CTRL_EDGE_ADVERTISED_ADDRESS=${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS:-ziti-edge-controller} - ZITI_CTRL_EDGE_ADVERTISED_PORT=${ZITI_CTRL_EDGE_ADVERTISED_PORT:-1280} @@ -57,7 +63,8 @@ services: env_file: - ./.env depends_on: - - ziti-controller + ziti-controller: + condition: service_healthy ports: - ${ZITI_ROUTER_PORT:-3022}:${ZITI_ROUTER_PORT:-3022} - ${ZITI_ROUTER_LISTENER_BIND_PORT:-10080}:${ZITI_ROUTER_LISTENER_BIND_PORT:-10080} @@ -84,7 +91,8 @@ services: env_file: - ./.env depends_on: - - ziti-controller + ziti-controller: + condition: service_healthy ports: - ${ZITI_ROUTER_WSS_PORT:-3023}:${ZITI_ROUTER_WSS_PORT:-3023} - ${ZITI_ROUTER_LISTENER_BIND_PORT:-10081}:${ZITI_ROUTER_LISTENER_BIND_PORT:-10081} @@ -113,7 +121,8 @@ services: env_file: - ./.env depends_on: - - ziti-controller + ziti-controller: + condition: service_healthy environment: - ZITI_CTRL_ADVERTISED_ADDRESS=${ZITI_CTRL_ADVERTISED_ADDRESS:-ziti-controller} - ZITI_CTRL_ADVERTISED_PORT=${ZITI_CTRL_ADVERTISED_PORT:-6262} @@ -135,7 +144,8 @@ services: env_file: - ./.env depends_on: - - ziti-controller + ziti-controller: + condition: service_healthy environment: - ZITI_CTRL_ADVERTISED_ADDRESS=${ZITI_CTRL_ADVERTISED_ADDRESS:-ziti-controller} - ZITI_CTRL_ADVERTISED_PORT=${ZITI_CTRL_ADVERTISED_PORT:-6262} @@ -156,7 +166,8 @@ services: env_file: - ./.env depends_on: - - ziti-controller + ziti-controller: + condition: service_healthy environment: - ZITI_CTRL_ADVERTISED_ADDRESS=${ZITI_CTRL_ADVERTISED_ADDRESS:-ziti-controller} - ZITI_CTRL_ADVERTISED_PORT=${ZITI_CTRL_ADVERTISED_PORT:-6262} @@ -194,7 +205,8 @@ services: - ZITI_CTRL_NAME=${ZITI_CTRL_NAME:-ziti-edge-controller} - PORTTLS=8443 depends_on: - - ziti-controller + ziti-controller: + condition: service_healthy ports: - 8443:8443 volumes: diff --git a/quickstart/docker/image/run-router.sh b/quickstart/docker/image/run-router.sh index 2e72ab363..8b31cc83c 100755 --- a/quickstart/docker/image/run-router.sh +++ b/quickstart/docker/image/run-router.sh @@ -14,12 +14,6 @@ fi . ${ZITI_HOME}/ziti.env -# wait for the controller to come online -_wait_for_controller - -# after coming online, give the controller just a second to ramp up in case running via docker compose -sleep 1 - if [[ "${_ZITI_ROUTER_NAME}" != "" ]]; then export ZITI_ROUTER_NAME="${_ZITI_ROUTER_NAME}" echo "ZITI_ROUTER_NAME set to: ${ZITI_ROUTER_NAME}" @@ -48,7 +42,7 @@ if [ ! -f "${_UNIQUE_NAME}" ]; then createPrivateRouterConfig "${ZITI_ROUTER_NAME}" fi - found=$(ziti edge list edge-routers 'name = "'"${ZITI_ROUTER_NAME}"'"' | grep -c "${ZITI_ROUTER_NAME}") + found=$("${ZITI_BIN_DIR-}/ziti" edge list edge-routers 'name = "'"${ZITI_ROUTER_NAME}"'"' | grep -c "${ZITI_ROUTER_NAME}") if [[ found -gt 0 ]]; then echo "---------- Found existing edge-router ${ZITI_ROUTER_NAME}...." else From 40cd1ccb95e2ccf249476f874567833eec6abd26 Mon Sep 17 00:00:00 2001 From: gberl002 Date: Wed, 2 Aug 2023 10:34:35 -0400 Subject: [PATCH 3/4] Adding code back for non docker instances Signed-off-by: gberl002 --- quickstart/docker/image/run-router.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/quickstart/docker/image/run-router.sh b/quickstart/docker/image/run-router.sh index 8b31cc83c..87888a831 100755 --- a/quickstart/docker/image/run-router.sh +++ b/quickstart/docker/image/run-router.sh @@ -14,6 +14,12 @@ fi . ${ZITI_HOME}/ziti.env +# wait for the controller to come online +_wait_for_controller + +# after coming online, give the controller just a second to ramp up in case running via docker compose +sleep 1 + if [[ "${_ZITI_ROUTER_NAME}" != "" ]]; then export ZITI_ROUTER_NAME="${_ZITI_ROUTER_NAME}" echo "ZITI_ROUTER_NAME set to: ${ZITI_ROUTER_NAME}" From 964d425de9e49b4714d6460406bf18834149d259 Mon Sep 17 00:00:00 2001 From: gberl002 Date: Thu, 10 Aug 2023 14:00:11 -0400 Subject: [PATCH 4/4] Reverting the healthchecks, adding a wait-for-file routing instead Signed-off-by: gberl002 --- quickstart/docker/docker-compose.yml | 26 +++++++------------------- quickstart/docker/image/run-router.sh | 6 ++++++ 2 files changed, 13 insertions(+), 19 deletions(-) diff --git a/quickstart/docker/docker-compose.yml b/quickstart/docker/docker-compose.yml index 9f0d705bf..13d1f6797 100644 --- a/quickstart/docker/docker-compose.yml +++ b/quickstart/docker/docker-compose.yml @@ -2,11 +2,6 @@ version: '2.4' services: ziti-controller: image: "${ZITI_IMAGE}:${ZITI_VERSION}" - healthcheck: - test: curl -m 1 -s -k https://${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS:-ziti-edge-controller}:${ZITI_CTRL_EDGE_ADVERTISED_PORT:-1280}/edge/client/v1/version - interval: 1s - timeout: 3s - retries: 30 env_file: - ./.env ports: @@ -37,8 +32,7 @@ services: ziti-controller-init-container: image: "${ZITI_IMAGE}:${ZITI_VERSION}" depends_on: - ziti-controller: - condition: service_healthy + - ziti-controller environment: - ZITI_CTRL_EDGE_ADVERTISED_ADDRESS=${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS:-ziti-edge-controller} - ZITI_CTRL_EDGE_ADVERTISED_PORT=${ZITI_CTRL_EDGE_ADVERTISED_PORT:-1280} @@ -63,8 +57,7 @@ services: env_file: - ./.env depends_on: - ziti-controller: - condition: service_healthy + - ziti-controller ports: - ${ZITI_ROUTER_PORT:-3022}:${ZITI_ROUTER_PORT:-3022} - ${ZITI_ROUTER_LISTENER_BIND_PORT:-10080}:${ZITI_ROUTER_LISTENER_BIND_PORT:-10080} @@ -91,8 +84,7 @@ services: env_file: - ./.env depends_on: - ziti-controller: - condition: service_healthy + - ziti-controller ports: - ${ZITI_ROUTER_WSS_PORT:-3023}:${ZITI_ROUTER_WSS_PORT:-3023} - ${ZITI_ROUTER_LISTENER_BIND_PORT:-10081}:${ZITI_ROUTER_LISTENER_BIND_PORT:-10081} @@ -121,8 +113,7 @@ services: env_file: - ./.env depends_on: - ziti-controller: - condition: service_healthy + - ziti-controller environment: - ZITI_CTRL_ADVERTISED_ADDRESS=${ZITI_CTRL_ADVERTISED_ADDRESS:-ziti-controller} - ZITI_CTRL_ADVERTISED_PORT=${ZITI_CTRL_ADVERTISED_PORT:-6262} @@ -144,8 +135,7 @@ services: env_file: - ./.env depends_on: - ziti-controller: - condition: service_healthy + - ziti-controller environment: - ZITI_CTRL_ADVERTISED_ADDRESS=${ZITI_CTRL_ADVERTISED_ADDRESS:-ziti-controller} - ZITI_CTRL_ADVERTISED_PORT=${ZITI_CTRL_ADVERTISED_PORT:-6262} @@ -166,8 +156,7 @@ services: env_file: - ./.env depends_on: - ziti-controller: - condition: service_healthy + - ziti-controller environment: - ZITI_CTRL_ADVERTISED_ADDRESS=${ZITI_CTRL_ADVERTISED_ADDRESS:-ziti-controller} - ZITI_CTRL_ADVERTISED_PORT=${ZITI_CTRL_ADVERTISED_PORT:-6262} @@ -205,8 +194,7 @@ services: - ZITI_CTRL_NAME=${ZITI_CTRL_NAME:-ziti-edge-controller} - PORTTLS=8443 depends_on: - ziti-controller: - condition: service_healthy + - ziti-controller ports: - 8443:8443 volumes: diff --git a/quickstart/docker/image/run-router.sh b/quickstart/docker/image/run-router.sh index 87888a831..f38bfc664 100755 --- a/quickstart/docker/image/run-router.sh +++ b/quickstart/docker/image/run-router.sh @@ -12,6 +12,12 @@ if [[ "${ZITI_ROUTER_NAME-}" != "" ]]; then echo "_ZITI_ROUTER_NAME set to: ${_ZITI_ROUTER_NAME}" fi +# Wait until the file exists, then give one more second for the file to be completely written +until [ -f "${ZITI_HOME}/ziti.env" ] +do + sleep 1 +done +sleep 1 . ${ZITI_HOME}/ziti.env # wait for the controller to come online