From 04adee060f237c0353ffbbd12172e9dc2e8b1dec Mon Sep 17 00:00:00 2001 From: Andrew Azores <aazores@redhat.com> Date: Mon, 22 Apr 2024 22:39:50 -0400 Subject: [PATCH 01/13] add minecraft server sample app --- compose/sample-apps.yml | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/compose/sample-apps.yml b/compose/sample-apps.yml index f103e7984..dbd3f5f61 100644 --- a/compose/sample-apps.yml +++ b/compose/sample-apps.yml @@ -139,4 +139,22 @@ services: retries: 3 start_period: 30s timeout: 5s - + minecraft-server: + depends_on: + cryostat: + condition: service_healthy + image: ${MINECRAFT_TEST_IMAGE:-localhost/minecraft-server:latest} + hostname: minecraft + ports: + - "7091" + - "9494" + environment: + CRYOSTAT_AGENT_APP_NAME: minecraft + CRYOSTAT_AGENT_WEBSERVER_HOST: minecraft + CRYOSTAT_AGENT_WEBSERVER_PORT: 9494 + CRYOSTAT_AGENT_CALLBACK: http://minecraft:9494/ + CRYOSTAT_AGENT_BASEURI: http://${CRYOSTAT_HTTP_HOST}:8080/ + CRYOSTAT_AGENT_BASEURI_RANGE: public + CRYOSTAT_AGENT_SSL_TRUST_ALL: "true" + CRYOSTAT_AGENT_SSL_VERIFY_HOSTNAME: "false" + CRYOSTAT_AGENT_AUTHORIZATION: Basic dXNlcjpwYXNz # "Basic $(echo -n user:pass | base64)" From 8b54e2061564f8361331621941a9f7416c5ac39d Mon Sep 17 00:00:00 2001 From: Andrew Azores <aazores@redhat.com> Date: Mon, 22 Apr 2024 23:15:28 -0400 Subject: [PATCH 02/13] add minecraft server containerfile for automatic local build --- compose/Containerfile.minecraft | 24 ++++++++++++++++++++++++ compose/sample-apps-extras.yml | 24 ++++++++++++++++++++++++ compose/sample-apps.yml | 19 ------------------- smoketest.bash | 6 +++++- 4 files changed, 53 insertions(+), 20 deletions(-) create mode 100644 compose/Containerfile.minecraft create mode 100644 compose/sample-apps-extras.yml diff --git a/compose/Containerfile.minecraft b/compose/Containerfile.minecraft new file mode 100644 index 000000000..d9f53e4cf --- /dev/null +++ b/compose/Containerfile.minecraft @@ -0,0 +1,24 @@ +ARG CRYOSTAT_AGENT_VERSION=0.4.0-SNAPSHOT + +FROM registry.access.redhat.com/ubi8/openjdk-17:latest AS agentloader +ARG CRYOSTAT_AGENT_VERSION +USER 0 +RUN mkdir -p /opt/cryostat && \ + mvn dependency:get -Dartifact="io.cryostat:cryostat-agent:${CRYOSTAT_AGENT_VERSION}:jar:shaded" && \ + mvn dependency:copy -Dartifact="io.cryostat:cryostat-agent:${CRYOSTAT_AGENT_VERSION}:jar:shaded" -DoutputDirectory=/opt/cryostat \ + || true +RUN if [ ! -f "/opt/cryostat/cryostat-agent-${CRYOSTAT_AGENT_VERSION}-shaded.jar" ]; then \ + microdnf install git; \ + git clone https://github.com/cryostatio/cryostat-agent; \ + cd cryostat-agent; \ + mvn -DskipTests package; \ + cp "target/cryostat-agent-${CRYOSTAT_AGENT_VERSION}-shaded.jar" /opt/cryostat/; \ + fi + +FROM docker.io/itzg/minecraft-server:java17-jdk +ARG CRYOSTAT_AGENT_VERSION +RUN mkdir -p /opt/cryostat +COPY --from=agentloader /opt/cryostat/cryostat-agent-${CRYOSTAT_AGENT_VERSION}-shaded.jar /opt/cryostat/agent.jar +ENV EULA=true \ + ENABLE_JMX=true \ + JVM_OPTS="-javaagent:/opt/cryostat/agent.jar" diff --git a/compose/sample-apps-extras.yml b/compose/sample-apps-extras.yml new file mode 100644 index 000000000..7d1bbadf0 --- /dev/null +++ b/compose/sample-apps-extras.yml @@ -0,0 +1,24 @@ +version: "3" +services: + minecraft-server: + depends_on: + cryostat: + condition: service_healthy + image: ${MINECRAFT_TEST_IMAGE:-localhost/minecraft-server:latest} + build: + context: . + dockerfile: ./Containerfile.minecraft + hostname: minecraft + ports: + - "7091" + - "9494" + environment: + CRYOSTAT_AGENT_APP_NAME: minecraft + CRYOSTAT_AGENT_WEBSERVER_HOST: minecraft + CRYOSTAT_AGENT_WEBSERVER_PORT: 9494 + CRYOSTAT_AGENT_CALLBACK: http://minecraft:9494/ + CRYOSTAT_AGENT_BASEURI: http://${CRYOSTAT_HTTP_HOST}:8080/ + CRYOSTAT_AGENT_BASEURI_RANGE: public + CRYOSTAT_AGENT_SSL_TRUST_ALL: "true" + CRYOSTAT_AGENT_SSL_VERIFY_HOSTNAME: "false" + CRYOSTAT_AGENT_AUTHORIZATION: Basic dXNlcjpwYXNz # "Basic $(echo -n user:pass | base64)" diff --git a/compose/sample-apps.yml b/compose/sample-apps.yml index dbd3f5f61..1bc64a933 100644 --- a/compose/sample-apps.yml +++ b/compose/sample-apps.yml @@ -139,22 +139,3 @@ services: retries: 3 start_period: 30s timeout: 5s - minecraft-server: - depends_on: - cryostat: - condition: service_healthy - image: ${MINECRAFT_TEST_IMAGE:-localhost/minecraft-server:latest} - hostname: minecraft - ports: - - "7091" - - "9494" - environment: - CRYOSTAT_AGENT_APP_NAME: minecraft - CRYOSTAT_AGENT_WEBSERVER_HOST: minecraft - CRYOSTAT_AGENT_WEBSERVER_PORT: 9494 - CRYOSTAT_AGENT_CALLBACK: http://minecraft:9494/ - CRYOSTAT_AGENT_BASEURI: http://${CRYOSTAT_HTTP_HOST}:8080/ - CRYOSTAT_AGENT_BASEURI_RANGE: public - CRYOSTAT_AGENT_SSL_TRUST_ALL: "true" - CRYOSTAT_AGENT_SSL_VERIFY_HOSTNAME: "false" - CRYOSTAT_AGENT_AUTHORIZATION: Basic dXNlcjpwYXNz # "Basic $(echo -n user:pass | base64)" diff --git a/smoketest.bash b/smoketest.bash index d19384fae..8dfae2ce3 100755 --- a/smoketest.bash +++ b/smoketest.bash @@ -33,6 +33,7 @@ display_usage() { echo -e "\t-G\t\t\t\t\t\texclude Grafana dashboard and jfr-datasource from deployment." echo -e "\t-r\t\t\t\t\t\tconfigure a cryostat-Reports sidecar instance" echo -e "\t-t\t\t\t\t\t\tinclude sample applications for Testing." + echo -e "\t-T\t\t\t\t\t\tinclude additional sample applications for Testing." echo -e "\t-V\t\t\t\t\t\tdo not discard data storage Volumes on exit." echo -e "\t-X\t\t\t\t\t\tdeploy additional development aid tools." echo -e "\t-c [podman|docker]\t\t\t\tUse Podman or Docker Container Engine (default \"podman\")." @@ -42,7 +43,7 @@ display_usage() { s3=seaweed ce=podman -while getopts "hs:prGtOVXcbn" opt; do +while getopts "hs:prGtTOVXcbn" opt; do case $opt in h) display_usage @@ -60,6 +61,9 @@ while getopts "hs:prGtOVXcbn" opt; do t) FILES+=("${DIR}/compose/sample-apps.yml") ;; + T) + FILES+=("${DIR}/compose/sample-apps-extras.yml") + ;; O) PULL_IMAGES=false ;; From 1e45af316b0f97c192ab5fdcb91fad2d34917a97 Mon Sep 17 00:00:00 2001 From: Andrew Azores <aazores@redhat.com> Date: Mon, 22 Apr 2024 23:16:28 -0400 Subject: [PATCH 03/13] fixup! add minecraft server containerfile for automatic local build --- compose/sample-apps.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/compose/sample-apps.yml b/compose/sample-apps.yml index 1bc64a933..f103e7984 100644 --- a/compose/sample-apps.yml +++ b/compose/sample-apps.yml @@ -139,3 +139,4 @@ services: retries: 3 start_period: 30s timeout: 5s + From 0a980c078e812b0f6b3ca3694ce5a01946ff3935 Mon Sep 17 00:00:00 2001 From: Andrew Azores <aazores@redhat.com> Date: Tue, 23 Apr 2024 09:45:49 -0400 Subject: [PATCH 04/13] build additional-apps containers on start, fix JMX config --- compose/Containerfile.minecraft | 3 --- compose/sample-apps-extras.yml | 5 +++++ smoketest.bash | 3 +++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/compose/Containerfile.minecraft b/compose/Containerfile.minecraft index d9f53e4cf..530e9919a 100644 --- a/compose/Containerfile.minecraft +++ b/compose/Containerfile.minecraft @@ -19,6 +19,3 @@ FROM docker.io/itzg/minecraft-server:java17-jdk ARG CRYOSTAT_AGENT_VERSION RUN mkdir -p /opt/cryostat COPY --from=agentloader /opt/cryostat/cryostat-agent-${CRYOSTAT_AGENT_VERSION}-shaded.jar /opt/cryostat/agent.jar -ENV EULA=true \ - ENABLE_JMX=true \ - JVM_OPTS="-javaagent:/opt/cryostat/agent.jar" diff --git a/compose/sample-apps-extras.yml b/compose/sample-apps-extras.yml index 7d1bbadf0..51ca53942 100644 --- a/compose/sample-apps-extras.yml +++ b/compose/sample-apps-extras.yml @@ -22,3 +22,8 @@ services: CRYOSTAT_AGENT_SSL_TRUST_ALL: "true" CRYOSTAT_AGENT_SSL_VERIFY_HOSTNAME: "false" CRYOSTAT_AGENT_AUTHORIZATION: Basic dXNlcjpwYXNz # "Basic $(echo -n user:pass | base64)" + EULA: "true" + ENABLE_JMX: "true" + JMX_HOST: minecraft + JMX_PORT: "7091" + JVM_OPTS: -javaagent:/opt/cryostat/agent.jar diff --git a/smoketest.bash b/smoketest.bash index 8dfae2ce3..253421e92 100755 --- a/smoketest.bash +++ b/smoketest.bash @@ -23,6 +23,7 @@ CRYOSTAT_HTTP_PORT=${CRYOSTAT_HTTP_PORT:-8080} USE_PROXY=${USE_PROXY:-true} DEPLOY_GRAFANA=${DEPLOY_GRAFANA:-true} DRY_RUN=${DRY_RUN:-false} +upFlags=() display_usage() { echo "Usage:" @@ -63,6 +64,7 @@ while getopts "hs:prGtTOVXcbn" opt; do ;; T) FILES+=("${DIR}/compose/sample-apps-extras.yml") + upFlags+=("--build") ;; O) PULL_IMAGES=false @@ -326,6 +328,7 @@ fi docker-compose \ "${CMD[@]}" \ up \ + "${upFlags[@]}" \ --renew-anon-volumes \ --remove-orphans \ --abort-on-container-exit From f705e8e1f62e38bcadcdae0e23a7bfd8a1be7bd6 Mon Sep 17 00:00:00 2001 From: Andrew Azores <aazores@redhat.com> Date: Tue, 2 Jul 2024 16:09:57 -0400 Subject: [PATCH 05/13] update agent version --- compose/Containerfile.minecraft | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compose/Containerfile.minecraft b/compose/Containerfile.minecraft index 530e9919a..53b379502 100644 --- a/compose/Containerfile.minecraft +++ b/compose/Containerfile.minecraft @@ -1,4 +1,4 @@ -ARG CRYOSTAT_AGENT_VERSION=0.4.0-SNAPSHOT +ARG CRYOSTAT_AGENT_VERSION=0.5.0-SNAPSHOT FROM registry.access.redhat.com/ubi8/openjdk-17:latest AS agentloader ARG CRYOSTAT_AGENT_VERSION From 869ac8dab800a9d875aea6cb0577b5c7258ea1ab Mon Sep 17 00:00:00 2001 From: Andrew Azores <aazores@redhat.com> Date: Tue, 2 Jul 2024 16:10:23 -0400 Subject: [PATCH 06/13] update agent config --- compose/sample-apps-extras.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/compose/sample-apps-extras.yml b/compose/sample-apps-extras.yml index 51ca53942..6dbd993ee 100644 --- a/compose/sample-apps-extras.yml +++ b/compose/sample-apps-extras.yml @@ -21,7 +21,8 @@ services: CRYOSTAT_AGENT_BASEURI_RANGE: public CRYOSTAT_AGENT_SSL_TRUST_ALL: "true" CRYOSTAT_AGENT_SSL_VERIFY_HOSTNAME: "false" - CRYOSTAT_AGENT_AUTHORIZATION: Basic dXNlcjpwYXNz # "Basic $(echo -n user:pass | base64)" + CRYOSTAT_AGENT_AUTHORIZATION_TYPE: basic + CRYOSTAT_AGENT_AUTHORIZATION_VALUE: user:pass EULA: "true" ENABLE_JMX: "true" JMX_HOST: minecraft From 870139e201187c932421287b83ff1a081173659c Mon Sep 17 00:00:00 2001 From: Andrew Azores <aazores@redhat.com> Date: Tue, 2 Jul 2024 16:33:31 -0400 Subject: [PATCH 07/13] build agent with jdk11, run minecraft on jdk21 --- compose/Containerfile.minecraft | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/compose/Containerfile.minecraft b/compose/Containerfile.minecraft index 53b379502..ad16db60b 100644 --- a/compose/Containerfile.minecraft +++ b/compose/Containerfile.minecraft @@ -1,6 +1,6 @@ ARG CRYOSTAT_AGENT_VERSION=0.5.0-SNAPSHOT -FROM registry.access.redhat.com/ubi8/openjdk-17:latest AS agentloader +FROM registry.access.redhat.com/ubi8/openjdk-11:latest AS agentloader ARG CRYOSTAT_AGENT_VERSION USER 0 RUN mkdir -p /opt/cryostat && \ @@ -15,7 +15,7 @@ RUN if [ ! -f "/opt/cryostat/cryostat-agent-${CRYOSTAT_AGENT_VERSION}-shaded.jar cp "target/cryostat-agent-${CRYOSTAT_AGENT_VERSION}-shaded.jar" /opt/cryostat/; \ fi -FROM docker.io/itzg/minecraft-server:java17-jdk +FROM docker.io/itzg/minecraft-server:java21-jdk ARG CRYOSTAT_AGENT_VERSION RUN mkdir -p /opt/cryostat COPY --from=agentloader /opt/cryostat/cryostat-agent-${CRYOSTAT_AGENT_VERSION}-shaded.jar /opt/cryostat/agent.jar From e4ef528d4bac82cdea2ebb0637c636da67adc226 Mon Sep 17 00:00:00 2001 From: Andrew Azores <aazores@redhat.com> Date: Tue, 2 Jul 2024 16:33:47 -0400 Subject: [PATCH 08/13] config agent for dynamic writes, enable harvester --- compose/sample-apps-extras.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/compose/sample-apps-extras.yml b/compose/sample-apps-extras.yml index 6dbd993ee..127fd1516 100644 --- a/compose/sample-apps-extras.yml +++ b/compose/sample-apps-extras.yml @@ -23,6 +23,12 @@ services: CRYOSTAT_AGENT_SSL_VERIFY_HOSTNAME: "false" CRYOSTAT_AGENT_AUTHORIZATION_TYPE: basic CRYOSTAT_AGENT_AUTHORIZATION_VALUE: user:pass + CRYOSTAT_AGENT_API_WRITES_ENABLED: "true" + CRYOSTAT_AGENT_HARVESTER_TEMPLATE: profiling + CRYOSTAT_AGENT_HARVESTER_PERIOD_MS: 300000 + CRYOSTAT_AGENT_HARVESTER_MAX_FILES: 3 + CRYOSTAT_AGENT_HARVESTER_EXIT_MAX_AGE_MS: 60000 + CRYOSTAT_AGENT_HARVESTER_EXIT_MAX_SIZE_B: 153600 # "$(echo 1024*150 | bc)" EULA: "true" ENABLE_JMX: "true" JMX_HOST: minecraft From 409011ed3877336f16d2d06c8d39ede491ec971f Mon Sep 17 00:00:00 2001 From: Andrew Azores <aazores@redhat.com> Date: Tue, 2 Jul 2024 17:24:24 -0400 Subject: [PATCH 09/13] fixup! config agent for dynamic writes, enable harvester --- compose/sample-apps-extras.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compose/sample-apps-extras.yml b/compose/sample-apps-extras.yml index 127fd1516..68fe3a1d9 100644 --- a/compose/sample-apps-extras.yml +++ b/compose/sample-apps-extras.yml @@ -24,7 +24,7 @@ services: CRYOSTAT_AGENT_AUTHORIZATION_TYPE: basic CRYOSTAT_AGENT_AUTHORIZATION_VALUE: user:pass CRYOSTAT_AGENT_API_WRITES_ENABLED: "true" - CRYOSTAT_AGENT_HARVESTER_TEMPLATE: profiling + CRYOSTAT_AGENT_HARVESTER_TEMPLATE: Profiling CRYOSTAT_AGENT_HARVESTER_PERIOD_MS: 300000 CRYOSTAT_AGENT_HARVESTER_MAX_FILES: 3 CRYOSTAT_AGENT_HARVESTER_EXIT_MAX_AGE_MS: 60000 From 9039b2e6e855ad6d0ecc213f7caa922c5a888f41 Mon Sep 17 00:00:00 2001 From: Andrew Azores <aazores@redhat.com> Date: Tue, 2 Jul 2024 17:24:39 -0400 Subject: [PATCH 10/13] config to allow mc client connections --- compose/sample-apps-extras.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/compose/sample-apps-extras.yml b/compose/sample-apps-extras.yml index 68fe3a1d9..385748eca 100644 --- a/compose/sample-apps-extras.yml +++ b/compose/sample-apps-extras.yml @@ -12,6 +12,7 @@ services: ports: - "7091" - "9494" + - "25565:25565" environment: CRYOSTAT_AGENT_APP_NAME: minecraft CRYOSTAT_AGENT_WEBSERVER_HOST: minecraft @@ -30,6 +31,8 @@ services: CRYOSTAT_AGENT_HARVESTER_EXIT_MAX_AGE_MS: 60000 CRYOSTAT_AGENT_HARVESTER_EXIT_MAX_SIZE_B: 153600 # "$(echo 1024*150 | bc)" EULA: "true" + ONLINE_MODE: "false" + OVERRIDE_SERVER_PROPERTIES: "true" ENABLE_JMX: "true" JMX_HOST: minecraft JMX_PORT: "7091" From d16d7b6064b5c60a3a6c224dd72c78fc6d9db916 Mon Sep 17 00:00:00 2001 From: Andrew Azores <aazores@redhat.com> Date: Thu, 4 Jul 2024 12:58:48 -0400 Subject: [PATCH 11/13] clean up to use cryostatio/test-applications gameserver image --- compose/Containerfile.minecraft | 21 ------------------ compose/sample-apps-extras.yml | 39 --------------------------------- compose/sample-apps.yml | 38 ++++++++++++++++++++++++++++++-- smoketest.bash | 9 +------- 4 files changed, 37 insertions(+), 70 deletions(-) delete mode 100644 compose/Containerfile.minecraft delete mode 100644 compose/sample-apps-extras.yml diff --git a/compose/Containerfile.minecraft b/compose/Containerfile.minecraft deleted file mode 100644 index ad16db60b..000000000 --- a/compose/Containerfile.minecraft +++ /dev/null @@ -1,21 +0,0 @@ -ARG CRYOSTAT_AGENT_VERSION=0.5.0-SNAPSHOT - -FROM registry.access.redhat.com/ubi8/openjdk-11:latest AS agentloader -ARG CRYOSTAT_AGENT_VERSION -USER 0 -RUN mkdir -p /opt/cryostat && \ - mvn dependency:get -Dartifact="io.cryostat:cryostat-agent:${CRYOSTAT_AGENT_VERSION}:jar:shaded" && \ - mvn dependency:copy -Dartifact="io.cryostat:cryostat-agent:${CRYOSTAT_AGENT_VERSION}:jar:shaded" -DoutputDirectory=/opt/cryostat \ - || true -RUN if [ ! -f "/opt/cryostat/cryostat-agent-${CRYOSTAT_AGENT_VERSION}-shaded.jar" ]; then \ - microdnf install git; \ - git clone https://github.com/cryostatio/cryostat-agent; \ - cd cryostat-agent; \ - mvn -DskipTests package; \ - cp "target/cryostat-agent-${CRYOSTAT_AGENT_VERSION}-shaded.jar" /opt/cryostat/; \ - fi - -FROM docker.io/itzg/minecraft-server:java21-jdk -ARG CRYOSTAT_AGENT_VERSION -RUN mkdir -p /opt/cryostat -COPY --from=agentloader /opt/cryostat/cryostat-agent-${CRYOSTAT_AGENT_VERSION}-shaded.jar /opt/cryostat/agent.jar diff --git a/compose/sample-apps-extras.yml b/compose/sample-apps-extras.yml deleted file mode 100644 index 385748eca..000000000 --- a/compose/sample-apps-extras.yml +++ /dev/null @@ -1,39 +0,0 @@ -version: "3" -services: - minecraft-server: - depends_on: - cryostat: - condition: service_healthy - image: ${MINECRAFT_TEST_IMAGE:-localhost/minecraft-server:latest} - build: - context: . - dockerfile: ./Containerfile.minecraft - hostname: minecraft - ports: - - "7091" - - "9494" - - "25565:25565" - environment: - CRYOSTAT_AGENT_APP_NAME: minecraft - CRYOSTAT_AGENT_WEBSERVER_HOST: minecraft - CRYOSTAT_AGENT_WEBSERVER_PORT: 9494 - CRYOSTAT_AGENT_CALLBACK: http://minecraft:9494/ - CRYOSTAT_AGENT_BASEURI: http://${CRYOSTAT_HTTP_HOST}:8080/ - CRYOSTAT_AGENT_BASEURI_RANGE: public - CRYOSTAT_AGENT_SSL_TRUST_ALL: "true" - CRYOSTAT_AGENT_SSL_VERIFY_HOSTNAME: "false" - CRYOSTAT_AGENT_AUTHORIZATION_TYPE: basic - CRYOSTAT_AGENT_AUTHORIZATION_VALUE: user:pass - CRYOSTAT_AGENT_API_WRITES_ENABLED: "true" - CRYOSTAT_AGENT_HARVESTER_TEMPLATE: Profiling - CRYOSTAT_AGENT_HARVESTER_PERIOD_MS: 300000 - CRYOSTAT_AGENT_HARVESTER_MAX_FILES: 3 - CRYOSTAT_AGENT_HARVESTER_EXIT_MAX_AGE_MS: 60000 - CRYOSTAT_AGENT_HARVESTER_EXIT_MAX_SIZE_B: 153600 # "$(echo 1024*150 | bc)" - EULA: "true" - ONLINE_MODE: "false" - OVERRIDE_SERVER_PROPERTIES: "true" - ENABLE_JMX: "true" - JMX_HOST: minecraft - JMX_PORT: "7091" - JVM_OPTS: -javaagent:/opt/cryostat/agent.jar diff --git a/compose/sample-apps.yml b/compose/sample-apps.yml index f103e7984..4eedb75b9 100644 --- a/compose/sample-apps.yml +++ b/compose/sample-apps.yml @@ -95,7 +95,7 @@ services: start_period: 30s timeout: 5s quarkus-test-agent: - image: ${QUARKUS_TEST_IMAGE:-quay.io/andrewazores/quarkus-test:latest} + image: ${QUARKUS_TEST_IMAGE:-quay.io/redhat-java-monitoring/quarkus-cryostat-agent:latest} # do not add a depends_on:cryostat/depends_on:auth here, so that we can test that the agent is tolerant of that state hostname: quarkus-test-agent ports: @@ -139,4 +139,38 @@ services: retries: 3 start_period: 30s timeout: 5s - + gameserver: + depends_on: + cryostat: + condition: service_healthy + image: ${GAMESERVER_TEST_IMAGE:-quay.io/redhat-java-monitoring/gameserver-cryostat-agent:latest} + hostname: gameserver + ports: + - "7091" + - "9494" + - "25565:25565" + environment: + CRYOSTAT_AGENT_APP_NAME: gameserver + CRYOSTAT_AGENT_WEBSERVER_HOST: gameserver + CRYOSTAT_AGENT_WEBSERVER_PORT: 9494 + CRYOSTAT_AGENT_CALLBACK: http://gameserver:9494/ + CRYOSTAT_AGENT_BASEURI: http://${CRYOSTAT_HTTP_HOST}:8080/ + CRYOSTAT_AGENT_BASEURI_RANGE: public + CRYOSTAT_AGENT_SSL_TRUST_ALL: "true" + CRYOSTAT_AGENT_SSL_VERIFY_HOSTNAME: "false" + CRYOSTAT_AGENT_AUTHORIZATION_TYPE: basic + CRYOSTAT_AGENT_AUTHORIZATION_VALUE: user:pass + CRYOSTAT_AGENT_API_WRITES_ENABLED: "true" + CRYOSTAT_AGENT_HARVESTER_TEMPLATE: Profiling + CRYOSTAT_AGENT_HARVESTER_PERIOD_MS: 300000 + CRYOSTAT_AGENT_HARVESTER_MAX_FILES: 3 + CRYOSTAT_AGENT_HARVESTER_EXIT_MAX_AGE_MS: 60000 + CRYOSTAT_AGENT_HARVESTER_EXIT_MAX_SIZE_B: 153600 # "$(echo 1024*150 | bc)" + EULA: "true" + ONLINE_MODE: "false" + OVERRIDE_SERVER_PROPERTIES: "true" + ENABLE_JMX: "true" + JMX_HOST: gameserver + JMX_PORT: "7091" + JVM_OPTS: -javaagent:/opt/cryostat/agent.jar + restart: always diff --git a/smoketest.bash b/smoketest.bash index 253421e92..d19384fae 100755 --- a/smoketest.bash +++ b/smoketest.bash @@ -23,7 +23,6 @@ CRYOSTAT_HTTP_PORT=${CRYOSTAT_HTTP_PORT:-8080} USE_PROXY=${USE_PROXY:-true} DEPLOY_GRAFANA=${DEPLOY_GRAFANA:-true} DRY_RUN=${DRY_RUN:-false} -upFlags=() display_usage() { echo "Usage:" @@ -34,7 +33,6 @@ display_usage() { echo -e "\t-G\t\t\t\t\t\texclude Grafana dashboard and jfr-datasource from deployment." echo -e "\t-r\t\t\t\t\t\tconfigure a cryostat-Reports sidecar instance" echo -e "\t-t\t\t\t\t\t\tinclude sample applications for Testing." - echo -e "\t-T\t\t\t\t\t\tinclude additional sample applications for Testing." echo -e "\t-V\t\t\t\t\t\tdo not discard data storage Volumes on exit." echo -e "\t-X\t\t\t\t\t\tdeploy additional development aid tools." echo -e "\t-c [podman|docker]\t\t\t\tUse Podman or Docker Container Engine (default \"podman\")." @@ -44,7 +42,7 @@ display_usage() { s3=seaweed ce=podman -while getopts "hs:prGtTOVXcbn" opt; do +while getopts "hs:prGtOVXcbn" opt; do case $opt in h) display_usage @@ -62,10 +60,6 @@ while getopts "hs:prGtTOVXcbn" opt; do t) FILES+=("${DIR}/compose/sample-apps.yml") ;; - T) - FILES+=("${DIR}/compose/sample-apps-extras.yml") - upFlags+=("--build") - ;; O) PULL_IMAGES=false ;; @@ -328,7 +322,6 @@ fi docker-compose \ "${CMD[@]}" \ up \ - "${upFlags[@]}" \ --renew-anon-volumes \ --remove-orphans \ --abort-on-container-exit From 004075f757fac5784d4eb8181dabc8ce8d8bd15a Mon Sep 17 00:00:00 2001 From: Andrew Azores <aazores@redhat.com> Date: Thu, 4 Jul 2024 13:08:42 -0400 Subject: [PATCH 12/13] use test-applications vertx --- compose/sample-apps.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/compose/sample-apps.yml b/compose/sample-apps.yml index 4eedb75b9..81880d5cb 100644 --- a/compose/sample-apps.yml +++ b/compose/sample-apps.yml @@ -4,7 +4,7 @@ services: depends_on: cryostat: condition: service_healthy - image: ${VERTX_FIB_DEMO_IMAGE:-quay.io/andrewazores/vertx-fib-demo:0.13.1} + image: ${VERTX_FIB_DEMO_IMAGE:-quay.io/redhat-java-monitoring/vertx-cryostat-agent:latest} hostname: vertx-fib-demo-1 environment: HTTP_PORT: 8081 @@ -37,7 +37,7 @@ services: depends_on: cryostat: condition: service_healthy - image: ${VERTX_FIB_DEMO_IMAGE:-quay.io/andrewazores/vertx-fib-demo:0.13.1} + image: ${VERTX_FIB_DEMO_IMAGE:-quay.io/redhat-java-monitoring/vertx-cryostat-agent:latest} hostname: vertx-fib-demo-2 environment: HTTP_PORT: 8082 @@ -67,7 +67,7 @@ services: depends_on: cryostat: condition: service_healthy - image: ${VERTX_FIB_DEMO_IMAGE:-quay.io/andrewazores/vertx-fib-demo:0.13.1} + image: ${VERTX_FIB_DEMO_IMAGE:-quay.io/redhat-java-monitoring/vertx-cryostat-agent:latest} hostname: vertx-fib-demo-3 environment: HTTP_PORT: 8083 From 30b447cf974e2454e93d8a6cbf2286d41d6cf75b Mon Sep 17 00:00:00 2001 From: Andrew Azores <aazores@redhat.com> Date: Tue, 2 Jul 2024 16:08:14 -0400 Subject: [PATCH 13/13] test(smoketest): update vertx-fib-demo images and configs --- compose/sample-apps.yml | 37 ++++++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/compose/sample-apps.yml b/compose/sample-apps.yml index 81880d5cb..8cd3f12bb 100644 --- a/compose/sample-apps.yml +++ b/compose/sample-apps.yml @@ -9,6 +9,7 @@ services: environment: HTTP_PORT: 8081 JMX_PORT: 9093 + USE_JDP: "true" CRYOSTAT_AGENT_APP_NAME: vertx-fib-demo-1 CRYOSTAT_AGENT_WEBCLIENT_SSL_TRUST_ALL: "true" CRYOSTAT_AGENT_WEBCLIENT_SSL_VERIFY_HOSTNAME: "false" @@ -17,15 +18,12 @@ services: CRYOSTAT_AGENT_CALLBACK: "http://sample-app-1:8910/" CRYOSTAT_AGENT_BASEURI: "http://${CRYOSTAT_HTTP_HOST}:8080/" CRYOSTAT_AGENT_TRUST_ALL: "true" - CRYOSTAT_AGENT_AUTHORIZATION: Basic dXNlcjpwYXNz # "Basic $(echo -n user:pass | base64)" + CRYOSTAT_AGENT_AUTHORIZATION_TYPE: basic + CRYOSTAT_AGENT_AUTHORIZATION_VALUE: user:pass ports: - "8081:8081" expose: - "8910" - labels: - io.cryostat.discovery: "true" - io.cryostat.jmxHost: "sample-app-1" - io.cryostat.jmxPort: "9093" restart: always healthcheck: test: curl --fail http://localhost:8081 || exit 1 @@ -42,6 +40,7 @@ services: environment: HTTP_PORT: 8082 JMX_PORT: 9094 + USE_JDP: "true" USE_AUTH: "true" CRYOSTAT_AGENT_APP_NAME: "vertx-fib-demo-2" CRYOSTAT_AGENT_WEBCLIENT_SSL_TRUST_ALL: "true" @@ -51,7 +50,8 @@ services: CRYOSTAT_AGENT_CALLBACK: "http://sample-app-2:8911/" CRYOSTAT_AGENT_BASEURI: "http://${CRYOSTAT_HTTP_HOST}:8080/" CRYOSTAT_AGENT_TRUST_ALL: "true" - CRYOSTAT_AGENT_AUTHORIZATION: Basic dXNlcjpwYXNz # "Basic $(echo -n user:pass | base64)" + CRYOSTAT_AGENT_AUTHORIZATION_TYPE: basic + CRYOSTAT_AGENT_AUTHORIZATION_VALUE: user:pass ports: - "8082:8082" expose: @@ -72,6 +72,7 @@ services: environment: HTTP_PORT: 8083 JMX_PORT: 9095 + USE_JDP: "true" USE_AUTH: "true" USE_SSL: "true" CRYOSTAT_AGENT_APP_NAME: "vertx-fib-demo-3" @@ -82,7 +83,8 @@ services: CRYOSTAT_AGENT_CALLBACK: "http://sample-app-3:8912/" CRYOSTAT_AGENT_BASEURI: "http://${CRYOSTAT_HTTP_HOST}:8080/" CRYOSTAT_AGENT_TRUST_ALL: "true" - CRYOSTAT_AGENT_AUTHORIZATION: Basic dXNlcjpwYXNz # "Basic $(echo -n user:pass | base64)" + CRYOSTAT_AGENT_AUTHORIZATION_TYPE: basic + CRYOSTAT_AGENT_AUTHORIZATION_VALUE: user:pass ports: - "8083:8083" expose: @@ -94,6 +96,27 @@ services: retries: 3 start_period: 30s timeout: 5s + sample-app-4: + depends_on: + cryostat: + condition: service_healthy + image: ${VERTX_FIB_DEMO_IMAGE:-quay.io/andrewazores/vertx-fib-demo:0.14.0} + hostname: vertx-fib-demo-4 + environment: + HTTP_PORT: 8084 + JMX_PORT: 9096 + USE_JDP: "true" + USE_AUTH: "false" + USE_SSL: "false" + ports: + - "8084:8084" + restart: always + healthcheck: + test: curl --fail http://localhost:8081 || exit 1 + interval: 10s + retries: 3 + start_period: 30s + timeout: 5s quarkus-test-agent: image: ${QUARKUS_TEST_IMAGE:-quay.io/redhat-java-monitoring/quarkus-cryostat-agent:latest} # do not add a depends_on:cryostat/depends_on:auth here, so that we can test that the agent is tolerant of that state