Pulumi Logo

Pulumi is an open source infrastructure as code tool for creating, deploying, and managing cloud infrastructure.

A Qdrant SDK in any of Pulumi’s supported languages can be generated based on the Qdrant Terraform Provider.

Pre-requisites

  1. A Pulumi Installation.
  2. An API key to access the Qdrant cloud API.

Setup

mkdir qdrant-pulumi && cd qdrant-pulumi
pulumi new "<LANGUAGE>" -y
  • Generate a Pulumi SDK for Qdrant by running the following in your Pulumi project directory.
pulumi package add terraform-provider registry.terraform.io/qdrant/qdrant-cloud
  • Set the Qdrant cloud API as a config value.
pulumi config set qdrant-cloud:apiKey "<QDRANT_CLOUD_API_KEY>" --secret

Example Usage

The following example creates a new Qdrant cluster in Google Cloud Platform (GCP) and returns the URL of the cluster.

pythontypescript
import pulumi
import pulumi_qdrant_cloud as qdrant_cloud

all_packages = qdrant_cloud.index.getBookingPackages.get_booking_packages(cloud_provider="gcp",
    cloud_region="us-east4")
desired_package = [pkg for pkg in all_packages["packages"] if pkg["resourceConfiguration"][0]["cpu"] == "16000m" and pkg["resourceConfiguration"][0]["ram"] == "64Gi"]
example = qdrant_cloud.AccountsCluster("example",
    name="tf-example-cluster",
    cloud_provider=all_packages["cloudProvider"],
    cloud_region=all_packages["cloudRegion"],
    configuration={
        "number_of_nodes": 1,
        "database_configuration": {
            "service": {
                "jwt_rbac": True,
            },
        },
        "node_configuration": {
            "package_id": desired_package[0]["id"],
        },
    })
example_accounts_database_api_key_v2 = qdrant_cloud.AccountsDatabaseApiKeyV2("example",
    cluster_id=example.id,
    name="example-key")
pulumi.export("url", example.url)
pulumi.export("key", example_accounts_database_api_key_v2.key)
import * as pulumi from "@pulumi/pulumi";
import * as qdrant_cloud from "@pulumi/qdrant-cloud";

const allPackages = qdrant_cloud.index.getBookingPackages.getBookingPackages({
    cloudProvider: "gcp",
    cloudRegion: "us-east4",
});
const desiredPackage = allPackages.packages.filter(pkg => pkg.resourceConfiguration[0].cpu == "16000m" && pkg.resourceConfiguration[0].ram == "64Gi");
const example = new qdrant_cloud.AccountsCluster("example", {
    name: "tf-example-cluster",
    cloudProvider: allPackages.cloudProvider,
    cloudRegion: allPackages.cloudRegion,
    configuration: {
        numberOfNodes: 1,
        databaseConfiguration: {
            service: {
                jwtRbac: true,
            },
        },
        nodeConfiguration: {
            packageId: desiredPackage[0].id,
        },
    },
});
const exampleAccountsDatabaseApiKeyV2 = new qdrant_cloud.AccountsDatabaseApiKeyV2("example", {
    clusterId: example.id,
    name: "example-key",
});
export const url = example.url;
export const key = exampleAccountsDatabaseApiKeyV2.key;

Further Reading

The provider documentation contains more details on the available resources and data sources, including additional examples:

Was this page useful?

Thank you for your feedback! 🙏

We are sorry to hear that. 😔 You can edit this page on GitHub, or create a GitHub issue.