diff --git a/distribution/downloads/src/main/resources/files b/distribution/downloads/src/main/resources/files index c92f32036a81..0bc69947ed1a 100644 --- a/distribution/downloads/src/main/resources/files +++ b/distribution/downloads/src/main/resources/files @@ -1,6 +1,6 @@ ./ - keycloak-server-dist:keycloak - keycloak-server-x-dist:keycloak.x-preview + keycloak-server-dist:keycloak-legacy + keycloak-quarkus-dist:keycloak keycloak-api-docs-dist:keycloak-api-docs keycloak-jetty92-adapter-dist:keycloak-oidc-jetty92-adapter diff --git a/distribution/pom.xml b/distribution/pom.xml index 4a1c707d9a46..8f1b4f5ee690 100755 --- a/distribution/pom.xml +++ b/distribution/pom.xml @@ -77,18 +77,6 @@ server-legacy-dist - - quarkus - - [11,) - - !product - - - - server-x-dist - - distribution-downloads diff --git a/distribution/server-dist/pom.xml b/distribution/server-dist/pom.xml index f68f949ff9c9..2136aa1cc0d3 100644 --- a/distribution/server-dist/pom.xml +++ b/distribution/server-dist/pom.xml @@ -35,7 +35,7 @@ keycloak-server-dist - Keycloak Server Galleon Based Distribution + Keycloak Server Legacy WildFly Distribution pom @@ -301,7 +301,7 @@ - keycloak-${project.version} + keycloak-legacy-${project.version} diff --git a/pom.xml b/pom.xml index 2ef406b79a5f..84d2c85f95f3 100644 --- a/pom.xml +++ b/pom.xml @@ -1468,7 +1468,7 @@ org.keycloak - keycloak-server-x-dist + keycloak-quarkus-dist ${project.version} zip diff --git a/quarkus/container/.gitignore b/quarkus/container/.gitignore new file mode 100644 index 000000000000..335ec9573de5 --- /dev/null +++ b/quarkus/container/.gitignore @@ -0,0 +1 @@ +*.tar.gz diff --git a/quarkus/container/Dockerfile b/quarkus/container/Dockerfile new file mode 100644 index 000000000000..433cb06da393 --- /dev/null +++ b/quarkus/container/Dockerfile @@ -0,0 +1,34 @@ +FROM registry.access.redhat.com/ubi8-minimal AS build-env + +ENV KEYCLOAK_VERSION 17.0.0-SNAPSHOT +ARG KEYCLOAK_DIST=https://github.com/keycloak/keycloak/releases/download/$KEYCLOAK_VERSION/keycloak-$KEYCLOAK_VERSION.tar.gz + +RUN microdnf install -y tar gzip + +ADD $KEYCLOAK_DIST /tmp/keycloak/ + +# The next step makes it uniform for local development and upstream built. +# If it is a local tar archive then it is unpacked, if from remote is just downloaded. +RUN (cd /tmp/keycloak && \ + tar -xvf /tmp/keycloak/keycloak-*.tar.gz && \ + rm /tmp/keycloak/keycloak-*.tar.gz) || true + +RUN mv /tmp/keycloak/keycloak-* /opt/keycloak + +FROM registry.access.redhat.com/ubi8-minimal + +COPY --from=build-env /opt/keycloak /opt/keycloak + +RUN microdnf update -y && \ + microdnf install -y java-11-openjdk-headless && microdnf clean all && rm -rf /var/cache/yum/* && \ + echo "keycloak:x:0:root" >> /etc/group && \ + echo "keycloak:x:1000:0:keycloak user:/opt/keycloak:/sbin/nologin" >> /etc/passwd && \ + chown -R keycloak:root /opt/keycloak && \ + chmod -R g+rwX /opt/keycloak + +USER 1000 + +EXPOSE 8080 +EXPOSE 8443 + +ENTRYPOINT [ "/opt/keycloak/bin/kc.sh" ] diff --git a/distribution/server-x-dist/assembly.xml b/quarkus/dist/assembly.xml similarity index 100% rename from distribution/server-x-dist/assembly.xml rename to quarkus/dist/assembly.xml diff --git a/distribution/server-x-dist/pom.xml b/quarkus/dist/pom.xml similarity index 95% rename from distribution/server-x-dist/pom.xml rename to quarkus/dist/pom.xml index fa7ada3f610c..b022b83f2836 100755 --- a/distribution/server-x-dist/pom.xml +++ b/quarkus/dist/pom.xml @@ -19,14 +19,14 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 - keycloak-distribution-parent + keycloak-quarkus-parent org.keycloak 17.0.0-SNAPSHOT - keycloak-server-x-dist + keycloak-quarkus-dist pom - Keycloak.X Server Distribution + Keycloak Quarkus Server Distribution @@ -49,7 +49,7 @@ - keycloak.x-${project.version} + keycloak-${project.version} org.apache.maven.plugins diff --git a/distribution/server-x-dist/src/main/README.md b/quarkus/dist/src/main/README.md similarity index 100% rename from distribution/server-x-dist/src/main/README.md rename to quarkus/dist/src/main/README.md diff --git a/distribution/server-x-dist/src/main/content/bin/kc.bat b/quarkus/dist/src/main/content/bin/kc.bat similarity index 100% rename from distribution/server-x-dist/src/main/content/bin/kc.bat rename to quarkus/dist/src/main/content/bin/kc.bat diff --git a/distribution/server-x-dist/src/main/content/bin/kc.sh b/quarkus/dist/src/main/content/bin/kc.sh similarity index 100% rename from distribution/server-x-dist/src/main/content/bin/kc.sh rename to quarkus/dist/src/main/content/bin/kc.sh diff --git a/distribution/server-x-dist/src/main/content/conf/README.md b/quarkus/dist/src/main/content/conf/README.md similarity index 100% rename from distribution/server-x-dist/src/main/content/conf/README.md rename to quarkus/dist/src/main/content/conf/README.md diff --git a/distribution/server-x-dist/src/main/content/conf/keycloak.conf b/quarkus/dist/src/main/content/conf/keycloak.conf similarity index 100% rename from distribution/server-x-dist/src/main/content/conf/keycloak.conf rename to quarkus/dist/src/main/content/conf/keycloak.conf diff --git a/distribution/server-x-dist/src/main/content/providers/README.md b/quarkus/dist/src/main/content/providers/README.md similarity index 100% rename from distribution/server-x-dist/src/main/content/providers/README.md rename to quarkus/dist/src/main/content/providers/README.md diff --git a/distribution/server-x-dist/src/main/content/themes/README.md b/quarkus/dist/src/main/content/themes/README.md similarity index 100% rename from distribution/server-x-dist/src/main/content/themes/README.md rename to quarkus/dist/src/main/content/themes/README.md diff --git a/distribution/server-x-dist/src/main/version.txt b/quarkus/dist/src/main/version.txt similarity index 100% rename from distribution/server-x-dist/src/main/version.txt rename to quarkus/dist/src/main/version.txt diff --git a/quarkus/pom.xml b/quarkus/pom.xml index 36bbadcd8668..2c1b52c1d496 100644 --- a/quarkus/pom.xml +++ b/quarkus/pom.xml @@ -154,6 +154,7 @@ runtime deployment server + dist tests diff --git a/quarkus/tests/integration/pom.xml b/quarkus/tests/integration/pom.xml index 328fa0d517f2..d5a24c1f1a9e 100644 --- a/quarkus/tests/integration/pom.xml +++ b/quarkus/tests/integration/pom.xml @@ -57,6 +57,11 @@ + + org.keycloak + keycloak-quarkus-dist + zip + io.quarkus quarkus-junit5 diff --git a/quarkus/tests/integration/src/main/java/org/keycloak/it/utils/DockerKeycloakDistribution.java b/quarkus/tests/integration/src/main/java/org/keycloak/it/utils/DockerKeycloakDistribution.java index b44161095abb..03927223ece4 100644 --- a/quarkus/tests/integration/src/main/java/org/keycloak/it/utils/DockerKeycloakDistribution.java +++ b/quarkus/tests/integration/src/main/java/org/keycloak/it/utils/DockerKeycloakDistribution.java @@ -1,6 +1,5 @@ package org.keycloak.it.utils; -import org.apache.commons.io.FileUtils; import org.jboss.logging.Logger; import org.keycloak.common.Version; import org.testcontainers.containers.GenericContainer; @@ -11,8 +10,6 @@ import org.testcontainers.utility.ResourceReaper; import java.io.File; -import java.io.IOException; -import java.net.URL; import java.time.Duration; import java.util.List; import java.util.concurrent.Executor; @@ -30,9 +27,8 @@ public final class DockerKeycloakDistribution implements KeycloakDistribution { private String stderr = ""; private ToStringConsumer backupConsumer = new ToStringConsumer(); - private File distributionFile = new File("../../../distribution/server-x-dist/target/keycloak.x-" + Version.VERSION_KEYCLOAK + ".tar.gz"); - private File cachedDockerfile = createDockerCacheFile(); - private boolean dockerfileFetched = false; + private File distributionFile = new File("../../dist/target/keycloak-" + Version.VERSION_KEYCLOAK + ".tar.gz"); + private File dockerFile = new File("../../container/Dockerfile"); private GenericContainer keycloakContainer = null; private String containerId = null; @@ -44,37 +40,15 @@ public DockerKeycloakDistribution(boolean debug, boolean manualStop, boolean reC this.manualStop = manualStop; } - private File createDockerCacheFile() { - try { - File tmp = File.createTempFile("Dockerfile", "keycloak.x"); - tmp.deleteOnExit(); - return tmp; - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - private void fetchDockerfile() { - if (!dockerfileFetched) { - try { - FileUtils.copyURLToFile(new URL("https://raw.githubusercontent.com/keycloak/keycloak-containers/main/server-x/Dockerfile"), cachedDockerfile); - dockerfileFetched = true; - } catch (Exception cause) { - throw new RuntimeException("Cannot download upstream Dockerfile", cause); - } - } - } - private GenericContainer getKeycloakContainer() { if (!distributionFile.exists()) { throw new RuntimeException("Distribution archive " + distributionFile.getAbsolutePath() +" doesn't exists"); } - fetchDockerfile(); return new GenericContainer( - new ImageFromDockerfile("keycloak.x-under-test", false) - .withFileFromFile("keycloakx.tar.gz", distributionFile) - .withFileFromFile("Dockerfile", cachedDockerfile) - .withBuildArg("KEYCLOAK_DIST", "keycloakx.tar.gz") + new ImageFromDockerfile("keycloak-under-test", false) + .withFileFromFile("keycloak.tar.gz", distributionFile) + .withFileFromFile("Dockerfile", dockerFile) + .withBuildArg("KEYCLOAK_DIST", "keycloak.tar.gz") ) .withExposedPorts(8080) .withStartupAttempts(1) diff --git a/quarkus/tests/integration/src/main/java/org/keycloak/it/utils/RawKeycloakDistribution.java b/quarkus/tests/integration/src/main/java/org/keycloak/it/utils/RawKeycloakDistribution.java index b0f496a8db36..c0a18a4e0058 100644 --- a/quarkus/tests/integration/src/main/java/org/keycloak/it/utils/RawKeycloakDistribution.java +++ b/quarkus/tests/integration/src/main/java/org/keycloak/it/utils/RawKeycloakDistribution.java @@ -251,7 +251,7 @@ private Path prepareDistribution() { try { Path distRootPath = Paths.get(System.getProperty("java.io.tmpdir")).resolve("kc-tests"); distRootPath.toFile().mkdirs(); - File distFile = new File("../../../distribution/server-x-dist/target/keycloak.x-" + Version.VERSION_KEYCLOAK + ".zip"); + File distFile = new File("../../dist/target/keycloak-" + Version.VERSION_KEYCLOAK + ".zip"); if (!distFile.exists()) { throw new RuntimeException("Distribution archive " + distFile.getAbsolutePath() +" doesn't exists"); } diff --git a/set-version.sh b/set-version.sh index 84bd01d401d0..4495f9530887 100755 --- a/set-version.sh +++ b/set-version.sh @@ -4,3 +4,5 @@ NEW_VERSION=$1 mvn versions:set -DnewVersion=$NEW_VERSION -DgenerateBackupPoms=false -DgroupId=org.keycloak* -DartifactId=* mvn versions:use-dep-version -Dincludes=org.keycloak:keycloak-admin-ui -DdepVersion=$NEW_VERSION -DforceVersion=true -pl org.keycloak:keycloak-parent + +sed -i "s/ENV KEYCLOAK_VERSION .*/ENV KEYCLOAK_VERSION $NEW_VERSION/" quarkus/container/Dockerfile \ No newline at end of file diff --git a/testsuite/integration-arquillian/servers/auth-server/quarkus/pom.xml b/testsuite/integration-arquillian/servers/auth-server/quarkus/pom.xml index 4d402908535a..1978aa42fd1d 100644 --- a/testsuite/integration-arquillian/servers/auth-server/quarkus/pom.xml +++ b/testsuite/integration-arquillian/servers/auth-server/quarkus/pom.xml @@ -13,7 +13,7 @@ integration-arquillian-servers-auth-server-quarkus - ${project.build.directory}/unpacked/keycloak.x-${project.version} + ${project.build.directory}/unpacked/keycloak-${project.version} ${basedir}/../jboss/common 2 2 @@ -26,7 +26,7 @@ org.keycloak - keycloak-server-x-dist + keycloak-quarkus-dist zip @@ -177,7 +177,7 @@ org.keycloak - keycloak-server-x-dist + keycloak-quarkus-dist ${project.version} zip ${project.build.directory}/unpacked