UNCLASSIFIED

Commit 1161e963 authored by thomas.shepherd's avatar thomas.shepherd
Browse files

Merge branch 'development' into 'master'

Merge Development into Master

See merge request !40
parents 5a110d39 960c053b
Pipeline #327720 failed with stages
in 51 seconds
...@@ -2,7 +2,7 @@ ARG BASE_REGISTRY=registry1.dsop.io ...@@ -2,7 +2,7 @@ ARG BASE_REGISTRY=registry1.dsop.io
ARG BASE_IMAGE=ironbank/redhat/openjdk/openjdk11 ARG BASE_IMAGE=ironbank/redhat/openjdk/openjdk11
ARG BASE_TAG=1.11 ARG BASE_TAG=1.11
FROM jboss/keycloak:13.0.0 AS builder FROM jboss/keycloak:13.0.1 AS builder
COPY --chown=jboss:root scripts/ /opt/jboss/tools COPY --chown=jboss:root scripts/ /opt/jboss/tools
...@@ -14,7 +14,7 @@ RUN ${JBOSS_HOME}/bin/jboss-cli.sh --file=/opt/jboss/tools/cli/remove-datasource ...@@ -14,7 +14,7 @@ RUN ${JBOSS_HOME}/bin/jboss-cli.sh --file=/opt/jboss/tools/cli/remove-datasource
# This is the base image # This is the base image
FROM ${BASE_REGISTRY}/${BASE_IMAGE}:${BASE_TAG} FROM ${BASE_REGISTRY}/${BASE_IMAGE}:${BASE_TAG}
ENV KEYCLOAK_VERSION="13.0.0" \ ENV KEYCLOAK_VERSION="13.0.1" \
JDBC_POSTGRES_VERSION="42.2.5" \ JDBC_POSTGRES_VERSION="42.2.5" \
JDBC_MARIADB_VERSION="2.5.4" \ JDBC_MARIADB_VERSION="2.5.4" \
JDBC_MSSQL_VERSION="8.2.2.jre11" \ JDBC_MSSQL_VERSION="8.2.2.jre11" \
......
...@@ -8,7 +8,7 @@ name: "opensource/keycloak/keycloak" ...@@ -8,7 +8,7 @@ name: "opensource/keycloak/keycloak"
# The most specific version should be the first tag and will be shown # The most specific version should be the first tag and will be shown
# on ironbank.dsop.io # on ironbank.dsop.io
tags: tags:
- "13.0.0" - "13.0.1"
- "latest" - "latest"
# Build args passed to Dockerfile ARGs # Build args passed to Dockerfile ARGs
...@@ -27,7 +27,7 @@ labels: ...@@ -27,7 +27,7 @@ labels:
org.opencontainers.image.url: "https://www.keycloak.org" org.opencontainers.image.url: "https://www.keycloak.org"
## Name of the distributing entity, organization or individual ## Name of the distributing entity, organization or individual
org.opencontainers.image.vendor: "Red Hat" org.opencontainers.image.vendor: "Red Hat"
org.opencontainers.image.version: "13.0.0" org.opencontainers.image.version: "13.0.1"
## Keywords to help with search (ex. "cicd,gitops,golang") ## Keywords to help with search (ex. "cicd,gitops,golang")
mil.dso.ironbank.image.keywords: "auth,idam,sso" mil.dso.ironbank.image.keywords: "auth,idam,sso"
## This value can be "opensource" or "commercial" ## This value can be "opensource" or "commercial"
...@@ -37,8 +37,8 @@ labels: ...@@ -37,8 +37,8 @@ labels:
# List of resources to make available to the offline build context # List of resources to make available to the offline build context
resources: resources:
- tag: jboss/keycloak:13.0.0 - tag: jboss/keycloak:13.0.1
url: docker://docker.io/jboss/keycloak@sha256:73080b0af9a91f3ca3a397ee31dc958b7cbd92173c589efa834f5f33e30e4f71 url: docker://docker.io/jboss/keycloak@sha256:e2a216ff6dc3f9ba88d77132c930f8e15dd50ebca1ead6e21696f61b22f0ee10
# List of project maintainers # List of project maintainers
maintainers: maintainers:
......
...@@ -18,17 +18,9 @@ ...@@ -18,17 +18,9 @@
} }
} }
], ],
"automerge": true,
"gitLabAutomerge": true,
"regexManagers": [ "regexManagers": [
{
"fileMatch": [
"^Dockerfile$"
],
"matchStrings": [
"version=\"(?<currentValue>.*?)\""
],
"depNameTemplate": "jboss/keycloak",
"datasourceTemplate": "docker"
},
{ {
"fileMatch": [ "fileMatch": [
"^Dockerfile$" "^Dockerfile$"
......
/subsystem=datasources/data-source=KeycloakDS: remove() /subsystem=datasources/data-source=KeycloakDS: remove()
/subsystem=datasources/data-source=KeycloakDS: add(jndi-name=java:jboss/datasources/KeycloakDS,enabled=true,use-java-context=true,use-ccm=true, connection-url="jdbc:sqlserver://${env.DB_ADDR:mssql}:${env.DB_PORT:1433};databaseName=${env.DB_DATABASE:keycloak};sendStringParametersAsUnicode=false;integratedSecurity=false;user=${env.DB_USER:keycloak};password=${env.DB_PASSWORD:password};${env.JDBC_PARAMS:}", driver-name=sqlserver) /subsystem=datasources/data-source=KeycloakDS: add(jndi-name=java:jboss/datasources/KeycloakDS,enabled=true,use-java-context=true,use-ccm=true, connection-url="jdbc:sqlserver://${env.DB_ADDR:mssql}:${env.DB_PORT:1433};databaseName=${env.DB_DATABASE:keycloak};sendStringParametersAsUnicode=false;${env.JDBC_PARAMS:}", driver-name=sqlserver)
/subsystem=datasources/data-source=KeycloakDS: write-attribute(name=user-name, value=${env.DB_USER:keycloak}) /subsystem=datasources/data-source=KeycloakDS: write-attribute(name=user-name, value=${env.DB_USER:keycloak})
/subsystem=datasources/data-source=KeycloakDS: write-attribute(name=password, value=${env.DB_PASSWORD:password}) /subsystem=datasources/data-source=KeycloakDS: write-attribute(name=password, value=${env.DB_PASSWORD:password})
/subsystem=datasources/data-source=KeycloakDS: write-attribute(name=check-valid-connection-sql, value="SELECT 1") /subsystem=datasources/data-source=KeycloakDS: write-attribute(name=check-valid-connection-sql, value="SELECT 1")
...@@ -7,3 +7,5 @@ ...@@ -7,3 +7,5 @@
/subsystem=datasources/data-source=KeycloakDS: write-attribute(name=background-validation-millis, value=60000) /subsystem=datasources/data-source=KeycloakDS: write-attribute(name=background-validation-millis, value=60000)
/subsystem=datasources/data-source=KeycloakDS: write-attribute(name=flush-strategy, value=IdleConnections) /subsystem=datasources/data-source=KeycloakDS: write-attribute(name=flush-strategy, value=IdleConnections)
/subsystem=datasources/jdbc-driver=sqlserver:add(driver-name=sqlserver,driver-module-name=com.microsoft.sqlserver.jdbc,driver-xa-datasource-class-name=com.microsoft.sqlserver.jdbc.SQLServerXADataSource) /subsystem=datasources/jdbc-driver=sqlserver:add(driver-name=sqlserver,driver-module-name=com.microsoft.sqlserver.jdbc,driver-xa-datasource-class-name=com.microsoft.sqlserver.jdbc.SQLServerXADataSource)
/subsystem=keycloak-server/spi=connectionsJpa/provider=default:write-attribute(name=properties.schema,value=${env.DB_SCHEMA:dbo})
\ No newline at end of file
...@@ -2,5 +2,6 @@ embed-server --server-config=$configuration_file --std-out=discard ...@@ -2,5 +2,6 @@ embed-server --server-config=$configuration_file --std-out=discard
echo ** Adding vault spi ** echo ** Adding vault spi **
/subsystem=keycloak-server/spi=vault/:add /subsystem=keycloak-server/spi=vault/:add
/subsystem=keycloak-server/spi=vault/provider=files-plaintext/:add(enabled=true,properties={dir => $plaintext_vault_provider_dir}) /subsystem=keycloak-server/spi=vault/provider=files-plaintext/:add(enabled=true,properties={dir => $plaintext_vault_provider_dir})
/subsystem=keycloak-server/spi=vault:write-attribute(name=default-provider,value=files-plaintext)
stop-embedded-server stop-embedded-server
embed-server --server-config=standalone-ha.xml --std-out=echo
batch
/subsystem=jgroups/stack=udp/protocol=PING:remove()
/subsystem=jgroups/stack=udp/protocol=JDBC_PING:add(add-index=0, data-source=KeycloakDS, properties=$keycloak_jgroups_discovery_protocol_properties)
/subsystem=jgroups/stack=tcp/protocol=MPING:remove()
/subsystem=jgroups/stack=tcp/protocol=JDBC_PING:add(add-index=0, data-source=KeycloakDS, properties=$keycloak_jgroups_discovery_protocol_properties)
/subsystem=jgroups/channel=ee:write-attribute(name="stack", value=$keycloak_jgroups_transport_stack)
run-batch
stop-embedded-server
...@@ -104,6 +104,9 @@ if echo "$@" | grep -E -v -- '-c |-c=|--server-config |--server-config='; then ...@@ -104,6 +104,9 @@ if echo "$@" | grep -E -v -- '-c |-c=|--server-config |--server-config='; then
SYS_PROPS+=" -c=standalone-ha.xml" SYS_PROPS+=" -c=standalone-ha.xml"
fi fi
# Adding support for JAVA_OPTS_APPEND
sed -i '$a\\n# Append to JAVA_OPTS. Necessary to prevent some values being omitted if JAVA_OPTS is defined directly\nJAVA_OPTS=\"\$JAVA_OPTS \$JAVA_OPTS_APPEND\"' /opt/jboss/keycloak/bin/standalone.conf
############ ############
# DB setup # # DB setup #
############ ############
...@@ -127,6 +130,9 @@ if [[ -z ${DB_VENDOR:-} ]]; then ...@@ -127,6 +130,9 @@ if [[ -z ${DB_VENDOR:-} ]]; then
export DB_VENDOR="oracle" export DB_VENDOR="oracle"
elif (getent hosts mssql &>/dev/null); then elif (getent hosts mssql &>/dev/null); then
export DB_VENDOR="mssql" export DB_VENDOR="mssql"
elif (getent hosts h2 &>/dev/null); then
export DB_VENDOR="h2"
export DB_ADDR="h2"
fi fi
fi fi
...@@ -142,10 +148,13 @@ if [[ -z ${DB_VENDOR:-} ]]; then ...@@ -142,10 +148,13 @@ if [[ -z ${DB_VENDOR:-} ]]; then
export DB_VENDOR="oracle" export DB_VENDOR="oracle"
elif (printenv | grep '^MSSQL_ADDR=' &>/dev/null); then elif (printenv | grep '^MSSQL_ADDR=' &>/dev/null); then
export DB_VENDOR="mssql" export DB_VENDOR="mssql"
elif (printenv | grep '^H2_ADDR=' &>/dev/null); then
export DB_VENDOR="h2"
export DB_ADDR="h2"
fi fi
fi fi
# Default to H2 if DB type not detected # Default to Postgres if DB type not detected
if [[ -z ${DB_VENDOR:-} ]]; then if [[ -z ${DB_VENDOR:-} ]]; then
export DB_VENDOR="postgres" export DB_VENDOR="postgres"
fi fi
...@@ -178,19 +187,28 @@ case "$DB_VENDOR" in ...@@ -178,19 +187,28 @@ case "$DB_VENDOR" in
DB_NAME="MySQL";; DB_NAME="MySQL";;
mariadb) mariadb)
DB_NAME="MariaDB";; DB_NAME="MariaDB";;
mssql)
DB_NAME="Microsoft SQL Server";;
oracle) oracle)
DB_NAME="Oracle";; DB_NAME="Oracle";;
h2) h2)
DB_NAME="Embedded H2";; if [[ -z ${DB_ADDR:-} ]] ; then
mssql) DB_NAME="Embedded H2"
DB_NAME="Microsoft SQL Server";; else
DB_NAME="H2"
fi;;
*) *)
echo "Unknown DB vendor $DB_VENDOR" echo "Unknown DB vendor $DB_VENDOR"
exit 1 exit 1
esac esac
# Append '?' in the beggining of the string if JDBC_PARAMS value isn't empty if [ "$DB_VENDOR" != "mssql" ] && [ "$DB_VENDOR" != "h2" ]; then
JDBC_PARAMS=$(echo "${JDBC_PARAMS:-}" | sed '/^$/! s/^/?/') # Append '?' in the beginning of the string if JDBC_PARAMS value isn't empty
JDBC_PARAMS=$(echo "${JDBC_PARAMS:-}" | sed '/^$/! s/^/?/')
else
JDBC_PARAMS=${JDBC_PARAMS:-}
fi
export JDBC_PARAMS export JDBC_PARAMS
# Convert deprecated DB specific variables # Convert deprecated DB specific variables
...@@ -215,16 +233,21 @@ echo "" ...@@ -215,16 +233,21 @@ echo ""
echo "=========================================================================" echo "========================================================================="
echo "" echo ""
if [ "$DB_VENDOR" != "h2" ]; then configured_file="/opt/jboss/configured"
if [ ! -e "$configured_file" ]; then
touch "$configured_file"
if [ "$DB_NAME" != "Embedded H2" ]; then
/bin/sh /opt/jboss/tools/databases/change-database.sh $DB_VENDOR /bin/sh /opt/jboss/tools/databases/change-database.sh $DB_VENDOR
fi fi
/opt/jboss/tools/x509.sh /opt/jboss/tools/x509.sh
/opt/jboss/tools/jgroups.sh /opt/jboss/tools/jgroups.sh
/opt/jboss/tools/infinispan.sh /opt/jboss/tools/infinispan.sh
/opt/jboss/tools/statistics.sh /opt/jboss/tools/statistics.sh
/opt/jboss/tools/autorun.sh /opt/jboss/tools/vault.sh
/opt/jboss/tools/vault.sh /opt/jboss/tools/autorun.sh
fi
################## ##################
# Start Keycloak # # Start Keycloak #
......
...@@ -41,6 +41,8 @@ function autogenerate_keystores() { ...@@ -41,6 +41,8 @@ function autogenerate_keystores() {
if [ -f "${KEYSTORES_STORAGE}/${JKS_KEYSTORE_FILE}" ]; then if [ -f "${KEYSTORES_STORAGE}/${JKS_KEYSTORE_FILE}" ]; then
echo "${KEYSTORES[$KEYSTORE_TYPE]} keystore successfully created at: ${KEYSTORES_STORAGE}/${JKS_KEYSTORE_FILE}" echo "${KEYSTORES[$KEYSTORE_TYPE]} keystore successfully created at: ${KEYSTORES_STORAGE}/${JKS_KEYSTORE_FILE}"
else
echo "${KEYSTORES[$KEYSTORE_TYPE]} keystore not created at: ${KEYSTORES_STORAGE}/${JKS_KEYSTORE_FILE} (check permissions?)"
fi fi
echo "set keycloak_tls_keystore_password=${PASSWORD}" >> "$JBOSS_HOME/bin/.jbossclirc" echo "set keycloak_tls_keystore_password=${PASSWORD}" >> "$JBOSS_HOME/bin/.jbossclirc"
...@@ -77,6 +79,8 @@ function autogenerate_keystores() { ...@@ -77,6 +79,8 @@ function autogenerate_keystores() {
if [ -f "${JKS_TRUSTSTORE_PATH}" ]; then if [ -f "${JKS_TRUSTSTORE_PATH}" ]; then
echo "Keycloak truststore successfully created at: ${JKS_TRUSTSTORE_PATH}" echo "Keycloak truststore successfully created at: ${JKS_TRUSTSTORE_PATH}"
else
echo "Keycloak truststore not created at: ${JKS_TRUSTSTORE_PATH}"
fi fi
# Import existing system CA certificates into the newly generated truststore # Import existing system CA certificates into the newly generated truststore
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment