# 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: "" ```