{{- if .Values.postgres.enabled }} apiVersion: v1 kind: Service metadata: name: {{ include "medical-chatbot.fullname" . }}-postgres labels: {{- include "medical-chatbot.labels" . | nindent 4 }} app.kubernetes.io/component: postgres spec: clusterIP: None selector: app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/component: postgres ports: - { name: postgres, port: 5432, targetPort: postgres } --- apiVersion: apps/v1 kind: StatefulSet metadata: name: {{ include "medical-chatbot.fullname" . }}-postgres labels: {{- include "medical-chatbot.labels" . | nindent 4 }} spec: serviceName: {{ include "medical-chatbot.fullname" . }}-postgres replicas: 1 selector: matchLabels: app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/component: postgres template: metadata: labels: app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/component: postgres spec: containers: - name: postgres image: {{ .Values.postgres.image }} ports: - { name: postgres, containerPort: 5432 } env: - { name: POSTGRES_USER, value: duoc_thu } - { name: POSTGRES_DB, value: duoc_thu } - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: name: {{ include "medical-chatbot.secretName" . }} key: postgres-password readinessProbe: exec: { command: ["pg_isready", "-U", "duoc_thu", "-d", "duoc_thu"] } initialDelaySeconds: 5 periodSeconds: 10 livenessProbe: exec: { command: ["pg_isready", "-U", "duoc_thu", "-d", "duoc_thu"] } initialDelaySeconds: 20 periodSeconds: 20 resources: {{- toYaml .Values.postgres.resources | nindent 12 }} volumeMounts: - { name: data, mountPath: /var/lib/postgresql/data } volumeClaimTemplates: - metadata: { name: data } spec: accessModes: [ReadWriteOnce] resources: requests: { storage: {{ .Values.postgres.storage }} } {{- end }} {{- if and .Values.postgres.enabled .Values.qdrant.enabled }} --- {{- end }} {{- if .Values.qdrant.enabled }} apiVersion: v1 kind: Service metadata: name: {{ include "medical-chatbot.fullname" . }}-qdrant labels: {{- include "medical-chatbot.labels" . | nindent 4 }} app.kubernetes.io/component: qdrant spec: clusterIP: None selector: app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/component: qdrant ports: - { name: http, port: 6333, targetPort: http } - { name: grpc, port: 6334, targetPort: grpc } --- apiVersion: apps/v1 kind: StatefulSet metadata: name: {{ include "medical-chatbot.fullname" . }}-qdrant labels: {{- include "medical-chatbot.labels" . | nindent 4 }} spec: serviceName: {{ include "medical-chatbot.fullname" . }}-qdrant replicas: 1 selector: matchLabels: app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/component: qdrant template: metadata: labels: app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/component: qdrant spec: containers: - name: qdrant image: {{ .Values.qdrant.image }} ports: - { name: http, containerPort: 6333 } - { name: grpc, containerPort: 6334 } readinessProbe: httpGet: { path: /readyz, port: http } initialDelaySeconds: 5 periodSeconds: 10 livenessProbe: httpGet: { path: /healthz, port: http } initialDelaySeconds: 20 periodSeconds: 20 resources: {{- toYaml .Values.qdrant.resources | nindent 12 }} volumeMounts: - { name: data, mountPath: /qdrant/storage } volumeClaimTemplates: - metadata: { name: data } spec: accessModes: [ReadWriteOnce] resources: requests: { storage: {{ .Values.qdrant.storage }} } {{- end }}