Skip to content

其它

ProviderRegistry

如果需要将原系统应用的 provider 接入你的开发环境可以手工修改 ProviderRegistry 的地址 在 control hub 中的“crds”,找到 “sys.bytetrade.io”,找到 ProviderRegistry

image

进入列表后找到你要替换的 app (比如 desktop-notification),点击右侧的功能按钮,选择“编辑 YAML”. 将 yaml 中的 endpoint,指向你的“开发 app”的 service 地址. 保存之后即可生效

image

vite 配置

如果前端项目采用了 vite,需要增加 hmr 配置。原因是 vite 在 dev 状态,会启动 websocket 监听服务器端发送的代码更新 reload 通知。默认 ws 端口为 server 启动的端口。而 dev app 启动了 nginx 代理,采用了标准的 443 端口。所以需要做相应修改。

如果是 quasar + vite,在 quasar.config.js 里增加一段

js
extendViteConf(viteConf) {
    viteConf.server.hmr = {clientPort: 443};
},

如果是独立 vite 项目,需要修改 vite.config.js 文件

js
export default defineConfig({
  server: {
    hmr: {
      clientPort: 443,
    },
  },
});

使用系统数据库

在 deployment 的 yaml 中,添加 Middleware request 以 dify 中申请 postgres 为例

Yaml
apiVersion: apr.bytetrade.io/v1alpha1
kind: MiddlewareRequest
metadata:
  name: dify-pg
  namespace: os-system
spec:
  app: dify
  appNamespace: os-system
  middleware: postgres
  postgreSQL:
    user: dify_os_system
    password:
      valueFrom:
        secretKeyRef:
          key: pg_password
          name: dify-secrets
    databases:
    - name: dify

添加 Middleware request,需要设置一个密码的 secret

Yaml
apiVersion: v1
kind: Secret
metadata:
  name: dify-secrets
  namespace: {{ .Release.Namespace }}
type: Opaque
data:
  pg_password: {{ $pg_password }}   # password可以随机生成,然后做Base64 encode

在使用的地方配置

Yaml
env:
  - name: DB_USERNAME
    value: dify_user_space_{{ .Values.bfl.name }}   # 注意,在上面配置的Middleware request配置的用户名,在实际使用时,需要加上namespace 后缀。Postgres的用户名,还需要把 - 换成 _
  - name: DB_PASSWORD
    value: {{ $pg_password | b64dec }}  #  上面配置的密码原文
  - name: DB_HOST
    value: citus-master-svc.user-system-{{ .Values.bfl.username }}   # 数据库地址,  redis的地址为 redis-cluster-proxy.user-system-{{ .Values.bfl.username }}, mongo地址为 mongo-cluster-mongos.user-system-{{ .Values.bfl.username }}
  - name: DB_PORT
    value: '5432'   # redis端口 6379, mongo端口 27017
  - name: DB_DATABASE
    value: os_system_dify  # 注意,在上面配置的Middleware request配置的数据库名,在实际使用时,需要加上namespace 前缀。Postgres的数据库名,还需要把 - 换成 _

也可以拼接 dsn 链接

Yaml
postgres://dify_{{ .Values.bfl.username }}:{{ $pg_password_data }}@citus-master-svc.user-system-{{ .Values.bfl.username }}/user_space_{{ .Values.bfl.username }}_dify?sslmode=disable

mongodb://dify-{{ .Values.bfl.username }}:{{ $mongo_password_data }}@mongo-cluster-mongos.user-system-{{ .Values.bfl.username }}:27017/{{ .Release.Namespace }}_dify

redis://:{{ $redis_password | b64dec }}@redis-cluster-proxy.user-system-{{ .Values.bfl.username }}:6379/0  # 注意,由于系统采用的是redis cluster,db只能写0

如果提供 provider 需要手工在 deployment.yaml 文件里配 ProviderRegistry

Yaml
apiVersion: sys.bytetrade.io/v1alpha1
kind: ProviderRegistry
metadata:
  name: desktop-provider-dev  # 名字不能和现有的重名
  namespace: user-system-{{ .Values.bfl.username }}
spec:

  dataType: config-dev   # 类型不要现在的重名,如果想替换现在的,需要把已有的删除
  deployment: desktop-dev
  description: Set Desktop Config
  endpoint: desktop-svc-dev.{{ .Release.Namespace }}  # provider的访问地址,指向开发的app
  group: service.desktop
  kind: provider
  namespace: {{ .Release.Namespace }}
  opApis:
  - name: Update
    uri: /server/updateDesktopConfig
  version: v1
status:
  state: active