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": {
"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:
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:
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 secrets
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 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.
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