Deployment in Google Cloud Platform

Along with the Google Kubernetes Engine, the GoodData.CN requires the following GCP Services:

Memorystore for Redis Cloud SQL for PostgreSQL These services should be accessible from the GKE cluster, make sure to read specific documentation.

Memorystore for Redis

See official documentation.

Example provisioning of the service can be done by the gcloud tool.

gcloud redis instances create gooddata-cn-gcp-redis-cache \
  --size=5 --region=europe-west3 --redis-version=redis_5_0

You can retrieve required connection properties from service description:

gcloud redis instances describe gooddata-cn-gcp-redis-cache

Look for the values of host and port:

authorizedNetwork: projects/gooddata-gcp/global/networks/default
connectMode: DIRECT_PEERING
createTime: '2020-09-08T13:20:06.020777662Z'
currentLocationId: europe-west3-a
host: 10.124.16.3
locationId: europe-west3-a
memorySizeGb: 5
name: projects/gooddata-gcp/locations/europe-west3/instances/gooddata-cn-gcp-redis-cache
persistenceIamIdentity: serviceAccount:542667690843-compute@developer.gserviceaccount.com
port: 6379
redisVersion: REDIS_5_0
reservedIpRange: 10.124.16.0/29
state: READY
tier: BASIC

Cloud SQL (PostgreSQL)

See official documentation.

Example provisioning of the service can be done by the gcloud tool.

# only accessible by Private IP from GKE
gcloud beta sql instances create gooddata-cn-gcp-pg \
  --tier=db-custom-2-7680 --region=europe-west3 --database-version=POSTGRES_12 \
  --network default --no-assign-ip

or

# assigned Public IP (can be access from outside GCP)
gcloud sql instances create gooddata-cn-gcp-pg-public \
  --tier=db-custom-2-7680 --region=europe-west3 --database-version=POSTGRES_12

Make use that you set some initial password for default user (or create new one).

gcloud sql users set-password postgres --instance=gooddata-cn-gcp-pg \
  --password=<PG_PASSWORD>

You can retrieve required connection properties from service description

gcloud sql instances describe gooddata-cn-gcp-pg

Look for the value of ipAddress, port is 5432 by default

backendType: SECOND_GEN
connectionName: gooddata-gcp:europe-west3:gooddata-cn-gcp-pg
databaseVersion: POSTGRES_12
etag: 71e54488770c07acb60fa6a73c5b76d2e3c07e81855cf6ae6c329252c1f650d4
gceZone: europe-west3-b
instanceType: CLOUD_SQL_INSTANCE
ipAddresses:
- ipAddress: 10.73.0.3
  type: PRIVATE
kind: sql#instance
name: gooddata-cn-gcp-pg
project: gooddata-gcp
region: europe-west3