Add Redis to helm chart #51

Closed
opened 2026-02-15 19:15:47 -05:00 by yindo · 8 comments
Owner

Originally created by @tkg61 on GitHub (Jan 6, 2025).

With the support of redis and websockets, having this available in the helm chat would be great!

Originally created by @tkg61 on GitHub (Jan 6, 2025). With the support of redis and websockets, having this available in the helm chat would be great!
yindo added the enhancementgood first issue labels 2026-02-15 19:15:47 -05:00
yindo closed this issue 2026-02-15 19:15:47 -05:00
Author
Owner

@jyje commented on GitHub (Jan 7, 2025):

I think three options would work well:

  • add the redis subchart and link it
  • link to the host of external redis
  • do both

which option seems best?

@jyje commented on GitHub (Jan 7, 2025): I think three options would work well: - add the redis subchart and link it - link to the host of external redis - do both which option seems best?
Author
Owner

@tkg61 commented on GitHub (Jan 7, 2025):

I would say both would be fantastic. Larger installs will want to possibly use one they already have or want to keep separate and smaller or dedicated installs will want an easy button :)

@tkg61 commented on GitHub (Jan 7, 2025): I would say both would be fantastic. Larger installs will want to possibly use one they already have or want to keep separate and smaller or dedicated installs will want an easy button :)
Author
Owner

@jyje commented on GitHub (Jan 7, 2025):

I missed smaller one. How about 3 scenario? based on this doc, I'm writing the first draft for pilot.

Install Scenario Description redis.enabled redisCluster.enabled
Small Default installation: 1 Redis server using k8s Deployment true false
Full High availability: Redis cluster using Bitnami Helm chart false true
External Use an external Redis instance instead of deploying one in the chart false false

these are proposed parts of values.yaml

websocket:
  # -- Enables websocket support in Open WebUI with env `ENABLE_WEBSOCKET_SUPPORT`
  enabled: false
  # -- Specifies the websocket manager to use with env `WEBSOCKET_MANAGER`: redis (default)
  manager: redis
  # -- Specifies the URL of the Redis instance for websocket communication
  url: redis://websocket-redis:6379/0
  # -- Deploys a redis
  redis:
    # -- Enable redis installation
    enabled: true
    # -- Redis name
    name: websocket-redis
    # -- Redis labels
    labels: {}
    # -- Redis annotations
    annotations: {}
    # -- Redis image
    image:
      repository: redis
      tag: 7.4.2-alpine3.21
      pullPolicy: IfNotPresent
    # -- Redis service
    service:
      # -- Redis container/target port
      containerPort: 6379
      # -- Redis service type
      type: ClusterIP
      # -- Redis service labels
      labels: {}
      # -- Redis service annotations
      annotations: {}
      # -- Redis service port
      port: 6379
      # -- Redis service node port
      nodePort: ""
  # -- Deploys a redis cluster with subchart (bitnami chart)
  redisCluster:
    # -- Enable redis installation
    enabled: false
    # ...
    # ...
    # ...

I'm testing small scenario now. If you can say this draft looks good, we can start based on it. Please give me any advice.

@jyje commented on GitHub (Jan 7, 2025): I missed smaller one. How about 3 scenario? based on [this doc](https://docs.openwebui.com/getting-started/advanced-topics/env-configuration#redis), I'm writing the first draft for pilot. | **Install Scenario** | **Description** | **redis.enabled** | **redisCluster.enabled** | |---------------------|---------------------------------------------------------------------------------|--------------------------------------|--------------------------------------------| | Small | Default installation: 1 Redis server using k8s Deployment | `true` | `false` | | Full | High availability: Redis cluster using Bitnami Helm chart | `false` | `true` | | External | Use an external Redis instance instead of deploying one in the chart | `false` | `false` | these are proposed parts of `values.yaml` ``` websocket: # -- Enables websocket support in Open WebUI with env `ENABLE_WEBSOCKET_SUPPORT` enabled: false # -- Specifies the websocket manager to use with env `WEBSOCKET_MANAGER`: redis (default) manager: redis # -- Specifies the URL of the Redis instance for websocket communication url: redis://websocket-redis:6379/0 # -- Deploys a redis redis: # -- Enable redis installation enabled: true # -- Redis name name: websocket-redis # -- Redis labels labels: {} # -- Redis annotations annotations: {} # -- Redis image image: repository: redis tag: 7.4.2-alpine3.21 pullPolicy: IfNotPresent # -- Redis service service: # -- Redis container/target port containerPort: 6379 # -- Redis service type type: ClusterIP # -- Redis service labels labels: {} # -- Redis service annotations annotations: {} # -- Redis service port port: 6379 # -- Redis service node port nodePort: "" # -- Deploys a redis cluster with subchart (bitnami chart) redisCluster: # -- Enable redis installation enabled: false # ... # ... # ... ``` I'm testing small scenario now. If you can say this draft looks good, we can start based on it. Please give me any advice.
Author
Owner

@jyje commented on GitHub (Jan 7, 2025):

To @tkg61 or someone. Hello folks.

I tested Small, External scenario in k8s redis. The websocket manager was recognized in pod from debug message below:
image

I don't know how to verify websocket functions in owui web. I'm not good at web developments for websocket. If there is in owui docs or somewhere, please let me know.

@jyje commented on GitHub (Jan 7, 2025): To @tkg61 or someone. Hello folks. I tested **Small, External** scenario in k8s redis. The websocket manager was recognized in pod from debug message below: ![image](https://github.com/user-attachments/assets/752261f3-3c7f-4ed0-b79a-9d5d49fed00b) I don't know how to verify websocket functions in owui web. I'm not good at web developments for websocket. If there is in owui docs or somewhere, please let me know.
Author
Owner

@tkg61 commented on GitHub (Jan 29, 2025):

So this works for us but only if we do nginx with the "affinity: cookie" attribute. If we remove it then websockets stop working. We also ran into this issue with Istio instead of nginx so i think we might still have an OWUI issue somewhere with sockets

@tkg61 commented on GitHub (Jan 29, 2025): So this works for us but only if we do nginx with the "affinity: cookie" attribute. If we remove it then websockets stop working. We also ran into this issue with Istio instead of nginx so i think we might still have an OWUI issue somewhere with sockets
Author
Owner

@MathieuJegou commented on GitHub (Feb 26, 2025):

Is redis mandatory ? I'm not sure I need a redis instance and after setting redis-cluster.enabled and websocket.enabled to false, I still see a redis container being deployed.

@MathieuJegou commented on GitHub (Feb 26, 2025): Is redis mandatory ? I'm not sure I need a redis instance and after setting redis-cluster.enabled and websocket.enabled to false, I still see a redis container being deployed.
Author
Owner

@jyje commented on GitHub (Feb 27, 2025):

Hey, @MathieuJegou. did you set websocket.redis.enabled=false? If so, please let me know.

@jyje commented on GitHub (Feb 27, 2025): Hey, @MathieuJegou. did you set `websocket.redis.enabled=false`? If so, please let me know.
Author
Owner

@MathieuJegou commented on GitHub (Feb 28, 2025):

Hi,
It works, it was an conflict with my company's default deployment parameters.

@MathieuJegou commented on GitHub (Feb 28, 2025): Hi, It works, it was an conflict with my company's default deployment parameters.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: open-webui/helm-charts#51