From ca6ec9b37069f2d3f76b67116f3bf3e586b7e60a Mon Sep 17 00:00:00 2001 From: Dan Garfield Date: Fri, 18 Aug 2023 10:48:24 -0600 Subject: [PATCH] Add Kubernetes support (#18) --- deploy/kubernetes/kustomization.yaml | 20 +++++++++++++ .../kubernetes/llama-gpt-api-deployment.yaml | 29 +++++++++++++++++++ deploy/kubernetes/llama-gpt-api-service.yaml | 15 ++++++++++ .../kubernetes/llama-gpt-ui-deployment.yaml | 26 +++++++++++++++++ deploy/kubernetes/llama-gpt-ui-service.yaml | 16 ++++++++++ 5 files changed, 106 insertions(+) create mode 100644 deploy/kubernetes/kustomization.yaml create mode 100644 deploy/kubernetes/llama-gpt-api-deployment.yaml create mode 100644 deploy/kubernetes/llama-gpt-api-service.yaml create mode 100644 deploy/kubernetes/llama-gpt-ui-deployment.yaml create mode 100644 deploy/kubernetes/llama-gpt-ui-service.yaml diff --git a/deploy/kubernetes/kustomization.yaml b/deploy/kubernetes/kustomization.yaml new file mode 100644 index 0000000..72daa6f --- /dev/null +++ b/deploy/kubernetes/kustomization.yaml @@ -0,0 +1,20 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: +- llama-gpt-api-deployment.yaml +- llama-gpt-api-service.yaml +- llama-gpt-ui-deployment.yaml +- llama-gpt-ui-service.yaml + +# patches: +# - + +configMapGenerator: +- name: llama-gpt + literals: + - DEFAULT_MODEL="/models/llama-2-7b-chat.bin" + - OPENAI_API_HOST="http://llama-gpt-api:8000" + - OPENAI_API_KEY="sk-XXXXXXXXXXXXXXXXXXXX" + - WAIT_HOSTS="llama-gpt-api:8000" + - WAIT_TIMEOUT="600" \ No newline at end of file diff --git a/deploy/kubernetes/llama-gpt-api-deployment.yaml b/deploy/kubernetes/llama-gpt-api-deployment.yaml new file mode 100644 index 0000000..47a0736 --- /dev/null +++ b/deploy/kubernetes/llama-gpt-api-deployment.yaml @@ -0,0 +1,29 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + service: llama-gpt-api + name: llama-gpt-api +spec: + replicas: 1 + selector: + matchLabels: + service: llama-gpt-api + template: + metadata: + labels: + service: llama-gpt-api + spec: + containers: + - name: llama-gpt-api + image: ghcr.io/getumbrel/llama-gpt-api:1.0.1 + env: + - name: MODEL + valueFrom: + configMapKeyRef: + name: llama-gpt + key: DEFAULT_MODEL + resources: + requests: + memory: 5Gi + restartPolicy: Always \ No newline at end of file diff --git a/deploy/kubernetes/llama-gpt-api-service.yaml b/deploy/kubernetes/llama-gpt-api-service.yaml new file mode 100644 index 0000000..ac8a3bd --- /dev/null +++ b/deploy/kubernetes/llama-gpt-api-service.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + service: llama-gpt-api + name: llama-gpt-api +spec: + ports: + - name: api + port: 8000 + targetPort: 8000 + selector: + service: llama-gpt-api +status: + loadBalancer: {} diff --git a/deploy/kubernetes/llama-gpt-ui-deployment.yaml b/deploy/kubernetes/llama-gpt-ui-deployment.yaml new file mode 100644 index 0000000..c4bd001 --- /dev/null +++ b/deploy/kubernetes/llama-gpt-ui-deployment.yaml @@ -0,0 +1,26 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + service: llama-gpt-ui + name: llama-gpt-ui +spec: + replicas: 1 + selector: + matchLabels: + service: llama-gpt-ui + template: + metadata: + labels: + service: llama-gpt-ui + spec: + containers: + - name: llama-gpt-ui + image: ghcr.io/getumbrel/llama-gpt-ui:latest + envFrom: + - configMapRef: + name: llama-gpt + ports: + - containerPort: 3000 + resources: {} + restartPolicy: Always \ No newline at end of file diff --git a/deploy/kubernetes/llama-gpt-ui-service.yaml b/deploy/kubernetes/llama-gpt-ui-service.yaml new file mode 100644 index 0000000..199eb78 --- /dev/null +++ b/deploy/kubernetes/llama-gpt-ui-service.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + service: llama-gpt-ui + name: llama-gpt-ui +spec: + ports: + - name: ui + port: 3000 + targetPort: 3000 + selector: + service: llama-gpt-ui + type: ClusterIP +status: + loadBalancer: {}