Browse Source

Add separate API service resource to Helm chart (#5572)

### What problem does this PR solve?

Adds a new Kubernetes Service resource to the Helm chart which
specifically targets the RAGFlow API. This feature useful for cases
where you want to expose the RAGFlow HTTP API separately from the web
interface, for example if RAGFlow is running behind an authenticating
proxy it allows a route to bypass the proxy (e.g. by defining a separate
ingress resource which forwards to the separate API-only k8s service
added here) to provide RAGFlow API access. This is still secure since
API access is already authenticated by API keys inside RAGFlow itself.

### Type of change

- [X] New Feature (non-breaking change which adds functionality)
tags/v0.17.1
Scott Davidson 8 months ago
parent
commit
69dc14f5d6
No account linked to committer's email address
3 changed files with 27 additions and 1 deletions
  1. 1
    1
      helm/templates/ingress.yaml
  2. 22
    0
      helm/templates/ragflow.yaml
  3. 4
    0
      helm/values.yaml

+ 1
- 1
helm/templates/ingress.yaml View File

@@ -35,7 +35,7 @@ spec:
{{- end }}
backend:
service:
name: {{ include "ragflow.fullname" $ }}
name: {{ .Release.Name }}
port:
name: http
{{- end }}

+ 22
- 0
helm/templates/ragflow.yaml View File

@@ -31,6 +31,8 @@ spec:
ports:
- containerPort: 80
name: http
- containerPort: 9380
name: http-api
volumeMounts:
- mountPath: /etc/nginx/conf.d/ragflow.conf
subPath: ragflow.conf
@@ -70,3 +72,23 @@ spec:
targetPort: http
name: http
type: {{ .Values.ragflow.service.type }}
---
{{- if .Values.ragflow.api.service.enabled }}
apiVersion: v1
kind: Service
metadata:
name: {{ .Release.Name }}-api
labels:
{{- include "ragflow.labels" . | nindent 4 }}
app.kubernetes.io/component: ragflow
spec:
selector:
{{- include "ragflow.selectorLabels" . | nindent 4 }}
app.kubernetes.io/component: ragflow
ports:
- protocol: TCP
port: 80
targetPort: http-api
name: http-api
type: {{ .Values.ragflow.api.service.type }}
{{- end }}

+ 4
- 0
helm/values.yaml View File

@@ -69,6 +69,10 @@ ragflow:
service:
# Use LoadBalancer to expose the web interface externally
type: ClusterIP
api:
service:
enabled: true
type: ClusterIP

infinity:
image:

Loading…
Cancel
Save