初始化提交
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: easyai-app-config
|
||||
data:
|
||||
NUXT_PUBLIC_BASE_APIURL: /api
|
||||
NUXT_PUBLIC_BASE_SOCKETURL: wss://easyai.example.com/socket.io
|
||||
NUXT_PUBLIC_SG_APIURL: /asg-api
|
||||
NUXT_APP_CDN_URL: ""
|
||||
|
||||
MALLOC_ARENA_MAX: "2"
|
||||
MALLOC_TRIM_THRESHOLD_: "131072"
|
||||
MALLOC_MMAP_THRESHOLD_: "131072"
|
||||
MALLOC_TOP_PAD_: "131072"
|
||||
SHARP_CACHE_ENABLED: "false"
|
||||
SHARP_CONCURRENCY: "1"
|
||||
|
||||
CONFIG_COMFYUI_QUENE_REDIS_HOST: CHANGE_ME_REDIS_HOST
|
||||
CONFIG_COMFYUI_QUENE_REDIS_PORT: "6379"
|
||||
CONFIG_COMFYUI_QUENE_REDIS_USERNAME: ""
|
||||
CONFIG_COMFYUI_QUENE_REDIS_DB: "6"
|
||||
CONFIG_COMFYUI_CACHE_REDIS_DB: "11"
|
||||
|
||||
LOG_LEVEL: log,error,warn
|
||||
WS_GATEWAY_LOG_LEVEL: log,error,warn
|
||||
CONFIG_TOKEN_EXPIRE: "1800"
|
||||
CONFIG_PROXY_URL: ""
|
||||
CONFIG_DOCS_DISABLE: "true"
|
||||
|
||||
CONFIG_MQ_PROTOCOL: amqp
|
||||
CONFIG_MQ_HOST: CHANGE_ME_RABBITMQ_HOST
|
||||
CONFIG_MQ_PORT: "5672"
|
||||
CONFIG_MQ_VHOST: /
|
||||
|
||||
CONFIG_TCP_HOST: 0.0.0.0
|
||||
CONFIG_TCP_PORT: "4002"
|
||||
GATEWAY_CLUSTER_REDIS_ENABLED: "true"
|
||||
GATEWAY_CLUSTER_REDIS_CHANNEL: easyai:wsgateway:cluster
|
||||
GATEWAY_CLUSTER_REDIS_ROUTE_PREFIX: easyai:wsgateway:route
|
||||
GATEWAY_CLUSTER_REDIS_ROUTE_TTL_SEC: "120"
|
||||
GATEWAY_CLUSTER_REDIS_RECONNECT_INTERVAL_MS: "5000"
|
||||
GATEWAY_CLUSTER_REDIS_URL: ""
|
||||
GATEWAY_CLUSTER_REDIS_HOST: CHANGE_ME_REDIS_HOST
|
||||
GATEWAY_CLUSTER_REDIS_PORT: "6379"
|
||||
GATEWAY_CLUSTER_REDIS_USERNAME: ""
|
||||
GATEWAY_CLUSTER_REDIS_DB: "0"
|
||||
WS_GATEWAY_TCP_EVENT_PATTERN: gateway.event.publish
|
||||
WS_GATEWAY_TCP_TIMEOUT_MS: "1500"
|
||||
GATEWAY_INBOUND_TCP_PATTERN: gateway.inbound.command
|
||||
GATEWAY_INBOUND_TIMEOUT_MS: "5000"
|
||||
|
||||
WS_AUTH_REQUIRED: "false"
|
||||
WS_AUTH_TIMEOUT_MS: "6000"
|
||||
WS_AUTH_METHODS: none,bearer
|
||||
WS_AUTH_WS_TICKETS: ""
|
||||
|
||||
ASG_REDIS_HOST: CHANGE_ME_REDIS_HOST
|
||||
ASG_REDIS_PORT: "6379"
|
||||
ASG_REDIS_DB: "8"
|
||||
ASG_PORT: "3003"
|
||||
ASG_TCP_HOST: 0.0.0.0
|
||||
ASG_TCP_PORT: "4003"
|
||||
ASG_DOCS_DISABLE: "true"
|
||||
ASG_MAIN_BACKEND_URL: http://easyai-server:3001
|
||||
|
||||
AMS_PORT: "3004"
|
||||
MEMORY_AI_BASE_URL: http://easyai-server:3001
|
||||
MEMORY_EMBEDDINGS_PATH: /v1/embeddings
|
||||
MEMORY_EMBEDDING_MODELS_PATH: /v1/embeddings/models
|
||||
MEMORY_EMBEDDING_DIMENSION: "1024"
|
||||
MEMORY_EMBEDDING_MODEL: Qwen3-Embedding-v4
|
||||
MEMORY_SCORE_CONFIDENCE_BASE: "0.6"
|
||||
MEMORY_SCORE_CONFIDENCE_GAIN: "0.4"
|
||||
MEMORY_SCORE_IMPORTANCE_BASE: "0.7"
|
||||
MEMORY_SCORE_IMPORTANCE_GAIN: "0.3"
|
||||
MEMORY_DEDUP_MIN_SCORE: "0.92"
|
||||
MEMORY_TEXT_DEDUP_MIN_SCORE: "0.9"
|
||||
MEMORY_CHAT_COMPLETIONS_PATH: /v1/chat/completions
|
||||
MEMORY_CHAT_MODELS_PATH: /v1/models
|
||||
MEMORY_CHAT_MODEL: qwen-plus
|
||||
MEMORY_COMPRESSION_ENABLED: "true"
|
||||
MEMORY_COMPRESSION_MIN_LENGTH: "80"
|
||||
MEMORY_MAINTENANCE_ENABLED: "true"
|
||||
MEMORY_MAINTENANCE_DRY_RUN: "false"
|
||||
MEMORY_MAINTENANCE_BATCH_SIZE: "200"
|
||||
MEMORY_MAINTENANCE_LLM_ENABLED: "true"
|
||||
MEMORY_MAINTENANCE_LLM_MAX_PAIRS: "20"
|
||||
MEMORY_DOCS_DISABLE: "true"
|
||||
|
||||
OSS_REGION: us-east-1
|
||||
OSS_DOMAIN: ""
|
||||
@@ -0,0 +1,38 @@
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: easyai-app-secret
|
||||
type: Opaque
|
||||
stringData:
|
||||
CONFIG_DB_MONGO_URI: mongodb://CHANGE_ME_MONGO_HOST:27017
|
||||
CONFIG_DB_MONGO_USERNAME: CHANGE_ME_MONGO_USERNAME
|
||||
CONFIG_DB_MONGO_PASSWORD: CHANGE_ME_MONGO_PASSWORD
|
||||
MONGO_INITDB_ROOT_USERNAME: CHANGE_ME_MONGO_USERNAME
|
||||
MONGO_INITDB_ROOT_PASSWORD: CHANGE_ME_MONGO_PASSWORD
|
||||
|
||||
CONFIG_COMFYUI_QUENE_REDIS_PASSWORD: CHANGE_ME_REDIS_PASSWORD
|
||||
GATEWAY_CLUSTER_REDIS_PASSWORD: CHANGE_ME_REDIS_PASSWORD
|
||||
ASG_REDIS_PASSWORD: CHANGE_ME_REDIS_PASSWORD
|
||||
|
||||
CONFIG_MQ_USER: CHANGE_ME_RABBITMQ_USERNAME
|
||||
CONFIG_MQ_PASSWORD: CHANGE_ME_RABBITMQ_PASSWORD
|
||||
|
||||
CONFIG_JWT_SECRET: CHANGE_ME_LONG_RANDOM_JWT_SECRET
|
||||
CONFIG_TOKEN_SIGN_SK: CHANGE_ME_LONG_RANDOM_TOKEN_SIGN_KEY
|
||||
WS_AUTH_BEARER_TOKENS: ""
|
||||
|
||||
ASG_DATABASE_URL: postgresql://CHANGE_ME_POSTGRES_USER:CHANGE_ME_POSTGRES_PASSWORD@CHANGE_ME_POSTGRES_HOST:5432/agent_governance?schema=public
|
||||
MEMORY_DATABASE_URL: postgresql://CHANGE_ME_POSTGRES_USER:CHANGE_ME_POSTGRES_PASSWORD@CHANGE_ME_POSTGRES_HOST:5432/easyai_memory?schema=public
|
||||
ASG_POSTGRES_USER: CHANGE_ME_POSTGRES_USER
|
||||
ASG_POSTGRES_PASSWORD: CHANGE_ME_POSTGRES_PASSWORD
|
||||
ASG_POSTGRES_DB: agent_governance
|
||||
ASG_ADMIN_USERNAME: admin
|
||||
ASG_ADMIN_PASSWORD: CHANGE_ME_EASYAI_ADMIN_PASSWORD
|
||||
MEMORY_AI_API_KEY: ""
|
||||
|
||||
SANDBOX_JUPYTER_TOKEN: CHANGE_ME_DISABLE_PUBLIC_JUPYTER_OR_SET_TOKEN
|
||||
|
||||
OSS_ENDPOINT: ""
|
||||
OSS_ACCESS_KEY_ID: ""
|
||||
OSS_ACCESS_KEY_SECRET: ""
|
||||
OSS_BUCKET: ""
|
||||
@@ -0,0 +1,137 @@
|
||||
apiVersion: autoscaling/v2
|
||||
kind: HorizontalPodAutoscaler
|
||||
metadata:
|
||||
name: easyai-web
|
||||
spec:
|
||||
scaleTargetRef:
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
name: easyai-web
|
||||
minReplicas: 2
|
||||
maxReplicas: 10
|
||||
metrics:
|
||||
- type: Resource
|
||||
resource:
|
||||
name: cpu
|
||||
target:
|
||||
type: Utilization
|
||||
averageUtilization: 70
|
||||
behavior:
|
||||
scaleDown:
|
||||
stabilizationWindowSeconds: 300
|
||||
---
|
||||
apiVersion: autoscaling/v2
|
||||
kind: HorizontalPodAutoscaler
|
||||
metadata:
|
||||
name: easyai-server
|
||||
spec:
|
||||
scaleTargetRef:
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
name: easyai-server
|
||||
minReplicas: 2
|
||||
maxReplicas: 20
|
||||
metrics:
|
||||
- type: Resource
|
||||
resource:
|
||||
name: cpu
|
||||
target:
|
||||
type: Utilization
|
||||
averageUtilization: 70
|
||||
- type: Resource
|
||||
resource:
|
||||
name: memory
|
||||
target:
|
||||
type: Utilization
|
||||
averageUtilization: 75
|
||||
behavior:
|
||||
scaleDown:
|
||||
stabilizationWindowSeconds: 300
|
||||
---
|
||||
apiVersion: autoscaling/v2
|
||||
kind: HorizontalPodAutoscaler
|
||||
metadata:
|
||||
name: ws-gateway
|
||||
spec:
|
||||
scaleTargetRef:
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
name: ws-gateway
|
||||
minReplicas: 2
|
||||
maxReplicas: 10
|
||||
metrics:
|
||||
- type: Resource
|
||||
resource:
|
||||
name: cpu
|
||||
target:
|
||||
type: Utilization
|
||||
averageUtilization: 70
|
||||
behavior:
|
||||
scaleDown:
|
||||
stabilizationWindowSeconds: 300
|
||||
---
|
||||
apiVersion: autoscaling/v2
|
||||
kind: HorizontalPodAutoscaler
|
||||
metadata:
|
||||
name: video-edit
|
||||
spec:
|
||||
scaleTargetRef:
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
name: video-edit
|
||||
minReplicas: 1
|
||||
maxReplicas: 5
|
||||
metrics:
|
||||
- type: Resource
|
||||
resource:
|
||||
name: cpu
|
||||
target:
|
||||
type: Utilization
|
||||
averageUtilization: 70
|
||||
behavior:
|
||||
scaleDown:
|
||||
stabilizationWindowSeconds: 600
|
||||
---
|
||||
apiVersion: autoscaling/v2
|
||||
kind: HorizontalPodAutoscaler
|
||||
metadata:
|
||||
name: easyai-asg
|
||||
spec:
|
||||
scaleTargetRef:
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
name: easyai-asg
|
||||
minReplicas: 2
|
||||
maxReplicas: 8
|
||||
metrics:
|
||||
- type: Resource
|
||||
resource:
|
||||
name: cpu
|
||||
target:
|
||||
type: Utilization
|
||||
averageUtilization: 70
|
||||
behavior:
|
||||
scaleDown:
|
||||
stabilizationWindowSeconds: 300
|
||||
---
|
||||
apiVersion: autoscaling/v2
|
||||
kind: HorizontalPodAutoscaler
|
||||
metadata:
|
||||
name: agent-memory
|
||||
spec:
|
||||
scaleTargetRef:
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
name: agent-memory
|
||||
minReplicas: 2
|
||||
maxReplicas: 8
|
||||
metrics:
|
||||
- type: Resource
|
||||
resource:
|
||||
name: cpu
|
||||
target:
|
||||
type: Utilization
|
||||
averageUtilization: 70
|
||||
behavior:
|
||||
scaleDown:
|
||||
stabilizationWindowSeconds: 300
|
||||
@@ -0,0 +1,126 @@
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: easyai-web
|
||||
annotations:
|
||||
nginx.ingress.kubernetes.io/proxy-read-timeout: "300"
|
||||
nginx.ingress.kubernetes.io/proxy-send-timeout: "300"
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
tls:
|
||||
- hosts:
|
||||
- easyai.example.com
|
||||
secretName: easyai-tls
|
||||
rules:
|
||||
- host: easyai.example.com
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: easyai-web
|
||||
port:
|
||||
number: 3010
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: easyai-api
|
||||
annotations:
|
||||
nginx.ingress.kubernetes.io/use-regex: "true"
|
||||
nginx.ingress.kubernetes.io/rewrite-target: /$2
|
||||
nginx.ingress.kubernetes.io/proxy-body-size: 100m
|
||||
nginx.ingress.kubernetes.io/proxy-buffering: "off"
|
||||
nginx.ingress.kubernetes.io/proxy-read-timeout: "1200"
|
||||
nginx.ingress.kubernetes.io/proxy-send-timeout: "1200"
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
tls:
|
||||
- hosts:
|
||||
- easyai.example.com
|
||||
secretName: easyai-tls
|
||||
rules:
|
||||
- host: easyai.example.com
|
||||
http:
|
||||
paths:
|
||||
- path: /api(/|$)(.*)
|
||||
pathType: ImplementationSpecific
|
||||
backend:
|
||||
service:
|
||||
name: easyai-server
|
||||
port:
|
||||
number: 3001
|
||||
- path: /asg-api(/|$)(.*)
|
||||
pathType: ImplementationSpecific
|
||||
backend:
|
||||
service:
|
||||
name: easyai-asg
|
||||
port:
|
||||
number: 3003
|
||||
- path: /ams-api(/|$)(.*)
|
||||
pathType: ImplementationSpecific
|
||||
backend:
|
||||
service:
|
||||
name: agent-memory
|
||||
port:
|
||||
number: 3004
|
||||
- path: /sandbox(/|$)(.*)
|
||||
pathType: ImplementationSpecific
|
||||
backend:
|
||||
service:
|
||||
name: sandbox
|
||||
port:
|
||||
number: 8000
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: easyai-ws
|
||||
annotations:
|
||||
nginx.ingress.kubernetes.io/proxy-buffering: "off"
|
||||
nginx.ingress.kubernetes.io/proxy-read-timeout: "300"
|
||||
nginx.ingress.kubernetes.io/proxy-send-timeout: "300"
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
tls:
|
||||
- hosts:
|
||||
- easyai.example.com
|
||||
secretName: easyai-tls
|
||||
rules:
|
||||
- host: easyai.example.com
|
||||
http:
|
||||
paths:
|
||||
- path: /socket.io
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: ws-gateway
|
||||
port:
|
||||
number: 3002
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: easyai-mcp
|
||||
annotations:
|
||||
nginx.ingress.kubernetes.io/proxy-buffering: "off"
|
||||
nginx.ingress.kubernetes.io/proxy-read-timeout: "300"
|
||||
nginx.ingress.kubernetes.io/proxy-send-timeout: "300"
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
tls:
|
||||
- hosts:
|
||||
- easyai.example.com
|
||||
secretName: easyai-tls
|
||||
rules:
|
||||
- host: easyai.example.com
|
||||
http:
|
||||
paths:
|
||||
- path: /mcp
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: easyai-server
|
||||
port:
|
||||
number: 3001
|
||||
@@ -0,0 +1,107 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
namespace: easyai
|
||||
|
||||
resources:
|
||||
- namespace.yaml
|
||||
- ../../base
|
||||
- app-config.yaml
|
||||
- app-secret.yaml
|
||||
- shared-pvc.yaml
|
||||
- ingress.yaml
|
||||
- hpa.yaml
|
||||
- pdb.yaml
|
||||
|
||||
images:
|
||||
- name: registry.cn-shanghai.aliyuncs.com/comfy-ai/one-ai
|
||||
newTag: latest
|
||||
- name: registry.cn-shanghai.aliyuncs.com/comfy-ai/comfy-server
|
||||
newTag: latest
|
||||
- name: registry.cn-shanghai.aliyuncs.com/easyaigc/wsgateway
|
||||
newTag: latest
|
||||
- name: registry.cn-shanghai.aliyuncs.com/easyaigc/videoedit
|
||||
newTag: latest
|
||||
- name: registry.cn-shanghai.aliyuncs.com/easyaigc/sandbox
|
||||
newTag: latest
|
||||
- name: registry.cn-shanghai.aliyuncs.com/easyaigc/agent-governance
|
||||
newTag: latest
|
||||
- name: registry.cn-shanghai.aliyuncs.com/easyaigc/agent-memory
|
||||
newTag: latest
|
||||
|
||||
patches:
|
||||
- target:
|
||||
kind: Deployment
|
||||
name: easyai-server
|
||||
patch: |-
|
||||
- op: replace
|
||||
path: /spec/template/spec/volumes/0
|
||||
value:
|
||||
name: shared-files
|
||||
persistentVolumeClaim:
|
||||
claimName: easyai-shared-files
|
||||
- target:
|
||||
kind: Deployment
|
||||
name: easyai-web
|
||||
patch: |-
|
||||
- op: add
|
||||
path: /spec/template/spec/topologySpreadConstraints
|
||||
value:
|
||||
- maxSkew: 1
|
||||
topologyKey: kubernetes.io/hostname
|
||||
whenUnsatisfiable: ScheduleAnyway
|
||||
labelSelector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: easyai-web
|
||||
- target:
|
||||
kind: Deployment
|
||||
name: easyai-server
|
||||
patch: |-
|
||||
- op: add
|
||||
path: /spec/template/spec/topologySpreadConstraints
|
||||
value:
|
||||
- maxSkew: 1
|
||||
topologyKey: kubernetes.io/hostname
|
||||
whenUnsatisfiable: ScheduleAnyway
|
||||
labelSelector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: easyai-server
|
||||
- target:
|
||||
kind: Deployment
|
||||
name: ws-gateway
|
||||
patch: |-
|
||||
- op: add
|
||||
path: /spec/template/spec/topologySpreadConstraints
|
||||
value:
|
||||
- maxSkew: 1
|
||||
topologyKey: kubernetes.io/hostname
|
||||
whenUnsatisfiable: ScheduleAnyway
|
||||
labelSelector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: ws-gateway
|
||||
- target:
|
||||
kind: Deployment
|
||||
name: easyai-asg
|
||||
patch: |-
|
||||
- op: add
|
||||
path: /spec/template/spec/topologySpreadConstraints
|
||||
value:
|
||||
- maxSkew: 1
|
||||
topologyKey: kubernetes.io/hostname
|
||||
whenUnsatisfiable: ScheduleAnyway
|
||||
labelSelector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: easyai-asg
|
||||
- target:
|
||||
kind: Deployment
|
||||
name: agent-memory
|
||||
patch: |-
|
||||
- op: add
|
||||
path: /spec/template/spec/topologySpreadConstraints
|
||||
value:
|
||||
- maxSkew: 1
|
||||
topologyKey: kubernetes.io/hostname
|
||||
whenUnsatisfiable: ScheduleAnyway
|
||||
labelSelector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: agent-memory
|
||||
@@ -0,0 +1,7 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: easyai
|
||||
labels:
|
||||
app.kubernetes.io/name: easyai
|
||||
app.kubernetes.io/part-of: easyai
|
||||
@@ -0,0 +1,49 @@
|
||||
apiVersion: policy/v1
|
||||
kind: PodDisruptionBudget
|
||||
metadata:
|
||||
name: easyai-web
|
||||
spec:
|
||||
minAvailable: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: easyai-web
|
||||
---
|
||||
apiVersion: policy/v1
|
||||
kind: PodDisruptionBudget
|
||||
metadata:
|
||||
name: easyai-server
|
||||
spec:
|
||||
minAvailable: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: easyai-server
|
||||
---
|
||||
apiVersion: policy/v1
|
||||
kind: PodDisruptionBudget
|
||||
metadata:
|
||||
name: ws-gateway
|
||||
spec:
|
||||
minAvailable: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: ws-gateway
|
||||
---
|
||||
apiVersion: policy/v1
|
||||
kind: PodDisruptionBudget
|
||||
metadata:
|
||||
name: easyai-asg
|
||||
spec:
|
||||
minAvailable: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: easyai-asg
|
||||
---
|
||||
apiVersion: policy/v1
|
||||
kind: PodDisruptionBudget
|
||||
metadata:
|
||||
name: agent-memory
|
||||
spec:
|
||||
minAvailable: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: agent-memory
|
||||
@@ -0,0 +1,13 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: easyai-shared-files
|
||||
labels:
|
||||
app.kubernetes.io/name: easyai-shared-files
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
storageClassName: CHANGE_ME_RWX_STORAGE_CLASS
|
||||
resources:
|
||||
requests:
|
||||
storage: 100Gi
|
||||
Reference in New Issue
Block a user