使用运算符部署自定义 Keycloak 主题(v15.1.1 和 v16.0.0)



我有一个大小为>1MB(这排除了作为这个问题的答案提供的configmap解决方案(。

此主题已根据服务器开发指南进行了打包-其文件夹结构为

META-INF/keycloak-themes.json
themes/[themeName]/login/login.ftl
themes/[themeName]/login/login-reset-password.ftl    
themes/[themeName]/login/template.ftl
themes/[themeName]/login/template.html
themes/[themeName]/login/theme.properties
themes/[themeName]/login/messages/messages_de.properties
themes/[themeName]/login/messages/messages_en.properties
themes/[themeName]/login/resources/[...]

keycloft-themes.json的内容是

{
"themes": [{
"name" : "[themeName]",
"types": [ "login" ]
}]
}

其中[themeName]是我的主题名称。

Keycloft运行有3个实例,其资源规范包括:

extensions:
- [URL-to-jar]

根据每个吊舱的日志,部署成功-每个日志都包含一条包含的消息

Deployed "[jar-name].jar" (runtime-name : "[jar-name].jar")

但是,在管理控制台中,我无法从登录主题的扩展中选择主题。通过crd创建一个新的领域,通过规范条目使用预先配置的登录主题

loginTheme: [themeName]

同样不起作用——在管理控制台中,登录主题的选定条目为空。

我可能遗漏了一些基本的东西,但如果我没有错的话,这似乎应该根据这个答案来工作。

通常情况下,未捕获的拼写错误是错误的来源。

目录结构必须而不是

  • META-INF/keycaph-themes.json
  • 主题/[主题名称]/[主题角色]/theme.properties
  • […]

但是

  • META-INF/keycaph-themes.json
  • 主题/[主题名称]/[主题角色]/theme.properties
  • […]

给定一个正确的结构,keycloft操作符可以成功地部署和加载自定义主题作为jar扩展。

最新更新