Qdrant-Cloud Provider
Generate Provider
The Qdrant-Cloud provider must be installed as a Local Package by following the instructions for Any Terraform Provider:
pulumi package add terraform-provider qdrant/qdrant-cloud
Overview
The Pulumi Qdrant Cloud provider is a plugin for Pulumi that allows for the full lifecycle management of Qdrant Cloud resources. Note that it’s not intended to manage the content of the database itself.
Below is a sample that creates a [vector database] cluster and a token for accessing the cluster.
The ID and version of the cluster as well the URL (endpoint of the database cluster) are displayed (as output).
The access token created is scoped for the created cluster and is displayed as well. Note that this token should be kept secret, with this token the database can be manipulated and viewed (CRUD operations).
To view the cluster itself, please visit (in a web-browser)
<cluster_url>:6333/dashboard
This will ask the token to grant you access.
The url and token can be used in client libraries as well
For more info, please visit https://qdrant.tech/
Versioning and Compatibility
Please always use the latest version of the provider.
Versions below 1.1.0
are deprecated and should not be used.
Example Usage
# Pulumi.yaml provider configuration file
name: configuration-example
runtime: nodejs
config:
qdrant-cloud:accountId:
value: ""
qdrant-cloud:apiKey:
value: ""
qdrant-cloud:apiUrl:
value: ""
import * as pulumi from "@pulumi/pulumi";
import * as qdrant_cloud from "@pulumi/qdrant-cloud";
const example = new qdrant_cloud.index/accountsCluster.AccountsCluster("example", {
name: "tf-example-cluster",
cloudProvider: "gcp",
cloudRegion: "us-east4",
configuration: {
numberOfNodes: 1,
nodeConfiguration: {
packageId: "7c939d96-d671-4051-aa16-3b8b7130fa42",
},
},
});
const example_key = new qdrant_cloud.index/accountsAuthKey.AccountsAuthKey("example-key", {clusterIds: [example.id]});
export const clusterId = example.id;
export const url = example.url;
export const token = example_key.token;
export const curlCommand = `curl \
-X GET '${example.url}' \
--header 'api-key: ${example_key.token}'`;
# Pulumi.yaml provider configuration file
name: configuration-example
runtime: python
config:
qdrant-cloud:accountId:
value: ""
qdrant-cloud:apiKey:
value: ""
qdrant-cloud:apiUrl:
value: ""
import pulumi
import pulumi_qdrant_cloud as qdrant_cloud
example = qdrant_cloud.index.accounts_cluster.AccountsCluster("example",
name=tf-example-cluster,
cloud_provider=gcp,
cloud_region=us-east4,
configuration={
numberOfNodes: 1,
nodeConfiguration: {
packageId: 7c939d96-d671-4051-aa16-3b8b7130fa42,
},
})
example_key = qdrant_cloud.index.accounts_auth_key.AccountsAuthKey("example-key", cluster_ids=[example.id])
pulumi.export("clusterId", example["id"])
pulumi.export("url", example["url"])
pulumi.export("token", example_key["token"])
pulumi.export("curlCommand", f"""curl \
-X GET '{example["url"]}' \
--header 'api-key: {example_key["token"]}'""")
# Pulumi.yaml provider configuration file
name: configuration-example
runtime: dotnet
config:
qdrant-cloud:accountId:
value: ""
qdrant-cloud:apiKey:
value: ""
qdrant-cloud:apiUrl:
value: ""
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using QdrantCloud = Pulumi.QdrantCloud;
return await Deployment.RunAsync(() =>
{
var example = new QdrantCloud.Index.AccountsCluster.AccountsCluster("example", new()
{
Name = "tf-example-cluster",
CloudProvider = "gcp",
CloudRegion = "us-east4",
Configuration =
{
{ "numberOfNodes", 1 },
{ "nodeConfiguration",
{
{ "packageId", "7c939d96-d671-4051-aa16-3b8b7130fa42" },
} },
},
});
var example_key = new QdrantCloud.Index.AccountsAuthKey.AccountsAuthKey("example-key", new()
{
ClusterIds = new[]
{
example.Id,
},
});
return new Dictionary<string, object?>
{
["clusterId"] = example.Id,
["url"] = example.Url,
["token"] = example_key.Token,
["curlCommand"] = @$"curl \
-X GET '{example.Url}' \
--header 'api-key: {example_key.Token}'",
};
});
# Pulumi.yaml provider configuration file
name: configuration-example
runtime: go
config:
qdrant-cloud:accountId:
value: ""
qdrant-cloud:apiKey:
value: ""
qdrant-cloud:apiUrl:
value: ""
package main
import (
"fmt"
qdrantcloud "github.com/pulumi/pulumi-qdrant-cloud/sdk/go/qdrant-cloud"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := index / accountscluster.NewAccountsCluster(ctx, "example", &index/accountscluster.AccountsClusterArgs{
Name: "tf-example-cluster",
CloudProvider: "gcp",
CloudRegion: "us-east4",
Configuration: map[string]interface{}{
"numberOfNodes": 1,
"nodeConfiguration": map[string]interface{}{
"packageId": "7c939d96-d671-4051-aa16-3b8b7130fa42",
},
},
})
if err != nil {
return err
}
_, err = index / accountsauthkey.NewAccountsAuthKey(ctx, "example-key", &index/accountsauthkey.AccountsAuthKeyArgs{
ClusterIds: []interface{}{
example.Id,
},
})
if err != nil {
return err
}
ctx.Export("clusterId", example.Id)
ctx.Export("url", example.Url)
ctx.Export("token", example_key.Token)
ctx.Export("curlCommand", pulumi.Sprintf("curl \\\n -X GET '%v' \\\n --header 'api-key: %v'", example.Url, example_key.Token))
return nil
})
}
# Pulumi.yaml provider configuration file
name: configuration-example
runtime: yaml
config:
qdrant-cloud:accountId:
value: ""
qdrant-cloud:apiKey:
value: ""
qdrant-cloud:apiUrl:
value: ""
resources:
example:
type: qdrant-cloud:AccountsCluster
properties:
name: tf-example-cluster
cloudProvider: gcp
cloudRegion: us-east4
configuration:
numberOfNodes: 1
nodeConfiguration:
packageId: 7c939d96-d671-4051-aa16-3b8b7130fa42
example-key:
type: qdrant-cloud:AccountsAuthKey
properties:
clusterIds:
- ${example.id}
outputs:
clusterId: ${example.id}
url: ${example.url}
token: ${["example-key"].token}
curlCommand: |-
curl \
-X GET '${example.url}' \
--header 'api-key: ${["example-key"].token}'
# Pulumi.yaml provider configuration file
name: configuration-example
runtime: java
config:
qdrant-cloud:accountId:
value: ""
qdrant-cloud:apiKey:
value: ""
qdrant-cloud:apiUrl:
value: ""
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.qdrantcloud.AccountsCluster;
import com.pulumi.qdrantcloud.AccountsClusterArgs;
import com.pulumi.qdrantcloud.AccountsAuthKey;
import com.pulumi.qdrantcloud.AccountsAuthKeyArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new AccountsCluster("example", AccountsClusterArgs.builder()
.name("tf-example-cluster")
.cloudProvider("gcp")
.cloudRegion("us-east4")
.configuration(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))
.build());
var example_key = new AccountsAuthKey("example-key", AccountsAuthKeyArgs.builder()
.clusterIds(example.id())
.build());
ctx.export("clusterId", example.id());
ctx.export("url", example.url());
ctx.export("token", example_key.token());
ctx.export("curlCommand", """
curl \
-X GET '%s' \
--header 'api-key: %s'", example.url(),example_key.token()));
}
}
Configuration Reference
Required
apiKey
(String) The API Key for Qdrant Cloud API operations.accountId
(String) Default Account Identifier for the Qdrant cloudapiUrl
(String) The URL of the Qdrant Cloud API.