diff --git a/.drone.yml b/.drone.yml index a0396f7..454cd63 100644 --- a/.drone.yml +++ b/.drone.yml @@ -3,10 +3,12 @@ kind: pipeline name: deploy to swarm-test.autonomic.zone steps: - name: deployment - image: decentral1se/stack-ssh-deploy:latest + image: git.coopcloud.tech/coop-cloud/stack-ssh-deploy:latest settings: host: swarm-test.autonomic.zone stack: keycloak + networks: + - proxy generate_secrets: true purge: true deploy_key: @@ -23,11 +25,17 @@ trigger: - master --- kind: pipeline -name: recipe release +name: generate recipe catalogue steps: - name: release a new version - image: thecoopcloud/drone-abra:latest + image: plugins/downstream settings: - command: recipe keycloak release - deploy_key: - from_secret: abra_bot_deploy_key + server: https://build.coopcloud.tech + token: + from_secret: drone_abra-bot_token + fork: true + repositories: + - coop-cloud/auto-recipes-catalogue-json + +trigger: + event: tag diff --git a/README.md b/README.md index fe14dcd..af5c5ee 100644 --- a/README.md +++ b/README.md @@ -21,9 +21,9 @@ 2. Deploy [`coop-cloud/traefik`][cc-traefik] 3. `abra app new keycloak --secrets` (optionally with `--pass` if you'd like to save secrets in `pass`) -4. `abra app YOURAPPDOMAIN config` - be sure to change `$DOMAIN` to something that resolves to +4. `abra app config YOURAPPDOMAIN` - be sure to change `$DOMAIN` to something that resolves to your Docker swarm box -5. `abra app YOURAPPDOMAIN deploy` +5. `abra app deploy YOURAPPDOMAIN` ## How do I setup a custom theme? diff --git a/compose.yml b/compose.yml index 4faf532..db25a1b 100644 --- a/compose.yml +++ b/compose.yml @@ -3,7 +3,9 @@ version: "3.8" services: app: - image: "jboss/keycloak:16.1.1" + image: "keycloak/keycloak:22.0.1" + entrypoint: > + bash -c "KEYCLOAK_ADMIN_PASSWORD=\"$$(cat /run/secrets/admin_password)\" KC_DB_PASSWORD=\"$$(cat /run/secrets/db_password)\" /opt/keycloak/bin/kc.sh start" networks: - proxy - internal @@ -11,23 +13,24 @@ services: - admin_password - db_password environment: - - DB_ADDR=db - - DB_DATABASE=keycloak - - DB_PASSWORD_FILE=/run/secrets/db_password - - DB_USER=keycloak - - DB_VENDOR=mariadb - - KEYCLOAK_PASSWORD_FILE=/run/secrets/admin_password - - KEYCLOAK_USER=${ADMIN_USERNAME} + - KC_DB=mariadb + - KC_DB_URL_DATABASE=keycloak + - KC_DB_URL_HOST=db + - KC_HOSTNAME=${DOMAIN} + - KC_PROXY=edge + - KC_SPI_CONNECTIONS_JPA_LEGACY_MIGRATION_STRATEGY=update + - KEYCLOAK_ADMIN=${ADMIN_USERNAME} - KEYCLOAK_WELCOME_THEME=${WELCOME_THEME} - - PROXY_ADDRESS_FORWARDING=true - healthcheck: - test: ["CMD", "curl", "-f", "http://localhost:8080"] - interval: 30s - timeout: 10s - retries: 10 - start_period: 1m + # NOTE(3wc): disabled due to missing curl binary, see + # https://git.coopcloud.tech/coop-cloud/keycloak/issues/15 + # healthcheck: + # test: ["CMD", "curl", "-f", "http://localhost:8080"] + # interval: 30s + # timeout: 10s + # retries: 10 + # start_period: 1m volumes: - - "themes:/opt/jboss/keycloak/themes" + - "themes:/opt/keycloak/themes" depends_on: - mariadb deploy: @@ -43,10 +46,10 @@ services: - "traefik.http.routers.${STACK_NAME}.middlewares=${STACK_NAME}-redirect" - "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLForceHost=true" - "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLHost=${DOMAIN}" - - "coop-cloud.${STACK_NAME}.version=4.0.1+16.1.1" + - "coop-cloud.${STACK_NAME}.version=7.0.0+22.0.1" db: - image: "mariadb:10.6" + image: "mariadb:10.11" environment: - MYSQL_DATABASE=keycloak - MYSQL_USER=keycloak @@ -59,6 +62,15 @@ services: - "mariadb:/var/lib/mysql" networks: - internal + deploy: + labels: + backupbot.backup: "true" + backupbot.backup.path: "/tmp/dump.sql.gz" + backupbot.backup.post-hook: "rm -f /tmp/dump.sql.gz" + backupbot.backup.pre-hook: "sh -c 'mysqldump -u root -p\"$$(cat /run/secrets/db_root_password)\" keycloak | gzip > /tmp/dump.sql.gz'" + backupbot.restore.pre-hook: "sh -c 'cd /tmp && gzip -d dump.sql.gz'" + backupbot.restore: "true" + backupbot.restore.post-hook: "sh -c 'mysql -u root -p\"$$(cat /run/secrets/db_root_password)\" keycloak < /tmp/dump.sql && rm -f /tmp/dump.sql'" networks: internal: diff --git a/release/5.0.0+20.0.1 b/release/5.0.0+20.0.1 new file mode 100644 index 0000000..7bb45b6 --- /dev/null +++ b/release/5.0.0+20.0.1 @@ -0,0 +1,9 @@ +You'll need to remove `/auth/` from your app SSO URLs, e.g. + + https://foo.example.com/auth/realms/foo/protocol/openid-connect/auth + +Would become: + + https://foo.example.com/realms/foo/protocol/openid-connect/auth + +-- decentral1se @ Autonomic diff --git a/release/6.0.0+21.0.2 b/release/6.0.0+21.0.2 new file mode 100644 index 0000000..a038f21 --- /dev/null +++ b/release/6.0.0+21.0.2 @@ -0,0 +1,2 @@ +Healthchecks are disabled, see +https://git.coopcloud.tech/coop-cloud/keycloak/issues/15