Shipa : A Complete developer-friendly Kubernetes

Push code, not containers

Today I will be sharing some insights into working with Shipa.

So Shipa is a platform mainly built for the developers so that they can focus more on writing code and less on the infrastructure. The main idea IMO is to make developers' life easy and making their apps run on the best in class kubernetes clusters.

One can associate the Kubernetes clusters with ships using the following guide:

Once the cluster is added it shows up in the dashboard for the shipa instance and you can have an overview of all the cluster/apps associated.

Dashboard :

Dashboard view if to view all the clusters, applications, metrics, and events for all the clusters associated with shipa at one place.

Few things to get started:

Installing the shipa CLI —

wget https://storage.googleapis.com/shipa-cli/shipa_linux_amd64chmod +x shipa_linux_amd64 && mv -v shipa_linux_amd64 /usr/local/bin/shipa

Adding Shipa Target

[root@shipa ~]# shipa target-add first http://35.185.233.31:8080 -s
New target first -> http://35.185.233.31:8080 added to target list and defined as the current target
[root@shipa ~]# shipa target-list
* first (http://35.185.233.31:8080)
[root@shipa ~]#

Shipa Login and app lists

shipa login
Email: xxxxxxxxxxxxx
Password:
Successfully logged in!
[root@shipa ~]# shipa app-list
Error: you're not authenticated or your session has expired.
Calling the "login" command...
Email: xxxxxxxxxxxx
Password:
+---------------------------+-----------+--------------------------------------+
| Application | Units | Address |
+---------------------------+-----------+--------------------------------------+
| aks-app1 | 1 started | http://aks-app1.35.199.180.138.nip.
|
| | | io |
+---------------------------+-----------+--------------------------------------+
| dashboard | 1 started | http://dashboard.35.199.180.138.nip
|
| | | .io |
+---------------------------+-----------+--------------------------------------+
| gke-app1 | 1 started | http://gke-app1.35.199.180.138.nip.
|
| | | io |
+---------------------------+-----------+--------------------------------------+
| redis-service-service-app | 1 started | http://redis-service-service-app.35
|
| | | .199.180.138.nip.io |
+---------------------------+-----------+--------------------------------------+
Successfully logged in!

Shipa teams :

shipa team-list
+--------+------------------+------+
| Team | Permissions | Tags |
+--------+------------------+------+
| admin | app | |
| | team | |
| | service | |
| | service-instance | |
| | cluster | |
| | volume | |
| | volume-plan | |
| | webhook | |
+--------+------------------+------+
| system | app | |
| | team | |
| | service | |
| | service-instance | |
| | cluster | |
| | volume | |
| | volume-plan | |
| | webhook | |
+--------+------------------+------+

Adding ssh key :

shipa key-add my-rsa-key ~/.ssh/id_rsa.pubKey "my-rsa-key" successfully added!

Creating an application :

shipa app-create demo1 python -t admin -o gke

It creates a complete developer experience wherein you get a git repository like

git@35.185.233.31:demo1.git

Now write and push the code:

git add.
git commit -m "first commit"
git push git@35.185.233.31:demo1.git master
shipe app-list => to get the endpoint for the application that is running on the cluster+---------------------------+-----------+--------------------------------------+
| test2 | 1 started | http://test2.35.199.180.138.nip.io |
+---------------------------+-----------+--------------------------------------+

It's that simple for a developer to just write the code without having to learn or create any Kubernetes related object or yaml files and push it to the repository and DONE — your code is deployed on Kubernetes.

There is a lot that can be done using Shipa and a lot that is in the pipeline.

For having shipa you can install it via :

https://github.com/shipa-corp/helm-chart

Saiyam Pathak
[CKA|CKAD|CNCF AMbassador]

l CNCF Ambassador | CKA | CKAD | Influx ACE | Multi-cloud certified | Rancher Ranch Hands member