Run on GCP
Prerequisites
- GKE cluster with at least 2GB/2CPU allocatable
- gcloud CLI installed and configured to your project, region/zone, and user (soft prerequisite, as most CLI functionality can also be executed on the Google Cloud console if preferred)
Overview
The purpose of this doc is to provide a set of instructions to deploy Speakeasy in your own infrastructure. This doc currently assumes Speakeasy is being deployed on GKE. Support for other cloud providers coming soon!
Deploying on GCP
Create Speakeasy service account
If using CloudSQL or BigQuery, The Speakeasy API Platform uses a service account to interact with these resources in your Google Cloud project.
To create the service account, issue the following gcloud CLI command:
gcloud iam service-accounts create "speakeasy-service-account" \
--display-name="Service Account for Speakeasy"
Attach roles to Speakeasy service account
To use CloudSQL, attach the Cloud SQL Client
role via the following command:
gcloud projects add-iam-policy-binding <YOUR_PROJECT_ID> \
--member="serviceAccount:speakeasy-service-account@<YOUR_PROJECT_ID>.iam.gserviceaccount.com" \
--role="roles/cloudsql.client"
To use BigQuery, attach the BigQuery Admin
role via the following command:
gcloud projects add-iam-policy-binding <YOUR_PROJECT_ID> \
--member="serviceAccount:speakeasy-service-account@<YOUR_PROJECT_ID>.iam.gserviceaccount.com" \
--role="roles/bigquery.admin"
Create a K8s Secret from the Service Account Key
You'll need to ensure the Speakeasy API Platform can use your newly created service account via a k8s secret.
Create and download the service account key file:
gcloud iam service-accounts keys create key.json --iam-account=speakeasy-service-account@<YOUR_PROJECT_ID>.iam.gserviceaccount.com
Deploy a k8s secret containing this key file in your desired namespace:
kubectl create secret generic registry-service-account-secret --from-file=service_account.json=key.json
Deploy Speakeasy API Platform
Follow instructions on using speakeasy-k8s to configure the chart values and deploy Speakeasy.