|
apiVersion: apps/v1 |
|
kind: Deployment |
|
metadata: |
|
name: {{ include "litellm.fullname" . }} |
|
labels: |
|
{{- include "litellm.labels" . | nindent 4 }} |
|
spec: |
|
{{- if not .Values.autoscaling.enabled }} |
|
replicas: {{ .Values.replicaCount }} |
|
{{- end }} |
|
selector: |
|
matchLabels: |
|
{{- include "litellm.selectorLabels" . | nindent 6 }} |
|
template: |
|
metadata: |
|
annotations: |
|
checksum/config: {{ include (print $.Template.BasePath "/configmap-litellm.yaml") . | sha256sum }} |
|
{{- with .Values.podAnnotations }} |
|
{{- toYaml . | nindent 8 }} |
|
{{- end }} |
|
labels: |
|
{{- include "litellm.labels" . | nindent 8 }} |
|
{{- with .Values.podLabels }} |
|
{{- toYaml . | nindent 8 }} |
|
{{- end }} |
|
spec: |
|
{{- with .Values.imagePullSecrets }} |
|
imagePullSecrets: |
|
{{- toYaml . | nindent 8 }} |
|
{{- end }} |
|
serviceAccountName: {{ include "litellm.serviceAccountName" . }} |
|
securityContext: |
|
{{- toYaml .Values.podSecurityContext | nindent 8 }} |
|
containers: |
|
- name: {{ include "litellm.name" . }} |
|
securityContext: |
|
{{- toYaml .Values.securityContext | nindent 12 }} |
|
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default (printf "main-%s" .Chart.AppVersion) }}" |
|
imagePullPolicy: {{ .Values.image.pullPolicy }} |
|
env: |
|
- name: HOST |
|
value: "{{ .Values.listen | default "0.0.0.0" }}" |
|
- name: PORT |
|
value: {{ .Values.service.port | quote}} |
|
{{- if .Values.db.deployStandalone }} |
|
- name: DATABASE_USERNAME |
|
valueFrom: |
|
secretKeyRef: |
|
name: {{ include "litellm.fullname" . }}-dbcredentials |
|
key: username |
|
- name: DATABASE_PASSWORD |
|
valueFrom: |
|
secretKeyRef: |
|
name: {{ include "litellm.fullname" . }}-dbcredentials |
|
key: password |
|
- name: DATABASE_HOST |
|
value: {{ .Release.Name }}-postgresql |
|
- name: DATABASE_NAME |
|
value: litellm |
|
{{- else if .Values.db.useExisting }} |
|
- name: DATABASE_USERNAME |
|
valueFrom: |
|
secretKeyRef: |
|
name: {{ .Values.db.secret.name }} |
|
key: {{ .Values.db.secret.usernameKey }} |
|
- name: DATABASE_PASSWORD |
|
valueFrom: |
|
secretKeyRef: |
|
name: {{ .Values.db.secret.name }} |
|
key: {{ .Values.db.secret.passwordKey }} |
|
- name: DATABASE_HOST |
|
value: {{ .Values.db.endpoint }} |
|
- name: DATABASE_NAME |
|
value: {{ .Values.db.database }} |
|
- name: DATABASE_URL |
|
value: {{ .Values.db.url | quote }} |
|
{{- end }} |
|
- name: PROXY_MASTER_KEY |
|
valueFrom: |
|
secretKeyRef: |
|
name: {{ include "litellm.fullname" . }}-masterkey |
|
key: masterkey |
|
{{- if .Values.redis.enabled }} |
|
- name: REDIS_HOST |
|
value: {{ include "litellm.redis.serviceName" . }} |
|
- name: REDIS_PORT |
|
value: {{ include "litellm.redis.port" . | quote }} |
|
- name: REDIS_PASSWORD |
|
valueFrom: |
|
secretKeyRef: |
|
name: {{ include "redis.secretName" .Subcharts.redis }} |
|
key: {{include "redis.secretPasswordKey" .Subcharts.redis }} |
|
{{- end }} |
|
{{- if .Values.envVars }} |
|
{{- range $key, $val := .Values.envVars }} |
|
- name: {{ $key }} |
|
value: {{ $val | quote }} |
|
{{- end }} |
|
{{- end }} |
|
envFrom: |
|
{{- range .Values.environmentSecrets }} |
|
- secretRef: |
|
name: {{ . }} |
|
{{- end }} |
|
{{- range .Values.environmentConfigMaps }} |
|
- configMapRef: |
|
name: {{ . }} |
|
{{- end }} |
|
args: |
|
- --config |
|
- /etc/litellm/config.yaml |
|
ports: |
|
- name: http |
|
containerPort: {{ .Values.service.port }} |
|
protocol: TCP |
|
livenessProbe: |
|
httpGet: |
|
path: /health/liveliness |
|
port: http |
|
readinessProbe: |
|
httpGet: |
|
path: /health/readiness |
|
port: http |
|
|
|
startupProbe: |
|
httpGet: |
|
path: /health/readiness |
|
port: http |
|
failureThreshold: 30 |
|
periodSeconds: 10 |
|
resources: |
|
{{- toYaml .Values.resources | nindent 12 }} |
|
volumeMounts: |
|
- name: litellm-config |
|
mountPath: /etc/litellm/ |
|
{{ if .Values.securityContext.readOnlyRootFilesystem }} |
|
- name: tmp |
|
mountPath: /tmp |
|
- name: cache |
|
mountPath: /.cache |
|
- name: npm |
|
mountPath: /.npm |
|
{{- end }} |
|
{{- with .Values.volumeMounts }} |
|
{{- toYaml . | nindent 12 }} |
|
{{- end }} |
|
{{- with .Values.extraContainers }} |
|
{{- toYaml . | nindent 8 }} |
|
{{- end }} |
|
volumes: |
|
{{ if .Values.securityContext.readOnlyRootFilesystem }} |
|
- name: tmp |
|
emptyDir: |
|
sizeLimit: 500Mi |
|
- name: cache |
|
emptyDir: |
|
sizeLimit: 500Mi |
|
- name: npm |
|
emptyDir: |
|
sizeLimit: 500Mi |
|
{{- end }} |
|
- name: litellm-config |
|
configMap: |
|
name: {{ include "litellm.fullname" . }}-config |
|
items: |
|
- key: "config.yaml" |
|
path: "config.yaml" |
|
{{- with .Values.volumes }} |
|
{{- toYaml . | nindent 8 }} |
|
{{- end }} |
|
{{- with .Values.nodeSelector }} |
|
nodeSelector: |
|
{{- toYaml . | nindent 8 }} |
|
{{- end }} |
|
{{- with .Values.affinity }} |
|
affinity: |
|
{{- toYaml . | nindent 8 }} |
|
{{- end }} |
|
{{- with .Values.tolerations }} |
|
tolerations: |
|
{{- toYaml . | nindent 8 }} |
|
{{- end }} |
|
|