apiVersion: v1 kind: ConfigMap metadata: name: redis-config data: redis.conf: | port 6379 replicaof no one daemonize no appendonly yes dir /data timeout 300 maxclients 10000 tcp-keepalive 60 save "" tcp-backlog 511 replica-read-only no maxmemory 2gb maxmemory-policy noeviction databases 16 appendfsync everysec no-appendfsync-on-rewrite yes auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb slowlog-log-slower-than 10000 slowlog-max-len 128 --- apiVersion: v1 kind: ConfigMap metadata: name: pgvector-init data: 02-init-pgvector.sql: | \c agent_governance CREATE EXTENSION IF NOT EXISTS vector; CREATE EXTENSION IF NOT EXISTS pgcrypto; CREATE DATABASE easyai_memory; GRANT ALL PRIVILEGES ON DATABASE easyai_memory TO easyai; \c easyai_memory CREATE EXTENSION IF NOT EXISTS vector; CREATE EXTENSION IF NOT EXISTS pgcrypto; --- apiVersion: apps/v1 kind: Deployment metadata: name: mongo labels: app.kubernetes.io/name: mongo spec: replicas: 1 selector: matchLabels: app.kubernetes.io/name: mongo template: metadata: labels: app.kubernetes.io/name: mongo spec: containers: - name: mongo image: registry.cn-shanghai.aliyuncs.com/comfy-ai/mongo-aliyun:latest imagePullPolicy: IfNotPresent args: - mongod - --wiredTigerCacheSizeGB - "1.5" ports: - name: mongo containerPort: 27017 env: - name: MONGO_INITDB_ROOT_USERNAME valueFrom: secretKeyRef: name: easyai-app-secret key: MONGO_INITDB_ROOT_USERNAME - name: MONGO_INITDB_ROOT_PASSWORD valueFrom: secretKeyRef: name: easyai-app-secret key: MONGO_INITDB_ROOT_PASSWORD volumeMounts: - name: data mountPath: /data/db readinessProbe: tcpSocket: port: mongo initialDelaySeconds: 20 periodSeconds: 10 startupProbe: tcpSocket: port: mongo periodSeconds: 5 timeoutSeconds: 3 failureThreshold: 60 livenessProbe: tcpSocket: port: mongo initialDelaySeconds: 60 periodSeconds: 30 resources: requests: cpu: 250m memory: 1Gi limits: cpu: "1" memory: 2500Mi volumes: - name: data emptyDir: {} --- apiVersion: v1 kind: Service metadata: name: mongo labels: app.kubernetes.io/name: mongo spec: selector: app.kubernetes.io/name: mongo ports: - name: mongo port: 27017 targetPort: mongo --- apiVersion: apps/v1 kind: Deployment metadata: name: redis labels: app.kubernetes.io/name: redis spec: replicas: 1 selector: matchLabels: app.kubernetes.io/name: redis template: metadata: labels: app.kubernetes.io/name: redis spec: containers: - name: redis image: registry.cn-shanghai.aliyuncs.com/comfy-ai/redis-aliyun:latest imagePullPolicy: IfNotPresent command: - redis-server - /etc/redis/redis.conf ports: - name: redis containerPort: 6379 volumeMounts: - name: config mountPath: /etc/redis/redis.conf subPath: redis.conf readOnly: true - name: data mountPath: /data readinessProbe: tcpSocket: port: redis initialDelaySeconds: 5 periodSeconds: 10 livenessProbe: tcpSocket: port: redis initialDelaySeconds: 30 periodSeconds: 30 resources: requests: cpu: 200m memory: 512Mi limits: cpu: "1" memory: 2Gi volumes: - name: config configMap: name: redis-config - name: data emptyDir: {} --- apiVersion: v1 kind: Service metadata: name: redis labels: app.kubernetes.io/name: redis spec: selector: app.kubernetes.io/name: redis ports: - name: redis port: 6379 targetPort: redis --- apiVersion: apps/v1 kind: Deployment metadata: name: rabbitmq labels: app.kubernetes.io/name: rabbitmq spec: replicas: 1 selector: matchLabels: app.kubernetes.io/name: rabbitmq template: metadata: labels: app.kubernetes.io/name: rabbitmq spec: containers: - name: rabbitmq image: registry.cn-shanghai.aliyuncs.com/easyaigc/mq:latest imagePullPolicy: IfNotPresent ports: - name: amqp containerPort: 5672 - name: management containerPort: 15672 env: - name: RABBITMQ_DEFAULT_USER valueFrom: secretKeyRef: name: easyai-app-secret key: CONFIG_MQ_USER - name: RABBITMQ_DEFAULT_PASS valueFrom: secretKeyRef: name: easyai-app-secret key: CONFIG_MQ_PASSWORD volumeMounts: - name: data mountPath: /var/lib/rabbitmq readinessProbe: tcpSocket: port: amqp initialDelaySeconds: 20 periodSeconds: 10 livenessProbe: tcpSocket: port: amqp initialDelaySeconds: 60 periodSeconds: 30 resources: requests: cpu: 250m memory: 512Mi limits: cpu: "1" memory: 1Gi volumes: - name: data emptyDir: {} --- apiVersion: v1 kind: Service metadata: name: rabbitmq labels: app.kubernetes.io/name: rabbitmq spec: selector: app.kubernetes.io/name: rabbitmq ports: - name: amqp port: 5672 targetPort: amqp - name: management port: 15672 targetPort: management --- apiVersion: apps/v1 kind: Deployment metadata: name: easyai-pgvector labels: app.kubernetes.io/name: easyai-pgvector spec: replicas: 1 selector: matchLabels: app.kubernetes.io/name: easyai-pgvector template: metadata: labels: app.kubernetes.io/name: easyai-pgvector spec: containers: - name: postgres image: registry.cn-shanghai.aliyuncs.com/easyaigc/pgvector:0.8.2-pg18-trixie imagePullPolicy: IfNotPresent ports: - name: postgres containerPort: 5432 env: - name: POSTGRES_USER valueFrom: secretKeyRef: name: easyai-app-secret key: ASG_POSTGRES_USER - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: name: easyai-app-secret key: ASG_POSTGRES_PASSWORD - name: POSTGRES_DB valueFrom: secretKeyRef: name: easyai-app-secret key: ASG_POSTGRES_DB - name: PGDATA value: /var/lib/postgresql/data/pgdata volumeMounts: - name: data mountPath: /var/lib/postgresql/data - name: init mountPath: /docker-entrypoint-initdb.d/02-init-pgvector.sql subPath: 02-init-pgvector.sql readOnly: true readinessProbe: exec: command: - /bin/sh - -c - pg_isready -U "$POSTGRES_USER" -d "$POSTGRES_DB" initialDelaySeconds: 15 periodSeconds: 10 livenessProbe: exec: command: - /bin/sh - -c - pg_isready -U "$POSTGRES_USER" -d "$POSTGRES_DB" initialDelaySeconds: 60 periodSeconds: 30 resources: requests: cpu: 250m memory: 512Mi limits: cpu: "1" memory: 1Gi volumes: - name: data emptyDir: {} - name: init configMap: name: pgvector-init --- apiVersion: v1 kind: Service metadata: name: easyai-pgvector labels: app.kubernetes.io/name: easyai-pgvector spec: selector: app.kubernetes.io/name: easyai-pgvector ports: - name: postgres port: 5432 targetPort: postgres