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