Skip to main content
Deploy the Pinecone BYOC data plane into your own AWS, GCP, or Azure account using the setup wizard and Pulumi, then verify it’s running.

Prerequisites

Before deploying BYOC, ensure you have the following tools installed on your local machine: You also need:
  • The CLI for your cloud provider:
  • A cloud account with admin-level permissions:
    • AWS: AdministratorAccess. PowerUserAccess isn’t sufficient because BYOC creates IAM roles and policies.
    • GCP: roles/owner. roles/editor isn’t sufficient because BYOC creates IAM service accounts and bindings.
    • Azure: Owner on the subscription. Contributor isn’t sufficient because BYOC creates managed identities and role assignments.
  • Sufficient cloud quota for the resources (the setup wizard validates this)
  • A Pinecone API key from the Pinecone console
  • A Pinecone Enterprise plan (required for BYOC access)
If you install any new tools, open a new terminal session before proceeding so that your shell picks up the updated PATH and environment.

Deploy your environment

To deploy BYOC, follow these steps:
1

Run the setup wizard

Run the bootstrap script from the BYOC deployment repository (github.com/pinecone-io/pulumi-pinecone-byoc) to start the interactive setup wizard:
You can also pre-select your cloud provider:
The script selects your cloud provider, checks that required tools are installed, verifies your cloud credentials, then launches an interactive wizard that collects your configuration choices, validates your quotas, and generates a Pulumi project. No cloud resources are created during this step.
The wizard prompts you for the following:
After completing the wizard, a Pulumi project is generated in your project directory.
The wizard creates a Pulumi.<stack>.yaml file with configurable options. The options vary by cloud provider:
To change configuration after initial setup, edit Pulumi.<stack>.yaml and run pulumi up.
For advanced users who want to integrate BYOC into existing Pulumi infrastructure, the pulumi-pinecone-byoc package is available on PyPI. Install with cloud-specific dependencies:
Import the cluster class for your cloud provider:
See the repository README for full usage examples.
2

Deploy the infrastructure

Deploy the generated Pulumi project to create your cloud resources:
Pulumi shows a preview of all resources to be created. Confirm to proceed. Provisioning takes approximately 25-30 minutes.When complete, the output displays:
  • Your BYOC environment name (used when creating indexes).
  • The kubectl command to configure cluster access.
The deployment creates the following resources in your cloud account:The initial deployment provisions 3 Kubernetes nodes. After setup, the cluster autoscales based on the services Pinecone deploys and your workload.
3

Verify the deployment

Configure kubectl to connect to your cluster using the command from the deployment output:
This command configures your local kubectl tool to communicate with your Kubernetes cluster. You’ll use cluster access for administrative tasks like viewing operations and troubleshooting. Creating indexes and reading/writing vectors still use the standard Pinecone API.Verify all components are running:
All pods should show Running status. If any pods are in Pending or CrashLoopBackOff, check the Troubleshooting section.You can also verify the cluster operations CRD is installed:
It’s normal to see “No resources found” on a fresh deployment. Operations appear here as Pinecone performs upgrades and other management tasks.

Troubleshooting

Common issues and how to resolve them:
The setup wizard validates cloud quotas before deployment. If checks fail:
If pulumi up fails partway through:
Ensure your cloud credentials match the account where the cluster is deployed:
If you destroyed the cluster before deleting indexes, indexes may be stuck in a “terminating” state. Contact Pinecone support for assistance.
For additional help, see the GitHub Issues for the deployment repository.

Next steps