-
Notifications
You must be signed in to change notification settings - Fork 0
Add hpcgpt helm chart #434
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
base: main
Are you sure you want to change the base?
Changes from 45 commits
b1ded1b
04ab4ed
1d9c739
c37f9fb
d30699e
e9a5665
a4dc8a9
019010e
52041ee
ca5b313
e4c0e71
422941d
5fbb41a
828f2c8
0094055
a91d4e5
cd42937
b4a9936
2d5b699
87ac2ce
0afdbb0
1ccf5f2
3661d1f
1e91dbf
481646b
1b4aa69
8201c4f
69dda63
b64f354
dbdb047
8c9bcef
483b257
aa0f9db
91fb315
0dc811c
aa4793f
4d1bb95
d92cece
7eb6cce
359dc3f
6949114
cb6a0d0
7aee140
bfabbea
4cc1c50
f97a932
f3dd776
b146978
966d187
988100b
29e81c3
627f154
16339b5
872ec85
c43e4aa
6d6d84a
87784d6
03a0d59
c6dbea3
1e61db9
0fa0ab3
630975d
967725e
4191068
265775e
8816e0d
e8ed6e8
dbdaeee
44264e9
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -46,6 +46,7 @@ spec: | |
| value: | ||
| - prometheus | ||
| - postgresql | ||
| - minio | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Move this into new PR
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I can do this, I have to push another minor change
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. |
||
| - key: "docker.io" | ||
| operator: AnyNotIn | ||
| value: "{{`{{ images.containers.*.registry }}`}}" | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,23 @@ | ||
| # Patterns to ignore when building packages. | ||
| # This supports shell glob matching, relative path matching, and | ||
| # negation (prefixed with !). Only one pattern per line. | ||
| .DS_Store | ||
| # Common VCS dirs | ||
| .git/ | ||
| .gitignore | ||
| .bzr/ | ||
| .bzrignore | ||
| .hg/ | ||
| .hgignore | ||
| .svn/ | ||
| # Common backup files | ||
| *.swp | ||
| *.bak | ||
| *.tmp | ||
| *.orig | ||
| *~ | ||
| # Various IDEs | ||
| .project | ||
| .idea/ | ||
| *.tmproj | ||
| .vscode/ |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,52 @@ | ||
| apiVersion: v2 | ||
| name: osc-chat | ||
| description: A Helm chart for the OSC Chat service | ||
|
|
||
| # A chart can be either an 'application' or a 'library' chart. | ||
| # | ||
| # Application charts are a collection of templates that can be packaged into versioned archives | ||
| # to be deployed. | ||
| # | ||
| # Library charts provide useful utilities or functions for the chart developer. They're included as | ||
| # a dependency of application charts to inject those utilities and functions into the rendering | ||
| # pipeline. Library charts do not define any templates and therefore cannot be deployed. | ||
| type: application | ||
|
|
||
| # This is the chart version. This version number should be incremented each time you make changes | ||
| # to the chart and its templates, including the app version. | ||
| # Versions are expected to follow Semantic Versioning (https://semver.org/) | ||
| version: 0.1.0 | ||
|
|
||
| # This is the version number of the application being deployed. This version number should be | ||
| # incremented each time you make changes to the application. Versions are not expected to | ||
| # follow Semantic Versioning. They should reflect the version the application is using. | ||
| # It is recommended to use it with quotes. | ||
| appVersion: "0.1.0" | ||
| maintainers: | ||
| - name: khsa1 | ||
| dependencies: | ||
| - name: database | ||
| version: 0.15.0 | ||
|
khsa1 marked this conversation as resolved.
Outdated
|
||
| repository: https://osc.github.io/osc-helm-charts | ||
| - name: minio | ||
| version: 17.0.21 | ||
| repository: "oci://registry-1.docker.io/bitnamicharts" | ||
| condition: minio.enable | ||
| - name: qdrant | ||
| version: 1.16.3 | ||
| repository: "https://qdrant.github.io/qdrant-helm" | ||
| condition: qdrant.enable | ||
| - name: rabbitmq | ||
| version: 16.0.14 | ||
| repository: "oci://registry-1.docker.io/bitnamicharts" | ||
| condition: rabbitmq.enable | ||
| - name: osc-common | ||
| version: 0.14.1 | ||
| repository: https://osc.github.io/osc-helm-charts | ||
| - name: vllm-stack | ||
| # version: 0.1.11 | ||
| # repository: "https://vllm-project.github.io/production-stack" | ||
| # Use fork until merged and released: | ||
| # https://github.com/vllm-project/production-stack/pull/954 | ||
| version: '0.1.11-osc-r1' | ||
| repository: oci://docker-registry.osc.edu/kubernetes/vllm | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,109 @@ | ||
| 1. Get the application URL by running these commands: | ||
| {{- if .Values.frontend.ingress.enabled }} | ||
| {{- range $host := .Values.frontend.ingress.hosts }} | ||
| {{- range .paths }} | ||
| http{{ if $.Values.frontend.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }} | ||
| {{- end }} | ||
| {{- end }} | ||
| {{- else if contains "NodePort" .Values.frontend.service.type }} | ||
| export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "osc-chat.fullname" . }}-frontend) | ||
| export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") | ||
| echo http://$NODE_IP:$NODE_PORT | ||
| {{- else if contains "LoadBalancer" .Values.frontend.service.type }} | ||
| NOTE: It may take a few minutes for the LoadBalancer IP to be available. | ||
| You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "osc-chat.fullname" . }}-frontend' | ||
| export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "osc-chat.fullname" . }}-frontend --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") | ||
| echo http://$SERVICE_IP:{{ .Values.frontend.service.port }} | ||
| {{- else if contains "ClusterIP" .Values.frontend.service.type }} | ||
| export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "{{ include "osc-chat.frontend.selectorLabels" . }}" -o jsonpath="{.items[0].metadata.name}") | ||
| export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") | ||
| echo "Visit http://127.0.0.1:8080 to use your application" | ||
| kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT | ||
| {{- end }} | ||
|
|
||
| 2. Application Information: | ||
| - Namespace: {{ .Release.Namespace }} | ||
| - Release: {{ .Release.Name }} | ||
|
|
||
| 3. Services Status: | ||
| {{- if .Values.frontend.enabled }} | ||
| ✓ Frontend: Enabled | ||
| {{- else }} | ||
| ✗ Frontend: Disabled (run locally for development) | ||
| {{- end }} | ||
| {{- if .Values.backend.enabled }} | ||
| ✓ Backend API: Enabled | ||
| {{- else }} | ||
| ✗ Backend API: Disabled (run locally for development) | ||
| {{- end }} | ||
| {{- if .Values.worker.enabled }} | ||
| ✓ Worker Service: Enabled | ||
| {{- end }} | ||
| {{- if .Values.qdrant.enabled }} | ||
| ✓ Qdrant Vector DB: Enabled | ||
| {{- end }} | ||
| {{- if .Values.minio.enable }} | ||
| ✓ MinIO Object Storage: Enabled | ||
| {{- end }} | ||
| {{- if .Values.keycloak.enabled }} | ||
| ✓ Keycloak Auth: Enabled | ||
| {{- end }} | ||
| {{- if (index .Values "vllm-stack").enabled }} | ||
| ✓ VLLM : Enabled | ||
| {{- end }} | ||
| {{- if .Values.ollama.enabled }} | ||
| ✓ Ollama Local LLM: Enabled (dev mode) | ||
| {{- end }} | ||
| {{- if .Values.database.postgresql.enable }} | ||
| ✓ PostgreSQL: Enabled | ||
| {{- end }} | ||
| {{- if .Values.database.redis.enable }} | ||
| ✓ Redis Cache: Enabled | ||
| {{- end }} | ||
| {{- if .Values.rabbitmq.enabled }} | ||
| ✓ RabbitMQ: Enabled | ||
| {{- end }} | ||
|
|
||
| 4. Useful Commands: | ||
| # Check pod status | ||
| kubectl get pods -l app.kubernetes.io/instance={{ .Release.Name }} | ||
|
|
||
| # View application logs | ||
| kubectl logs -f deployment/{{ include "osc-chat.fullname" . }}-backend | ||
|
|
||
| # Access MinIO Console (if enabled) | ||
| {{- if .Values.minio.enable }} | ||
| kubectl port-forward service/{{ include "osc-chat.fullname" . }}-minio 9001:9001 | ||
| # Then visit http://localhost:9001 | ||
| {{- end }} | ||
|
|
||
| # Access Keycloak Admin Console (if enabled) | ||
| {{- if .Values.keycloak.enabled }} | ||
| kubectl port-forward service/{{ include "osc-chat.fullname" . }}-keycloak 8080:8080 | ||
| # Then visit http://localhost:8080/admin | ||
| # Username: {{ .Values.keycloak.auth.adminUser }} | ||
| # Password: [check secret {{ include "osc-chat.fullname" . }}-secrets] | ||
| {{- end }} | ||
|
|
||
| 5. Configuration Notes: | ||
| 🏭 Production Mode Active: | ||
| - External LLM APIs should be configured | ||
| - Ensure proper ingress and TLS setup | ||
| - Monitor resource usage and scaling | ||
|
|
||
| {{- if not .Values.secrets.create }} | ||
| ⚠️ External secrets mode is enabled. Ensure all required secrets are created: | ||
| - Database passwords | ||
| - API keys (OpenAI, etc.) | ||
| - Service credentials | ||
| {{- end }} | ||
|
|
||
| {{- if .Values.frontend.ingress.enabled }} | ||
| 🌐 Ingress is enabled. Ensure your ingress controller is properly configured. | ||
| {{- end }} | ||
|
|
||
| {{- if .Values.networkPolicies.enabled }} | ||
| 🔒 Network policies are enabled for enhanced security. | ||
| {{- end }} | ||
|
|
||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Move this into new PR so you can test with
oscchat-testnamespace. I'll get that merged before this bigger PR.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can do this, I have to push another minor change
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
#444