From 2ea48ef37c121ffd9e2c5a78eb6f05d23c173798 Mon Sep 17 00:00:00 2001 From: gberl002 Date: Fri, 2 Dec 2022 15:46:18 -0500 Subject: [PATCH 1/2] Keep certain files in the container so they can be updated in docker-compose environments Closes #912 Signed-off-by: gberl002 --- quickstart/docker/docker-compose.yml | 16 ++++++++-------- quickstart/docker/image/Dockerfile | 9 ++++++--- quickstart/docker/simplified-docker-compose.yml | 8 ++++---- 3 files changed, 18 insertions(+), 15 deletions(-) diff --git a/quickstart/docker/docker-compose.yml b/quickstart/docker/docker-compose.yml index 635e05b00..75be2af1f 100644 --- a/quickstart/docker/docker-compose.yml +++ b/quickstart/docker/docker-compose.yml @@ -19,7 +19,7 @@ services: volumes: - ziti-fs:/openziti entrypoint: - - "/openziti/scripts/run-controller.sh" + - "/mutable-ziti/scripts/run-controller.sh" ziti-controller-init-container: image: "${ZITI_IMAGE}:${ZITI_VERSION}" @@ -40,9 +40,9 @@ services: volumes: - ziti-fs:/openziti entrypoint: - - "/openziti/scripts/run-with-ziti-cli.sh" + - "/mutable-ziti/scripts/run-with-ziti-cli.sh" command: - - "/openziti/scripts/access-control.sh" + - "/mutable-ziti/scripts/access-control.sh" ziti-edge-router: image: "${ZITI_IMAGE}:${ZITI_VERSION}" @@ -61,7 +61,7 @@ services: volumes: - ziti-fs:/openziti entrypoint: /bin/bash - command: "/openziti/scripts/run-router.sh edge" + command: "/mutable-ziti/scripts/run-router.sh edge" ziti-edge-router-wss: image: "${ZITI_IMAGE}:${ZITI_VERSION}" @@ -81,7 +81,7 @@ services: volumes: - ziti-fs:/openziti entrypoint: /bin/bash - command: "/openziti/scripts/run-router.sh wss" + command: "/mutable-ziti/scripts/run-router.sh wss" ziti-fabric-router-br: image: "${ZITI_IMAGE}:${ZITI_VERSION}" @@ -99,7 +99,7 @@ services: volumes: - ziti-fs:/openziti entrypoint: /bin/bash - command: "/openziti/scripts/run-router.sh fabric" + command: "/mutable-ziti/scripts/run-router.sh fabric" ziti-private-red: image: "${ZITI_IMAGE}:${ZITI_VERSION}" @@ -116,7 +116,7 @@ services: volumes: - ziti-fs:/openziti entrypoint: /bin/bash - command: "/openziti/scripts/run-router.sh private" + command: "/mutable-ziti/scripts/run-router.sh private" ziti-private-blue: image: "${ZITI_IMAGE}:${ZITI_VERSION}" @@ -133,7 +133,7 @@ services: volumes: - ziti-fs:/openziti entrypoint: /bin/bash - command: "/openziti/scripts/run-router.sh private" + command: "/mutable-ziti/scripts/run-router.sh private" web-test-blue: image: crccheck/hello-world diff --git a/quickstart/docker/image/Dockerfile b/quickstart/docker/image/Dockerfile index 609f6bd77..c48b173c9 100644 --- a/quickstart/docker/image/Dockerfile +++ b/quickstart/docker/image/Dockerfile @@ -6,17 +6,20 @@ RUN apt update && \ RUN useradd -ms /bin/bash ziti && \ mkdir /openziti && chown ziti:ziti /openziti && \ mkdir /openziti/scripts && chown ziti:ziti /openziti/scripts && \ - mkdir /openziti/shared && chown ziti:ziti /openziti/shared + mkdir /openziti/shared && chown ziti:ziti /openziti/shared && \ + mkdir /mutable-ziti && chown ziti:ziti /mutable-ziti USER ziti WORKDIR /openziti ENV ZITI_HOME=/openziti -ENV ZITI_BIN_DIR="${ZITI_HOME}/ziti-bin" ENV ZITI_SHARED="${ZITI_HOME}/shared" -ENV ZITI_SCRIPTS="${ZITI_HOME}/scripts" ENV ENV_FILE="${ZITI_HOME}/ziti.env" ENV ZITI_NETWORK=ziti +# Don't put these paths on volume shared in docker-compose deployment (https://github.com/openziti/ziti/issues/912) +ENV MUTABLE_HOME=/mutable-ziti +ENV ZITI_BIN_DIR="${MUTABLE_HOME}/ziti-bin" +ENV ZITI_SCRIPTS="${MUTABLE_HOME}/scripts" RUN mkdir -p "${ZITI_SCRIPTS}" diff --git a/quickstart/docker/simplified-docker-compose.yml b/quickstart/docker/simplified-docker-compose.yml index 183ebfce4..4c398a6d8 100644 --- a/quickstart/docker/simplified-docker-compose.yml +++ b/quickstart/docker/simplified-docker-compose.yml @@ -16,7 +16,7 @@ services: volumes: - ziti-fs:/openziti entrypoint: - - "/openziti/scripts/run-controller.sh" + - "/mutable-ziti/scripts/run-controller.sh" ziti-controller-init-container: image: "${ZITI_IMAGE}:${ZITI_VERSION}" @@ -37,9 +37,9 @@ services: volumes: - ziti-fs:/openziti entrypoint: - - "/openziti/scripts/run-with-ziti-cli.sh" + - "/mutable-ziti/scripts/run-with-ziti-cli.sh" command: - - "/openziti/scripts/access-control.sh" + - "/mutable-ziti/scripts/access-control.sh" ziti-edge-router: image: "${ZITI_IMAGE}:${ZITI_VERSION}" @@ -56,7 +56,7 @@ services: volumes: - ziti-fs:/openziti entrypoint: /bin/bash - command: "/openziti/scripts/run-router.sh edge" + command: "/mutable-ziti/scripts/run-router.sh edge" ziti-console: image: openziti/zac From 2c9e8b1b4ed551aca9bf06b769ad4480458bf5e0 Mon Sep 17 00:00:00 2001 From: gberl002 Date: Fri, 2 Dec 2022 22:33:34 -0500 Subject: [PATCH 2/2] Restructuring of directories in docker-compose environment Signed-off-by: gberl002 --- quickstart/README.md | 2 +- quickstart/docker/README.md | 2 +- .../docker/attach.container.to.compose.sh | 2 +- quickstart/docker/blue.nw.attach.sh | 2 +- quickstart/docker/buildLocalDev.sh | 2 +- quickstart/docker/docker-compose.yml | 36 +++++++++---------- quickstart/docker/image/Dockerfile | 19 ++++------ quickstart/docker/image/TestDockerfile | 19 +++++----- .../docker/image/dockerTestEntrypoint.sh | 2 +- quickstart/docker/image/run-controller.sh | 2 +- quickstart/docker/image/run-with-ziti-cli.sh | 12 +++---- quickstart/docker/red.nw.attach.sh | 2 +- .../docker/simplified-docker-compose.yml | 20 +++++------ quickstart/test/quickstart_test.go | 10 +++--- 14 files changed, 63 insertions(+), 69 deletions(-) diff --git a/quickstart/README.md b/quickstart/README.md index f3b528aa0..7e16850b3 100644 --- a/quickstart/README.md +++ b/quickstart/README.md @@ -41,7 +41,7 @@ the scripts in these folders before running them. ## Express By far the easiest way to establish an environment quickly is to simply run the express install script -found at [./quickstart/local/express/express-dev-env.sh](). +found at [./quickstart/docker/image/ziti-cli-functions.sh](). ### What It Does diff --git a/quickstart/docker/README.md b/quickstart/docker/README.md index a281b66b3..4cdee9c60 100644 --- a/quickstart/docker/README.md +++ b/quickstart/docker/README.md @@ -22,7 +22,7 @@ Build Docker Image For Publication 1. build the docker image: `docker build image -t openziti/quickstart` 1. exec into a container and make sure it's the version you expect: `docker run --rm -it openziti/quickstart ziti --version` 1. cleanup: `rm ziti-*tar.gz; rm -rf ziti-bin` -2. + Push Docker Image to dockerhub ------------------ 1. `source ./image/ziti-cli-functions.sh` diff --git a/quickstart/docker/attach.container.to.compose.sh b/quickstart/docker/attach.container.to.compose.sh index 869485d01..e7edd5034 100644 --- a/quickstart/docker/attach.container.to.compose.sh +++ b/quickstart/docker/attach.container.to.compose.sh @@ -1 +1 @@ -docker run -v docker_ziti-fs:/openziti --network docker_zitiblue --rm -it openziti/quickstart /bin/bash +docker run -v docker_ziti-fs:/persistent --network docker_zitiblue --rm -it openziti/quickstart /bin/bash diff --git a/quickstart/docker/blue.nw.attach.sh b/quickstart/docker/blue.nw.attach.sh index 49f34a3ad..d849014d8 100644 --- a/quickstart/docker/blue.nw.attach.sh +++ b/quickstart/docker/blue.nw.attach.sh @@ -1 +1 @@ -docker run --cap-add=NET_ADMIN --device /dev/net/tun --name ziti-tunneler-blue --user root --network docker_zitiblue -v docker_ziti-fs:/openziti --rm -it openziti/quickstart /bin/bash +docker run --cap-add=NET_ADMIN --device /dev/net/tun --name ziti-tunneler-blue --user root --network docker_zitiblue -v docker_ziti-fs:/persistent --rm -it openziti/quickstart /bin/bash diff --git a/quickstart/docker/buildLocalDev.sh b/quickstart/docker/buildLocalDev.sh index 5e709cf24..dbdcd55ba 100755 --- a/quickstart/docker/buildLocalDev.sh +++ b/quickstart/docker/buildLocalDev.sh @@ -54,7 +54,7 @@ if [ -d "${ZITI_DOCKER_ROOT}/image/ziti.ignore" ]; then rm -rf "${ZITI_DOCKER_ROOT}/image/ziti.ignore" fi -echo "Ziti Version: $(docker run --rm -it openziti/quickstart:dev /openziti/ziti-bin/ziti --version)" +echo "Ziti Version: $(docker run --rm -it openziti/quickstart:dev /var/openziti/ziti-bin/ziti --version)" vers="$(echo "${ZITI_BINARIES_VERSION}" | cut -c 2-100)" docker tag "openziti/quickstart:dev" "openziti/quickstart:dev" diff --git a/quickstart/docker/docker-compose.yml b/quickstart/docker/docker-compose.yml index 75be2af1f..681238f16 100644 --- a/quickstart/docker/docker-compose.yml +++ b/quickstart/docker/docker-compose.yml @@ -17,9 +17,9 @@ services: aliases: - ziti-edge-controller volumes: - - ziti-fs:/openziti + - ziti-fs:/persistent entrypoint: - - "/mutable-ziti/scripts/run-controller.sh" + - "/var/openziti/scripts/run-controller.sh" ziti-controller-init-container: image: "${ZITI_IMAGE}:${ZITI_VERSION}" @@ -38,11 +38,11 @@ services: aliases: - ziti-edge-controller-init-container volumes: - - ziti-fs:/openziti + - ziti-fs:/persistent entrypoint: - - "/mutable-ziti/scripts/run-with-ziti-cli.sh" + - "/var/openziti/scripts/run-with-ziti-cli.sh" command: - - "/mutable-ziti/scripts/access-control.sh" + - "/var/openziti/scripts/access-control.sh" ziti-edge-router: image: "${ZITI_IMAGE}:${ZITI_VERSION}" @@ -59,9 +59,9 @@ services: - zitiblue - zitired volumes: - - ziti-fs:/openziti + - ziti-fs:/persistent entrypoint: /bin/bash - command: "/mutable-ziti/scripts/run-router.sh edge" + command: "/var/openziti/scripts/run-router.sh edge" ziti-edge-router-wss: image: "${ZITI_IMAGE}:${ZITI_VERSION}" @@ -79,9 +79,9 @@ services: - zitiblue - zitired volumes: - - ziti-fs:/openziti + - ziti-fs:/persistent entrypoint: /bin/bash - command: "/mutable-ziti/scripts/run-router.sh wss" + command: "/var/openziti/scripts/run-router.sh wss" ziti-fabric-router-br: image: "${ZITI_IMAGE}:${ZITI_VERSION}" @@ -97,9 +97,9 @@ services: - zitiblue - zitired volumes: - - ziti-fs:/openziti + - ziti-fs:/persistent entrypoint: /bin/bash - command: "/mutable-ziti/scripts/run-router.sh fabric" + command: "/var/openziti/scripts/run-router.sh fabric" ziti-private-red: image: "${ZITI_IMAGE}:${ZITI_VERSION}" @@ -114,9 +114,9 @@ services: networks: - zitired volumes: - - ziti-fs:/openziti + - ziti-fs:/persistent entrypoint: /bin/bash - command: "/mutable-ziti/scripts/run-router.sh private" + command: "/var/openziti/scripts/run-router.sh private" ziti-private-blue: image: "${ZITI_IMAGE}:${ZITI_VERSION}" @@ -131,9 +131,9 @@ services: networks: - zitiblue volumes: - - ziti-fs:/openziti + - ziti-fs:/persistent entrypoint: /bin/bash - command: "/mutable-ziti/scripts/run-router.sh private" + command: "/var/openziti/scripts/run-router.sh private" web-test-blue: image: crccheck/hello-world @@ -149,14 +149,14 @@ services: ziti-console: image: openziti/zac environment: - - ZAC_SERVER_CERT_CHAIN=/openziti/pki/ziti-controller-intermediate/certs/ziti-controller-server.cert - - ZAC_SERVER_KEY=/openziti/pki/ziti-controller-intermediate/keys/ziti-controller-server.key + - ZAC_SERVER_CERT_CHAIN=/persistent/pki/ziti-controller-intermediate/certs/ziti-controller-server.cert + - ZAC_SERVER_KEY=/persistent/pki/ziti-controller-intermediate/keys/ziti-controller-server.key ports: - "1408:1408" - "8443:8443" working_dir: /usr/src/app volumes: - - ziti-fs:/openziti + - ziti-fs:/persistent networks: - zitiblue diff --git a/quickstart/docker/image/Dockerfile b/quickstart/docker/image/Dockerfile index c48b173c9..becee11b1 100644 --- a/quickstart/docker/image/Dockerfile +++ b/quickstart/docker/image/Dockerfile @@ -4,24 +4,19 @@ RUN apt update && \ apt install jq curl netcat-openbsd vim inetutils-ping net-tools lsof -y RUN useradd -ms /bin/bash ziti && \ - mkdir /openziti && chown ziti:ziti /openziti && \ - mkdir /openziti/scripts && chown ziti:ziti /openziti/scripts && \ - mkdir /openziti/shared && chown ziti:ziti /openziti/shared && \ - mkdir /mutable-ziti && chown ziti:ziti /mutable-ziti + mkdir /persistent && chown ziti:ziti /persistent && \ + mkdir /persistent/scripts && chown ziti:ziti /persistent/scripts USER ziti -WORKDIR /openziti +WORKDIR /persistent -ENV ZITI_HOME=/openziti +ENV ZITI_HOME=/persistent ENV ZITI_SHARED="${ZITI_HOME}/shared" ENV ENV_FILE="${ZITI_HOME}/ziti.env" ENV ZITI_NETWORK=ziti -# Don't put these paths on volume shared in docker-compose deployment (https://github.com/openziti/ziti/issues/912) -ENV MUTABLE_HOME=/mutable-ziti -ENV ZITI_BIN_DIR="${MUTABLE_HOME}/ziti-bin" -ENV ZITI_SCRIPTS="${MUTABLE_HOME}/scripts" - -RUN mkdir -p "${ZITI_SCRIPTS}" +# Don't put these paths on shared volume in docker-compose deployment (https://github.com/openziti/ziti/issues/912) +ENV ZITI_BIN_DIR=/var/openziti/ziti-bin +ENV ZITI_SCRIPTS=/var/openziti/scripts # copy the ziti binaries to a directory already on the path COPY --chown=ziti ziti.ignore "${ZITI_BIN_DIR}" diff --git a/quickstart/docker/image/TestDockerfile b/quickstart/docker/image/TestDockerfile index 1d67e0df3..bd8c0e787 100644 --- a/quickstart/docker/image/TestDockerfile +++ b/quickstart/docker/image/TestDockerfile @@ -4,20 +4,19 @@ RUN apt update && \ apt install jq curl vim psmisc -y RUN useradd -ms /bin/bash ziti && \ - mkdir /openziti && chown ziti:ziti /openziti && \ - mkdir /openziti/scripts && chown ziti:ziti /openziti/scripts && \ - mkdir /openziti/shared && chown ziti:ziti /openziti/shared + mkdir /persistent && chown ziti:ziti /persistent && \ + mkdir /persistent/scripts && chown ziti:ziti /persistent/scripts USER ziti -WORKDIR /openziti +WORKDIR /persistent -ENV ZITI_HOME=/openziti -ENV ZITI_BIN_DIR="${ZITI_HOME}/ziti-bin" -ENV ZITI_SCRIPTS="${ZITI_HOME}/scripts" +ENV ZITI_HOME=/persistent +ENV ZITI_SHARED="${ZITI_HOME}/shared" ENV ENV_FILE="${ZITI_HOME}/ziti.env" -ENV ZITI_NETWORK=localhost - -RUN mkdir -p "${ZITI_SCRIPTS}" +ENV ZITI_NETWORK=ziti +# Don't put these paths on shared volume in docker-compose deployment (https://github.com/openziti/ziti/issues/912) +ENV ZITI_BIN_DIR=/var/openziti/ziti-bin +ENV ZITI_SCRIPTS=/var/openziti/scripts COPY --chown=ziti ziti.ignore "${ZITI_BIN_DIR}" COPY --chown=ziti ziti-cli-functions.sh "${ZITI_SCRIPTS}/" diff --git a/quickstart/docker/image/dockerTestEntrypoint.sh b/quickstart/docker/image/dockerTestEntrypoint.sh index d11b11f59..3511f0fed 100755 --- a/quickstart/docker/image/dockerTestEntrypoint.sh +++ b/quickstart/docker/image/dockerTestEntrypoint.sh @@ -6,4 +6,4 @@ fi touch runonce source "${ZITI_SCRIPTS}/ziti-cli-functions.sh" -expressInstall "${ZITI_NETWORK}" \ No newline at end of file +expressInstall "localhost" \ No newline at end of file diff --git a/quickstart/docker/image/run-controller.sh b/quickstart/docker/image/run-controller.sh index 4c7933af1..21a0c34b3 100755 --- a/quickstart/docker/image/run-controller.sh +++ b/quickstart/docker/image/run-controller.sh @@ -1,6 +1,6 @@ #!/bin/bash -ziti_controller_cfg='/openziti/ziti-edge-controller.yaml' +ziti_controller_cfg="${ZITI_HOME}/ziti-edge-controller.yaml" export ZITI_CONTROLLER_RAWNAME=ziti-controller export ZITI_EDGE_CONTROLLER_RAWNAME=ziti-edge-controller diff --git a/quickstart/docker/image/run-with-ziti-cli.sh b/quickstart/docker/image/run-with-ziti-cli.sh index e231c9ee5..34cf0f0e1 100755 --- a/quickstart/docker/image/run-with-ziti-cli.sh +++ b/quickstart/docker/image/run-with-ziti-cli.sh @@ -15,15 +15,15 @@ if [[ ! -f $1 ]]; then fi # Should we execute? -initFile="/openziti/access-control.init" +initFile="${ZITI_HOME}/access-control.init" if [[ -f "${initFile}" ]]; then echo " " - echo "*****************************************************" - echo " docker-compose init file has been detected" - echo " the initialization of the docker-compose environment has already happened" - echo " if you wish to allow this volume to be re-initialized, delete the file" + echo "*****************************************************************" + echo " docker-compose init file has been detected, the initialization " + echo " of the docker-compose environment has already happened. If you " + echo " wish to allow this volume to be re-initialized, delete the file " echo " located at ${initFile}" - echo "*****************************************************" + echo "*****************************************************************" echo " " exit 0 fi diff --git a/quickstart/docker/red.nw.attach.sh b/quickstart/docker/red.nw.attach.sh index bdc82a7b0..d09f38521 100644 --- a/quickstart/docker/red.nw.attach.sh +++ b/quickstart/docker/red.nw.attach.sh @@ -1 +1 @@ -docker run --cap-add=NET_ADMIN --device /dev/net/tun --name ziti-tunneler-red --user root --network docker_zitired -v docker_ziti-fs:/openziti --rm -it openziti/quickstart /bin/bash +docker run --cap-add=NET_ADMIN --device /dev/net/tun --name ziti-tunneler-red --user root --network docker_zitired -v docker_ziti-fs:/persistent --rm -it openziti/quickstart /bin/bash diff --git a/quickstart/docker/simplified-docker-compose.yml b/quickstart/docker/simplified-docker-compose.yml index 4c398a6d8..94e0287e8 100644 --- a/quickstart/docker/simplified-docker-compose.yml +++ b/quickstart/docker/simplified-docker-compose.yml @@ -14,9 +14,9 @@ services: aliases: - ziti-edge-controller volumes: - - ziti-fs:/openziti + - ziti-fs:/persistent entrypoint: - - "/mutable-ziti/scripts/run-controller.sh" + - "/var/openziti/scripts/run-controller.sh" ziti-controller-init-container: image: "${ZITI_IMAGE}:${ZITI_VERSION}" @@ -35,11 +35,11 @@ services: aliases: - ziti-edge-controller-init-container volumes: - - ziti-fs:/openziti + - ziti-fs:/persistent entrypoint: - - "/mutable-ziti/scripts/run-with-ziti-cli.sh" + - "/var/openziti/scripts/run-with-ziti-cli.sh" command: - - "/mutable-ziti/scripts/access-control.sh" + - "/var/openziti/scripts/access-control.sh" ziti-edge-router: image: "${ZITI_IMAGE}:${ZITI_VERSION}" @@ -54,22 +54,22 @@ services: - zitiblue - zitired volumes: - - ziti-fs:/openziti + - ziti-fs:/persistent entrypoint: /bin/bash - command: "/mutable-ziti/scripts/run-router.sh edge" + command: "/var/openziti/scripts/run-router.sh edge" ziti-console: image: openziti/zac environment: - - ZAC_SERVER_CERT_CHAIN=/openziti/pki/ziti-controller-intermediate/certs/ziti-controller-server.cert - - ZAC_SERVER_KEY=/openziti/pki/ziti-controller-intermediate/keys/ziti-controller-server.key + - ZAC_SERVER_CERT_CHAIN=/persistent/pki/ziti-controller-intermediate/certs/ziti-controller-server.cert + - ZAC_SERVER_KEY=/persistent/pki/ziti-controller-intermediate/keys/ziti-controller-server.key depends_on: - ziti-controller ports: - "1408:1408" - "8443:8443" volumes: - - ziti-fs:/openziti + - ziti-fs:/persistent networks: - zitiblue diff --git a/quickstart/test/quickstart_test.go b/quickstart/test/quickstart_test.go index 05bf77b5b..887109b62 100644 --- a/quickstart/test/quickstart_test.go +++ b/quickstart/test/quickstart_test.go @@ -220,13 +220,13 @@ func TestQuickStartEnvFile(t *testing.T) { expectedValues := []string{ "export ZITI_EDGE_ROUTER_RAWNAME=\"localhost-edge-router\"", "export ZITI_EDGE_CONTROLLER_RAWNAME=\"localhost\"", - "export ZITI_HOME_OS_SPECIFIC=\"/openziti\"", - "export ZITI_HOME=\"/openziti\"", - "export ZITI_BIN_DIR=\"/openziti/ziti-bin\"", + "export ZITI_HOME_OS_SPECIFIC=\"/persistent\"", + "export ZITI_HOME=\"/persistent\"", + "export ZITI_BIN_DIR=\"/var/openziti/ziti-bin\"", "export ZITI_EDGE_CTRL_ADVERTISED=\"localhost:1280\"", "export ZITI_USER=\"admin\"", "export ZITI_PWD=\"admin\"", - "export ZITI_PKI_OS_SPECIFIC=\"/openziti/pki\"", + "export ZITI_PKI_OS_SPECIFIC=\"/persistent/pki\"", "export ZITI_EDGE_CONTROLLER_ROOTCA_NAME=\"localhost-root-ca\"", "export ZITI_EDGE_CONTROLLER_INTERMEDIATE_NAME=\"localhost-intermediate\"", } @@ -251,7 +251,7 @@ func TestQuickStartEnvFile(t *testing.T) { if err != nil { fmt.Printf("Error: %s\n", output) } - cpString := containerId + ":/openziti/localhost.env" + cpString := containerId + ":/persistent/localhost.env" cmd := exec.Command("docker", "cp", cpString, ".") err = cmd.Run() if err != nil {