diff --git a/charts/ragflow/CUSTOM-README.md b/charts/ragflow/CUSTOM-README.md index eb28ded..fe10cdd 100644 --- a/charts/ragflow/CUSTOM-README.md +++ b/charts/ragflow/CUSTOM-README.md @@ -30,6 +30,7 @@ | `env.MINIO_PASSWORD` | MinIO 비밀번호 | `infini_rag_flow_helm` | | `env.REDIS_PASSWORD` | Redis 비밀번호 | `infini_rag_flow_helm` | | `env.RAGFLOW_IMAGE` | RAGFlow Docker 이미지 | `infiniflow/ragflow:v0.20.1-slim` | +| `env.REQUESTS_CA_BUNDLE` | 사설 인증서 사용 시 CA 번들 파일 경로 | 설정하지 않음 | | `env.TIMEZONE` | 로컬 시간대 설정 | `"Asia/Seoul"` | | `env.DOC_BULK_SIZE` | 문서 파싱 시 단일 배치에서 처리되는 문서 청크 수 | `4` | | `env.EMBEDDING_BATCH_SIZE` | 임베딩 벡터화 시 단일 배치에서 처리되는 텍스트 청크 수 | `16` | @@ -48,6 +49,8 @@ | `ragflow.deployment.resources` | 리소스 제한 설정 | `` | | `ragflow.service_conf.oauth.oidc` | OIDC 인증 설정 | 설정 예시 참조 | | `ragflow.llm_factories` | LLM 팩토리 설정 | 설정 예시 참조 | +| `ragflow.volumes` | 추가 볼륨 설정 | `[]` | +| `ragflow.volumeMounts` | 추가 볼륨 마운트 설정 | `[]` | #### 2.1) OIDC 인증 설정 예시 ```yaml @@ -80,6 +83,61 @@ ragflow: is_tools: false ``` +#### 2.3) 사설 인증서 설정 예시 +```yaml +env: + # 사설 인증서 사용 시 CA 번들 파일 경로 설정 + REQUESTS_CA_BUNDLE: /tmp/ca.crt + +ragflow: + # 사설 인증서를 포함한 Secret을 볼륨으로 마운트 + volumes: + - name: keycloak-tls + secret: + secretName: keycloak-tls + + # Secret의 ca.crt를 컨테이너 내부 경로에 마운트 + volumeMounts: + - name: keycloak-tls + mountPath: /tmp/ca.crt + subPath: ca.crt + readOnly: true +``` + +#### 2.4) 추가 볼륨 및 볼륨 마운트 설정 예시 +```yaml +ragflow: + # 다양한 타입의 볼륨 설정 예시 + volumes: + # ConfigMap 볼륨 + - name: my-config + configMap: + name: my-configmap + # Secret 볼륨 + - name: my-secret + secret: + secretName: my-secret + # PVC 볼륨 + - name: my-data + persistentVolumeClaim: + claimName: my-pvc + + # 볼륨 마운트 설정 예시 + volumeMounts: + # ConfigMap 마운트 + - name: my-config + mountPath: /app/config + readOnly: true + # Secret의 특정 키만 마운트 + - name: my-secret + mountPath: /app/secrets/token + subPath: token + readOnly: true + # PVC 마운트 + - name: my-data + mountPath: /app/data +``` + ### 3) Infinity 서비스 설정 @@ -240,7 +298,42 @@ ragflow: | `env.DOC_BULK_SIZE` | 문서 파싱 시 단일 배치에서 처리되는 문서 청크 수 | `4` | | `env.EMBEDDING_BATCH_SIZE` | 임베딩 벡터화 시 단일 배치에서 처리되는 텍스트 청크 수 | `16` | -### 3.6) 추가 환경 설정 +### 3.6) 사설 인증서 설정 +- HTTPS 통신 시 사설 인증서를 사용하는 경우의 설정 방법입니다. + +#### 3.6.1) 사설 인증서 Secret 생성 +```sh +# CA 인증서 파일로부터 Secret 생성 +kubectl create secret generic keycloak-tls \ + --from-file=ca.crt=/path/to/ca.crt \ + -n +``` + +#### 3.6.2) values.yaml 설정 +```yaml +env: + # Python requests 라이브러리가 사용할 CA 번들 파일 경로 + REQUESTS_CA_BUNDLE: /tmp/ca.crt + +ragflow: + volumes: + - name: keycloak-tls + secret: + secretName: keycloak-tls + + volumeMounts: + - name: keycloak-tls + mountPath: /tmp/ca.crt + subPath: ca.crt + readOnly: true +``` + +#### 3.6.3) 주의사항 +- `REQUESTS_CA_BUNDLE` 경로와 `volumeMounts.mountPath`가 일치해야 합니다. +- `subPath`를 사용하여 Secret의 특정 키만 마운트하는 것을 권장합니다. +- 인증서 파일은 읽기 전용(`readOnly: true`)으로 마운트하세요. + +### 3.7) 추가 환경 설정 - 기타 선택적 환경 설정들입니다. | Name | 설명 | 기본값 | diff --git a/charts/ragflow/custom-values.yaml b/charts/ragflow/custom-values.yaml index a86cd97..64591d6 100644 --- a/charts/ragflow/custom-values.yaml +++ b/charts/ragflow/custom-values.yaml @@ -35,6 +35,10 @@ env: # The RAGFlow Docker image to download. # Defaults to the v0.20.1-slim edition, which is the RAGFlow Docker image without embedding models. RAGFLOW_IMAGE: infiniflow/ragflow:v0.20.1-slim + + # Custom CA certificate bundle path for HTTPS requests + # Uncomment and set the path if using custom certificates + # REQUESTS_CA_BUNDLE: /tmp/ca.crt # # To download the RAGFlow Docker image with embedding models, uncomment the following line instead: # RAGFLOW_IMAGE: infiniflow/ragflow:v0.20.1 @@ -106,17 +110,34 @@ ragflow: # model_type: chat # is_tools: false - # Kubernetes configuration - deployment: - strategy: - resources: +# Additional volumes to be mounted in the ragflow container +# Example for custom CA certificates: +# volumes: +# - name: keycloak-tls +# secret: +# secretName: keycloak-tls +volumes: [] + +# Additional volume mounts for the ragflow container +# Example for custom CA certificates: +# volumeMounts: +# - name: keycloak-tls +# mountPath: /tmp/ca.crt +# subPath: ca.crt +# readOnly: true +volumeMounts: [] + +# Kubernetes configuration +deployment: + strategy: + resources: +service: + # Use LoadBalancer to expose the web interface externally + type: ClusterIP +api: service: - # Use LoadBalancer to expose the web interface externally + enabled: true type: ClusterIP - api: - service: - enabled: true - type: ClusterIP infinity: image: