You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by im...@apache.org on 2015/01/19 17:48:32 UTC

[24/26] stratos git commit: more complex app - Kubernetes sample application

more complex app - Kubernetes sample application


Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/bae737c2
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/bae737c2
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/bae737c2

Branch: refs/heads/master
Commit: bae737c208179ed1bba42d0c340486693230f584
Parents: 1259db1
Author: Vishanth <vi...@gmail.com>
Authored: Mon Jan 19 13:33:10 2015 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Mon Jan 19 22:17:18 2015 +0530

----------------------------------------------------------------------
 .../artifacts/application_definition.json       | 195 +++++++++++++++++++
 .../kubernetes/artifacts/autoscale-policy.json  |  14 ++
 .../kubernetes/artifacts/deployment-policy.json |  88 +++++++++
 .../kubernetes/artifacts/group6c.json           |  34 ++++
 .../kubernetes/artifacts/group8c.json           |  23 +++
 .../artifacts/kubernetes-cluster.json           |  55 ++++++
 .../kubernetes/artifacts/tomcat.json            |  34 ++++
 .../kubernetes/artifacts/tomcat1.json           |  34 ++++
 .../kubernetes/artifacts/tomcat2.json           |  34 ++++
 samples/more-complex-app/kubernetes/deploy.sh   |  40 ++++
 10 files changed, 551 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/bae737c2/samples/more-complex-app/kubernetes/artifacts/application_definition.json
----------------------------------------------------------------------
diff --git a/samples/more-complex-app/kubernetes/artifacts/application_definition.json b/samples/more-complex-app/kubernetes/artifacts/application_definition.json
new file mode 100644
index 0000000..3d8d91f
--- /dev/null
+++ b/samples/more-complex-app/kubernetes/artifacts/application_definition.json
@@ -0,0 +1,195 @@
+{
+    "applicationId": "app_boo",
+    "alias": "app_boo_r2",
+    "components": {
+        "groups": [
+            {
+                "name": "group6",
+                "alias": "mygroup6",
+                "groupMinInstances": 1,
+                "groupMaxInstances": 1,
+                "groups": [
+                    {
+                        "name": "group7",
+                        "alias": "mygroup7",
+                        "groupMinInstances": 1,
+                        "groupMaxInstances": 1,
+                        "cartridges": [
+                            {
+                                "type": "tomcat1",
+                                "cartridgeMin": 1,
+                                "cartridgeMax": 2,
+                                "subscribableInfo": {
+                                    "alias": "group7tom1",
+                                    "autoscalingPolicy": "autoscale_policy_1"
+                                }
+                                "artifactRepository":{
+                                    "privateRepo":false,
+                                    "repoUrl":"https://github.com/imesh/stratos-tomcat1-applications.git",
+                                    "repoUsername":"",
+                                    "repoPassword":""
+                                }
+                            },
+                            {
+                                "type": "tomcat2",
+                                "cartridgeMin": 1,
+                                "cartridgeMax": 2,
+                                "subscribableInfo": {
+                                    "alias": "group7tom2",
+                                    "autoscalingPolicy": "autoscale_policy_1"
+                                    "artifactRepository":{
+                                        "privateRepo":false,
+                                        "repoUrl":"https://github.com/imesh/stratos-tomcat2-applications.git",
+                                        "repoUsername":"",
+                                        "repoPassword":""
+                                    }
+                                }
+                            }
+                        ]
+                    },
+                    {
+                        "name": "group8",
+                        "alias": "mygroup8",
+                        "groupMinInstances": 1,
+                        "groupMaxInstances": 1,
+                        "cartridges": [
+                            {
+                                "type": "tomcat1",
+                                "cartridgeMin": 1,
+                                "cartridgeMax": 2,
+                                "subscribableInfo": {
+                                    "alias": "group8tom",
+                                    "autoscalingPolicy": "autoscale_policy_1"
+                                    "artifactRepository":{
+                                        "privateRepo":false,
+                                        "repoUrl":"https://github.com/imesh/stratos-tomcat1-applications.git",
+                                        "repoUsername":"",
+                                        "repoPassword":""
+                                    }
+                                }
+                            }
+                        ]
+                    }
+                ],
+                "cartridges": [
+                    {
+                        "type": "tomcat2",
+                        "cartridgeMin": 1,
+                        "cartridgeMax": 2,
+                        "subscribableInfo": {
+                            "alias": "group6tom",
+                            "autoscalingPolicy": "autoscale_policy_1"
+                            "artifactRepository":{
+                                "privateRepo":false,
+                                "repoUrl":"https://github.com/imesh/stratos-tomcat2-applications.git",
+                                "repoUsername":"",
+                                "repoPassword":""
+                            }
+                        }
+                    }
+                ]
+            },
+            {
+                "name": "group8",
+                "alias": "mygroup8",
+                "groupMinInstances": 1,
+                "groupMaxInstances": 1,
+                "groups": [
+                    {
+                        "name": "group9",
+                        "alias": "mygroup9",
+                        "groupMinInstances": 1,
+                        "groupMaxInstances": 1,
+                        "cartridges": [
+                            {
+                                "type": "tomcat1",
+                                "cartridgeMin": 1,
+                                "cartridgeMax": 2,
+                                "subscribableInfo": {
+                                    "alias": "group9tom",
+                                    "autoscalingPolicy": "autoscale_policy_1"
+                                    "artifactRepository":{
+                                        "privateRepo":false,
+                                        "repoUrl":"https://github.com/imesh/stratos-tomcat1-applications.git",
+                                        "repoUsername":"",
+                                        "repoPassword":""
+                                    }
+                                }
+                            }
+                        ]
+                    }
+                ],
+                "cartridges": [
+                    {
+                        "type": "tomcat1",
+                        "cartridgeMin": 1,
+                        "cartridgeMax": 2,
+                        "subscribableInfo": {
+                            "alias": "group8tom1",
+                            "autoscalingPolicy": "autoscale_policy_1"
+                            "artifactRepository":{
+                                "privateRepo":false,
+                                "repoUrl":"https://github.com/imesh/stratos-tomcat1-applications.git",
+                                "repoUsername":"",
+                                "repoPassword":""
+                            }
+                        }
+                    },
+                    {
+                        "type": "tomcat2",
+                        "cartridgeMin": 1,
+                        "cartridgeMax": 2,
+                        "subscribableInfo": {
+                            "alias": "group8tom2",
+                            "autoscalingPolicy": "autoscale_policy_1"
+                            "artifactRepository":{
+                                "privateRepo":false,
+                                "repoUrl":"https://github.com/imesh/stratos-tomcat2-applications.git",
+                                "repoUsername":"",
+                                "repoPassword":""
+                            }
+                        }
+                    }
+                ]
+            }
+        ],
+        "cartridges": [
+            {
+                "type": "tomcat",
+                "cartridgeMin": 1,
+                "cartridgeMax": 2,
+                "subscribableInfo": {
+                    "alias": "mytomcat1",
+                    "autoscalingPolicy": "autoscale_policy_1"
+                    "artifactRepository":{
+                        "privateRepo":false,
+                        "repoUrl":"https://github.com/imesh/stratos-tomcat-applications.git",
+                        "repoUsername":"",
+                        "repoPassword":""
+                    }
+                }
+            },
+            {
+                "type": "tomcat1",
+                "cartridgeMin": 1,
+                "cartridgeMax": 2,
+                "subscribableInfo": {
+                    "alias": "mytomcat2",
+                    "autoscalingPolicy": "autoscale_policy_1"
+                    "artifactRepository":{
+                        "privateRepo":false,
+                        "repoUrl":"https://github.com/imesh/stratos-tomcat1-applications.git",
+                        "repoUsername":"",
+                        "repoPassword":""
+                    }
+                }
+            }
+        ],
+        "dependencies": {
+            "startupOrders": [
+                "group.group6,cartridge.tomcat,group.group8"
+            ],
+            "terminationBehaviour": "terminate-all"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/bae737c2/samples/more-complex-app/kubernetes/artifacts/autoscale-policy.json
----------------------------------------------------------------------
diff --git a/samples/more-complex-app/kubernetes/artifacts/autoscale-policy.json b/samples/more-complex-app/kubernetes/artifacts/autoscale-policy.json
new file mode 100755
index 0000000..9e9ad99
--- /dev/null
+++ b/samples/more-complex-app/kubernetes/artifacts/autoscale-policy.json
@@ -0,0 +1,14 @@
+{
+    "id": "autoscale_policy_1",
+    "loadThresholds": {
+        "requestsInFlight": {
+            "threshold": 80
+        },
+        "memoryConsumption": {
+            "threshold": 90
+        },
+        "loadAverage": {
+            "threshold": 50
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/bae737c2/samples/more-complex-app/kubernetes/artifacts/deployment-policy.json
----------------------------------------------------------------------
diff --git a/samples/more-complex-app/kubernetes/artifacts/deployment-policy.json b/samples/more-complex-app/kubernetes/artifacts/deployment-policy.json
new file mode 100644
index 0000000..9bb1027
--- /dev/null
+++ b/samples/more-complex-app/kubernetes/artifacts/deployment-policy.json
@@ -0,0 +1,88 @@
+{
+    "applicationId": "app_boo",
+    "applicationPolicy": {
+        "applicationId": "app_boo_r4",
+        "networkPartition": [
+            {
+                "id":"network-p1",
+                "kubernetesClusterId":"kubernetes-cluster-1",
+                "activeByDefault": "true",
+                "partitions": [
+                    {
+                        "id": "P1",
+                        "provider": "kubernetes",
+                        "property": [
+                            {
+                                "name": "region",
+                                "value": "default"
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    "childPolicies": [
+        {
+            "alias": "mytomcat2",
+            "networkPartition": [
+                {
+                    "id": "network-p1",
+                    "partitionAlgo": "one-after-another",
+                    "partitions": [
+                        {
+                            "id": "P1",
+                            "max": 5
+                        }
+                    ]
+                }
+            ]
+        },
+        {
+            "alias": "mytomcat1",
+            "networkPartition": [
+                {
+                    "id": "network-p1",
+                    "partitionAlgo": "one-after-another",
+                    "partitions": [
+                        {
+                            "id": "P1",
+                            "max": 5
+                        }
+                    ]
+                }
+            ]
+        },
+        {
+            "alias": "mygroup6",
+            "networkPartition": [
+                {
+                    "id": "network-p1",
+                    "partitionAlgo": "one-after-another",
+                    "partitions": [
+                        {
+                            "id": "P1",
+                            "max": 5
+                        }
+                    ]
+                }
+            ]
+        },
+        {
+            "alias": "mygroup8",
+            "networkPartition": [
+                {
+                    "id": "network-p1",
+                    "partitionAlgo": "one-after-another",
+                    "partitions": [
+                        {
+                            "id": "P1",
+                            "max": 5
+                        }
+                    ]
+                }
+            ]
+        }
+    ]
+}
+

http://git-wip-us.apache.org/repos/asf/stratos/blob/bae737c2/samples/more-complex-app/kubernetes/artifacts/group6c.json
----------------------------------------------------------------------
diff --git a/samples/more-complex-app/kubernetes/artifacts/group6c.json b/samples/more-complex-app/kubernetes/artifacts/group6c.json
new file mode 100755
index 0000000..6a64b18
--- /dev/null
+++ b/samples/more-complex-app/kubernetes/artifacts/group6c.json
@@ -0,0 +1,34 @@
+{
+    "name": "group6",
+    "groups": [
+        {
+            "name": "group7",
+            "cartridges": [
+                "tomcat1",
+                "tomcat2"
+            ],
+            "dependencies": {
+                "startupOrders": [
+                    "cartridge.tomcat1,cartridge.tomcat2"
+                ],
+                "terminationBehaviour": "terminate-all"
+            }
+        },
+        {
+            "name": "group8",
+            "cartridges": [
+                "tomcat1"
+            ]
+        }
+    ],
+    "cartridges": [
+        "tomcat2"
+    ],
+    "dependencies": {
+        "startupOrders": [
+            "group.group7,cartridge.tomcat2,group.group8"
+        ],
+        "terminationBehaviour": "terminate-all"
+    }
+}
+

http://git-wip-us.apache.org/repos/asf/stratos/blob/bae737c2/samples/more-complex-app/kubernetes/artifacts/group8c.json
----------------------------------------------------------------------
diff --git a/samples/more-complex-app/kubernetes/artifacts/group8c.json b/samples/more-complex-app/kubernetes/artifacts/group8c.json
new file mode 100755
index 0000000..3294aec
--- /dev/null
+++ b/samples/more-complex-app/kubernetes/artifacts/group8c.json
@@ -0,0 +1,23 @@
+{
+    "name": "group8",
+    "groups": [
+        {
+            "name": "group9",
+            "cartridges": [
+                "tomcat1"
+            ]
+        }
+    ],
+    "cartridges": [
+        "tomcat2",
+        "tomcat1"
+    ],
+    "dependencies": {
+        "startupOrders": [
+            "group.group9,cartridge.tomcat2",
+            "group.group9,cartridge.tomcat1"
+        ],
+        "terminationBehaviour": "terminate-all"
+    }
+}
+

http://git-wip-us.apache.org/repos/asf/stratos/blob/bae737c2/samples/more-complex-app/kubernetes/artifacts/kubernetes-cluster.json
----------------------------------------------------------------------
diff --git a/samples/more-complex-app/kubernetes/artifacts/kubernetes-cluster.json b/samples/more-complex-app/kubernetes/artifacts/kubernetes-cluster.json
new file mode 100644
index 0000000..228eeb3
--- /dev/null
+++ b/samples/more-complex-app/kubernetes/artifacts/kubernetes-cluster.json
@@ -0,0 +1,55 @@
+{
+      "clusterId": "kubernetes-cluster-1",
+      "description": "Kubernetes CoreOS cluster",
+      "kubernetesMaster": {
+                  "hostId" : "KubHostMaster1",
+                  "hostname" : "master.dev.kubernetes.example.org",
+                  "hostIpAddress" : "172.17.8.100",
+                  "property" : [
+                  ]
+        },
+
+        "portRange" : {
+           "upper": "5000",
+           "lower": "4500"
+        },
+
+        "kubernetesHosts": [
+              {
+                     "hostId" : "KubHostSlave1",
+                     "hostname" : "slave1.dev.kubernetes.example.org",
+                     "hostIpAddress" : "172.17.8.101",
+                     "property" : [
+                     ]
+                },
+                {
+                     "hostId" : "KubHostSlave2",
+                     "hostname" : "slave2.dev.kubernetes.example.org",
+                     "hostIpAddress" : "172.17.8.102",
+                     "property" : [
+                     ]
+                }
+    ],
+    "property":[
+       {
+          "name":"payload_parameter.MB_IP",
+          "value":"172.17.8.1"
+       },
+       {
+          "name":"payload_parameter.MB_PORT",
+          "value":"1883"
+       },
+       {
+          "name":"payload_parameter.CEP_IP",
+          "value":"172.17.8.1"
+       },
+       {
+          "name":"payload_parameter.CEP_PORT",
+          "value":"7711"
+       },
+       {
+          "name":"payload_parameter.LOG_LEVEL",
+          "value":"DEBUG"
+       }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/bae737c2/samples/more-complex-app/kubernetes/artifacts/tomcat.json
----------------------------------------------------------------------
diff --git a/samples/more-complex-app/kubernetes/artifacts/tomcat.json b/samples/more-complex-app/kubernetes/artifacts/tomcat.json
new file mode 100755
index 0000000..c017947
--- /dev/null
+++ b/samples/more-complex-app/kubernetes/artifacts/tomcat.json
@@ -0,0 +1,34 @@
+{
+    "type": "tomcat",
+    "provider": "apache",
+    "host": "isuruh.lk",
+    "category": "data",
+    "displayName": "tomcat",
+    "description": "tomcat Cartridge",
+    "version": "7",
+    "multiTenant": "false",
+    "portMapping": [
+        {
+            "protocol": "http",
+            "port": "22",
+            "proxyPort": "8280"
+        }
+    ],
+    "deployment":{
+        "baseDir":"/var/www"
+    },
+    "iaasProvider":[
+       {
+          "type":"kubernetes",
+          "imageId":"stratos/cartridge:4.1.0-alpha",
+          "networkInterfaces":[
+             {
+                "name":"network-non-routable",
+                "networkUuid":""
+             }
+          ],
+          "property":[
+          ]
+       }
+    ],
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/bae737c2/samples/more-complex-app/kubernetes/artifacts/tomcat1.json
----------------------------------------------------------------------
diff --git a/samples/more-complex-app/kubernetes/artifacts/tomcat1.json b/samples/more-complex-app/kubernetes/artifacts/tomcat1.json
new file mode 100755
index 0000000..d34bc5f
--- /dev/null
+++ b/samples/more-complex-app/kubernetes/artifacts/tomcat1.json
@@ -0,0 +1,34 @@
+{
+    "type": "tomcat1",
+    "provider": "apache",
+    "category": "data",
+    "host": "isuruh.lk",
+    "displayName": "tomcat1",
+    "description": "tomcat1 Cartridge",
+    "version": "7",
+    "multiTenant": "false",
+    "portMapping": [
+        {
+            "protocol": "http",
+            "port": "22",
+            "proxyPort": "8280"
+        }
+    ],
+    "deployment":{
+        "baseDir":"/var/www"
+    },
+    "iaasProvider":[
+       {
+          "type":"kubernetes",
+          "imageId":"stratos/cartridge:4.1.0-alpha",
+          "networkInterfaces":[
+             {
+                "name":"network-non-routable",
+                "networkUuid":""
+             }
+          ],
+          "property":[
+          ]
+       }
+    ],
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/bae737c2/samples/more-complex-app/kubernetes/artifacts/tomcat2.json
----------------------------------------------------------------------
diff --git a/samples/more-complex-app/kubernetes/artifacts/tomcat2.json b/samples/more-complex-app/kubernetes/artifacts/tomcat2.json
new file mode 100755
index 0000000..500d648
--- /dev/null
+++ b/samples/more-complex-app/kubernetes/artifacts/tomcat2.json
@@ -0,0 +1,34 @@
+{
+    "type": "tomcat2",
+    "provider": "apache",
+    "category": "data",
+    "host": "isuruh.lk",
+    "displayName": "tomcat2",
+    "description": "tomcat2 Cartridge",
+    "version": "7",
+    "multiTenant": "false",
+    "portMapping": [
+        {
+            "protocol": "http",
+            "port": "22",
+            "proxyPort": "8280"
+        }
+    ],
+    "deployment":{
+        "baseDir":"/var/www"
+    },
+    "iaasProvider":[
+       {
+          "type":"kubernetes",
+          "imageId":"stratos/cartridge:4.1.0-alpha",
+          "networkInterfaces":[
+             {
+                "name":"network-non-routable",
+                "networkUuid":""
+             }
+          ],
+          "property":[
+          ]
+       }
+    ],
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/bae737c2/samples/more-complex-app/kubernetes/deploy.sh
----------------------------------------------------------------------
diff --git a/samples/more-complex-app/kubernetes/deploy.sh b/samples/more-complex-app/kubernetes/deploy.sh
new file mode 100755
index 0000000..6436bec
--- /dev/null
+++ b/samples/more-complex-app/kubernetes/deploy.sh
@@ -0,0 +1,40 @@
+#!/bin/sh 
+
+# Create autoscale policy
+curl -X POST -H "Content-Type: application/json" -d @'artifacts/autoscale-policy.json' -k -v -u admin:admin https://localhost:9443/api/autoscalingPolicies
+
+# Create tomcat cartridge
+curl -X POST -H "Content-Type: application/json" -d @'artifacts/tomcat.json' -k -v -u admin:admin https://localhost:9443/api/cartridges
+
+# Deploy tomcat1 cartride
+curl -X POST -H "Content-Type: application/json" -d @'artifacts/tomcat1.json' -k -v -u admin:admin https://localhost:9443/api/cartridges
+
+# Deploy tomcat2 cartride
+curl -X POST -H "Content-Type: application/json" -d @'artifacts/tomcat2.json' -k -v -u admin:admin https://localhost:9443/api/cartridges
+
+# Deploy group
+curl -X POST -H "Content-Type: application/json" -d @'artifacts/group6c.json' -k -v -u admin:admin https://localhost:9443/api/cartridgeGroups
+
+curl -X POST -H "Content-Type: application/json" -d @'artifacts/group8c.json' -k -v -u admin:admin https://localhost:9443/api/cartridgeGroups
+
+sleep 5
+# Create application
+curl -X POST -H "Content-Type: application/json" -d @'artifacts/application_definition.json' -k -v -u admin:admin https://localhost:9443/api/applications
+
+sleep 5
+# GET application
+curl -X GET -H "Content-Type: application/json" -k -v -u admin:admin https://localhost:9443/api/applications/app_boo
+
+# Deploy application
+curl -X POST -H "Content-Type: application/json" -d@'artifacts/deployment-policy.json' -k -v -u admin:admin https://localhost:9443/api/applications/app_boo/deploy
+
+sleep 20
+
+# Undeploy application
+# curl -X POST -H "Content-Type: application/json" -d@'artifacts/deployment-policy.json' -k -v -u admin:admin https://localhost:9443/api/applications/app_boo/undeploy
+
+sleep 5
+
+# Delete application
+# curl -X DELETE -H "Content-Type: application/json" -k -v -u admin:admin https://localhost:9443/api/applications/app_boo
+