如何在 Keycloak Operator (v13.0.0) 上使用自定义主题?

How to use custom themes on Keycloak Operator (v13.0.0)?

我正在使用 Operator (version 13.0.0). The updated code has theme related stuff github repository 安装 Keycloak,并且很好地支持自定义主题集成。我们只需要自定义 theme 所在的 URL。我试过了,效果很好。

但是,如果我们在某些本地目录中有主题,而不是在某些 public URL 中怎么办?那么我们应该如何在 Keycloak 中上传 theme

我也尝试过使用文件 URL 和文件路径,但对我不起作用。

Keycloak.yaml

apiVersion: keycloak.org/v1alpha1
kind: Keycloak
metadata:
  name: keycloak-test
  labels:
    app: keycloak-test
spec:
  instances: 1
  extensions:
    - https://SOME-PUBLIC-URL/keycloak-themes.jar                    
  externalAccess:
    enabled: False
  podDisruptionBudget:
    enabled: True

您可以创建一个 .tar 文件(例如, custom_theme.tar),其中包含要在 Keycloak 中使用的自定义主题,然后安装一个卷到存储Keycloak主题的文件夹( /opt/jboss/keycloak/themes/my_custom_theme),然后将带有自定义主题的.tar文件从本地文件夹复制到Keycloak容器。

您可以找到此方法的完整示例

我们可以使用以下步骤在 keycloak operator (v13.0.0) 中添加自定义 keycloak 主题:

  1. 使用此处显示的步骤为您的自定义主题创建一个 jar 文件Deploying Keycloak Themes
  2. 使用以下命令创建 jar 的 kubernetes configmap
kubectl create cm customtheme --from-file customtheme.jar
  1. 要使用上面的 configmap 更新 Keycloak.yaml 并添加以下代码块
  keycloakDeploymentSpec:
    experimental:
      volumes:
        defaultMode: 0777
        items:
          - name: customtheme
            mountPath: /opt/jboss/keycloak/standalone/deployments/custom-themes
            subPath: customtheme.jar
            configMaps:
              - customtheme

注意:确保主题大小小于1MB。