feat: 切换应用为1.7.1版本

This commit is contained in:
2025-07-30 12:29:36 +08:00
parent c19b37f9f1
commit d0dc4a3410
12 changed files with 357 additions and 77 deletions
+2 -2
View File
@@ -3,9 +3,9 @@ name: dify
description: 用于在 Kubernetes 环境部署 Dify 应用的 Helm chart 文件。官网:https://github.com/langgenius/dify description: 用于在 Kubernetes 环境部署 Dify 应用的 Helm chart 文件。官网:https://github.com/langgenius/dify
type: application type: application
# 当前图表的版本,仅用于标识图表文件变更 # 当前图表的版本,仅用于标识图表文件变更
version: 0.1.2 version: 0.2.1
# 部署的主应用的版本;建议使用双引号包起来 # 部署的主应用的版本;建议使用双引号包起来
appVersion: "1.1.2" appVersion: "1.7.1"
# 指定依赖的模板库,存在即生效 # 指定依赖的模板库,存在即生效
dependencies: dependencies:
+8 -2
View File
@@ -21,8 +21,11 @@ spec:
{{/* {{/*
# Required labels for istio # Required labels for istio
# app: {{ template "dify.api.fullname" . }} # app: {{ template "dify.api.fullname" . }}
# version: {{ (print "v" .Values.serviceMesh.version) | quote }} # version: {{ .Values.istioServiceMesh.version | quote }}
*/}} */}}
{{- if .Values.api.updateStrategy }}
strategy: {{- toYaml .Values.api.updateStrategy | nindent 4 }}
{{- end }}
template: template:
metadata: metadata:
annotations: annotations:
@@ -35,11 +38,14 @@ spec:
{{/* {{/*
# Required labels for istio # Required labels for istio
# app: {{ template "dify.api.fullname" . }} # app: {{ template "dify.api.fullname" . }}
# version: {{ (print "v" .Values.serviceMesh.version) | quote }} # version: {{ .Values.istioServiceMesh.version | quote }}
*/}} */}}
{{ include "dify.ud.labels" . | indent 8 }} {{ include "dify.ud.labels" . | indent 8 }}
spec: spec:
serviceAccountName: {{ include "dify.api.serviceAccountName" . }} serviceAccountName: {{ include "dify.api.serviceAccountName" . }}
{{- if .Values.api.priorityClassName }}
priorityClassName: {{ .Values.api.priorityClassName | quote }}
{{- end }}
{{- if eq .Release.Name "dify"}} {{- if eq .Release.Name "dify"}}
{{/* {{/*
Disable service environment variables, Disable service environment variables,
+107 -31
View File
@@ -2,7 +2,7 @@
# Startup mode, 'api' starts the API server. # Startup mode, 'api' starts the API server.
MODE: api MODE: api
# The log level for the application. Supported values are `DEBUG`, `INFO`, `WARNING`, `ERROR`, `CRITICAL` # The log level for the application. Supported values are `DEBUG`, `INFO`, `WARNING`, `ERROR`, `CRITICAL`
LOG_LEVEL: {{ .Values.api.logLevel }} LOG_LEVEL: {{ .Values.api.logLevel | quote }}
# A secret key that is used for securely signing the session cookie and encrypting sensitive information on the database. You can generate a strong key using `openssl rand -base64 42`. # A secret key that is used for securely signing the session cookie and encrypting sensitive information on the database. You can generate a strong key using `openssl rand -base64 42`.
# SECRET_KEY: {{ .Values.api.secretKey }} # SECRET_KEY: {{ .Values.api.secretKey }}
# The base URL of console application web frontend, refers to the Console base URL of WEB service if console domain is # The base URL of console application web frontend, refers to the Console base URL of WEB service if console domain is
@@ -104,7 +104,8 @@ LOG_LEVEL: {{ .Values.worker.logLevel | quote }}
{{ include "dify.redis.config" . }} {{ include "dify.redis.config" . }}
# The configurations of celery broker. # The configurations of celery broker.
{{ include "dify.celery.config" . }} {{ include "dify.celery.config" . }}
# The configurations of celery backend
CELERY_BACKEND: redis
{{ include "dify.storage.config" . }} {{ include "dify.storage.config" . }}
# The Vector store configurations. # The Vector store configurations.
{{ include "dify.vectordb.config" . }} {{ include "dify.vectordb.config" . }}
@@ -125,19 +126,19 @@ CONSOLE_API_URL: {{ .Values.api.url.consoleApi | quote }}
# example: http://udify.app # example: http://udify.app
APP_API_URL: {{ .Values.api.url.appApi | quote }} APP_API_URL: {{ .Values.api.url.appApi | quote }}
# The DSN for Sentry # The DSN for Sentry
{{- include "dify.marketplace.config" . }}
{{- if and .Values.pluginDaemon.enabled .Values.pluginDaemon.marketplace.enabled .Values.pluginDaemon.marketplace.apiProxyEnabled }} {{- if and .Values.pluginDaemon.enabled .Values.pluginDaemon.marketplace.enabled .Values.pluginDaemon.marketplace.apiProxyEnabled }}
MARKETPLACE_ENABLED: "true"
MARKETPLACE_API_URL: "/marketplace" MARKETPLACE_API_URL: "/marketplace"
{{- else }} {{- else }}
MARKETPLACE_API_URL: {{ .Values.api.url.marketplaceApi | quote }} {{- include "dify.marketplace.config" . }}
{{- end }} {{- end }}
MARKETPLACE_URL: {{ .Values.api.url.marketplace | quote }} MARKETPLACE_URL: {{ .Values.api.url.marketplace | quote }}
{{- end }} {{- end }}
{{- define "dify.db.config" -}} {{- define "dify.db.config" -}}
{{- if .Values.externalPostgres.enabled }} {{- if .Values.externalPostgres.enabled }}
# DB_USERNAME: {{ .Values.externalPostgres.username }} # DB_USERNAME: {{ .Values.externalPostgres.username | quote }}
# DB_PASSWORD: {{ .Values.externalPostgres.password }} # DB_PASSWORD: {{ .Values.externalPostgres.password | quote }}
DB_HOST: {{ .Values.externalPostgres.address }} DB_HOST: {{ .Values.externalPostgres.address }}
DB_PORT: {{ .Values.externalPostgres.port | toString | quote }} DB_PORT: {{ .Values.externalPostgres.port | toString | quote }}
DB_DATABASE: {{ .Values.externalPostgres.database.api | quote }} DB_DATABASE: {{ .Values.externalPostgres.database.api | quote }}
@@ -145,10 +146,10 @@ DB_DATABASE: {{ .Values.externalPostgres.database.api | quote }}
{{ with .Values.postgresql.global.postgresql.auth }} {{ with .Values.postgresql.global.postgresql.auth }}
{{- if empty .username }} {{- if empty .username }}
# DB_USERNAME: postgres # DB_USERNAME: postgres
# DB_PASSWORD: {{ .postgresPassword }} # DB_PASSWORD: {{ .postgresPassword | quote }}
{{- else }} {{- else }}
# DB_USERNAME: {{ .username }} # DB_USERNAME: {{ .username | quote }}
# DB_PASSWORD: {{ .password }} # DB_PASSWORD: {{ .password | quote }}
{{- end }} {{- end }}
{{- end }} {{- end }}
{{- if eq .Values.postgresql.architecture "replication" }} {{- if eq .Values.postgresql.architecture "replication" }}
@@ -166,11 +167,11 @@ DB_DATABASE: {{ .Values.postgresql.global.postgresql.auth.database }}
# The type of storage to use for storing user files. Supported values are `local`, `s3`, `azure-blob`, `aliyun-oss` and `google-storage`, Default: `local` # The type of storage to use for storing user files. Supported values are `local`, `s3`, `azure-blob`, `aliyun-oss` and `google-storage`, Default: `local`
STORAGE_TYPE: s3 STORAGE_TYPE: s3
# The S3 storage configurations, only available when STORAGE_TYPE is `s3`. # The S3 storage configurations, only available when STORAGE_TYPE is `s3`.
S3_ENDPOINT: {{ .Values.externalS3.endpoint }} S3_ENDPOINT: {{ .Values.externalS3.endpoint | quote }}
S3_BUCKET_NAME: {{ .Values.externalS3.bucketName }} S3_BUCKET_NAME: {{ .Values.externalS3.bucketName.api | quote }}
# S3_ACCESS_KEY: {{ .Values.externalS3.accessKey }} # S3_ACCESS_KEY: {{ .Values.externalS3.accessKey | quote }}
# S3_SECRET_KEY: {{ .Values.externalS3.secretKey }} # S3_SECRET_KEY: {{ .Values.externalS3.secretKey | quote }}
S3_REGION: {{ .Values.externalS3.region }} S3_REGION: {{ .Values.externalS3.region | quote }}
{{- else if .Values.externalAzureBlobStorage.enabled }} {{- else if .Values.externalAzureBlobStorage.enabled }}
# The type of storage to use for storing user files. Supported values are `local`, `s3`, `azure-blob`, `aliyun-oss` and `google-storage`, Default: `local` # The type of storage to use for storing user files. Supported values are `local`, `s3`, `azure-blob`, `aliyun-oss` and `google-storage`, Default: `local`
STORAGE_TYPE: azure-blob STORAGE_TYPE: azure-blob
@@ -184,36 +185,49 @@ AZURE_BLOB_ACCOUNT_URL: {{ .Values.externalAzureBlobStorage.url | quote }}
STORAGE_TYPE: aliyun-oss STORAGE_TYPE: aliyun-oss
# The OSS storage configurations, only available when STORAGE_TYPE is `aliyun-oss`. # The OSS storage configurations, only available when STORAGE_TYPE is `aliyun-oss`.
ALIYUN_OSS_ENDPOINT: {{ .Values.externalOSS.endpoint | quote }} ALIYUN_OSS_ENDPOINT: {{ .Values.externalOSS.endpoint | quote }}
ALIYUN_OSS_BUCKET_NAME: {{ .Values.externalOSS.bucketName | quote }} ALIYUN_OSS_BUCKET_NAME: {{ .Values.externalOSS.bucketName.api | quote }}
# ALIYUN_OSS_ACCESS_KEY: {{ .Values.externalOSS.accessKey }} # ALIYUN_OSS_ACCESS_KEY: {{ .Values.externalOSS.accessKey | quote }}
# ALIYUN_OSS_SECRET_KEY: {{ .Values.externalOSS.secretKey }} # ALIYUN_OSS_SECRET_KEY: {{ .Values.externalOSS.secretKey | quote }}
ALIYUN_OSS_REGION: {{ .Values.externalOSS.region | quote }} ALIYUN_OSS_REGION: {{ .Values.externalOSS.region | quote }}
ALIYUN_OSS_AUTH_VERSION: {{ .Values.externalOSS.authVersion | quote }} ALIYUN_OSS_AUTH_VERSION: {{ .Values.externalOSS.authVersion | quote }}
ALIYUN_OSS_PATH: {{ .Values.externalOSS.path | quote }} ALIYUN_OSS_PATH: {{ .Values.externalOSS.path | quote }}
{{- else if .Values.externalGCS.enabled }} {{- else if .Values.externalGCS.enabled }}
# The type of storage to use for storing user files. Supported values are `local`, `s3`, `azure-blob`, `aliyun-oss` and `google-storage`, Default: `local` # The type of storage to use for storing user files. Supported values are `local`, `s3`, `azure-blob`, `aliyun-oss` and `google-storage`, Default: `local`
STORAGE_TYPE: google-storage STORAGE_TYPE: google-storage
GOOGLE_STORAGE_BUCKET_NAME: {{ .Values.externalGCS.bucketName }} GOOGLE_STORAGE_BUCKET_NAME: {{ .Values.externalGCS.bucketName.api | quote }}
GOOGLE_STORAGE_SERVICE_ACCOUNT_JSON_BASE64: {{ .Values.externalGCS.serviceAccountJsonBase64 }} # GOOGLE_STORAGE_SERVICE_ACCOUNT_JSON_BASE64: {{ .Values.externalGCS.serviceAccountJsonBase64 | quote }}
{{- else if .Values.externalCOS.enabled }} {{- else if .Values.externalCOS.enabled }}
# The type of storage to use for storing user files. Supported values are `local`, `s3`, `azure-blob`, `aliyun-oss`, `google-storage` and `tencent-cos`, Default: `local` # The type of storage to use for storing user files. Supported values are `local`, `s3`, `azure-blob`, `aliyun-oss`, `google-storage` and `tencent-cos`, Default: `local`
STORAGE_TYPE: tencent-cos STORAGE_TYPE: tencent-cos
# The name of the Tencent COS bucket to use for storing files. # The name of the Tencent COS bucket to use for storing files.
TENCENT_COS_BUCKET_NAME: {{ .Values.externalCOS.bucketName }} TENCENT_COS_BUCKET_NAME: {{ .Values.externalCOS.bucketName.api | quote }}
# The secret key to use for authenticating with the Tencent COS service. # The secret key to use for authenticating with the Tencent COS service.
TENCENT_COS_SECRET_KEY: {{ .Values.externalCOS.secretKey }} # TENCENT_COS_SECRET_KEY: {{ .Values.externalCOS.secretKey | quote }}
# The secret id to use for authenticating with the Tencent COS service. # The secret id to use for authenticating with the Tencent COS service.
TENCENT_COS_SECRET_ID: {{ .Values.externalCOS.secretId }} TENCENT_COS_SECRET_ID: {{ .Values.externalCOS.secretId | quote }}
# The region of the Tencent COS service. # The region of the Tencent COS service.
TENCENT_COS_REGION: {{ .Values.externalCOS.region }} TENCENT_COS_REGION: {{ .Values.externalCOS.region | quote }}
# The scheme of the Tencent COS service. # The scheme of the Tencent COS service.
TENCENT_COS_SCHEME: {{ .Values.externalCOS.scheme }} TENCENT_COS_SCHEME: {{ .Values.externalCOS.scheme | quote }}
{{- else if .Values.externalOBS.enabled }}
STORAGE_TYPE: huawei-obs
HUAWEI_OBS_SERVER: {{ .Values.externalOBS.endpoint | quote }}
HUAWEI_OBS_BUCKET_NAME: {{ .Values.externalOBS.bucketName.api | quote }}
# HUAWEI_OBS_ACCESS_KEY: {{ .Values.externalOBS.accessKey | quote }}
# HUAWEI_OBS_SECRET_KEY: {{ .Values.externalOBS.secretKey | quote }}
{{- else if .Values.externalTOS.enabled }}
STORAGE_TYPE: "volcengine-tos"
VOLCENGINE_TOS_ENDPOINT: {{ .Values.externalTOS.endpoint | quote }}
VOLCENGINE_TOS_REGION: {{ .Values.externalTOS.region | quote }}
VOLCENGINE_TOS_BUCKET_NAME: {{ .Values.externalTOS.bucketName.api | quote }}
VOLCENGINE_TOS_ACCESS_KEY: {{ .Values.externalTOS.accessKey | quote }}
# VOLCENGINE_TOS_SECRET_KEY: {{ .Values.externalTOS.secretKey | quote }}
{{- else }} {{- else }}
# The type of storage to use for storing user files. Supported values are `local` and `s3` and `azure-blob`, Default: `local` # The type of storage to use for storing user files. Supported values are `local` and `s3` and `azure-blob`, Default: `local`
STORAGE_TYPE: local STORAGE_TYPE: local
# The path to the local storage directory, the directory relative the root path of API service codes or absolute path. Default: `storage` or `/home/john/storage`. # The path to the local storage directory, the directory relative the root path of API service codes or absolute path. Default: `storage` or `/home/john/storage`.
# only available when STORAGE_TYPE is `local`. # only available when STORAGE_TYPE is `local`.
STORAGE_LOCAL_PATH: {{ .Values.api.persistence.mountPath }} STORAGE_LOCAL_PATH: {{ .Values.api.persistence.mountPath | quote }}
{{- end }} {{- end }}
{{- end }} {{- end }}
@@ -246,7 +260,11 @@ REDIS_DB: "0"
# Use redis as the broker, and redis db 1 for celery broker. # Use redis as the broker, and redis db 1 for celery broker.
{{- if .Values.externalRedis.enabled }} {{- if .Values.externalRedis.enabled }}
{{- with .Values.externalRedis }} {{- with .Values.externalRedis }}
# CELERY_BROKER_URL: {{ printf "redis://%s:%s@%s:%v/1" .username .password .host .port }} {{- $scheme := "redis" }}
{{- if .useSSL }}
{{- $scheme = "rediss" }}
{{- end }}
# CELERY_BROKER_URL: {{ printf "%s://%s:%s@%s:%v/1" $scheme .username .password .host .port }}
{{- end }} {{- end }}
{{- else if .Values.redis.enabled }} {{- else if .Values.redis.enabled }}
{{- $redisHost := printf "%s-redis-master" .Release.Name -}} {{- $redisHost := printf "%s-redis-master" .Release.Name -}}
@@ -267,9 +285,9 @@ WEAVIATE_ENDPOINT: {{ .Values.externalWeaviate.endpoint | quote }}
{{- else if .Values.externalQdrant.enabled }} {{- else if .Values.externalQdrant.enabled }}
VECTOR_STORE: qdrant VECTOR_STORE: qdrant
# The Qdrant endpoint URL. Only available when VECTOR_STORE is `qdrant`. # The Qdrant endpoint URL. Only available when VECTOR_STORE is `qdrant`.
QDRANT_URL: {{ .Values.externalQdrant.endpoint }} QDRANT_URL: {{ .Values.externalQdrant.endpoint | quote }}
# The Qdrant API key. # The Qdrant API key.
# QDRANT_API_KEY: {{ .Values.externalQdrant.apiKey }} # QDRANT_API_KEY: {{ .Values.externalQdrant.apiKey | quote }}
# The Qdrant clinet timeout setting. # The Qdrant clinet timeout setting.
QDRANT_CLIENT_TIMEOUT: {{ .Values.externalQdrant.timeout | quote }} QDRANT_CLIENT_TIMEOUT: {{ .Values.externalQdrant.timeout | quote }}
# The Qdrant client enable gRPC mode. # The Qdrant client enable gRPC mode.
@@ -290,8 +308,8 @@ VECTOR_STORE: pgvector
PGVECTOR_HOST: {{ .Values.externalPgvector.address }} PGVECTOR_HOST: {{ .Values.externalPgvector.address }}
PGVECTOR_PORT: {{ .Values.externalPgvector.port | toString | quote }} PGVECTOR_PORT: {{ .Values.externalPgvector.port | toString | quote }}
PGVECTOR_DATABASE: {{ .Values.externalPgvector.dbName }} PGVECTOR_DATABASE: {{ .Values.externalPgvector.dbName }}
# DB_USERNAME: {{ .Values.externalPgvector.username }} # DB_USERNAME: {{ .Values.externalPgvector.username | quote }}
# DB_PASSWORD: {{ .Values.externalPgvector.password }} # DB_PASSWORD: {{ .Values.externalPgvector.password | quote }}
{{- else if .Values.externalTencentVectorDB.enabled }} {{- else if .Values.externalTencentVectorDB.enabled }}
# tencent vector configurations, only available when VECTOR_STORE is `tencent` # tencent vector configurations, only available when VECTOR_STORE is `tencent`
VECTOR_STORE: tencent VECTOR_STORE: tencent
@@ -311,6 +329,13 @@ MYSCALE_PORT: {{ .Values.externalMyScaleDB.port | toString | quote }}
# MYSCALE_PASSWORD: {{ .Values.externalMyScaleDB.password | quote }} # MYSCALE_PASSWORD: {{ .Values.externalMyScaleDB.password | quote }}
MYSCALE_DATABASE: {{ .Values.externalMyScaleDB.database | quote }} MYSCALE_DATABASE: {{ .Values.externalMyScaleDB.database | quote }}
MYSCALE_FTS_PARAMS: {{ .Values.externalMyScaleDB.ftsParams | quote }} MYSCALE_FTS_PARAMS: {{ .Values.externalMyScaleDB.ftsParams | quote }}
{{- else if .Values.externalTableStore.enabled }}
# TableStore configurations, only available when VECTOR_STORE is `tablestore`
VECTOR_STORE: tablestore
TABLESTORE_ENDPOINT: {{ .Values.externalTableStore.endpoint | quote }}
TABLESTORE_INSTANCE_NAME: {{ .Values.externalTableStore.instanceName | quote }}
# TABLESTORE_ACCESS_KEY_ID: {{ .Values.externalTableStore.accessKeyId | quote }}
# TABLESTORE_ACCESS_KEY_SECRET: {{ .Values.externalTableStore.accessKeySecret | quote }}
{{- else if .Values.weaviate.enabled }} {{- else if .Values.weaviate.enabled }}
# The type of vector store to use. Supported values are `weaviate`, `qdrant`, `milvus`. # The type of vector store to use. Supported values are `weaviate`, `qdrant`, `milvus`.
VECTOR_STORE: weaviate VECTOR_STORE: weaviate
@@ -456,6 +481,11 @@ server {
} }
{{- end }} {{- end }}
location /mcp {
proxy_pass http://{{ template "dify.api.fullname" .}}:{{ .Values.api.service.port }};
include proxy.conf;
}
location / { location / {
proxy_pass http://{{ template "dify.web.fullname" .}}:{{ .Values.web.service.port }}; proxy_pass http://{{ template "dify.web.fullname" .}}:{{ .Values.web.service.port }};
include proxy.conf; include proxy.conf;
@@ -524,7 +554,7 @@ cache_store_log none
{{- define "dify.pluginDaemon.db.config" -}} {{- define "dify.pluginDaemon.db.config" -}}
{{- if .Values.externalPostgres.enabled }} {{- if .Values.externalPostgres.enabled }}
DB_HOST: {{ .Values.externalPostgres.address }} DB_HOST: {{ .Values.externalPostgres.address | quote }}
DB_PORT: {{ .Values.externalPostgres.port | toString | quote }} DB_PORT: {{ .Values.externalPostgres.port | toString | quote }}
DB_DATABASE: {{ .Values.externalPostgres.database.pluginDaemon | quote }} DB_DATABASE: {{ .Values.externalPostgres.database.pluginDaemon | quote }}
{{- else if .Values.postgresql.enabled }} {{- else if .Values.postgresql.enabled }}
@@ -537,10 +567,12 @@ DB_DATABASE: {{ .Values.externalPostgres.database.pluginDaemon | quote }}
{{- define "dify.pluginDaemon.config" }} {{- define "dify.pluginDaemon.config" }}
{{- include "dify.redis.config" . }} {{- include "dify.redis.config" . }}
{{- include "dify.pluginDaemon.db.config" .}} {{- include "dify.pluginDaemon.db.config" .}}
{{- include "dify.pluginDaemon.storage.config" .}}
SERVER_PORT: "5002" SERVER_PORT: "5002"
PLUGIN_REMOTE_INSTALLING_HOST: "0.0.0.0" PLUGIN_REMOTE_INSTALLING_HOST: "0.0.0.0"
PLUGIN_REMOTE_INSTALLING_PORT: "5003" PLUGIN_REMOTE_INSTALLING_PORT: "5003"
MAX_PLUGIN_PACKAGE_SIZE: "52428800" MAX_PLUGIN_PACKAGE_SIZE: "52428800"
PLUGIN_STORAGE_LOCAL_ROOT: {{ .Values.pluginDaemon.persistence.mountPath | quote }}
PLUGIN_WORKING_PATH: {{ printf "%s/cwd" .Values.pluginDaemon.persistence.mountPath | clean | quote }} PLUGIN_WORKING_PATH: {{ printf "%s/cwd" .Values.pluginDaemon.persistence.mountPath | clean | quote }}
DIFY_INNER_API_URL: "http://{{ template "dify.api.fullname" . }}:{{ .Values.api.service.port }}" DIFY_INNER_API_URL: "http://{{ template "dify.api.fullname" . }}:{{ .Values.api.service.port }}"
{{- include "dify.marketplace.config" . }} {{- include "dify.marketplace.config" . }}
@@ -554,3 +586,47 @@ MARKETPLACE_API_URL: {{ .Values.api.url.marketplaceApi | quote }}
MARKETPLACE_ENABLED: "false" MARKETPLACE_ENABLED: "false"
{{- end }} {{- end }}
{{- end }} {{- end }}
{{- define "dify.pluginDaemon.storage.config" -}}
{{- if and .Values.externalS3.enabled .Values.externalS3.bucketName.pluginDaemon }}
PLUGIN_STORAGE_TYPE: aws_s3
S3_USE_PATH_STYLE: {{ .Values.externalS3.pathStyle | toString | quote }}
S3_ENDPOINT: {{ .Values.externalS3.endpoint | quote }}
PLUGIN_STORAGE_OSS_BUCKET: {{ .Values.externalS3.bucketName.pluginDaemon | quote }}
AWS_REGION: {{ .Values.externalS3.region | quote }}
{{- else if and .Values.externalOSS.enabled .Values.externalOSS.bucketName.pluginDaemon }}
PLUGIN_STORAGE_TYPE: "aliyun_oss"
ALIYUN_OSS_REGION: {{ .Values.externalOSS.region | quote }}
ALIYUN_OSS_ENDPOINT: {{ .Values.externalOSS.endpoint | quote }}
PLUGIN_STORAGE_OSS_BUCKET: {{ .Values.externalOSS.bucketName.pluginDaemon | quote }}
ALIYUN_OSS_ACCESS_KEY_ID: {{ .Values.externalOSS.accessKey | quote }}
# ALIYUN_OSS_ACCESS_KEY_SECRET: {{ .Values.externalOSS.secretKey | quote }}
ALIYUN_OSS_AUTH_VERSION: {{ .Values.externalOSS.authVersion | quote }}
ALIYUN_OSS_PATH: {{ .Values.externalOSS.path | quote }}
{{- else if and .Values.externalGCS.enabled .Values.externalGCS.bucketName.pluginDaemon }}
PLUGIN_STORAGE_TYPE: "google-storage"
PLUGIN_STORAGE_OSS_BUCKET: {{ .Values.externalGCS.bucketName.pluginDaemon | quote }}
# GCS_CREDENTIALS: {{ .Values.externalGCS.serviceAccountJsonBase64 | quote }}
{{- else if and .Values.externalCOS.enabled .Values.externalCOS.bucketName.pluginDaemon }}
PLUGIN_STORAGE_TYPE: "tencent_cos"
TENCENT_COS_SECRET_ID: {{ .Values.externalCOS.secretId | quote }}
TENCENT_COS_REGION: {{ .Values.externalCOS.region | quote }}
PLUGIN_STORAGE_OSS_BUCKET: {{ .Values.externalCOS.bucketName.pluginDaemon | quote }}
{{- else if and .Values.externalOBS.enabled .Values.externalOBS.bucketName.pluginDaemon }}
PLUGIN_STORAGE_TYPE: "huawei-obs"
HUAWEI_OBS_SERVER: {{ .Values.externalOBS.endpoint | quote }}
PLUGIN_STORAGE_OSS_BUCKET: {{ .Values.externalOBS.bucketName.pluginDaemon | quote }}
HUAWEI_OBS_ACCESS_KEY: {{ .Values.externalOBS.accessKey | quote }}
# HUAWEI_OBS_SECRET_KEY: {{ .Values.externalOBS.secretKey | quote }}
{{- else if and .Values.externalTOS.enabled .Values.externalTOS.bucketName.pluginDaemon }}
PLUGIN_STORAGE_TYPE: "volcengine-tos"
PLUGIN_VOLCENGINE_TOS_ENDPOINT: {{ .Values.externalTOS.endpoint | quote }}
PLUGIN_VOLCENGINE_TOS_REGION: {{ .Values.externalTOS.region | quote }}
PLUGIN_STORAGE_OSS_BUCKET: {{ .Values.externalTOS.bucketName.pluginDaemon | quote }}
PLUGIN_VOLCENGINE_TOS_ACCESS_KEY: {{ .Values.externalTOS.accessKey | quote }}
# PLUGIN_VOLCENGINE_TOS_SECRET_KEY: {{ .Values.externalTOS.secretKey | quote }}
{{- else }}
PLUGIN_STORAGE_TYPE: local
STORAGE_LOCAL_PATH: {{ .Values.pluginDaemon.persistence.mountPath | quote }}
{{- end }}
{{- end }}
+35 -1
View File
@@ -70,6 +70,15 @@ AZURE_BLOB_ACCOUNT_KEY: {{ .Values.externalAzureBlobStorage.key | b64enc | quote
{{- else if .Values.externalOSS.enabled }} {{- else if .Values.externalOSS.enabled }}
ALIYUN_OSS_ACCESS_KEY: {{ .Values.externalOSS.accessKey | b64enc | quote }} ALIYUN_OSS_ACCESS_KEY: {{ .Values.externalOSS.accessKey | b64enc | quote }}
ALIYUN_OSS_SECRET_KEY: {{ .Values.externalOSS.secretKey | b64enc | quote }} ALIYUN_OSS_SECRET_KEY: {{ .Values.externalOSS.secretKey | b64enc | quote }}
{{- else if .Values.externalGCS.enabled }}
GOOGLE_STORAGE_SERVICE_ACCOUNT_JSON_BASE64: {{ .Values.externalGCS.serviceAccountJsonBase64 | b64enc | quote }}
{{- else if .Values.externalCOS.enabled }}
TENCENT_COS_SECRET_KEY: {{ .Values.externalCOS.secretKey| b64enc | quote }}
{{- else if .Values.externalOBS.enabled }}
HUAWEI_OBS_ACCESS_KEY: {{ .Values.externalOBS.accessKey | b64enc | quote }}
HUAWEI_OBS_SECRET_KEY: {{ .Values.externalOBS.secretKey | b64enc | quote }}
{{- else if .Values.externalTOS.enabled }}
VOLCENGINE_TOS_SECRET_KEY: {{ .Values.externalTOS.secretKey | b64enc | quote }}
{{- else }} {{- else }}
{{- end }} {{- end }}
{{- end }} {{- end }}
@@ -93,7 +102,11 @@ REDIS_PASSWORD: {{ .auth.password | b64enc | quote }}
# Use redis as the broker, and redis db 1 for celery broker. # Use redis as the broker, and redis db 1 for celery broker.
{{- if .Values.externalRedis.enabled }} {{- if .Values.externalRedis.enabled }}
{{- with .Values.externalRedis }} {{- with .Values.externalRedis }}
CELERY_BROKER_URL: {{ printf "redis://%s:%s@%s:%v/1" .username .password .host .port | b64enc | quote }} {{- $scheme := "redis" }}
{{- if .useSSL }}
{{- $scheme = "rediss" }}
{{- end }}
CELERY_BROKER_URL: {{ printf "%s://%s:%s@%s:%v/1" $scheme .username .password .host .port | b64enc | quote }}
{{- end }} {{- end }}
{{- else if .Values.redis.enabled }} {{- else if .Values.redis.enabled }}
{{- $redisHost := printf "%s-redis-master" .Release.Name -}} {{- $redisHost := printf "%s-redis-master" .Release.Name -}}
@@ -125,6 +138,9 @@ TENCENT_VECTOR_DB_API_KEY: {{ .Values.externalTencentVectorDB.apiKey | b64enc |
{{- else if .Values.externalMyScaleDB.enabled}} {{- else if .Values.externalMyScaleDB.enabled}}
MYSCALE_USER: {{ .Values.externalMyScaleDB.username | b64enc | quote }} MYSCALE_USER: {{ .Values.externalMyScaleDB.username | b64enc | quote }}
MYSCALE_PASSWORD: {{ .Values.externalMyScaleDB.password | b64enc | quote }} MYSCALE_PASSWORD: {{ .Values.externalMyScaleDB.password | b64enc | quote }}
{{- else if .Values.externalTableStore.enabled}}
TABLESTORE_ACCESS_KEY_ID: {{ .Values.externalTableStore.accessKeyId | b64enc | quote }}
TABLESTORE_ACCESS_KEY_SECRET: {{ .Values.externalTableStore.accessKeySecret | b64enc | quote }}
{{- else if .Values.weaviate.enabled }} {{- else if .Values.weaviate.enabled }}
# The Weaviate API key. # The Weaviate API key.
{{- if .Values.weaviate.authentication.apikey }} {{- if .Values.weaviate.authentication.apikey }}
@@ -150,6 +166,24 @@ API_KEY: {{ .Values.sandbox.auth.apiKey | b64enc | quote }}
{{- define "dify.pluginDaemon.credentials" -}} {{- define "dify.pluginDaemon.credentials" -}}
{{ include "dify.db.credentials" . }} {{ include "dify.db.credentials" . }}
{{ include "dify.redis.credentials" . }} {{ include "dify.redis.credentials" . }}
{{ include "dify.pluginDaemon.storage.credentials" . }}
SERVER_KEY: {{ .Values.pluginDaemon.auth.serverKey | b64enc | quote }} SERVER_KEY: {{ .Values.pluginDaemon.auth.serverKey | b64enc | quote }}
DIFY_INNER_API_KEY: {{ .Values.pluginDaemon.auth.difyApiKey | b64enc | quote }} DIFY_INNER_API_KEY: {{ .Values.pluginDaemon.auth.difyApiKey | b64enc | quote }}
{{- end }} {{- end }}
{{- define "dify.pluginDaemon.storage.credentials" -}}
{{- if and .Values.externalS3.enabled .Values.externalS3.bucketName.pluginDaemon }}
AWS_ACCESS_KEY: {{ .Values.externalS3.accessKey | b64enc | quote }}
AWS_SECRET_KEY: {{ .Values.externalS3.secretKey | b64enc | quote }}
{{- else if and .Values.externalOSS.enabled .Values.externalOSS.bucketName.pluginDaemon }}
ALIYUN_OSS_ACCESS_KEY_SECRET: {{ .Values.externalOSS.secretKey | b64enc | quote }}
{{- else if and .Values.externalGCS.enabled .Values.externalGCS.bucketName.pluginDaemon }}
GCS_CREDENTIALS: {{ .Values.externalGCS.serviceAccountJsonBase64 | b64enc | quote }}
{{- else if and .Values.externalCOS.enabled .Values.externalCOS.bucketName.pluginDaemon }}
TENCENT_COS_SECRET_KEY: {{ .Values.externalCOS.secretKey | b64enc | quote }}
{{- else if and .Values.externalOBS.enabled .Values.externalOBS.bucketName.pluginDaemon }}
HUAWEI_OBS_SECRET_KEY: {{ .Values.externalOBS.secretKey | b64enc | quote }}
{{- else if and .Values.externalTOS.enabled .Values.externalTOS.bucketName.pluginDaemon }}
PLUGIN_VOLCENGINE_TOS_SECRET_KEY: {{ .Values.externalTOS.secretKey | b64enc | quote }}
{{- end }}
{{- end }}
+21 -6
View File
@@ -1,4 +1,13 @@
{{- if and .Values.pluginDaemon.enabled}} {{- if and .Values.pluginDaemon.enabled}}
{{- $usePvc := not (or
(and .Values.externalS3.enabled .Values.externalS3.bucketName.pluginDaemon)
(and .Values.externalOSS.enabled .Values.externalOSS.bucketName.pluginDaemon)
(and .Values.externalGCS.enabled .Values.externalGCS.bucketName.pluginDaemon)
(and .Values.externalCOS.enabled .Values.externalCOS.bucketName.pluginDaemon)
(and .Values.externalOBS.enabled .Values.externalOBS.bucketName.pluginDaemon)
(and .Values.externalTOS.enabled .Values.externalTOS.bucketName.pluginDaemon)
)
}}
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
@@ -20,8 +29,11 @@ spec:
{{/* {{/*
# Required labels for istio # Required labels for istio
# app: {{ template "dify.pluginDaemon.fullname" . }} # app: {{ template "dify.pluginDaemon.fullname" . }}
# version: {{ (print "v" .Values.serviceMesh.version) | quote }} # version: {{ .Values.istioServiceMesh.version | quote }}
*/}} */}}
{{- if .Values.pluginDaemon.updateStrategy }}
strategy: {{- toYaml .Values.pluginDaemon.updateStrategy | nindent 4 }}
{{- end }}
template: template:
metadata: metadata:
annotations: annotations:
@@ -34,11 +46,14 @@ spec:
{{/* {{/*
# Required labels for istio # Required labels for istio
# app: {{ template "dify.pluginDaemon.fullname" . }} # app: {{ template "dify.pluginDaemon.fullname" . }}
# version: {{ (print "v" .Values.serviceMesh.version) | quote }} # version: {{ .Values.istioServiceMesh.version | quote }}
*/}} */}}
{{ include "dify.ud.labels" . | indent 8 }} {{ include "dify.ud.labels" . | indent 8 }}
spec: spec:
serviceAccountName: {{ include "dify.pluginDaemon.serviceAccountName" . }} serviceAccountName: {{ include "dify.pluginDaemon.serviceAccountName" . }}
{{- if .Values.pluginDaemon.priorityClassName }}
priorityClassName: {{ .Values.pluginDaemon.priorityClassName | quote }}
{{- end }}
{{- if .Values.image.pluginDaemon.pullSecrets }} {{- if .Values.image.pluginDaemon.pullSecrets }}
imagePullSecrets: imagePullSecrets:
{{- range .Values.image.pluginDaemon.pullSecrets }} {{- range .Values.image.pluginDaemon.pullSecrets }}
@@ -94,11 +109,11 @@ spec:
resources: resources:
{{- toYaml .Values.pluginDaemon.resources | nindent 12 }} {{- toYaml .Values.pluginDaemon.resources | nindent 12 }}
volumeMounts: volumeMounts:
- name: python-config {{- if $usePvc }}
mountPath: /root/.config/pip
- name: app-data - name: app-data
mountPath: {{ .Values.pluginDaemon.persistence.mountPath | quote }} mountPath: {{ .Values.pluginDaemon.persistence.mountPath | quote }}
subPath: {{ .Values.pluginDaemon.persistence.persistentVolumeClaim.subPath | default "" }} subPath: {{ .Values.pluginDaemon.persistence.persistentVolumeClaim.subPath | default "" }}
{{- end }}
{{- if and (.Values.nodeSelector) (not .Values.pluginDaemon.nodeSelector) }} {{- if and (.Values.nodeSelector) (not .Values.pluginDaemon.nodeSelector) }}
nodeSelector: nodeSelector:
{{ toYaml .Values.nodeSelector | indent 8 }} {{ toYaml .Values.nodeSelector | indent 8 }}
@@ -124,9 +139,9 @@ spec:
{{ toYaml .Values.pluginDaemon.tolerations | indent 8 }} {{ toYaml .Values.pluginDaemon.tolerations | indent 8 }}
{{- end }} {{- end }}
volumes: volumes:
- name: python-config {{- if $usePvc }}
emptyDir: {}
- name: app-data - name: app-data
persistentVolumeClaim: persistentVolumeClaim:
claimName: {{ .Values.pluginDaemon.persistence.persistentVolumeClaim.existingClaim | default (printf "%s" (include "dify.pluginDaemon.fullname" . | trunc 58)) }} claimName: {{ .Values.pluginDaemon.persistence.persistentVolumeClaim.existingClaim | default (printf "%s" (include "dify.pluginDaemon.fullname" . | trunc 58)) }}
{{- end }} {{- end }}
{{- end }}
+8 -2
View File
@@ -20,8 +20,11 @@ spec:
{{/* {{/*
# Required labels for istio # Required labels for istio
# app: {{ template "dify.nginx.fullname" . }} # app: {{ template "dify.nginx.fullname" . }}
# version: {{ (print "v" .Values.serviceMesh.version) | quote }} # version: {{ .Values.istioServiceMesh.version | quote }}
*/}} */}}
{{- if .Values.proxy.updateStrategy }}
strategy: {{- toYaml .Values.proxy.updateStrategy | nindent 4 }}
{{- end }}
template: template:
metadata: metadata:
annotations: annotations:
@@ -33,11 +36,14 @@ spec:
{{/* {{/*
# Required labels for istio # Required labels for istio
# app: {{ template "dify.nginx.fullname" . }} # app: {{ template "dify.nginx.fullname" . }}
# version: {{ (print "v" .Values.serviceMesh.version) | quote }} # version: {{ .Values.istioServiceMesh.version | quote }}
*/}} */}}
{{ include "dify.ud.labels" . | indent 8 }} {{ include "dify.ud.labels" . | indent 8 }}
spec: spec:
serviceAccountName: {{ include "dify.proxy.serviceAccountName" . }} serviceAccountName: {{ include "dify.proxy.serviceAccountName" . }}
{{- if .Values.proxy.priorityClassName }}
priorityClassName: {{ .Values.proxy.priorityClassName | quote }}
{{- end }}
{{- if .Values.image.proxy.pullSecrets }} {{- if .Values.image.proxy.pullSecrets }}
imagePullSecrets: imagePullSecrets:
{{- range .Values.image.proxy.pullSecrets }} {{- range .Values.image.proxy.pullSecrets }}
+19 -2
View File
@@ -1,4 +1,12 @@
{{- if not (or .Values.externalS3.enabled .Values.externalAzureBlobStorage.enabled .Values.externalOSS.enabled .Values.externalGCS.enabled .Values.externalCOS.enabled .Values.externalOBS.enabled) }} {{- if not (or
.Values.externalS3.enabled
.Values.externalAzureBlobStorage.enabled
.Values.externalOSS.enabled
.Values.externalGCS.enabled
.Values.externalCOS.enabled
.Values.externalOBS.enabled
.Values.externalTOS.enabled
) }}
{{- $pvc := .Values.api.persistence.persistentVolumeClaim -}} {{- $pvc := .Values.api.persistence.persistentVolumeClaim -}}
{{- if (not $pvc.existingClaim) }} {{- if (not $pvc.existingClaim) }}
apiVersion: v1 apiVersion: v1
@@ -92,7 +100,15 @@ spec:
{{- $pvc := .Values.pluginDaemon.persistence.persistentVolumeClaim -}} {{- $pvc := .Values.pluginDaemon.persistence.persistentVolumeClaim -}}
{{- if and .Values.pluginDaemon.enabled (not $pvc.existingClaim) }} {{- if and .Values.pluginDaemon.enabled (not $pvc.existingClaim) }}
{{- if not (or
(and .Values.externalS3.enabled .Values.externalS3.bucketName.pluginDaemon)
(and .Values.externalOSS.enabled .Values.externalOSS.bucketName.pluginDaemon)
(and .Values.externalGCS.enabled .Values.externalGCS.bucketName.pluginDaemon)
(and .Values.externalCOS.enabled .Values.externalCOS.bucketName.pluginDaemon)
(and .Values.externalOBS.enabled .Values.externalOBS.bucketName.pluginDaemon)
(and .Values.externalTOS.enabled .Values.externalTOS.bucketName.pluginDaemon)
)
}}
--- ---
apiVersion: v1 apiVersion: v1
@@ -119,3 +135,4 @@ spec:
requests: requests:
storage: {{ $pvc.size }} storage: {{ $pvc.size }}
{{- end }} {{- end }}
{{- end }}
+8 -4
View File
@@ -20,8 +20,11 @@ spec:
{{/* {{/*
# Required labels for istio # Required labels for istio
# app: {{ template "dify.sandbox.fullname" . }} # app: {{ template "dify.sandbox.fullname" . }}
# version: {{ (print "v" .Values.serviceMesh.version) | quote }} # version: {{ .Values.istioServiceMesh.version | quote }}
*/}} */}}
{{- if .Values.sandbox.updateStrategy }}
strategy: {{- toYaml .Values.sandbox.updateStrategy | nindent 4 }}
{{- end }}
template: template:
metadata: metadata:
annotations: annotations:
@@ -34,11 +37,14 @@ spec:
{{/* {{/*
# Required labels for istio # Required labels for istio
# app: {{ template "dify.sandbox.fullname" . }} # app: {{ template "dify.sandbox.fullname" . }}
# version: {{ (print "v" .Values.serviceMesh.version) | quote }} # version: {{ .Values.istioServiceMesh.version | quote }}
*/}} */}}
{{ include "dify.ud.labels" . | indent 8 }} {{ include "dify.ud.labels" . | indent 8 }}
spec: spec:
serviceAccountName: {{ include "dify.sandbox.serviceAccountName" . }} serviceAccountName: {{ include "dify.sandbox.serviceAccountName" . }}
{{- if .Values.sandbox.priorityClassName }}
priorityClassName: {{ .Values.sandbox.priorityClassName | quote }}
{{- end }}
{{- if .Values.image.sandbox.pullSecrets }} {{- if .Values.image.sandbox.pullSecrets }}
imagePullSecrets: imagePullSecrets:
{{- range .Values.image.sandbox.pullSecrets }} {{- range .Values.image.sandbox.pullSecrets }}
@@ -95,8 +101,6 @@ spec:
protocol: TCP protocol: TCP
resources: resources:
{{- toYaml .Values.sandbox.resources | nindent 12 }} {{- toYaml .Values.sandbox.resources | nindent 12 }}
securityContext:
allowPrivilegeEscalation: {{ .Values.sandbox.privileged }}
{{- if and (.Values.nodeSelector) (not .Values.sandbox.nodeSelector) }} {{- if and (.Values.nodeSelector) (not .Values.sandbox.nodeSelector) }}
nodeSelector: nodeSelector:
{{ toYaml .Values.nodeSelector | indent 8 }} {{ toYaml .Values.nodeSelector | indent 8 }}
+8 -4
View File
@@ -20,8 +20,11 @@ spec:
{{/* {{/*
# Required labels for istio # Required labels for istio
# app: {{ template "dify.ssrfProxy.fullname" . }} # app: {{ template "dify.ssrfProxy.fullname" . }}
# version: {{ (print "v" .Values.serviceMesh.version) | quote }} # version: {{ .Values.istioServiceMesh.version | quote }}
*/}} */}}
{{- if .Values.ssrfProxy.updateStrategy }}
strategy: {{- toYaml .Values.ssrfProxy.updateStrategy | nindent 4 }}
{{- end }}
template: template:
metadata: metadata:
annotations: annotations:
@@ -33,11 +36,14 @@ spec:
{{/* {{/*
# Required labels for istio # Required labels for istio
# app: {{ template "dify.ssrfProxy.fullname" . }} # app: {{ template "dify.ssrfProxy.fullname" . }}
# version: {{ (print "v" .Values.serviceMesh.version) | quote }} # version: {{ .Values.istioServiceMesh.version | quote }}
*/}} */}}
{{ include "dify.ud.labels" . | indent 8 }} {{ include "dify.ud.labels" . | indent 8 }}
spec: spec:
serviceAccountName: {{ include "dify.ssrfProxy.serviceAccountName" . }} serviceAccountName: {{ include "dify.ssrfProxy.serviceAccountName" . }}
{{- if .Values.ssrfProxy.priorityClassName }}
priorityClassName: {{ .Values.ssrfProxy.priorityClassName | quote }}
{{- end }}
{{- if .Values.image.ssrfProxy.pullSecrets }} {{- if .Values.image.ssrfProxy.pullSecrets }}
imagePullSecrets: imagePullSecrets:
{{- range .Values.image.ssrfProxy.pullSecrets }} {{- range .Values.image.ssrfProxy.pullSecrets }}
@@ -85,8 +91,6 @@ spec:
{{- end }} {{- end }}
resources: resources:
{{- toYaml .Values.ssrfProxy.resources | nindent 12 }} {{- toYaml .Values.ssrfProxy.resources | nindent 12 }}
securityContext:
allowPrivilegeEscalation: {{ .Values.ssrfProxy.privileged }}
{{- if and (.Values.nodeSelector) (not .Values.ssrfProxy.nodeSelector) }} {{- if and (.Values.nodeSelector) (not .Values.ssrfProxy.nodeSelector) }}
nodeSelector: nodeSelector:
{{ toYaml .Values.nodeSelector | indent 8 }} {{ toYaml .Values.nodeSelector | indent 8 }}
+9 -3
View File
@@ -20,8 +20,11 @@ spec:
{{/* {{/*
# Required labels for istio # Required labels for istio
# app: {{ template "dify.web.fullname" . }} # app: {{ template "dify.web.fullname" . }}
# version: {{ (print "v" .Values.serviceMesh.version) | quote }} # version: {{ .Values.istioServiceMesh.version | quote }}
*/}} */}}
{{- if .Values.web.updateStrategy }}
strategy: {{- toYaml .Values.web.updateStrategy | nindent 4 }}
{{- end }}
template: template:
metadata: metadata:
annotations: annotations:
@@ -33,11 +36,15 @@ spec:
{{/* {{/*
# Required labels for istio # Required labels for istio
# app: {{ template "dify.web.fullname" . }} # app: {{ template "dify.web.fullname" . }}
# version: {{ (print "v" .Values.serviceMesh.version) | quote }} # version: {{ .Values.istioServiceMesh.version | quote }}
*/}} */}}
{{ include "dify.ud.labels" . | indent 8 }} {{ include "dify.ud.labels" . | indent 8 }}
spec: spec:
serviceAccountName: {{ include "dify.web.serviceAccountName" . }} serviceAccountName: {{ include "dify.web.serviceAccountName" . }}
{{- if .Values.web.priorityClassName }}
priorityClassName: {{ .Values.web.priorityClassName | quote }}
{{- end }}
enableServiceLinks: {{ .Values.web.enableServiceLinks }}
{{- if .Values.image.web.pullSecrets }} {{- if .Values.image.web.pullSecrets }}
imagePullSecrets: imagePullSecrets:
{{- range .Values.image.web.pullSecrets }} {{- range .Values.image.web.pullSecrets }}
@@ -98,7 +105,6 @@ spec:
protocol: TCP protocol: TCP
resources: resources:
{{- toYaml .Values.web.resources | nindent 12 }} {{- toYaml .Values.web.resources | nindent 12 }}
enableServiceLinks: {{ .Values.web.enableServiceLinks }}
{{- if and (.Values.nodeSelector) (not .Values.web.nodeSelector) }} {{- if and (.Values.nodeSelector) (not .Values.web.nodeSelector) }}
nodeSelector: nodeSelector:
{{ toYaml .Values.nodeSelector | indent 8 }} {{ toYaml .Values.nodeSelector | indent 8 }}
+25 -2
View File
@@ -21,8 +21,11 @@ spec:
{{/* {{/*
# Required labels for istio # Required labels for istio
# app: {{ template "dify.worker.fullname" . }} # app: {{ template "dify.worker.fullname" . }}
# version: {{ (print "v" .Values.serviceMesh.version) | quote }} # version: {{ .Values.istioServiceMesh.version | quote }}
*/}} */}}
{{- if .Values.worker.updateStrategy }}
strategy: {{- toYaml .Values.worker.updateStrategy | nindent 4 }}
{{- end }}
template: template:
metadata: metadata:
annotations: annotations:
@@ -35,11 +38,14 @@ spec:
{{/* {{/*
# Required labels for istio # Required labels for istio
# app: {{ template "dify.worker.fullname" . }} # app: {{ template "dify.worker.fullname" . }}
# version: {{ (print "v" .Values.serviceMesh.version) | quote }} # version: {{ .Values.istioServiceMesh.version | quote }}
*/}} */}}
{{ include "dify.ud.labels" . | indent 8 }} {{ include "dify.ud.labels" . | indent 8 }}
spec: spec:
serviceAccountName: {{ include "dify.worker.serviceAccountName" . }} serviceAccountName: {{ include "dify.worker.serviceAccountName" . }}
{{- if .Values.worker.priorityClassName }}
priorityClassName: {{ .Values.worker.priorityClassName | quote }}
{{- end }}
{{- if .Values.image.api.pullSecrets }} {{- if .Values.image.api.pullSecrets }}
imagePullSecrets: imagePullSecrets:
{{- range .Values.image.api.pullSecrets }} {{- range .Values.image.api.pullSecrets }}
@@ -59,6 +65,23 @@ spec:
volumeMounts: volumeMounts:
- name: python-config - name: python-config
mountPath: /root/.config/pip mountPath: /root/.config/pip
{{- if .Values.api.migration }}
- name: check-api
image: "{{ .Values.image.api.repository }}:{{ default .Chart.AppVersion .Values.image.api.tag }}"
command:
- sh
- -c
- |
until curl http://{{ template "dify.api.fullname" . }}:{{ .Values.api.service.port }}/health; do
echo "Waiting for API service to be available..."
sleep 1
done
envFrom:
- configMapRef:
name: {{ template "dify.worker.fullname" . }}
- secretRef:
name: {{ template "dify.worker.fullname" . }}
{{- end }}
containers: containers:
- image: "{{ .Values.image.api.repository }}:{{ default .Chart.AppVersion .Values.image.api.tag }}" - image: "{{ .Values.image.api.repository }}:{{ default .Chart.AppVersion .Values.image.api.tag }}"
imagePullPolicy: "{{ .Values.image.api.pullPolicy }}" imagePullPolicy: "{{ .Values.image.api.pullPolicy }}"
+103 -14
View File
@@ -5,7 +5,7 @@
image: image:
api: api:
repository: langgenius/dify-api repository: langgenius/dify-api
tag: "1.1.2" tag: "1.7.1"
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
## Optionally specify an array of imagePullSecrets. ## Optionally specify an array of imagePullSecrets.
## Secrets must be manually created in the namespace. ## Secrets must be manually created in the namespace.
@@ -13,9 +13,10 @@ image:
## ##
# pullSecrets: # pullSecrets:
# - myRegistryKeySecretName # - myRegistryKeySecretName
web: web:
repository: langgenius/dify-web repository: langgenius/dify-web
tag: "1.1.2" tag: "1.7.1"
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
## Optionally specify an array of imagePullSecrets. ## Optionally specify an array of imagePullSecrets.
## Secrets must be manually created in the namespace. ## Secrets must be manually created in the namespace.
@@ -23,9 +24,10 @@ image:
## ##
# pullSecrets: # pullSecrets:
# - myRegistryKeySecretName # - myRegistryKeySecretName
sandbox: sandbox:
repository: langgenius/dify-sandbox repository: langgenius/dify-sandbox
tag: "0.2.10" tag: "0.2.12"
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
## Optionally specify an array of imagePullSecrets. ## Optionally specify an array of imagePullSecrets.
## Secrets must be manually created in the namespace. ## Secrets must be manually created in the namespace.
@@ -33,6 +35,7 @@ image:
## ##
# pullSecrets: # pullSecrets:
# - myRegistryKeySecretName # - myRegistryKeySecretName
proxy: proxy:
repository: nginx repository: nginx
tag: latest tag: latest
@@ -57,7 +60,7 @@ image:
pluginDaemon: pluginDaemon:
repository: langgenius/dify-plugin-daemon repository: langgenius/dify-plugin-daemon
tag: 0.0.6-local tag: 0.2.0-local
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
## Optionally specify an array of imagePullSecrets. ## Optionally specify an array of imagePullSecrets.
## Secrets must be manually created in the namespace. ## Secrets must be manually created in the namespace.
@@ -65,6 +68,7 @@ image:
## ##
# pullSecrets: # pullSecrets:
# - myRegistryKeySecretName # - myRegistryKeySecretName
python: python:
repository: python repository: python
tag: 3.12-slim tag: 3.12-slim
@@ -83,6 +87,7 @@ api:
nodeSelector: {} nodeSelector: {}
affinity: {} affinity: {}
tolerations: [] tolerations: []
priorityClassName: ""
autoscaling: autoscaling:
enabled: false enabled: false
minReplicas: 1 minReplicas: 1
@@ -115,6 +120,9 @@ api:
timeoutSeconds: 5 timeoutSeconds: 5
failureThreshold: 5 failureThreshold: 5
successThreshold: 1 successThreshold: 1
## @param api.updateStrategy Update strategy type and configuration parameters
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
updateStrategy: {}
## @param api.customLivenessProbe Custom livenessProbe that overrides the default one ## @param api.customLivenessProbe Custom livenessProbe that overrides the default one
customLivenessProbe: {} customLivenessProbe: {}
## @param api.customReadinessProbe Custom readinessProbe that overrides the default one ## @param api.customReadinessProbe Custom readinessProbe that overrides the default one
@@ -251,6 +259,7 @@ worker:
nodeSelector: {} nodeSelector: {}
affinity: {} affinity: {}
tolerations: [] tolerations: []
priorityClassName: ""
autoscaling: autoscaling:
enabled: false enabled: false
minReplicas: 1 minReplicas: 1
@@ -265,6 +274,9 @@ worker:
customReadinessProbe: {} customReadinessProbe: {}
## @param worker.customStartupProbe Custom startupProbe that overrides the default one ## @param worker.customStartupProbe Custom startupProbe that overrides the default one
customStartupProbe: {} customStartupProbe: {}
## @param worker.updateStrategy Update strategy type and configuration parameters
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
updateStrategy: {}
# Configure Pods Security Context # Configure Pods Security Context
podSecurityContext: {} podSecurityContext: {}
# Configure Container Security Context # Configure Container Security Context
@@ -307,6 +319,7 @@ proxy:
nodeSelector: {} nodeSelector: {}
affinity: {} affinity: {}
tolerations: [] tolerations: []
priorityClassName: ""
## Configure extra options for proxy containers' liveness, readiness, and startup probes ## Configure extra options for proxy containers' liveness, readiness, and startup probes
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
## @param proxy.customLivenessProbe Custom livenessProbe that overrides the default one ## @param proxy.customLivenessProbe Custom livenessProbe that overrides the default one
@@ -317,6 +330,9 @@ proxy:
customStartupProbe: {} customStartupProbe: {}
## @param proxy.clientMaxBodySize Custom client_max_body_size param nginx default: 15m ## @param proxy.clientMaxBodySize Custom client_max_body_size param nginx default: 15m
clientMaxBodySize: "" clientMaxBodySize: ""
## @param proxy.updateStrategy Update strategy type and configuration parameters
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
updateStrategy: {}
# Configure Pods Security Context # Configure Pods Security Context
podSecurityContext: {} podSecurityContext: {}
# Configure Container Security Context # Configure Container Security Context
@@ -376,6 +392,7 @@ web:
nodeSelector: {} nodeSelector: {}
affinity: {} affinity: {}
tolerations: [] tolerations: []
priorityClassName: ""
autoscaling: autoscaling:
enabled: false enabled: false
minReplicas: 1 minReplicas: 1
@@ -408,6 +425,9 @@ web:
timeoutSeconds: 5 timeoutSeconds: 5
failureThreshold: 5 failureThreshold: 5
successThreshold: 1 successThreshold: 1
## @param web.updateStrategy Update strategy type and configuration parameters
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
updateStrategy: {}
## @param web.customLivenessProbe Custom livenessProbe that overrides the default one ## @param web.customLivenessProbe Custom livenessProbe that overrides the default one
customLivenessProbe: {} customLivenessProbe: {}
## @param web.customReadinessProbe Custom readinessProbe that overrides the default one ## @param web.customReadinessProbe Custom readinessProbe that overrides the default one
@@ -454,6 +474,7 @@ sandbox:
nodeSelector: {} nodeSelector: {}
affinity: {} affinity: {}
tolerations: [] tolerations: []
priorityClassName: ""
autoscaling: autoscaling:
enabled: false enabled: false
minReplicas: 1 minReplicas: 1
@@ -486,6 +507,9 @@ sandbox:
timeoutSeconds: 5 timeoutSeconds: 5
failureThreshold: 2 failureThreshold: 2
successThreshold: 1 successThreshold: 1
## @param sandbox.updateStrategy Update strategy type and configuration parameters
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
updateStrategy: {}
## @param sandbox.customLivenessProbe Custom livenessProbe that overrides the default one ## @param sandbox.customLivenessProbe Custom livenessProbe that overrides the default one
customLivenessProbe: {} customLivenessProbe: {}
## @param sandbox.customReadinessProbe Custom readinessProbe that overrides the default one ## @param sandbox.customReadinessProbe Custom readinessProbe that overrides the default one
@@ -509,7 +533,6 @@ sandbox:
clusterIP: "" clusterIP: ""
auth: auth:
apiKey: "dify-sandbox" apiKey: "dify-sandbox"
privileged: false
## Sandbox ServiceAccount configuration ## Sandbox ServiceAccount configuration
## ##
serviceAccount: serviceAccount:
@@ -534,6 +557,7 @@ ssrfProxy:
nodeSelector: {} nodeSelector: {}
affinity: {} affinity: {}
tolerations: [] tolerations: []
priorityClassName: ""
## Configure extra options for ssrf proxy containers' liveness, readiness, and startup probes ## Configure extra options for ssrf proxy containers' liveness, readiness, and startup probes
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
## @param ssrfProxy.customLivenessProbe Custom livenessProbe that overrides the default one ## @param ssrfProxy.customLivenessProbe Custom livenessProbe that overrides the default one
@@ -542,6 +566,9 @@ ssrfProxy:
customReadinessProbe: {} customReadinessProbe: {}
## @param ssrfProxy.customStartupProbe Custom startupProbe that overrides the default one ## @param ssrfProxy.customStartupProbe Custom startupProbe that overrides the default one
customStartupProbe: {} customStartupProbe: {}
## @param ssrfProxy.updateStrategy Update strategy type and configuration parameters
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
updateStrategy: {}
# Configure Pods Security Context # Configure Pods Security Context
podSecurityContext: {} podSecurityContext: {}
# Configure Container Security Context # Configure Container Security Context
@@ -601,6 +628,7 @@ pluginDaemon:
nodeSelector: {} nodeSelector: {}
affinity: {} affinity: {}
tolerations: [] tolerations: []
priorityClassName: ""
## Configure extra options for plugin daemon containers' liveness, readiness, and startup probes ## Configure extra options for plugin daemon containers' liveness, readiness, and startup probes
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
## @param pluginDaemon.customLivenessProbe Custom livenessProbe that overrides the default one ## @param pluginDaemon.customLivenessProbe Custom livenessProbe that overrides the default one
@@ -609,6 +637,9 @@ pluginDaemon:
customReadinessProbe: {} customReadinessProbe: {}
## @param pluginDaemon.customStartupProbe Custom startupProbe that overrides the default one ## @param pluginDaemon.customStartupProbe Custom startupProbe that overrides the default one
customStartupProbe: {} customStartupProbe: {}
## @param pluginDaemon.updateStrategy Update strategy type and configuration parameters
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
updateStrategy: {}
# Configure Pods Security Context # Configure Pods Security Context
podSecurityContext: {} podSecurityContext: {}
# Configure Container Security Context # Configure Container Security Context
@@ -630,6 +661,9 @@ pluginDaemon:
serverKey: "lYkiYYT6owG+71oLerGzA7GXCgOT++6ovaezWAjpCjf+Sjc3ZtU+qUEi" serverKey: "lYkiYYT6owG+71oLerGzA7GXCgOT++6ovaezWAjpCjf+Sjc3ZtU+qUEi"
# A separate key for interactions between `api`(`worker`) and `pluginDaemon` # A separate key for interactions between `api`(`worker`) and `pluginDaemon`
difyApiKey: "QaHbTe77CtuXmsfyhR7+vRjI/+XbV1AaFy691iy+kGDv2Jvy0/eAh8Y1" difyApiKey: "QaHbTe77CtuXmsfyhR7+vRjI/+XbV1AaFy691iy+kGDv2Jvy0/eAh8Y1"
## Storage for `pluginDaemon`
## Ignored if external object storage were configured via `.Values.externalS3` sections.
##
persistence: persistence:
mountPath: "/app/storage" mountPath: "/app/storage"
annotations: annotations:
@@ -2996,13 +3030,16 @@ externalPostgres:
externalS3: externalS3:
enabled: false enabled: false
endpoint: "https://xxx.r2.cloudflarestorage.com" endpoint: "https://xxx.r2.cloudflarestorage.com"
pathStyle: false
accessKey: "ak-difyai" accessKey: "ak-difyai"
secretKey: "sk-difyai" secretKey: "sk-difyai"
useSSL: false useSSL: false
bucketName: "difyai" bucketName:
rootPath: "" # Shared storage for `api` and `worker`
api: "difyai"
# If specifed, `pluginDaemon` will use this bucket instead of binding `PersistentVolume` for data persistence (only used when `externalS3.enabled` is set to `true`).
pluginDaemon:
useIAM: false useIAM: false
iamEndpoint: ""
region: "us-east-1" region: "us-east-1"
################################### ###################################
@@ -3026,7 +3063,10 @@ externalOSS:
accessKey: "ak-difyai" accessKey: "ak-difyai"
secretKey: "sk-difyai" secretKey: "sk-difyai"
region: "ap-southeast-1" region: "ap-southeast-1"
bucketName: "difyai" bucketName:
api: "difyai"
# If specifed, `pluginDaemon` will use this bucket instead of binding `PersistentVolume` for data persistence (only used when `externalOSS.enabled` is set to `true`).
pluginDaemon:
authVersion: v4 authVersion: v4
path: "your-path" path: "your-path"
@@ -3036,7 +3076,10 @@ externalOSS:
################################### ###################################
externalGCS: externalGCS:
enabled: false enabled: false
bucketName: "difyai" bucketName:
api: "difyai"
# If specifed, `pluginDaemon` will use this bucket instead of binding `PersistentVolume` for data persistence (only used when `externalGCS.enabled` is set to `true`).
pluginDaemon:
serviceAccountJsonBase64: "" serviceAccountJsonBase64: ""
################################### ###################################
@@ -3048,7 +3091,10 @@ externalCOS:
secretKey: "your-secret-key" secretKey: "your-secret-key"
secretId: "your-secret-id" secretId: "your-secret-id"
region: "your-region" region: "your-region"
bucketName: "your-bucket-name" bucketName:
api: "your-bucket-name"
# If specifed, `pluginDaemon` will use this bucket instead of binding `PersistentVolume` for data persistence (only used when `externalCOS.enabled` is set to `true`).
pluginDaemon:
scheme: "your-scheme" scheme: "your-scheme"
################################### ###################################
@@ -3057,10 +3103,29 @@ externalCOS:
################################### ###################################
externalOBS: externalOBS:
enabled: false enabled: false
endpoint: "https://your-endpoint"
accessKey: "your-secret-id"
secretKey: "your-secret-key" secretKey: "your-secret-key"
secretId: "your-secret-id" bucketName:
bucketName: "your-bucket-name" api: "your-bucket-name"
server: "your-server" # If specifed, `pluginDaemon` will use this bucket instead of binding `PersistentVolume` for data persistence (only used when `externalOBS.enabled` is set to `true`).
pluginDaemon:
###################################
# External Tinder Object Storage (TOS) from volcengine
# - these configs are only used when `externalS3.enabled` and `externalAzureBlobStorage.enabled` and `externalOSS.enabled` and `externalGCS.enabled` and `externalCOS.enabled` and `externalOBS.enabled` are false and `externalTOS.enabled` is true
###################################
externalTOS:
enabled: false
endpoint: "https://tos-cn-beijing.volces.com"
accessKey: "your-access-key"
secretKey: "your-secret-key"
bucketName:
# Shared storage for `api` and `worker`
api: "your-bucket-name"
# If specifed, `pluginDaemon` will use this bucket instead of binding `PersistentVolume` for data persistence (only used when `externalTOS.enabled` is set to `true`).
pluginDaemon:
region: "cn-beijing"
################################### ###################################
# External Redis # External Redis
@@ -3133,3 +3198,27 @@ externalTencentVectorDB:
database: "dify" database: "dify"
shard: 1 shard: 1
replicas: 2 replicas: 2
###################################
# External MyScaleDB Vector DB
# - these configs take effect only if both `externalWeaviate.enabled`, `externalQdrant.enabled` and `externalMilvus.enabled` and `externalPgvector.enabled` and `externalTencentVectorDB.enabled` are set as `false` and `externalMyScaleDB.enabled` is `true`
###################################
externalMyScaleDB:
enabled: false
host: "myscale"
port: 8123
user: "default"
password: ""
database: "dify"
ftsParams: ""
###################################
# External TableStore Vector DB
# - these configs take effect only if both `externalWeaviate.enabled`, `externalQdrant.enabled` and `externalMilvus.enabled` and `externalPgvector.enabled` and `externalTencentVectorDB.enabled` and `externalMyScaleDB.enabled` are set as `false` and `externalTableStore.enabled` is `true`
###################################
externalTableStore:
enabled: false
endpoint: "endpoint"
instanceName: "instance-name"
accessKeyId: "your-secret-id"
accessKeySecret: "your-secret-key"