Compare commits

...

14 Commits

6 changed files with 57 additions and 19 deletions

View File

@ -3,10 +3,12 @@ kind: pipeline
name: deploy to swarm-test.autonomic.zone name: deploy to swarm-test.autonomic.zone
steps: steps:
- name: deployment - name: deployment
image: decentral1se/stack-ssh-deploy:latest image: git.coopcloud.tech/coop-cloud/stack-ssh-deploy:latest
settings: settings:
host: swarm-test.autonomic.zone host: swarm-test.autonomic.zone
stack: keycloak stack: keycloak
networks:
- proxy
generate_secrets: true generate_secrets: true
purge: true purge: true
deploy_key: deploy_key:
@ -23,11 +25,17 @@ trigger:
- master - master
--- ---
kind: pipeline kind: pipeline
name: recipe release name: generate recipe catalogue
steps: steps:
- name: release a new version - name: release a new version
image: thecoopcloud/drone-abra:latest image: plugins/downstream
settings: settings:
command: recipe keycloak release server: https://build.coopcloud.tech
deploy_key: token:
from_secret: abra_bot_deploy_key from_secret: drone_abra-bot_token
fork: true
repositories:
- coop-cloud/auto-recipes-catalogue-json
trigger:
event: tag

View File

@ -6,6 +6,7 @@ DOMAIN=keycloak.example.com
LETS_ENCRYPT_ENV=production LETS_ENCRYPT_ENV=production
ADMIN_USERNAME=admin ADMIN_USERNAME=admin
WELCOME_THEME=keycloak
SECRET_DB_ROOT_PASSWORD_VERSION=v1 SECRET_DB_ROOT_PASSWORD_VERSION=v1
SECRET_DB_PASSWORD_VERSION=v1 SECRET_DB_PASSWORD_VERSION=v1

View File

@ -21,9 +21,9 @@
2. Deploy [`coop-cloud/traefik`][cc-traefik] 2. Deploy [`coop-cloud/traefik`][cc-traefik]
3. `abra app new keycloak --secrets` (optionally with `--pass` if you'd like 3. `abra app new keycloak --secrets` (optionally with `--pass` if you'd like
to save secrets in `pass`) 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 your Docker swarm box
5. `abra app YOURAPPDOMAIN deploy` 5. `abra app deploy YOURAPPDOMAIN`
## How do I setup a custom theme? ## How do I setup a custom theme?

View File

@ -3,7 +3,9 @@ version: "3.8"
services: services:
app: app:
image: "jboss/keycloak:16.1.0" image: "keycloak/keycloak:20.0.3"
entrypoint: >
bash -c "KC_DB_PASSWORD=\"$$(cat /run/secrets/db_password)\" /opt/keycloak/bin/kc.sh start"
networks: networks:
- proxy - proxy
- internal - internal
@ -11,14 +13,14 @@ services:
- admin_password - admin_password
- db_password - db_password
environment: environment:
- DB_ADDR=db - KC_DB=mariadb
- DB_DATABASE=keycloak - KC_DB_URL_DATABASE=keycloak
- DB_PASSWORD_FILE=/run/secrets/db_password - KC_DB_URL_HOST=db
- DB_USER=keycloak - KC_HOSTNAME=${DOMAIN}
- DB_VENDOR=mariadb - KC_PROXY=edge
- KEYCLOAK_PASSWORD_FILE=/run/secrets/admin_password - KC_SPI_CONNECTIONS_JPA_LEGACY_MIGRATION_STRATEGY=update
- KEYCLOAK_USER=${ADMIN_USERNAME} - KEYCLOAK_ADMIN=${ADMIN_USERNAME}
- PROXY_ADDRESS_FORWARDING=true - KEYCLOAK_WELCOME_THEME=${WELCOME_THEME}
healthcheck: healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080"] test: ["CMD", "curl", "-f", "http://localhost:8080"]
interval: 30s interval: 30s
@ -26,7 +28,7 @@ services:
retries: 10 retries: 10
start_period: 1m start_period: 1m
volumes: volumes:
- "themes:/opt/jboss/keycloak/themes" - "themes:/opt/keycloak/themes"
depends_on: depends_on:
- mariadb - mariadb
deploy: deploy:
@ -42,7 +44,7 @@ services:
- "traefik.http.routers.${STACK_NAME}.middlewares=${STACK_NAME}-redirect" - "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.SSLForceHost=true"
- "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLHost=${DOMAIN}" - "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLHost=${DOMAIN}"
- "coop-cloud.${STACK_NAME}.version=4.0.0+16.1.0" - "coop-cloud.${STACK_NAME}.version=5.0.2+20.0.3"
db: db:
image: "mariadb:10.6" image: "mariadb:10.6"
@ -58,6 +60,12 @@ services:
- "mariadb:/var/lib/mysql" - "mariadb:/var/lib/mysql"
networks: networks:
- internal - 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'"
networks: networks:
internal: internal:

12
release/4.0.0+16.1.0 Normal file
View File

@ -0,0 +1,12 @@
This major release comes with a blog post about a CVE:
https://www.keycloak.org/2021/12/cve.html
Not all versions are affected but they're suggesting that people upgrade soon.
As per usual, this upgrade didn't go too smoothly and I ended up having to
undeploy and deploy the new versions. The healtcheck kept failing on the new
instance when trying to deploy alongside the existing old version. Idk, some
docker weirdness.
No app data errors discovered after upgrade.

9
release/5.0.0+20.0.1 Normal file
View File

@ -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