diff --git a/deploy/charts/arcadia/Chart.yaml b/deploy/charts/arcadia/Chart.yaml index a74ee8d19..b6998f719 100644 --- a/deploy/charts/arcadia/Chart.yaml +++ b/deploy/charts/arcadia/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: arcadia description: A Helm chart(Also a KubeBB Component) for KubeAGI Arcadia type: application -version: 0.3.29 +version: 0.3.30 appVersion: "0.2.1" keywords: @@ -36,3 +36,6 @@ dependencies: - name: chromadb version: 0.1.19 condition: chromadb.enabled + - name: llama-factory + version: 0.1.0 + condition: llama-factory.enabled diff --git a/deploy/charts/arcadia/charts/llama-factory/Chart.yaml b/deploy/charts/arcadia/charts/llama-factory/Chart.yaml new file mode 100644 index 000000000..ad7ca8025 --- /dev/null +++ b/deploy/charts/arcadia/charts/llama-factory/Chart.yaml @@ -0,0 +1,15 @@ +apiVersion: v2 +name: llama-factory +version: 0.1.1 +appVersion: 0.1.0 +description: llama-factory +type: application + +keywords: + - llama-factory + - model tune +sources: + - https://github.com/huangqg/LLaMA-Factory +maintainers: + - name: huangqg + url: https://github.com/huangqg diff --git a/deploy/charts/arcadia/charts/llama-factory/README.md b/deploy/charts/arcadia/charts/llama-factory/README.md new file mode 100644 index 000000000..9725b7620 --- /dev/null +++ b/deploy/charts/arcadia/charts/llama-factory/README.md @@ -0,0 +1 @@ +# llama-factory \ No newline at end of file diff --git a/deploy/charts/arcadia/charts/llama-factory/templates/deployment.yaml b/deploy/charts/arcadia/charts/llama-factory/templates/deployment.yaml new file mode 100644 index 000000000..bff568e43 --- /dev/null +++ b/deploy/charts/arcadia/charts/llama-factory/templates/deployment.yaml @@ -0,0 +1,43 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: llama-factory + namespace: {{ .Release.Namespace }} + labels: + app: llama-factory +spec: + selector: + matchLabels: + app: llama-factory + replicas: 1 + template: + metadata: + labels: + app: llama-factory + spec: + containers: + - image: {{ .Values.image }} + imagePullPolicy: {{ .Values.imagePullPolicy }} + name: llama-factory + ports: + - containerPort: 7860 + protocol: TCP + resources: {{ toYaml .Values.resources | nindent 10 }} + volumeMounts: + - name: model-volume + mountPath: /root/.cache/huggingface + - name: data-volume + mountPath: /app/data + - name: output-volume + mountPath: /app/output + volumes: + - name: model-volume + hostPath: + path: {{ .Values.volume.model }} + - name: data-volume + hostPath: + path: {{ .Values.volume.data }} + - name: output-volume + hostPath: + path: {{ .Values.volume.output }} + terminationGracePeriodSeconds: 30 \ No newline at end of file diff --git a/deploy/charts/arcadia/charts/llama-factory/templates/ingress.yaml b/deploy/charts/arcadia/charts/llama-factory/templates/ingress.yaml new file mode 100644 index 000000000..5df44783b --- /dev/null +++ b/deploy/charts/arcadia/charts/llama-factory/templates/ingress.yaml @@ -0,0 +1,43 @@ +{{- if .Values.ingress.enable }} +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + annotations: + description: llama-factory-ingress + displayName: llama-factory-ingress + httpSend: / + ingress-lb: {{ .Values.ingress.ingressClassName }} + kubernetes.io/ingress.class: {{ .Values.ingress.ingressClassName }} + nginx.ingress.kubernetes.io/configuration-snippet: | + proxy_cache static-cache; + proxy_cache_valid 404 10m; + proxy_cache_use_stale error timeout updating http_404 http_500 http_502 http_503 http_504; + proxy_cache_bypass $http_x_purge; + add_header X-Cache-Status $upstream_cache_status; # check X-Cache-Status to see if it's HIT + rewrite ^/(llama-factory-apis)(/|$)(.*)$ /$3 break; + nginx.ingress.kubernetes.io/enable-access-log: "false" + nginx.ingress.kubernetes.io/enable-rewrite-log: "false" + nginx.ingress.kubernetes.io/load-balance: round_robin + nginx.ingress.kubernetes.io/proxy-body-size: "" + nginx.ingress.kubernetes.io/proxy-buffering: "on" + nginx.ingress.kubernetes.io/proxy-connect-timeout: "60" + nginx.ingress.kubernetes.io/server-alias: "" + nginx.ingress.kubernetes.io/ssl-redirect: "true" + nginx.ingress.kubernetes.io/upstream-vhost: $host + labels: + ingress-lb: {{ .Values.ingress.ingressClassName }} + name: llama-factory + namespace: {{ .Release.Namespace }} +spec: + rules: + - host: portal.{{ .Values.ingress.ingressDomain }} + http: + paths: + - backend: + service: + name: llama-factory + port: + number: 7860 + path: / + pathType: ImplementationSpecific +{{- end }} \ No newline at end of file diff --git a/deploy/charts/arcadia/charts/llama-factory/templates/service.yaml b/deploy/charts/arcadia/charts/llama-factory/templates/service.yaml new file mode 100644 index 000000000..57a772076 --- /dev/null +++ b/deploy/charts/arcadia/charts/llama-factory/templates/service.yaml @@ -0,0 +1,17 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app: llama-factory + name: llama-factory + namespace: {{ .Release.Namespace }} +spec: + ports: + - name: http + port: 7860 + protocol: TCP + targetPort: 7860 + selector: + app: llama-factory + sessionAffinity: None + type: ClusterIP diff --git a/deploy/charts/arcadia/charts/llama-factory/values.yaml b/deploy/charts/arcadia/charts/llama-factory/values.yaml new file mode 100644 index 000000000..b5ba59e45 --- /dev/null +++ b/deploy/charts/arcadia/charts/llama-factory/values.yaml @@ -0,0 +1,23 @@ +image: kubeagi/llama-factory:latest +imagePullPolicy: IfNotPresent +resources: + limits: + cpu: "4" + memory: 12Gi + nvidia.com/gpu: "1" + requests: + cpu: "1" + memory: 1Gi + nvidia.com/gpu: "1" + +volume: + model: /path/to/model/or/cache + data: /path/to/data + output: /path/to/output + +# ingress configurations for component +ingress: + # set enable to `true` to enable ingress + enable: true + ingressClassName: portal-ingress + ingressDomain: your.domain.nip.io diff --git a/deploy/charts/arcadia/values.yaml b/deploy/charts/arcadia/values.yaml index 66c7b8f04..2379a3a90 100644 --- a/deploy/charts/arcadia/values.yaml +++ b/deploy/charts/arcadia/values.yaml @@ -188,3 +188,6 @@ ray: # headAddress: raycluster-kuberay-head-svc.kuberay-system.svc:6379 # pythonVersion: 3.9.18 # dashboardHost: raycluster-kuberay-head-svc.kuberay-system.svc:8265 + +llama-factory: + enabled: false \ No newline at end of file