Keycloak X. Что за зверь и с чем его едят?
Обо мне
Попов Виктор
Keycloak X. Что за зверь и с чем его едят?
Техлид DevOps-команды департамента по развитию и эксплуатации корневых систем в X5 Group
Помогаю поддерживать и развивать k8s-кластеры as-a-service для 20+ продуктовых команд. А так же кучу сопутствующих инструментов
Поддерживаю централизованный keycloak для внутренних пользователей компании
Чиню коммуникации между dev- и ops- командами
Рассказываю пользователям, чем вообще занимаются инженеры
2
tg: @IvanovIvanIvanovich1 �mail: vik.popov@x5.ru
Что такое keycloak X?
Keycloak X. Что за зверь и с чем его едят?
Keycloak X – это кейклок, использующий Quarkus вместо Wildfly��Вот тут подробнее от разработчиков Keycloak:�https://www.keycloak.org/2020/12/first-keycloak-x-release.adoc��Вот тут подробнее про Quarkus:�https://quarkus.io/
3
Зачем это нужно?
Например вот зачем:
Keycloak X. Что за зверь и с чем его едят?
4
Зачем это нужно?
Смена модели хранения данных:
Keycloak X. Что за зверь и с чем его едят?
Вот тут подробности:��https://github.com/keycloak/keycloak-community/blob/081b1382dd234fb7b32daa5802ded1fdaafe9812/design/keycloak.x/storage-hot-rod.md���И вот тут:��https://github.com/keycloak/keycloak-community/blob/081b1382dd234fb7b32daa5802ded1fdaafe9812/design/keycloak.x/storage-persistence.md
5
Зачем это нужно?
Упрощение конфигурации
Keycloak X. Что за зверь и с чем его едят?
Было:
6
Стало:
Зачем это нужно?
Упрощение конфигурации
Keycloak X. Что за зверь и с чем его едят?
Но немного XML всё же осталось:
7
В каком всё это состоянии?
Keycloak X. Что за зверь и с чем его едят?
11 февраля вышла первая стабильная Quarkus версия – 17.0.0��Wildfly версия объявлена Legacy��Где-то летом Wildfly версии выходить перестанут вообще.��Для пользователей RedHat SSO обещают еще два года поддержки JBoss версии
8
Документация
Keycloak X. Что за зверь и с чем его едят?
С документацией прямо сейчас всё очень плохо.�Главное, что появилось в стабильной версии это документация.
С документацией прямо сейчас всё плохо.
9
В каком всё это состоянии?
Документация
Keycloak X. Что за зверь и с чем его едят?
Вот тут можно почитать про запуск сервера:
https://www.keycloak.org/server/configuration�
Вот тут про все параметры запуска:
https://www.keycloak.org/server/all-config�
Вот тут про настройку кешей:
https://www.keycloak.org/server/caching�
10
В каком всё это состоянии?
Документация
Keycloak X. Что за зверь и с чем его едят?
11
В каком всё это состоянии?
Настройки, которые есть в документации:
��А вот настройка, которая есть в примере, но нет в документации:
# Do not attach route to cookies and rely on the session affinity capabilities from reverse proxy
#spi-sticky-session-encoder-infinispan-should-attach-route=false
Настройки, которых нет в документации:
Документация
Keycloak X. Что за зверь и с чем его едят?
12
В каком всё это состоянии?
Readme репозитория, где собираются docker контейнеры кейклока:
https://github.com/keycloak/keycloak-containers
Документация
Keycloak X. Что за зверь и с чем его едят?
13
В каком всё это состоянии?
Сам репозиторий:
Настройки по умолчанию
Keycloak X. Что за зверь и с чем его едят?
14
Важные изменения
hostname-strict = true��“/” вместо “/auth/”
http-enabled = false
Keycloak X. Что за зверь и с чем его едят?
15
Темы: изменился лишь путь, куда нужно копировать темы.��Было: /opt/jboss/keycloak/themes
Стало: /opt/keycloak/themes��Все старые темы скорее всего будут работать.����SPI: ��Если использовался функционал WildFly то SPI работать не будут.�Если использовался только функционал keycloak, то скорее всего SPI будут работать.��Копировать вот сюда: /opt/keycloak/providers
Темы и SPI
Важные изменения
Keycloak X. Что за зверь и с чем его едят?
16
Ключ --build «готовит» приложение к запуску с заданными настройками��Можно сделать вот так:�� FROM quay.io/keycloak/keycloak-x:15.1.1
RUN /opt/keycloak/bin/kc.sh build --metrics-enabled=true
docker build -t mykeycloakx .��И получить контейнер, который будет запускаться очень быстро.
Символ в документации обозначает, что настройка может быть применена только на через build.��Ключ --start запускает приложение.��Ключ --auto-build «готовит» и запускает. Так дольше, но подготовительный этап не нужен
Build и Start
Важные изменения
Keycloak X. Что за зверь и с чем его едят?
17
Как я обновлялся: dockerfile
Важные изменения
Было:
Стало:
Keycloak X. Что за зверь и с чем его едят?
18
Как я обновлялся: конфиги
Важные изменения
Было:
Стало:
Keycloak X. Что за зверь и с чем его едят?
19
Как я обновлялся: подключение к базе
Важные изменения
Было:
Стало:
Keycloak X. Что за зверь и с чем его едят?
20
Зачем было менять названия переменных?
Важные изменения
Keycloak X. Что за зверь и с чем его едят?
21
Зачем было менять названия переменных?
Важные изменения
Keycloak X. Что за зверь и с чем его едят?
22
Как я обновлялся: HA
Важные изменения
Было:
Стало:
Keycloak X. Что за зверь и с чем его едят?
23
Как я обновлялся: параметры запуска
Важные изменения
Было:
Стало:
Спасибо за внимание!