как сохранить Keycloak в пользовательских темах Kubernetes

Я пытался сохранить пользовательские темы через gcepersistentdisk, но когда я вхожу в консоль администрирования, она ничего не загружает и проверяет, что папка /opt/jboss/keycloak/themes пуста.

Также попробуйте создать собственный образ докера (Dockerfile), добавив следующую строку, чтобы скопировать настраиваемые темы.

COPY /source-folder/login /opt/jboss/keycloak/themes/login

хотя в папке /opt/jboss/keycloak/themes я вижу новую папку входа в систему, когда я получаю доступ к консоли администрирования, я не вижу входа в пользовательскую тему.

Я могу просматривать настраиваемую тему, только когда делаю это с помощью следующих команд kubernet:

  1. kubectl exec POD --namespace keycloak - mkdir /opt/jboss/keycloak/themes/login

  2. kubectl cp keycloak/login keycloak/POD:/opt/jboss/keycloak/themes/login

С помощью предыдущих команд, если я вижу пользовательский вход в тему в консоли администрирования

Я пробовал использовать gcePersistentDisk следующим образом:

spec:
  containers:
    - name: keycloak
   ...
   volumeMounts:
     - mountPath: /opt/jboss/keycloak/themes
       name: test-volume

  volumes:
    - name: test-volume
      gcePersistentDisk:
        pdName: pd-name
        fsType: ext4

Как я могу сохранить настраиваемые темы при перезапуске модуля?


person Juanes30    schedule 07.03.2020    source источник


Ответы (2)


Насколько я понимаю, у каждой темы должна быть своя папка. Это должно быть themes/mytheme/login вместо themes/login. Например, ваша локальная структура может выглядеть так:

Dockerfile
themes
|-mytheme
  |-account
  |-admin
  |-login
    |-resources 
      |-css
      |-img
    |-theme.properties
  |-welcome

Файл Docker может выглядеть так:

FROM jboss/keycloak:8.0.1
ADD ./themes /opt/jboss/keycloak/themes/

Создайте образ докера, запустите, затем перейдите в Realm Settings -> Themes и выберите свою тему.

person Yuriy P    schedule 09.03.2020

Создайте StorageClass и PersistentVolumeClaim

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: ssd-sc  # specify the storage class created below
  resources:
    requests:
      storage: 10Gi

---

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: ssd-sc 
provisioner: kubernetes.io/gce-pd
reclaimPolicy: Retain # Retain storage even if we delete PVC
parameters:
  type: pd-ssd # ssd

Создайте Pod для использования PersistentVolumeClaim

apiVersion: v1
kind: Pod
metadata:
  name: task-pv-pod
spec:
  volumes:
    - name: task-pv-storage
      persistentVolumeClaim:
        claimName: nfs-pvc
  containers:
    - name: task-pv-container
      image: nginx
      ports:
        - containerPort: 80
          name: "http-server"
      volumeMounts:
        - mountPath: "/usr/share/nginx/html"
          name: task-pv-storage
person Arghya Sadhu    schedule 07.03.2020
comment
у меня не сработало, когда я пытаюсь войти в административную консоль keycloak, она не загружается - person Juanes30; 08.03.2020
comment
Вы смонтировали свой том по правильному пути? Что показывает kubectl get pv,pvc? - person mario; 09.03.2020