Prerequisites

Before installing the Bitpoke App from Google Cloud’s Marketplace, there are some prerequisites that need to be met.

Time required: 25 minutes

Create a new Google Cloud project

The Bitpoke App is only available on Google Cloud Platform’s Marketplace for now, so you need to have a Google account and an active plan to be able to use it. For testing purposes, you can also use their 12-month free trial with $300 credit, on their Google Cloud Platform Free Tier page you can see more information.

Create a new project

You also need to have a project created, you can create a project from here .

Fill in project data

Enable Kubernetes API

In the Google Cloud Console navigate in the menu to Kubernetes Engine -> Clusters. Make sure to enable the Kubernetes API.

Enable Kubernetes API

Start creating a cluster

Now you need to start the creation process of a Standard Cluster: Create Google Cloud Standard Cluster

You can create a standard cluster with the default settings and minimum 3 nodes, or any settings suited to your needs, but make sure you have the following:

Configure the cluster machine type

It should have at least 4 vCPU and 15 GB memory. Go to Node Pools -> Default Pool -> Nodes to choose your machine type:

Choose Machine Type

For example, you could choose machines like e2-standard-4, n2-standard-4. For a development cluster, you could mark the nodes as preemptible, meaning they would be much cheaper, but in exchange they would have a lower uptime and would be subject to allocation availability as defined by Google Cloud.

Preemptible nodes development

NOTE

You can use smaller machines for testing purposes, just to start the App. For example, you might take advantage of the free trial Google is offering . You could create smaller machines to test out exclusively the interface of the Bitpoke App and check out the features it offers, but keep in mind that your sites won’t work properly unless your machine type has at least 4 vCPUs and 15 GB memory.

Enable Workload Identity, Application Manager and Config Connector

Go to Cluster -> Security to enable Workload Identity:

Enable Workload Identity

Go to Cluster -> Features to enable Application Manager and Config Connector:

Enable Application Manager

Finalize cluster creation

Remember to click the Create Button on the lower side of the form. It takes a few minutes for the request to be completed. You’ll be notified through a message on the top of the console.

Create Cluster

Connect to the cluster with Google Cloud Shell

Connect with Cloud Shell

Once the Cloud Shell has started, press enter to run the generated command, then click Authorize it to run GCP API calls.

Authorize Cloud Shell

Find your Project ID

You’ll need this for the following steps. Make sure to use the proper project ID instead of our sample, which is mumbai-341413. You can find your project ID (we’ll use the placeholder YOUR_PROJECT_ID instead) in the tab header of your Cloud Shell.

Find Project ID from Cloud Shell

Create an identity for Config Connector

First, create an IAM service account, by running in Cloud Shell:

gcloud iam service-accounts create cnrm-system

Second, give elevated permissions to the new service account:

gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
    --member="serviceAccount:cnrm-system@YOUR_PROJECT_ID.iam.gserviceaccount.com" \
    --role="roles/owner"

Third, create an IAM policy binding between the IAM service account and the predefined Kubernetes service account that Config Connector runs:

gcloud iam service-accounts add-iam-policy-binding \
cnrm-system@YOUR_PROJECT_ID.iam.gserviceaccount.com \
    --member="serviceAccount:YOUR_PROJECT_ID.svc.id.goog[cnrm-system/cnrm-controller-manager]" \
    --role="roles/iam.workloadIdentityUser"

Set Config Connector

For this you need to edit with your favorite command-line text editor, vim or nano, the file configconnector.yaml:

# configconnector.yaml
apiVersion: core.cnrm.cloud.google.com/v1beta1
kind: ConfigConnector
metadata:
  # the name is restricted to ensure that there is only one
  # ConfigConnector resource installed in your cluster
  name: configconnector.core.cnrm.cloud.google.com
spec:
  mode: cluster
  googleServiceAccount: "cnrm-system@YOUR_PROJECT_ID.iam.gserviceaccount.com"

Save and run the following command:

kubectl apply -f configconnector.yaml

If you get the warning below, you can safely disregard it.

Warning: resource configconnectors/configconnector.core.cnrm.cloud.google.com is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.

For detailed usage and configuration of Config Connector, you can check the official Google Cloud documentation section here .

Check and fix for Google bug #201423655

Application Manager might not be properly set-up due to issue 201423655 . If that’s the case follow the instructions in the bug report or run the following code in Cloud Shell:

kubectl apply -f https://www.bitpoke.io/docs/app-for-wordpress/installation/kalm-gcp-fix-201423655.yaml

Here is how to check for the presence of the bug: visit Kubernetes Engine -> Workloads from the GCP menu. The bug is biting your cluster if you can spot the Does not have minimum availability and CrashLoopBackOff error notices, as highlighted in the image below. KALM Bug symptoms

Choose a domain for the App domain

You need a domain or subdomain that the Bitpoke App can use. For example, if you already have the domain bitpoke.cloud for your agency, you can choose to set up the Bitpoke App on a subdomain such as mumbai.bitpoke.cloud.

Reserve an IP on Google Cloud IP

NOTE

This step is optional if you want to quickly test the App, but keep in mind that for a production site it’s recommended to reserve an IP.

  1. Go to the Google Cloud Console

  2. Select VPC Network -> External IP addresses -> Reserve Static Address

    Select IPv4 and Regional, with the same region as your cluster.

  3. Hit Reserve

Reserve static IP

The next step is to point your DOMAIN DNS record to the freshly reserved IP, for example mumbai.bitpoke.cloud.

Now you can proceed with actually installing the Bitpoke App .