implementing app-bursting-pattern sample application
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/f2f888b7 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/f2f888b7 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/f2f888b7 Branch: refs/heads/master Commit: f2f888b7ff8e2f7ed0c7da00aac32c6232391277 Parents: b4c76b0 Author: R-Rajkumar <[email protected]> Authored: Mon Mar 9 12:09:59 2015 +0530 Committer: R-Rajkumar <[email protected]> Committed: Mon Mar 9 12:09:59 2015 +0530 ---------------------------------------------------------------------- .../application-policy-4.json | 20 ++++++++ .../applications/app-bursting-pattern/README.md | 8 +++ .../artifacts/application-signup.json | 18 +++++++ .../artifacts/application.json | 25 ++++++++++ .../artifacts/domain-mappings.json | 9 ++++ .../scripts/common/deploy.sh | 51 ++++++++++++++++++++ .../scripts/common/undeploy.sh | 33 +++++++++++++ .../app-bursting-pattern/scripts/ec2/deploy.sh | 9 ++++ .../scripts/ec2/undeploy.sh | 7 +++ .../scripts/kubernetes/deploy.sh | 16 ++++++ .../scripts/kubernetes/undeploy.sh | 13 +++++ .../app-bursting-pattern/scripts/mock/deploy.sh | 9 ++++ .../scripts/mock/undeploy.sh | 7 +++ .../scripts/openstack/deploy.sh | 9 ++++ .../scripts/openstack/undeploy.sh | 7 +++ .../deployment-policy-4.json | 20 ++++++++ .../mock/network-partition-4.json | 15 ++++++ 17 files changed, 276 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/f2f888b7/samples/application-policies/application-policy-4.json ---------------------------------------------------------------------- diff --git a/samples/application-policies/application-policy-4.json b/samples/application-policies/application-policy-4.json new file mode 100644 index 0000000..701aec1 --- /dev/null +++ b/samples/application-policies/application-policy-4.json @@ -0,0 +1,20 @@ +{ + "id": "application-policy-4", + "algorithm":"one-after-another", + "networkPartitions":[ + "network-partition-1", + "network-partition-2", + "network-partition-3", + "network-partition-4" + ], + "properties":[ + { + "name": "networkPartitionGroups", + "value": "network-partition-1|network-partition-2,network-partition-3|network-partition-4" + }, + { + "name": "key-2", + "value": "value-2" + }, + ] +} http://git-wip-us.apache.org/repos/asf/stratos/blob/f2f888b7/samples/applications/app-bursting-pattern/README.md ---------------------------------------------------------------------- diff --git a/samples/applications/app-bursting-pattern/README.md b/samples/applications/app-bursting-pattern/README.md new file mode 100644 index 0000000..7025dff --- /dev/null +++ b/samples/applications/app-bursting-pattern/README.md @@ -0,0 +1,8 @@ +single_cartridge +================ +i) In this artifact sample you can find we have listed them as mock and openstack. + +ii) In this sample artifact, it deployed simple tomcat cartridge and start it. + +iii) You can choose the IaaS and navigate to it and simply run the single_cartridge.sh file. It'll deploy the relevant artifacts and start the application. + http://git-wip-us.apache.org/repos/asf/stratos/blob/f2f888b7/samples/applications/app-bursting-pattern/artifacts/application-signup.json ---------------------------------------------------------------------- diff --git a/samples/applications/app-bursting-pattern/artifacts/application-signup.json b/samples/applications/app-bursting-pattern/artifacts/application-signup.json new file mode 100644 index 0000000..138648e --- /dev/null +++ b/samples/applications/app-bursting-pattern/artifacts/application-signup.json @@ -0,0 +1,18 @@ +{ + "artifactRepositories":[ + { + "alias":"php", + "privateRepo":false, + "repoUrl":"https://github.com/imesh/stratos-php-applications.git", + "repoUsername":"", + "repoPassword":"" + }, + { + "alias":"tomcat", + "privateRepo":false, + "repoUrl":"https://github.com/imesh/stratos-tomcat-applications.git", + "repoUsername":"", + "repoPassword":"" + } + ] +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/stratos/blob/f2f888b7/samples/applications/app-bursting-pattern/artifacts/application.json ---------------------------------------------------------------------- diff --git a/samples/applications/app-bursting-pattern/artifacts/application.json b/samples/applications/app-bursting-pattern/artifacts/application.json new file mode 100644 index 0000000..1cb3e57 --- /dev/null +++ b/samples/applications/app-bursting-pattern/artifacts/application.json @@ -0,0 +1,25 @@ +{ + "applicationId":"app-bursting-pattern-app", + "alias":"app-bursting-pattern-app", + "multiTenant":false, + "components":{ + "cartridges":[ + { + "type":"php", + "cartridgeMin": 1, + "cartridgeMax": 10, + "subscribableInfo":{ + "alias":"my-php", + "autoscalingPolicy":"autoscaling-policy-1", + "deploymentPolicy":"deployment-policy-4", + "artifactRepository":{ + "privateRepo":false, + "repoUrl":"https://github.com/imesh/stratos-php-applications.git", + "repoUsername":"", + "repoPassword":"" + } + } + } + ] + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/f2f888b7/samples/applications/app-bursting-pattern/artifacts/domain-mappings.json ---------------------------------------------------------------------- diff --git a/samples/applications/app-bursting-pattern/artifacts/domain-mappings.json b/samples/applications/app-bursting-pattern/artifacts/domain-mappings.json new file mode 100644 index 0000000..17ee4f6 --- /dev/null +++ b/samples/applications/app-bursting-pattern/artifacts/domain-mappings.json @@ -0,0 +1,9 @@ +{ + "domainMappings": [ + { + "cartridgeAlias":"php1", + "domainName":"abc.com", + "contextPath":"/abc/app" + } + ] +} http://git-wip-us.apache.org/repos/asf/stratos/blob/f2f888b7/samples/applications/app-bursting-pattern/scripts/common/deploy.sh ---------------------------------------------------------------------- diff --git a/samples/applications/app-bursting-pattern/scripts/common/deploy.sh b/samples/applications/app-bursting-pattern/scripts/common/deploy.sh new file mode 100755 index 0000000..7155c52 --- /dev/null +++ b/samples/applications/app-bursting-pattern/scripts/common/deploy.sh @@ -0,0 +1,51 @@ +#!/bin/bash + +iaas=$1 +host_ip="localhost" +host_port=9443 + +prgdir=`dirname "$0"` +script_path=`cd "$prgdir"; pwd` + +artifacts_path=`cd "${script_path}/../../artifacts"; pwd` +iaas_cartridges_path=`cd "${script_path}/../../../../cartridges/${iaas}"; pwd` +cartridges_groups_path=`cd "${script_path}/../../../../cartridges-groups"; pwd` +autoscaling_policies_path=`cd "${script_path}/../../../../autoscaling-policies"; pwd` +network_partitions_path=`cd "${script_path}/../../../../network-partitions/${iaas}"; pwd` +deployment_policies_path=`cd "${script_path}/../../../../deployment-policies"; pwd` +application_policies_path=`cd "${script_path}/../../../../application-policies"; pwd` + +set -e + +if [[ -z "${iaas}" ]]; then + echo "Usage: deploy.sh [iaas]" + exit +fi + +echo ${autoscaling_policies_path}/autoscaling-policy-1.json +echo "Adding autoscale policy..." +curl -X POST -H "Content-Type: application/json" -d "@${autoscaling_policies_path}/autoscaling-policy-1.json" -k -v -u admin:admin https://${host_ip}:${host_port}/api/autoscalingPolicies + +echo "Adding network partitions..." +curl -X POST -H "Content-Type: application/json" -d "@${network_partitions_path}/network-partition-1.json" -k -v -u admin:admin https://${host_ip}:9443/api/networkPartitions +curl -X POST -H "Content-Type: application/json" -d "@${network_partitions_path}/network-partition-2.json" -k -v -u admin:admin https://${host_ip}:9443/api/networkPartitions +curl -X POST -H "Content-Type: application/json" -d "@${network_partitions_path}/network-partition-3.json" -k -v -u admin:admin https://${host_ip}:9443/api/networkPartitions +curl -X POST -H "Content-Type: application/json" -d "@${network_partitions_path}/network-partition-4.json" -k -v -u admin:admin https://${host_ip}:9443/api/networkPartitions +echo "Adding deployment policy..." +curl -X POST -H "Content-Type: application/json" -d "@${deployment_policies_path}/deployment-policy-4.json" -k -v -u admin:admin https://${host_ip}:${host_port}/api/deploymentPolicies + +echo "Adding php cartridge..." +curl -X POST -H "Content-Type: application/json" -d "@${iaas_cartridges_path}/php.json" -k -v -u admin:admin https://${host_ip}:${host_port}/api/cartridges + +sleep 1 + +echo "Adding application policy..." +curl -X POST -H "Content-Type: application/json" -d "@${application_policies_path}/application-policy-4.json" -k -v -u admin:admin https://${host_ip}:${host_port}/api/applicationPolicies + +echo "Adding application..." +curl -X POST -H "Content-Type: application/json" -d "@${artifacts_path}/application.json" -k -v -u admin:admin https://${host_ip}:${host_port}/api/applications + +sleep 1 + +echo "Deploying application..." +curl -X POST -H "Content-Type: application/json" -k -v -u admin:admin https://${host_ip}:${host_port}/api/applications/app-bursting-pattern-app/deploy/application-policy-4 http://git-wip-us.apache.org/repos/asf/stratos/blob/f2f888b7/samples/applications/app-bursting-pattern/scripts/common/undeploy.sh ---------------------------------------------------------------------- diff --git a/samples/applications/app-bursting-pattern/scripts/common/undeploy.sh b/samples/applications/app-bursting-pattern/scripts/common/undeploy.sh new file mode 100644 index 0000000..1e7be1a --- /dev/null +++ b/samples/applications/app-bursting-pattern/scripts/common/undeploy.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +host_ip="localhost" +host_port=9443 + +set -e + +echo "Undeploying application..." +curl -X POST -H "Content-Type: application/json" -k -v -u admin:admin https://${host_ip}:${host_port}/api/applications/app-bursting-pattern-app/undeploy + +sleep 10 + +echo "Deleting application..." +curl -X DELETE -H "Content-Type: application/json" -k -v -u admin:admin https://${host_ip}:${host_port}/api/applications/app-bursting-pattern-app + +echo "Removing cartridges..." +curl -X DELETE -H "Content-Type: application/json" -k -v -u admin:admin https://${host_ip}:${host_port}/api/cartridges/php + +echo "Removing autoscale policies..." +curl -X DELETE -H "Content-Type: application/json" -k -v -u admin:admin https://${host_ip}:${host_port}/api/autoscalingPolicies/autoscaling-policy-1 + +echo "Removing deployment policies..." +curl -X DELETE -H "Content-Type: application/json" -k -v -u admin:admin https://${host_ip}:${host_port}/api/deploymentPolicies/deployment-policy-1 + +echo "Removing network partitions..." +curl -X DELETE -H "Content-Type: application/json" -k -v -u admin:admin https://${host_ip}:${host_port}/api/networkPartitions/network-partition-1 +curl -X DELETE -H "Content-Type: application/json" -k -v -u admin:admin https://${host_ip}:${host_port}/api/networkPartitions/network-partition-2 +curl -X DELETE -H "Content-Type: application/json" -k -v -u admin:admin https://${host_ip}:${host_port}/api/networkPartitions/network-partition-3 +curl -X DELETE -H "Content-Type: application/json" -k -v -u admin:admin https://${host_ip}:${host_port}/api/networkPartitions/network-partition-4 + +echo "Removing application policies..." +curl -X DELETE -H "Content-Type: application/json" -k -v -u admin:admin https://${host_ip}:${host_port}/api/applicationPolicies/application-policy-4 + http://git-wip-us.apache.org/repos/asf/stratos/blob/f2f888b7/samples/applications/app-bursting-pattern/scripts/ec2/deploy.sh ---------------------------------------------------------------------- diff --git a/samples/applications/app-bursting-pattern/scripts/ec2/deploy.sh b/samples/applications/app-bursting-pattern/scripts/ec2/deploy.sh new file mode 100755 index 0000000..1370667 --- /dev/null +++ b/samples/applications/app-bursting-pattern/scripts/ec2/deploy.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +iaas="ec2" + +prgdir=`dirname "$0"` +script_path=`cd "$prgdir"; pwd` +common_folder=`cd "${script_path}/../common"; pwd` + +bash ${common_folder}/deploy.sh ${iaas} http://git-wip-us.apache.org/repos/asf/stratos/blob/f2f888b7/samples/applications/app-bursting-pattern/scripts/ec2/undeploy.sh ---------------------------------------------------------------------- diff --git a/samples/applications/app-bursting-pattern/scripts/ec2/undeploy.sh b/samples/applications/app-bursting-pattern/scripts/ec2/undeploy.sh new file mode 100644 index 0000000..17d8c71 --- /dev/null +++ b/samples/applications/app-bursting-pattern/scripts/ec2/undeploy.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +prgdir=`dirname "$0"` +script_path=`cd "$prgdir"; pwd` +common_folder=`cd "${script_path}/../common"; pwd` + +bash ${common_folder}/undeploy.sh http://git-wip-us.apache.org/repos/asf/stratos/blob/f2f888b7/samples/applications/app-bursting-pattern/scripts/kubernetes/deploy.sh ---------------------------------------------------------------------- diff --git a/samples/applications/app-bursting-pattern/scripts/kubernetes/deploy.sh b/samples/applications/app-bursting-pattern/scripts/kubernetes/deploy.sh new file mode 100755 index 0000000..d6c47c1 --- /dev/null +++ b/samples/applications/app-bursting-pattern/scripts/kubernetes/deploy.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +host_ip="localhost" +host_port=9443 +iaas="kubernetes" + +prgdir=`dirname "$0"` +script_path=`cd "$prgdir"; pwd` +common_folder=`cd "${script_path}/../common"; pwd` +kubernetes_clusters_path=`cd "${script_path}/../../../../kubernetes-clusters"; pwd` + + +echo "Adding kubernetes cluster..." +curl -X POST -H "Content-Type: application/json" -d "@${kubernetes_clusters_path}/kubernetes-cluster-1.json" -k -u admin:admin https://${host_ip}:${host_port}/api/kubernetesClusters + +bash ${common_folder}/deploy.sh ${iaas} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/stratos/blob/f2f888b7/samples/applications/app-bursting-pattern/scripts/kubernetes/undeploy.sh ---------------------------------------------------------------------- diff --git a/samples/applications/app-bursting-pattern/scripts/kubernetes/undeploy.sh b/samples/applications/app-bursting-pattern/scripts/kubernetes/undeploy.sh new file mode 100755 index 0000000..0054670 --- /dev/null +++ b/samples/applications/app-bursting-pattern/scripts/kubernetes/undeploy.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +host_ip="localhost" +host_port=9443 + +prgdir=`dirname "$0"` +script_path=`cd "$prgdir"; pwd` +common_folder=`cd "${script_path}/../common"; pwd` + +bash ${common_folder}/undeploy.sh + +echo "Removing kubernetes cluster..." +curl -X DELETE -H "Content-Type: application/json" -k -v -u admin:admin https://${host_ip}:${host_port}/api/kubernetesClusters/kubernetes-cluster-1 http://git-wip-us.apache.org/repos/asf/stratos/blob/f2f888b7/samples/applications/app-bursting-pattern/scripts/mock/deploy.sh ---------------------------------------------------------------------- diff --git a/samples/applications/app-bursting-pattern/scripts/mock/deploy.sh b/samples/applications/app-bursting-pattern/scripts/mock/deploy.sh new file mode 100755 index 0000000..93f8517 --- /dev/null +++ b/samples/applications/app-bursting-pattern/scripts/mock/deploy.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +iaas="mock" + +prgdir=`dirname "$0"` +script_path=`cd "$prgdir"; pwd` +common_folder=`cd "${script_path}/../common"; pwd` + +bash ${common_folder}/deploy.sh ${iaas} http://git-wip-us.apache.org/repos/asf/stratos/blob/f2f888b7/samples/applications/app-bursting-pattern/scripts/mock/undeploy.sh ---------------------------------------------------------------------- diff --git a/samples/applications/app-bursting-pattern/scripts/mock/undeploy.sh b/samples/applications/app-bursting-pattern/scripts/mock/undeploy.sh new file mode 100755 index 0000000..17d8c71 --- /dev/null +++ b/samples/applications/app-bursting-pattern/scripts/mock/undeploy.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +prgdir=`dirname "$0"` +script_path=`cd "$prgdir"; pwd` +common_folder=`cd "${script_path}/../common"; pwd` + +bash ${common_folder}/undeploy.sh http://git-wip-us.apache.org/repos/asf/stratos/blob/f2f888b7/samples/applications/app-bursting-pattern/scripts/openstack/deploy.sh ---------------------------------------------------------------------- diff --git a/samples/applications/app-bursting-pattern/scripts/openstack/deploy.sh b/samples/applications/app-bursting-pattern/scripts/openstack/deploy.sh new file mode 100755 index 0000000..4c39959 --- /dev/null +++ b/samples/applications/app-bursting-pattern/scripts/openstack/deploy.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +iaas="openstack" + +prgdir=`dirname "$0"` +script_path=`cd "$prgdir"; pwd` +common_folder=`cd "${script_path}/../common"; pwd` + +bash ${common_folder}/deploy.sh ${iaas} http://git-wip-us.apache.org/repos/asf/stratos/blob/f2f888b7/samples/applications/app-bursting-pattern/scripts/openstack/undeploy.sh ---------------------------------------------------------------------- diff --git a/samples/applications/app-bursting-pattern/scripts/openstack/undeploy.sh b/samples/applications/app-bursting-pattern/scripts/openstack/undeploy.sh new file mode 100644 index 0000000..17d8c71 --- /dev/null +++ b/samples/applications/app-bursting-pattern/scripts/openstack/undeploy.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +prgdir=`dirname "$0"` +script_path=`cd "$prgdir"; pwd` +common_folder=`cd "${script_path}/../common"; pwd` + +bash ${common_folder}/undeploy.sh http://git-wip-us.apache.org/repos/asf/stratos/blob/f2f888b7/samples/deployment-policies/deployment-policy-4.json ---------------------------------------------------------------------- diff --git a/samples/deployment-policies/deployment-policy-4.json b/samples/deployment-policies/deployment-policy-4.json index dd4ca0c..60c2952 100644 --- a/samples/deployment-policies/deployment-policy-4.json +++ b/samples/deployment-policies/deployment-policy-4.json @@ -24,6 +24,26 @@ "partitionMax": 20 } ] + }, + { + "id": "network-partition-3", + "partitionAlgo": "one-after-another", + "partitions": [ + { + "id": "partition-1", + "partitionMax": 20 + } + ] + }, + { + "id": "network-partition-4", + "partitionAlgo": "one-after-another", + "partitions": [ + { + "id": "partition-1", + "partitionMax": 20 + } + ] } ] } http://git-wip-us.apache.org/repos/asf/stratos/blob/f2f888b7/samples/network-partitions/mock/network-partition-4.json ---------------------------------------------------------------------- diff --git a/samples/network-partitions/mock/network-partition-4.json b/samples/network-partitions/mock/network-partition-4.json new file mode 100644 index 0000000..fb0cb9c --- /dev/null +++ b/samples/network-partitions/mock/network-partition-4.json @@ -0,0 +1,15 @@ +{ + "id": "network-partition-4", + "provider": "mock", + "partitions": [ + { + "id": "partition-1", + "property": [ + { + "name": "region", + "value": "default" + } + ] + } + ] +}
