Qdrant provider for Pragmatiks
Project description
Qdrant Provider
Manage Qdrant vector database deployments and collections through the Pragmatiks platform. Deploy self-hosted Qdrant instances to GKE, or manage collections on existing Qdrant Cloud or local instances.
Resources
| Resource | Type Slug | Description |
|---|---|---|
| Database | qdrant/database |
Self-hosted Qdrant deployment on GKE with persistent storage and LoadBalancer access |
| Collection | qdrant/collection |
Vector collection for similarity search on any Qdrant instance |
Prerequisites
- For Database resources: A GKE cluster managed by the
gcpprovider (gcp/gkeresource). The cluster must support LoadBalancer services for external access. - For Collection resources: A running Qdrant instance -- either a Database resource from this provider, a Qdrant Cloud cluster, or any self-hosted Qdrant server accessible via HTTP.
- API key (optional): Required for Qdrant Cloud. For self-hosted, can be generated automatically or provided explicitly.
Installation
pragma providers install qdrant
Database (qdrant/database)
Deploys a Qdrant vector database to a GKE cluster as a Kubernetes StatefulSet with persistent storage. Creates a headless Service for pod DNS, a StatefulSet with configurable replicas and storage, and a LoadBalancer Service for external HTTP and gRPC access.
Config:
| Field | Type | Required | Mutable | Default | Description |
|---|---|---|---|---|---|
cluster |
dependency | yes | no | -- | GKE cluster to deploy to (gcp/gke resource) |
replicas |
int | no | yes | 1 |
Number of Qdrant StatefulSet pods |
image |
string | no | yes | "qdrant/qdrant:latest" |
Qdrant Docker image |
api_key |
string | no | yes | -- | Explicit API key for authentication (mutually exclusive with generate_api_key) |
generate_api_key |
bool | no | yes | false |
Generate a secure 32-character hex API key |
storage |
object | no | yes | -- | Persistent volume configuration (see below) |
resources |
object | no | yes | -- | CPU and memory limits (see below) |
StorageConfig:
| Field | Type | Default | Description |
|---|---|---|---|
size |
string | "10Gi" |
Persistent volume size |
class |
string | "standard-rwo" |
Kubernetes storage class name |
ResourceConfig:
| Field | Type | Default | Description |
|---|---|---|---|
memory |
string | "2Gi" |
Memory limit for each Qdrant pod |
cpu |
string | "1" |
CPU limit for each Qdrant pod |
Outputs: url, grpc_url, api_key, ready
Example:
resources:
- name: my-qdrant
provider: qdrant
type: database
config:
cluster:
$ref: my-gke-cluster
replicas: 1
generate_api_key: true
storage:
size: 20Gi
class: premium-rwo
resources:
memory: 4Gi
cpu: "2"
Behavior:
- Create: Deploys headless Service, StatefulSet, and LoadBalancer Service sequentially. Waits for each to be ready and for the LoadBalancer to receive an external IP (up to 5 minutes).
- Update: Reapplies all child Kubernetes resources with updated configuration. Skips reapply if config is unchanged. Cluster changes require delete and recreate.
- Delete: Explicitly removes child Kubernetes resources (LoadBalancer Service, StatefulSet, headless Service).
- Health: Delegates to the underlying StatefulSet health check.
- Logs: Streams pod logs from the underlying StatefulSet.
Collection (qdrant/collection)
Manages a vector collection on any Qdrant instance for similarity search. Works with Qdrant Cloud (with API key), self-hosted instances, or Database resources from this provider.
Config:
| Field | Type | Required | Mutable | Default | Description |
|---|---|---|---|---|---|
url |
string | no | yes | "http://localhost:6333" |
Qdrant server URL |
api_key |
string | no | yes | -- | API key for Qdrant Cloud or secured instances |
name |
string | yes | no | -- | Collection name within Qdrant (immutable) |
vectors |
object | yes | yes | -- | Vector configuration (see below) |
on_disk |
bool | no | yes | false |
Store vectors on disk instead of in memory |
VectorConfig:
| Field | Type | Default | Description |
|---|---|---|---|
size |
int | -- | Vector dimension (must match your embedding model output) |
distance |
string | "Cosine" |
Distance metric: Cosine, Euclid, or Dot |
Outputs: name, indexed_vectors_count, points_count, status
Example (Qdrant Cloud):
resources:
- name: company-docs
provider: qdrant
type: collection
config:
url: https://xyz-abc.eu-central.aws.cloud.qdrant.io:6333
api_key:
$ref: qdrant-api-key
name: company-docs
vectors:
size: 1536
distance: Cosine
on_disk: true
Example (self-hosted via Database resource):
resources:
- name: embeddings
provider: qdrant
type: collection
config:
url: ${{ my-qdrant.outputs.url }}
api_key: ${{ my-qdrant.outputs.api_key }}
name: embeddings
vectors:
size: 768
distance: Cosine
Behavior:
- Create: Creates the collection if it does not already exist. Idempotent -- if the collection exists, returns its current info.
- Update: Recreates the collection if vector configuration changes (size, distance, on_disk). This is destructive and deletes all existing vectors. Collection name changes are not allowed.
- Delete: Deletes the collection and all its vectors. Idempotent -- succeeds if the collection does not exist.
Common Patterns
Knowledge Base with Embeddings
Deploy a Qdrant database and create collections for a RAG pipeline:
resources:
# 1. GKE cluster (from GCP provider)
- name: my-cluster
provider: gcp
type: gke
config:
project_id: my-project
location: europe-west4
name: my-cluster
credentials:
$ref: gcp-credentials
# 2. Self-hosted Qdrant database
- name: vector-db
provider: qdrant
type: database
config:
cluster:
$ref: my-cluster
generate_api_key: true
storage:
size: 50Gi
# 3. Collection for document embeddings
- name: documents
provider: qdrant
type: collection
config:
url: ${{ vector-db.outputs.url }}
api_key: ${{ vector-db.outputs.api_key }}
name: documents
vectors:
size: 1536
distance: Cosine
on_disk: true
# 4. Collection for FAQ embeddings (smaller model)
- name: faq
provider: qdrant
type: collection
config:
url: ${{ vector-db.outputs.url }}
api_key: ${{ vector-db.outputs.api_key }}
name: faq
vectors:
size: 384
distance: Cosine
Qdrant Cloud with Multiple Collections
Use Qdrant Cloud instead of self-hosting:
resources:
- name: product-search
provider: qdrant
type: collection
config:
url: https://my-cluster.eu-central.aws.cloud.qdrant.io:6333
api_key:
$ref: qdrant-cloud-key
name: products
vectors:
size: 768
distance: Dot
- name: image-search
provider: qdrant
type: collection
config:
url: https://my-cluster.eu-central.aws.cloud.qdrant.io:6333
api_key:
$ref: qdrant-cloud-key
name: images
vectors:
size: 512
distance: Cosine
Configuration
API Keys
Qdrant supports optional API key authentication. For the Database resource, you have three options:
- No authentication -- omit both
api_keyandgenerate_api_key(suitable for development) - Generated key -- set
generate_api_key: trueto auto-generate a secure 32-character hex key - Explicit key -- set
api_keyto a specific value (useful when rotating keys or matching existing config)
For Collection resources connecting to Qdrant Cloud, the api_key field is required and should reference a secret.
Vector Dimensions
Choose the vectors.size to match your embedding model:
| Embedding Model | Dimensions |
|---|---|
OpenAI text-embedding-3-large |
3072 |
OpenAI text-embedding-3-small |
1536 |
OpenAI text-embedding-ada-002 |
1536 |
Cohere embed-english-v3.0 |
1024 |
| Sentence Transformers (all-MiniLM-L6-v2) | 384 |
Google text-embedding-004 |
768 |
Distance Metrics
| Metric | Best For |
|---|---|
Cosine |
Text embeddings, normalized vectors (most common) |
Euclid |
Spatial data, when absolute distance matters |
Dot |
Pre-normalized embeddings, maximum inner product search |
Development
# Run tests
task qdrant:test
# Lint and type check
task qdrant:check
# Format
task qdrant:format
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pragmatiks_qdrant_provider-0.27.0.tar.gz.
File metadata
- Download URL: pragmatiks_qdrant_provider-0.27.0.tar.gz
- Upload date:
- Size: 9.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d74c2db0bd05dca164a981230a8e5b803df69b42032372f294f787a703b98f2e
|
|
| MD5 |
dd39fc56e52d7a0d2a11b7266b692c13
|
|
| BLAKE2b-256 |
dc4fe451048d33e44421188b82e8e59ca2f886c83a6af89df5e3339c354e6056
|
Provenance
The following attestation bundles were made for pragmatiks_qdrant_provider-0.27.0.tar.gz:
Publisher:
publish.yaml on pragmatiks/pragma-providers
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pragmatiks_qdrant_provider-0.27.0.tar.gz -
Subject digest:
d74c2db0bd05dca164a981230a8e5b803df69b42032372f294f787a703b98f2e - Sigstore transparency entry: 1110935957
- Sigstore integration time:
-
Permalink:
pragmatiks/pragma-providers@7185c759ed2ba31d425c02cb3e01e1935392f58e -
Branch / Tag:
refs/heads/main - Owner: https://github.com/pragmatiks
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@7185c759ed2ba31d425c02cb3e01e1935392f58e -
Trigger Event:
push
-
Statement type:
File details
Details for the file pragmatiks_qdrant_provider-0.27.0-py3-none-any.whl.
File metadata
- Download URL: pragmatiks_qdrant_provider-0.27.0-py3-none-any.whl
- Upload date:
- Size: 11.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8ed3149decc1756b57fef905093188c639db4a5892c836b661d6dc9823e39051
|
|
| MD5 |
f82c8d438a32ed9567312e640b9ffd25
|
|
| BLAKE2b-256 |
db0defc35c3a566154605fc0bb18fc20d08aa07eb837e91cf1c1f42a746b6b43
|
Provenance
The following attestation bundles were made for pragmatiks_qdrant_provider-0.27.0-py3-none-any.whl:
Publisher:
publish.yaml on pragmatiks/pragma-providers
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pragmatiks_qdrant_provider-0.27.0-py3-none-any.whl -
Subject digest:
8ed3149decc1756b57fef905093188c639db4a5892c836b661d6dc9823e39051 - Sigstore transparency entry: 1110935984
- Sigstore integration time:
-
Permalink:
pragmatiks/pragma-providers@7185c759ed2ba31d425c02cb3e01e1935392f58e -
Branch / Tag:
refs/heads/main - Owner: https://github.com/pragmatiks
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@7185c759ed2ba31d425c02cb3e01e1935392f58e -
Trigger Event:
push
-
Statement type: