Qdrant
Deploy Qdrant on Kubernetes for semantic search, RAG, recommendations, and vector similarity workloads.
Overview
The HelmForge Qdrant chart uses the official docker.io/qdrant/qdrant:v1.18.2 image and deploys a StatefulSet.
It exposes HTTP on 6333, gRPC on 6334, and the cluster peer port on 6335.
The default topology is a single persistent pod. Distributed mode is available, but it is guarded because Qdrant clustering requires
per-pod storage, peer communication, and operator knowledge of collection replication and shard placement.
When distributed mode is enabled, the chart derives stable StatefulSet peer DNS names and starts the first pod with --uri; later pods
join that peer with --bootstrap.
Installation
helm repo add helmforge https://repo.helmforge.dev
helm repo update
helm install qdrant helmforge/qdrant
OCI install:
helm install qdrant oci://ghcr.io/helmforgedev/helm/qdrant
Production Example
auth:
existingSecret: qdrant-auth
apiKeyKey: api-key
readOnlyApiKeyKey: read-only-api-key
persistence:
enabled: true
size: 50Gi
resources:
requests:
cpu: 500m
memory: 1Gi
limits:
cpu: '2'
memory: 4Gi
networkPolicy:
enabled: true
Runtime Values
Core runtime:
image.repository,image.tag,image.pullPolicy: official pinned Qdrant image and pull behavior.imagePullSecrets: optional registry pull secrets.replicaCount: StatefulSet replica count. Keep1unlesscluster.enabled=trueis planned.clusterDomain: Kubernetes DNS domain used for StatefulSet peer discovery, defaultcluster.local.app.port,app.grpcPort: HTTP and gRPC container ports.app.command,app.args: optional command and argument overrides. In cluster mode the chart ownscommand; useapp.args.app.env,app.extraEnv: extra Qdrant environment variables, includingQDRANT__nested config overrides.config.localYaml: optional/qdrant/config/local.yamlcontent.
Storage and snapshots:
persistence.enabled,persistence.size,persistence.storageClass: generated per-pod storage.persistence.accessModes: generated PVC access modes, defaultReadWriteOnce.persistence.existingClaim: existing PVC for single-replica deployments. It is rejected withcluster.enabled=true.persistence.mountPath: Qdrant storage path, default/qdrant/storage.snapshots.path: snapshot path, default/qdrant/storage/snapshots.
Security and exposure:
auth.apiKey,auth.readOnlyApiKey: inline lab keys.auth.existingSecret,auth.apiKeyKey,auth.readOnlyApiKeyKey: production Secret wiring.serviceAccount.create,serviceAccount.name,serviceAccount.annotations,serviceAccount.automountServiceAccountToken.service.type,service.port,service.grpcPort,service.annotations,service.ipFamilyPolicy,service.ipFamilies.ingress.enabled,ingress.ingressClassName,ingress.annotations,ingress.hosts,ingress.tls.gateway.enabled,gateway.parentRefs,gateway.hostnames,gateway.path,gateway.pathType.networkPolicy.enabled,networkPolicy.ingressFrom: client ingress peers. Cluster p2p traffic gets a separate self-peer rule.
Operations:
metrics.serviceMonitor.*: optional Prometheus Operator ServiceMonitor for/metrics.pdb.enabled,pdb.minAvailable: disruption budget for multi-pod deployments.probes.startup,probes.liveness,probes.readiness: enable flags and timing values.resources,podSecurityContext,securityContext: resource and pod/container hardening knobs.nodeSelector,tolerations,affinity,topologySpreadConstraints,priorityClassName.terminationGracePeriodSeconds,podLabels,podAnnotations.extraVolumes,extraVolumeMounts,extraManifests.
Distributed Mode
cluster:
enabled: true
p2pPort: 6335
replicaCount: 3
persistence:
enabled: true
Distributed mode requires at least two replicas, persistence, and chart-managed PVCs. The chart blocks unsafe combinations at render time.
The chart also owns the startup command in distributed mode so it can pass Qdrant the required peer bootstrap arguments; use app.args
for additional Qdrant flags.
Plan snapshots, restore procedures, and collection replication before enabling this in production.
Monitoring
Qdrant exposes Prometheus metrics at /metrics.
metrics:
serviceMonitor:
enabled: true
interval: 30s
Enable metrics.serviceMonitor only when the Prometheus Operator CRDs exist in the cluster.
Backup
Back up the Qdrant PVC and snapshot directory. For distributed clusters, capture snapshots for all relevant shards and validate restore procedures before relying on the backup policy.