Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RPD-289] Update the Chroma Terraform within the LLM stack to use Helm #194

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions src/matcha_ml/infrastructure/llm/chroma/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
<!-- BEGIN_TF_DOCS -->
## Requirements

No requirements.
Expand All @@ -6,7 +7,7 @@ No requirements.

| Name | Version |
|------|---------|
| <a name="provider_kubernetes"></a> [kubernetes](#provider\_kubernetes) | n/a |
| <a name="provider_helm"></a> [helm](#provider\_helm) | n/a |

## Modules

Expand All @@ -16,9 +17,7 @@ No modules.

| Name | Type |
|------|------|
| [kubernetes_deployment.chroma-server](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/deployment) | resource |
| [kubernetes_persistent_volume_claim.pvc](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/persistent_volume_claim) | resource |
| [kubernetes_service.chroma-service](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/service) | resource |
| [helm_release.chroma](https://registry.terraform.io/providers/hashicorp/helm/latest/docs/resources/release) | resource |

## Inputs

Expand All @@ -27,3 +26,4 @@ No inputs.
## Outputs

No outputs.
<!-- END_TF_DOCS -->
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
apiVersion: v2
name: chroma
description: Chroma Server Helm Chart
version: 0.1.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Release.Name }}-server
spec:
selector:
matchLabels:
app: {{ .Release.Name }}-server
template:
metadata:
labels:
app: {{ .Release.Name }}-server
spec:
containers:
- name: {{ .Release.Name }}-server
image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
ports:
- containerPort: 8000
resources:
{{ toYaml .Values.resources | indent 12 }}
volumeMounts:
- mountPath: /index_data
name: {{ .Release.Name }}-server-index
restartPolicy: Always
volumes:
- name: {{ .Release.Name }}-server-index
persistentVolumeClaim:
claimName: {{ .Release.Name }}-server-index
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# templates/pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: {{ .Release.Name }}-server-index
spec:
accessModes:
- ReadWriteOnce
storageClassName: {{ .Values.pvc.storageClassName }}
resources:
requests:
storage: {{ .Values.pvc.requestsStorage }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# templates/service.yaml
apiVersion: v1
kind: Service
metadata:
name: {{ .Release.Name }}-service
spec:
selector:
app: {{ .Release.Name }}-server
ports:
- name: "8123"
port: 8123
targetPort: 8123
- name: "9000"
port: 9000
targetPort: 9000
- name: "8000"
port: 8000
targetPort: 8000
18 changes: 18 additions & 0 deletions src/matcha_ml/infrastructure/llm/chroma/chroma_helm/values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# values.yaml
image:
repository: ghcr.io/chroma-core/chroma
tag: 0.4.3

resources:
requests:
memory: "256Mi"
cpu: "256m"
limits:
memory: "2Gi"
cpu: "2"

pvc:
accessModes:
- ReadWriteOnce
storageClassName: default
requestsStorage: "100Mi"
102 changes: 5 additions & 97 deletions src/matcha_ml/infrastructure/llm/chroma/main.tf
Original file line number Diff line number Diff line change
@@ -1,99 +1,7 @@
resource "kubernetes_deployment" "chroma-server" {
metadata {
name = "chroma-server"
}
resource "helm_release" "chroma" {
name = "chroma"
chart = "${path.module}/chroma_helm"
namespace = "default"

spec {
selector {
match_labels = {
app = "chroma-server"
}
}

template {
metadata {
labels = {
app = "chroma-server"
}
}

spec {
container {
name = "chroma-server"
image = "ghcr.io/chroma-core/chroma:0.4.3"
port {
container_port = 8000
}
resources {
requests = {
memory = "256Mi"
cpu = "256m"
}
limits = {
memory = "2Gi"
cpu = "2"
}
}
volume_mount {
mount_path = "/index_data"
name = "chroma-server-index"
}
}

restart_policy = "Always"

volume {
name = "chroma-server-index"
persistent_volume_claim {
claim_name = "chroma-server-index"
}
}
}
}
}
}

resource "kubernetes_persistent_volume_claim" "pvc" {
metadata {
name = "chroma-server-index"
}

spec {
access_modes = ["ReadWriteOnce"]
storage_class_name = "default"
resources {
requests = {
storage = "100Mi"
}
}
}
}

resource "kubernetes_service" "chroma-service" {
metadata {
name = "chroma-service"
}

spec {
selector = {"app": "chroma-server"}

port {
name = "8123"
port = 8123
target_port = 8123
}

port {
name = "9000"
port = 9000
target_port = 9000
}

port {
name = "8000"
port = 8000
target_port = 8000
}

}
values = [file("${path.module}/chroma_helm/values.yaml")]
}
2 changes: 2 additions & 0 deletions src/matcha_ml/templates/azure_template.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@
"zen_server/zenml_helm/templates",
"data_version_control_storage",
"chroma",
"chroma/chroma_helm",
"chroma/chroma_helm/templates",
]


Expand Down