Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add guide on how to expose KubeAI Server and OpenWebUI via Ingress #252

Open
nstogner opened this issue Sep 27, 2024 · 5 comments
Open

Add guide on how to expose KubeAI Server and OpenWebUI via Ingress #252

nstogner opened this issue Sep 27, 2024 · 5 comments

Comments

@nstogner
Copy link
Contributor

No description provided.

@gentoorax
Copy link

For info I used the following values.yaml to enable ingress. By default this tries to expose kubeai server, when you probably want Open WebUI or both.

...
ingress:
  enabled: true
  className: traefik-internal
  annotations:
    cert-manager.io/cluster-issuer: my-vault-issuer
    cert-manager.io/common-name: kubeai.internal.mydomain.net
    traefik.ingress.kubernetes.io/router.middlewares: traefik-middleware-redirect-to-https@kubernetescrd
  rules:
    - host: kubeai.internal.mydomain.net
      paths:
        - path: /
          pathType: Prefix
  tls:
   - secretName: kubeai-tls-secret
     hosts:
       - kubeai.internal.mydomain.net

@shawnho1018
Copy link

This is how I used with Gateway API to publish L7.

---
kind: Gateway
apiVersion: gateway.networking.k8s.io/v1beta1
metadata:
  name: kubeai-gw
  namespace: default
spec:
  gatewayClassName: gke-l7-regional-external-managed
  listeners:
  - name: http
    protocol: HTTP
    port: 80

---
kind: HTTPRoute
apiVersion: gateway.networking.k8s.io/v1beta1
metadata:
  name: kubeai
  namespace: default
spec:
  parentRefs:
  - name: kubeai-gw
    sectionName: http
  rules:
  - matches:
    - path:
        type: PathPrefix
        value: /openai/v1
    backendRefs:
    - name: kubeai
      port: 80
  - backendRefs:
    - name: openwebui
      port: 80
      ```

@dxu104
Copy link

dxu104 commented Feb 7, 2025

I appreciate the shared configurations for enabling Ingress and using the Gateway API to expose KubeAI Server. I was wondering if there are any official or community tutorials that provide a guide on how to expose these services to the public using Ingress and a Load Balancer (LB) on AWS EKS(https://www.kubeai.org/installation/eks/) @samos123

@sjoerdvandenbos-prodrive
image:
  repository: substratusai/kubeai
  pullPolicy: IfNotPresent
  tag: ""

# OpenAI API
ingress:
  enabled: true
  className: nginx
  rules:
    - host: 127.0.0.1.nip.io
      paths:
        - path: /openai/v1
          pathType: Prefix

# Open-WebUI GUI
openwebui:
  enabled: true
  ollama:
    enabled: false
  pipelines:
    enabled: false
  openaiBaseApiUrl: "http://kubeai.your-namespace.svc.cluster.local"
  ingress:
    enabled: true
    class: nginx
    host: 127.0.0.1.nip.io
    additionalHosts:
    - 127.0.0.1.nip.io
  extraEnvVars:
  - name: WEBUI_AUTH
    value: "False"
  - name: OPENAI_API_KEYS
    value: "not-used"
  - name: SHOW_ADMIN_DETAILS
    value: "false"
  - name: SAFE_MODE
    value: "true"
  - name: ENABLE_EVALUATION_ARENA_MODELS
    value: "False"
  ingress:
    enabled: true
    className: "nginx"
    annotations:
      kubernetes.io/ingress.class: nginx
    hosts:
      - host: 127.0.0.1.nip.io
        paths:
          - path: /
            pathType: Prefix

@nstogner @samos123 your open-webui subchart is defined to be a very old version.

@samos123
Copy link
Contributor

@sjoerdvandenbos-prodrive we've switched to upstream helm chart of Open WebUI: #379

We plan to do a new release soon of the KubeAI helm chart that will use the upstream helm chart with a newer version.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants