BYOC is available on the Enterprise plan. Contact the Paradime team at support@paradime.io for details.
Prerequisites
The bulk of the provisioning work is done remotely by Paradime automation. However, to get started, you’ll need:Required information
- GCP Project ID: A dedicated GCP project ID that will exclusively host Paradime-managed infrastructure. This should be a new, isolated project created specifically for Paradime BYOC.
- GCP Region: The GCP region where the BYOC resources should be deployed.
- Cloud DNS managed zone: A public Cloud DNS managed zone in the dedicated project for the DNS name your Paradime deployment will live under (for example
paradime.example.com), with delegation set up from your parent domain. Paradime creates DNS records for the application endpoints in this zone and uses it for TLS certificate validation. Pass the managed zone name to your Paradime contact.
Required permissions
You need the following permissions in your GCP organization or folder to complete the setup:- Project Creator (
roles/resourcemanager.projectCreator) to create a new dedicated project - Project IAM Admin (
roles/resourcemanager.projectIamAdmin) to grant permissions in the project - Billing Account User (
roles/billing.user) to link billing to the new project
Provisioning access
Step 1: Create a dedicated GCP project
We strongly recommend creating a dedicated GCP project that will exclusively host Paradime-managed infrastructure. This project isolation approach simplifies permission management and provides clear resource boundaries.- Navigate to the GCP Console
- Click Create Project
- Enter a project name (for example, “paradime-byoc”)
- Note the Project ID (not the project name), you’ll need this for subsequent steps
- Select your billing account
- Click Create
Make sure billing is enabled for the project. You can verify this by navigating to Billing in the GCP Console and confirming the project is linked to an active billing account.
Step 2: Enable required APIs
Before granting permissions, enable the necessary GCP APIs in your dedicated project. This ensures that subsequent API calls will work correctly. Required APIs:- Compute Engine API (
compute.googleapis.com) for VPC networks and compute resources - Kubernetes Engine API (
container.googleapis.com) for GKE clusters - Cloud Storage API (
storage.googleapis.com) for storage buckets used by Paradime services - IAM API (
iam.googleapis.com) for service account management - Cloud Resource Manager API (
cloudresourcemanager.googleapis.com) for project IAM operations - Service Networking API (
servicenetworking.googleapis.com) for private service connectivity - Cloud SQL Admin API (
sqladmin.googleapis.com) for the managed PostgreSQL instance - Memorystore for Redis API (
redis.googleapis.com) for the managed Redis instance - Filestore API (
file.googleapis.com) for the shared workspace file system - Cloud KMS API (
cloudkms.googleapis.com) for encryption keys used by Paradime services - Cloud DNS API (
dns.googleapis.com) for DNS records in your managed zone - Artifact Registry API (
artifactregistry.googleapis.com) for the in-project container registry that Paradime images are copied into
gcloud command:
Step 3: Grant IAM permissions
In order to manage resources in the dedicated GCP project, the Paradime service principal needs to be granted administrative permissions to a set of services.Reach out to the Paradime team at support@paradime.io to get the Paradime installer service account principal used below.
- Compute Admin (
roles/compute.admin) allows creation and management of VPC networks, subnets, routers, NAT gateways, firewall rules, IP addresses, and Private Service Connect endpoints - Kubernetes Engine Admin (
roles/container.admin) allows creation and management of GKE clusters and node pools - Storage Admin (
roles/storage.admin) allows creation and management of Cloud Storage buckets and their HMAC interoperability keys used by Paradime services - Cloud SQL Admin (
roles/cloudsql.admin) allows creation and management of the managed PostgreSQL instance - Redis Admin (
roles/redis.admin) allows creation and management of the Memorystore Redis instance - Filestore Editor (
roles/file.editor) allows creation and management of the shared workspace file system - Cloud KMS Admin (
roles/cloudkms.admin) allows creation and management of the key ring and keys used to encrypt Paradime secrets - DNS Administrator (
roles/dns.admin) allows creation of DNS records for the application endpoints in your managed zone - Artifact Registry Administrator (
roles/artifactregistry.admin) allows creation of the in-project container registry that Paradime images are copied into - Service Networking Admin (
roles/servicenetworking.networksAdmin) allows creation of the private connection between your VPC and the managed database services - Service Account Admin (
roles/iam.serviceAccountAdmin) allows creation and management of service accounts for cluster nodes and workload identity - Project IAM Admin (
roles/resourcemanager.projectIamAdmin) allows granting IAM permissions to created resources (for example, bucket access for service accounts)
No role allowing the creation of service account keys is required. Paradime authenticates workloads via GKE Workload Identity and uses Cloud Storage HMAC keys (covered by Storage Admin); no long-lived service account key files are created in your project.
gcloud command-line tool:
Step 4: Grant Service Account User permissions
Additionally, the Paradime service account needs permission to use the default Compute Engine service account for GKE node pools.Make sure you have the
PROJECT_ID and PARADIME_SA environment variables set from Step 3 before running these commands.Step 5: Verify setup
Before notifying Paradime, verify that all permissions and APIs are correctly configured:Deployment
The actual deployment is done by Paradime automation. All that’s left to do is notify your Paradime contact at support@paradime.io that access has been granted, and pass along your GCP Project ID, Region, and Cloud DNS managed zone name. After deployment, Paradime manages the following resources in your dedicated project:- A VPC network with subnets, Cloud Router, and Cloud NAT for outbound connectivity
- A GKE cluster with node pools for running Paradime applications
- A Cloud SQL PostgreSQL instance, a Memorystore Redis instance, and a Filestore file system
- Cloud Storage buckets and an Artifact Registry repository for Paradime data and images
- Cloud KMS keys for encrypting Paradime secrets
- DNS records for the application endpoints in your managed zone
- Service accounts and IAM bindings for secure resource access
- Firewall rules and network policies for security