# open-webui 배포 ## 1. 배포 전 사전 필요 사항 - SSO 연동을 위해서는gitea가 배포될 **네임스페이스**에 keycloak 인증서가 secret으로 존재해야 한다. ## 2. custom-values.yaml 설명 - custom-values.yaml에 정의된 값에 대한 설명이다. ### ollama 설정 | Name | Description | Default | |------|-------------|---------| | ollama.enabled | ollama 배포여부 | false | ### tika 설정 | Name | Description | Default | |------|-------------|---------| | tika.enabled | tika 배포여부 | false | ### tika 설정 | Name | Description | Default | |------|-------------|---------| | tika.enabled | tika 배포여부 | false | ### websocket 설정 | Name | Description | Default | |------|-------------|---------| | websocket.enabled | websocket 배포여부 | false | ### redis-cluster 설정 | Name | Description | Default | |------|-------------|---------| | redis-cluster.enabled | websocket 배포여부 | false | ### persistence 설정 | Name | Description | Default | |------|-------------|---------| | persistencer.enabled | persistence 사용 | true | | persistencer.size | persistence 용량 | 2Gi | ### Ingress 설정 Cert-manager를 통하여 Ingress를 생성하기 때문에 별도로 tls secret을 생성하지 않아도된다. - host명 정의 필요. ``` ingress: enabled: true annotations: cert-manager.io/cluster-issuer: "root-ca-issuer" host: "open-webui.example.com" tls: true existingSecret: "open-webui-tls-secret" ``` ### Keycloak SSO 연동 - Keycloak을 연동하기 위해서는 Keycloak에 Client가 생성되어 있어야 한다. - 아래는 open-webui 라는 Client가 생성되었을 경우를 가정한다. ``` extraEnvVars: - name: OPENAI_API_KEY value: "0p3n-w3bu!" - name: OAUTH_CLIENT_ID value: open-webui - name: OAUTH_CLIENT_SECRET value: UXVwsmPSbWZ0pZkxwdgeY88vl9JJZJLQ - name: OPENID_PROVIDER_URL value: https://keycloak.example.com/auth/realms/paasup/.well-known/openid-configuration - name: OAUTH_PROVIDER_NAME value: paasup - name: OAUTH_SCOPES value: 'openid email profile' - name: ENABLE_LOGIN_FORM value: 'false' - name: SSL_CERT_FILE value: '/etc/ssl/certs/keycloak/ca.crt' - name: ENABLE_OAUTH_SIGNUP value: 'true' - name: OAUTH_MERGE_ACCOUNTS_BY_EMAIL value: 'true' ``` - open-webui가 배포되는 환경에 keycloak의 tls secret이 배포되어 있어야 한다. ``` volumeMounts: initContainer: [] container: - name: "keycloak-tls" mountPath: "/etc/ssl/certs/keycloak" volumes: - name: "keycloak-tls" secret: secretName: keycloak-tls-secret ```