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:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{ "mongo": { "external": true, "profile": { "servers": [ { "host": "cluster0-shard-00-00-wedrt.gcp.mongodb.net", "port": 27017 }, { "host": "cluster0-shard-00-01-wedrt.gcp.mongodb.net", "port": 27017 }, { "host": "cluster0-shard-00-02-wedrt.gcp.mongodb.net", "port": 27017 } ], "credentials": { "username": "demo", "password": "ed7edededd" }, "URLParam": { "readPreference": "secondaryPreferred", "replicaSet": "Cluster0-shard-0", "w": "majority", "ha": true, "ssl": true, "authSource": "admin", "bufferMaxEntries": 0, "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:
Code Block | ||||
---|---|---|---|---|
| ||||
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:
When you create a cluster make sure you enable legacy authorization
Auth Token
- Click o the connect button in the Kubernetes Cluster
- Click on Run in Cloud Shell on the menu that pops-up.
Run this Command in the browser Shell
Code Block title kubectl kubectl describe secret
Endpoint IP
- Click o the name of the kubernets cluster. In the image below, the name is the kubernetes-cluster.
- 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 Default Service Account (system:serviceaccount:default:default),
which is the default account bound to Pod with role cluster-admin.
Soajs need needs some super permissions to manage pods.
Code Block | ||||
---|---|---|---|---|
| ||||
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
|
- Click o the connect button in the Kubernetes Cluster
- Click on Run in Cloud Shell on the menu that pops-up.
Run this Command in the browser Shell
Code Block title kubectl kubectl apply -f PATHTOFILE/rbac.yaml