Example: GCP

Example: GCP

In this example we will demo how to deploy SOAJS by leveraging a Kubernetes cluster running on GCP. You need the following:

  • Create a kubernetes cluster using the GCP console

  • Create a mongo cluster using mongoDB cloud.

    • Make sure you whitelist the IP(s) of the kubernetes cluster and your IP of the machine you will run the installer from

  • SOAJS Installer. click here to learn more

 

Installation steps

1- you need to create a configuration file as follow:

{ "mongo": { "external": true, "profile": { "credentials": { "username": "UUUU", "password": "XXXX" }, "servers": [ { "host": "XXXX.mongodb.net" } ], "protocol": "mongodb+srv://", "URLParam": { "retryWrites": true, "writeConcern": { "w": "majority" }, "useUnifiedTopology": true } } }, "kubernetes": { "ip": "35.232.82.201", "port": 443, "token": "dhwbd87y2ed87gcxwe87dx278gdx78egd87d872gcygwxdh287RLNCkhjnbI9u5P4jIiKyn6WWHPRIsJ2GTxT_f66UKv2yxYgcOAn0_6Kd4nXjvAHBJ2LDZAmRbCYSFmfv5QyX7Tok1BSeszI72nwduxg278dgx78egdcx87wgd78ewgd78gwd78gxew78dg78ewd8ew" }, "nginx": { "domain": "soajs.org", "apiPrefix": "dashboard-api", "sitePrefix": "dashboard", "deployType": "LoadBalancer", "sslType": "pvc", "httpPort": 80, "httpsPort": 443 }, "owner": { "email": "team@soajs.org", "username": "owner", "password": "password" } }

2- Run the following command:

remote installer install command
sudo soajs remote-installer install /..PATH_TO../myconfigfile.json

3- Access SOAJS console.

You need to change the DNS of your domain and then open your browser and go to http://sitePrefix.domain:httpPort/, in the above configuration example it will be: http://dashboard.soajs.org:30080/ 

 

Kubernetes on GCP


This is an example of how to pull the required information to use your Kubernetes Cluster on Google Cloud:


Auth Token


  1. Click o the connect button in the Kubernetes Cluster



  2. Click on Run in Cloud Shell  on the menu that pops-up.  



  3. Run this Command in the browser Shell

    kubectl

    kubectl describe secrets

Endpoint IP


  1. Click o the name of the kubernets cluster. In the image below, the name is the kubernetes-cluster.



  2. The Endpoint IP is value of the Endpoint int he table below:

Port


The port of the Google Cloud Kubernetes Cluster is 443.

RBAC Authorization


You should bind your Default Service Account (system:serviceaccount:default:default),which is the default account  on namespace default bound to Pod with a role cluster-admin. SOAJS needs super permissions to manage your cluster.

 

apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRoleBinding metadata: name: test-rbac # test-rbacis an example subjects: - kind: ServiceAccount # Reference to upper's `metadata.name` name: default # Reference to upper's `metadata.namespace` namespace: default roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.io
  1. Click o the connect button in the Kubernetes Cluster



  2. Click on Run in Cloud Shell  on the menu that pops-up.  

  3.  Run this Command in the browser Shell

    kubectl

    kubectl apply -f PATHTOFILE/rbac.yaml