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.
You also need to have a project created, you can create a project from here .
Enable Kubernetes API
Google Cloud Console
navigate in the menu to
Kubernetes Engine ->
Clusters. Make sure to enable the Kubernetes API.
Start creating a cluster
Now you need to start the creation process of a 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.
Node Pools -> Default Pool -> Nodes to choose your 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.
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
Cluster -> Security to enable
Cluster -> Features to enable
Application Manager and
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.
Connect to the cluster with Google Cloud Shell
Once the Cloud Shell has started, press enter to run the generated command, then click Authorize it to run GCP API calls.
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.
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 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.
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
Reserve an IP on Google Cloud IP
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.
Go to the Google Cloud Console
External IP addresses->
Reserve Static Address
Select IPv4 and Regional, with the same region as your cluster.
The next step is to point your DOMAIN DNS record to the freshly reserved IP, for example
Now you can proceed with actually installing the Bitpoke App .