From b43b008550196203651e1bfd23d2545e7c154931 Mon Sep 17 00:00:00 2001 From: wbsong111 Date: Wed, 18 Dec 2024 09:43:49 +0900 Subject: [PATCH] Add custom-values.yaml, CUSTOM-README.md --- charts/langflow-ide/CUSTOM-README.md | 107 +++++++++++++++++++++++++ charts/langflow-ide/custom-values.yaml | 93 +++++++++++++++++++++ 2 files changed, 200 insertions(+) create mode 100644 charts/langflow-ide/CUSTOM-README.md create mode 100644 charts/langflow-ide/custom-values.yaml diff --git a/charts/langflow-ide/CUSTOM-README.md b/charts/langflow-ide/CUSTOM-README.md new file mode 100644 index 0000000..7acd45a --- /dev/null +++ b/charts/langflow-ide/CUSTOM-README.md @@ -0,0 +1,107 @@ + +# Langflow IDE 배포 + +## 1. 배포 방법 + +- 명령어 + + ``` sh + $ helm upgrade --instal langflow ../langflow-ide \ + --namespace langflow \ + --create-namespace \ + -f custom-values.yaml + ``` + + + +## 2. custom-values.yaml 설명 + +- custom-values.yaml에 정의된 값에 대한 설명이다. + +### 1) Langflow 설정 +| Name | 설명 | 기본값 | +| ---------------------- | ------------------------------------------------------------ | ------ | +| `langflow.backend.replicaCount` | Langflow 백엔드 서버의 pod 수를 설정. | `1` | +| `langflow.backend.image` | Langflow 백앤드 서버의 이미지 리포지토리와 태그를 설정. | `custom-values.yaml` 참고 | +| `langflow.backend.resource` | langflow 백엔드의 리소스를 설정. | `custom-values.yaml` 참고 | +| `langflow.backend.nodeSelector` | Langflow 백엔드 서버의 pod의 nodeSelector를 설정. | `{}` | +| `langflow.backend.tolerations` | Langflow 백엔드 서버의 pod의 toleration를 설정. | `[]` | +| `langflow.backend.backendOnly` | Langflow 백엔드 서버의 backend only 모드 실행 여부를 설정. | `true` | +| `langflow.backend.env` | Langflow 백엔드 서버의 환경 변수를 설정. 계정 정보 및 서버 설정을 추가할 수 있다. | `custom-values.yaml` 참고 | +| `langflow.backend.env.externalDatabase` | Langflow 백엔드 서버에서 외부 DB 사용 여부 및 연결 정보를 설정 | `custom-values.yaml` 참고 | +| `langflow.backend.frontend.enable` | Langflow 프론트엔드 서버의 사용 여부를 설정 | `true` | +| `langflow.backend.frontend.replicaCount` | Langflow 프론트엔드 서버의 pod 수를 설정한다. | '1' | +| `langflow.backend.frontend.image` | Langflow 프론트엔드 서버의 이미지 리포지토리와 태그를 설정한다. | `custom-values.yaml` 참고 | +| `langflow.backend.frontend.resource` | langflow 프론트엔드 서버의 리소스를 설정, | `custom-values.yaml` 참고 | +| `langflow.backend.frontend.nodeSelector` | Langflow 프론트엔드 서버의 pod의 nodeSelector를 설정. | '{}' | +| `langflow.backend.frontend.tolerations` | Langflow 프론트엔드 서버의 pod의 toleration를 설정. | `[]` | + + + +### 2) Ingress 설정 + +#### 2.1) tls 시크릿 직접 생성 + + +- Rancher에서 ingress 사용을 위해서는 다음과 같이 설정할 수 있다. + ``` yaml + ingress: + enabled: true + hosts: + - host: langflow.example.org + paths: + - path: / + pathType: ImplementationSpecific + servicePort: 7860 + tls: + - hosts: + - langflow.example.org + secretName: langflow-tls-secret + ``` + +- ingress 사용을 위해서는 인증서를 secret으로 제공해야한다. 로컬 파일을 이용해 secret을 생성하는 방법은 다음과 같다. + ``` sh + kubectl create secret tls langflow-tls-ingress --cert= --key= -n + ``` + + +#### 2.2) cert-manager를 이용한 자동 생성 + +- cert manager를 통해 인증서 자동 생성 시 `custom-values.yaml` 수정한다. + ``` yaml + ingress: + enabled: true + annotations: + cert-manager.io/cluster-issuer: "selfsigned-issuer" + cert-manager.io/duration: 8760h + cert-manager.io/renew-before: 720h + hosts: + - host: langflow.example.org + paths: + - path: / + pathType: ImplementationSpecific + servicePort: 7860 + tls: + - hosts: + - langflow.example.org + secretName: langflow-tls-secret + ``` + +### 3) 내장 DB 배포 + +- langflow에서 사용할 외부 DB를 배포하기 위한 설정이다. +- 해당 postgresql의 사용자, 패스워드 정보를 `langflow.backend.externalDatabase`에 추가해야 한다. +- custom-values.yaml에 추가해야할 설정은 다음과 같다. +``` yaml +postgresql: + enabled: true + fullnameOverride: "langflow-ide-postgresql-service" + auth: + username: "langflow" + password: "langflow-postgres" + database: "langflow-db" + primary: + persistence: + size: 5Gi + storageClass: "" +``` \ No newline at end of file diff --git a/charts/langflow-ide/custom-values.yaml b/charts/langflow-ide/custom-values.yaml new file mode 100644 index 0000000..0086342 --- /dev/null +++ b/charts/langflow-ide/custom-values.yaml @@ -0,0 +1,93 @@ +langflow: + backend: + replicaCount: 1 + image: + repository: langflowai/langflow-backend + tag: "v1.1.1" + resources: + requests: + cpu: 0.5 + memory: 1Gi + nodeSelector: {} + tolerations: [] + backendOnly: true + env: + - name: LANGFLOW_PORT + value: "7860" + - name: LANGFLOW_LOG_LEVEL + value: "info" + - name: LANGFLOW_AUTO_LOGIN + value: "False" + - name: LANGFLOW_SUPERUSER + value: "admin" + - name: LANGFLOW_SUPERUSER_PASSWORD + value: "password" + - name: LANGFLOW_SECRET_KEY + value: "randomly_generated_secure_key" + - name: LANGFLOW_NEW_USER_IS_ACTIVE + value: "False" + externalDatabase: + enabled: true + driver: + value: "postgresql" + host: + value: "langflow-ide-postgresql-service" + port: + value: "5432" + database: + value: "langflow-db" + user: + value: "langflow" + password: + valueFrom: + secretKeyRef: + key: "password" + name: "langflow-ide-postgresql-service" + sqlite: + enabled: false + probe: + failureThreshold: 3 + periodSeconds: 10 + timeoutSeconds: 5 + initialDelaySeconds: 5 + frontend: + enabled: true + replicaCount: 1 + image: + repository: langflowai/langflow-frontend + tag: "v1.1.1" + resources: + requests: + cpu: 0.3 + memory: 512Mi + nodeSelector: {} + tolerations: [] + +ingress: + enabled: true + annotations: + cert-manager.io/cluster-issuer: "selfsigned-issuer" + cert-manager.io/duration: 8760h + cert-manager.io/renew-before: 720h + hosts: + - host: langflow.example.org + paths: + - path: / + pathType: ImplementationSpecific + servicePort: 7860 + tls: + - hosts: + - langflow.example.org + secretName: langflow-tls-secret + +postgresql: + enabled: true + fullnameOverride: "langflow-ide-postgresql-service" + auth: + username: "langflow" + password: "langflow-postgres" + database: "langflow-db" + primary: + persistence: + size: 5Gi + storageClass: "" \ No newline at end of file