129 lines
4.3 KiB
YAML
129 lines
4.3 KiB
YAML
{{- $root := . }}
|
|
{{- $namespace := .Release.Namespace }}
|
|
apiVersion: v1
|
|
kind: Pod
|
|
metadata:
|
|
name: "{{ include "qdrant.fullname" . }}-test-db-interaction"
|
|
labels:
|
|
{{- include "qdrant.labels" . | nindent 4 }}
|
|
{{- include "qdrant.additionalLabels" . | nindent 4 }}
|
|
annotations:
|
|
"helm.sh/hook": test
|
|
{{- with .Values.additionalAnnotations }}
|
|
{{- toYaml . | nindent 4 }}
|
|
{{- end }}
|
|
spec:
|
|
containers:
|
|
- name: test-script
|
|
image: {{ .Values.chartTests.dbInteraction.image | quote }}
|
|
args: ['bash', '/app/entrypoint.sh']
|
|
volumeMounts:
|
|
- mountPath: /app
|
|
name: test-script
|
|
{{- if .Values.additionalVolumeMounts }}
|
|
{{- toYaml .Values.additionalVolumeMounts | default "" | nindent 8 }}
|
|
{{- end}}
|
|
resources:
|
|
{{- toYaml .Values.chartTests.dbInteraction.resources | nindent 8 }}
|
|
{{- with .Values.imagePullSecrets }}
|
|
imagePullSecrets:
|
|
{{- toYaml . | nindent 8 }}
|
|
{{- end }}
|
|
{{- with .Values.nodeSelector }}
|
|
nodeSelector:
|
|
{{- toYaml . | nindent 4 }}
|
|
{{- end }}
|
|
{{- with .Values.tolerations }}
|
|
tolerations:
|
|
{{- toYaml . | nindent 4 }}
|
|
{{- end }}
|
|
volumes:
|
|
- name: test-script
|
|
configMap:
|
|
name: "{{ include "qdrant.fullname" . }}-test-db-interaction"
|
|
{{- if .Values.additionalVolumes }}
|
|
{{- toYaml .Values.additionalVolumes | default "" | nindent 4 }}
|
|
{{- end}}
|
|
restartPolicy: Never
|
|
serviceAccountName: {{ include "qdrant.fullname" . }}
|
|
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: "{{ include "qdrant.fullname" . }}-test-db-interaction"
|
|
labels:
|
|
{{- include "qdrant.labels" . | nindent 4 }}
|
|
{{- include "qdrant.additionalLabels" . | nindent 4 }}
|
|
annotations:
|
|
"helm.sh/hook": test
|
|
{{- with .Values.additionalAnnotations }}
|
|
{{- toYaml . | nindent 4 }}
|
|
{{- end }}
|
|
data:
|
|
entrypoint.sh: |
|
|
#!/bin/bash
|
|
set -xe
|
|
# Kind's networking is very flaky
|
|
echo 'connect-timeout = 5' > $HOME/.curlrc
|
|
echo 'retry = 60' >> $HOME/.curlrc
|
|
echo 'retry-delay = 5' >> $HOME/.curlrc
|
|
echo 'retry-all-errors' >> $HOME/.curlrc
|
|
# Don't clutter the logs with progress bars
|
|
echo 'no-progress-meter' >> $HOME/.curlrc
|
|
# Ensure errors cause the script to fail, but show the response body
|
|
echo 'fail-with-body' >> $HOME/.curlrc
|
|
|
|
if [ -d /mnt/secrets/certs ]; then
|
|
cp /mnt/secrets/certs/ca.pem /usr/share/pki/trust/anchors/private-ca.pem
|
|
update-ca-certificates
|
|
fi
|
|
|
|
QDRANT_COLLECTION="test_collection"
|
|
{{- range .Values.service.ports }}
|
|
{{- if eq .name "http" }}
|
|
echo "Connecting to {{ include "qdrant.fullname" $root }}.{{ $namespace }}:{{ .port }}"
|
|
QDRANT_URL="http://{{ include "qdrant.fullname" $root }}.{{ $namespace }}:{{ .port }}"
|
|
{{- if and $root.Values.config.service $root.Values.config.service.enable_tls }}
|
|
echo "Using https"
|
|
QDRANT_URL="https://{{ include "qdrant.fullname" $root }}.{{ $namespace }}:{{ .port }}"
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
API_KEY_HEADER=""
|
|
{{- if .Values.apiKey }}
|
|
API_KEY_HEADER="Api-key: {{ .Values.apiKey }}"
|
|
{{- else if .Values.readOnlyApiKey }}
|
|
API_KEY_HEADER="Api-key: {{ .Values.readOnlyApiKey }}"
|
|
{{- end }}
|
|
|
|
# Delete collection if exists
|
|
curl -X DELETE -H "${API_KEY_HEADER}" $QDRANT_URL/collections/${QDRANT_COLLECTION}
|
|
|
|
# Create collection
|
|
curl -X PUT \
|
|
-H 'Content-Type: application-json' \
|
|
-d '{"vectors":{"size":4,"distance":"Dot"}}' \
|
|
-H "${API_KEY_HEADER}" \
|
|
$QDRANT_URL/collections/${QDRANT_COLLECTION}
|
|
|
|
# Insert points
|
|
curl -X PUT \
|
|
-H 'Content-Type: application-json' \
|
|
-d '{"points":[
|
|
{"id":1,"vector":[0.05, 0.61, 0.76, 0.74],"payload":{"city":"Berlin"}},
|
|
{"id":2,"vector":[0.19, 0.81, 0.75, 0.11],"payload":{"city":"London"}},
|
|
{"id":3,"vector":[0.36, 0.55, 0.47, 0.94],"payload":{"city":"Moscow"}},
|
|
{"id":4,"vector":[0.18, 0.01, 0.85, 0.80],"payload":{"city":"New York"}},
|
|
{"id":5,"vector":[0.24, 0.18, 0.22, 0.44],"payload":{"city":"Beijing"}},
|
|
{"id":6,"vector":[0.35, 0.08, 0.11, 0.44],"payload":{"city":"Mumbai"}}
|
|
]}' \
|
|
-H "${API_KEY_HEADER}" \
|
|
$QDRANT_URL/collections/${QDRANT_COLLECTION}/points
|
|
|
|
# Run query
|
|
curl -X POST \
|
|
-H 'Content-Type: application-json' \
|
|
-d '{"vector":[0.2, 0.1, 0.9, 0.7],"limit":3}' \
|
|
-H "${API_KEY_HEADER}" \
|
|
$QDRANT_URL/collections/${QDRANT_COLLECTION}/points/search
|