diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9aa1bda288..7987fac8e2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -102,7 +102,8 @@ jobs: push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} - - name: Docker test + + - name: Docker test with a dedicated OpenDJ container shell: bash run: | docker network create test-openam @@ -153,3 +154,153 @@ jobs: http://openam.example.org:8080/openam/json/authenticate | grep tokenId' docker inspect --format="{{json .State.Health.Status}}" test-openam | grep -q \"healthy\" + + echo "Stopping containers and removing the network" + docker stop test-opendj test-openam + docker network rm test-openam + + - name: Docker multi-server test + shell: bash + run: | + + docker network create test-openam + + echo "Starting OpenAM-1 container" + docker run --rm -it -d -h openam1.example.org --name=test-openam1 --network test-openam localhost:5000/${GITHUB_REPOSITORY,,}:${{ env.release_version }} + + echo "Waiting for OpenAM-1 to be alive..." + timeout 3m bash -c 'until docker inspect --format="{{json .State.Health.Status}}" test-openam1 | grep -q \"healthy\"; do sleep 10; done' + + docker exec -w '/usr/openam/ssoconfiguratortools' test-openam1 bash -c \ + 'echo "ACCEPT_LICENSES=true + SERVER_URL=http://openam1.example.org:8080 + DEPLOYMENT_URI=/$OPENAM_PATH + BASE_DIR=$OPENAM_DATA_DIR + locale=en_US + PLATFORM_LOCALE=en_US + AM_ENC_KEY=O6QWwHPO4os+zEz3Nqn/2daAYWyiFE32 + ADMIN_PWD=ampassword + AMLDAPUSERPASSWD=password + COOKIE_DOMAIN=example.org + ACCEPT_LICENSES=true + DATA_STORE=embedded + DIRECTORY_SSL=SIMPLE + DIRECTORY_SERVER=openam1.example.org + DIRECTORY_PORT=50389 + DIRECTORY_ADMIN_PORT=4444 + DIRECTORY_JMX_PORT=1689 + ROOT_SUFFIX=dc=openam,dc=example,dc=org + DS_DIRMGRDN=cn=Directory Manager + DS_DIRMGRPASSWD=password + LB_SITE_NAME=lb + LB_PRIMARY_URL=http://lb.example.org:80/openam + " > conf.file && java -jar openam-configurator-tool*.jar --file conf.file' + + docker exec test-openam1 bash -c \ + 'curl \ + --request POST \ + --header "Content-Type: application/json" \ + --header "X-OpenAM-Username: amadmin" \ + --header "X-OpenAM-Password: ampassword" \ + --data "{}" \ + http://openam1.example.org:8080/openam/json/authenticate | grep tokenId' + + docker inspect --format="{{json .State.Health.Status}}" test-openam1 | grep -q \"healthy\" + + echo "Add another two OpenAM servers to the cluster" + + echo "Starting OpenAM-2 container..." + docker run --rm -it -d -h openam2.example.org --name=test-openam2 --network test-openam localhost:5000/${GITHUB_REPOSITORY,,}:${{ env.release_version }} + + echo "waiting for OpenAM-2 to be alive..." + timeout 3m bash -c 'until docker inspect --format="{{json .State.Health.Status}}" test-openam2 | grep -q \"healthy\"; do sleep 10; done' + + docker exec -w '/usr/openam/ssoconfiguratortools' test-openam2 bash -c \ + 'echo "ACCEPT_LICENSES=true + SERVER_URL=http://openam2.example.org:8080 + DEPLOYMENT_URI=/$OPENAM_PATH + BASE_DIR=$OPENAM_DATA_DIR + locale=en_US + PLATFORM_LOCALE=en_US + AM_ENC_KEY=O6QWwHPO4os+zEz3Nqn/2daAYWyiFE32 + ADMIN_PWD=ampassword + AMLDAPUSERPASSWD=password + COOKIE_DOMAIN=example.org + ACCEPT_LICENSES=true + DATA_STORE=embedded + DIRECTORY_SSL=SIMPLE + DIRECTORY_SERVER=openam2.example.org + DIRECTORY_PORT=50389 + DIRECTORY_ADMIN_PORT=4444 + DIRECTORY_JMX_PORT=1689 + ROOT_SUFFIX=dc=openam,dc=example,dc=org + DS_DIRMGRDN=cn=Directory Manager + DS_DIRMGRPASSWD=password + DS_EMB_REPL_FLAG=embReplFlag + DS_EMB_REPL_REPLPORT1=8989 + DS_EMB_REPL_HOST2=openam1.example.com + DS_EMB_REPL_ADMINPORT2=4444 + DS_EMB_REPL_REPLPORT2=8989 + existingserverid=http://openam1.example.org:8080 + LB_SITE_NAME=lb + LB_PRIMARY_URL=http://lb.example.org:80/openam + " > conf.file && java -jar openam-configurator-tool*.jar --file conf.file' + + docker exec test-openam2 bash -c \ + 'curl \ + --request POST \ + --header "Content-Type: application/json" \ + --header "X-OpenAM-Username: amadmin" \ + --header "X-OpenAM-Password: ampassword" \ + --data "{}" \ + http://openam2.example.org:8080/openam/json/authenticate | grep tokenId' + + docker inspect --format="{{json .State.Health.Status}}" test-openam2 | grep -q \"healthy\" + + echo "Starting OpenAM-3 container..." + docker run --rm -it -d -h openam3.example.org --name=test-openam3 --network test-openam localhost:5000/${GITHUB_REPOSITORY,,}:${{ env.release_version }} + + echo "waiting for OpenAM-3 to be alive..." + timeout 3m bash -c 'until docker inspect --format="{{json .State.Health.Status}}" test-openam3 | grep -q \"healthy\"; do sleep 10; done' + + docker exec -w '/usr/openam/ssoconfiguratortools' test-openam2 bash -c \ + 'echo "ACCEPT_LICENSES=true + SERVER_URL=http://openam3.example.org:8080 + DEPLOYMENT_URI=/$OPENAM_PATH + BASE_DIR=$OPENAM_DATA_DIR + locale=en_US + PLATFORM_LOCALE=en_US + AM_ENC_KEY=O6QWwHPO4os+zEz3Nqn/2daAYWyiFE32 + ADMIN_PWD=ampassword + AMLDAPUSERPASSWD=password + COOKIE_DOMAIN=example.org + ACCEPT_LICENSES=true + DATA_STORE=embedded + DIRECTORY_SSL=SIMPLE + DIRECTORY_SERVER=openam3.example.org + DIRECTORY_PORT=50389 + DIRECTORY_ADMIN_PORT=4444 + DIRECTORY_JMX_PORT=1689 + ROOT_SUFFIX=dc=openam,dc=example,dc=org + DS_DIRMGRDN=cn=Directory Manager + DS_DIRMGRPASSWD=password + DS_EMB_REPL_FLAG=embReplFlag + DS_EMB_REPL_REPLPORT1=8989 + DS_EMB_REPL_HOST2=openam2.example.com + DS_EMB_REPL_ADMINPORT2=4444 + DS_EMB_REPL_REPLPORT2=9989 + existingserverid=http://openam2.example.org:8080 + LB_SITE_NAME=lb + LB_PRIMARY_URL=http://lb.example.org:80/openam + " > conf.file && java -jar openam-configurator-tool*.jar --file conf.file' + + docker exec test-openam3 bash -c \ + 'curl \ + --request POST \ + --header "Content-Type: application/json" \ + --header "X-OpenAM-Username: amadmin" \ + --header "X-OpenAM-Password: ampassword" \ + --data "{}" \ + http://openam3.example.org:8080/openam/json/authenticate | grep tokenId' + + docker inspect --format="{{json .State.Health.Status}}" test-openam3 | grep -q \"healthy\" diff --git a/pom.xml b/pom.xml index 5b3c5fdf50..0259b9fc55 100644 --- a/pom.xml +++ b/pom.xml @@ -79,7 +79,7 @@ 11 checkstyle/suppressions.xml - 5.0.2 + 5.0.3-SNAPSHOT 1.0.0 1.0b3 7.0.0