11.2. Create an Application
Create a new application. Note that if the specified domain does not exist when attempting to create an application, a domain is automatically created. See Section 7.1, “Create a Domain” for more information on how to create a domain.
Method URL Structure POST
/broker/rest/domain/:domain_name/applications
Name Description Required Default name
Name of application Yes cartridges
Add cartridges to the application by specifying an array of one or more cartridges, using the name or unique ID No template
UUID of application template No scale
Mark application as scalable No false
gear_size
Cartridge gear size No small
initial_git_url
URL to Git source code repository that is the basis for this application No cartridges[][name]
Name of cartridge No cartridges[][gear_size]
Gear size of each individual cartridge. If gear_size
is not specified, default gear size is used depending on user input No cartridges[][url]
URL to a downloadable cartridge; multiple URLs can be specified No environment_variables
Add or update application environment variables No region
Restrict the application to the specified region No
Note
{ "name": "myapp", "cartridges": "ruby-2.0", "scale": "true", "gear_size": "small", "initial_git_url": "" }
$ curl -X POST https://openshift.redhat.com/broker/rest/domain/mydomain/applications --user user@example.com:password --data-urlencode name=myapp --data-urlencode cartridges=ruby-2.0 --data-urlencode scale=true --data-urlencode gear_size=small
gear_size
parameter is applied to all cartridges that are added to the specified application. However, the following cURL command example shows how to apply the gear_size
parameter to individual cartridges when adding multiple cartridges to an application.
$ curl -X POST https://openshift.redhat.com/broker/rest/domain/mydomain/applications --user user@example.com:password --data-urlencode name=mysecondapp --data-urlencode cartridges=[][name]=jbosseap-6 --data-urlencode cartridges[][gear_size]=medium --data-urlencode cartridges[][name]=mysql-5.5 --data-urlencode cartridges[][gear_size]=small
The API returns information about the newly created application with related resource links which have been left out for brevity. See Chapter 11, Applications for more information on all application parameters.
{ "api_version": 1.6, "data": { "aliases": [ ], "app_url": "http://myapp-mydomain.rhcloud.com/", "build_job_url": null, "building_app": null, "building_with": null, "creation_time": "2013-08-21T01:58:41Z", "domain_id": "mydomain", "embedded": { "haproxy-1.4": { } }, "framework": "ruby-2.0", "gear_count": 1, "gear_profile": "small", "git_url": "ssh://534253991015616165707776@myapp-mydomain.rhcloud.com/~/git/myapp.git/", "health_check_path": "health", "id": "534253991015616165707776", "initial_git_url": null, "members": [ { "explicit_role": null, "from": [ { "type": "domain", "role": "admin" } ], "id": "5213a826e499b22f15000001", "name": "user@example.com", "owner": true, "role": "admin", "type": "user" } ], "name": "myapp", "scalable": true, "ssh_url": "ssh://534253991015616165707776@myapp-mydomain.rhcloud.com" }, "messages": [ { "exit_code": 0, "field": null, "severity": "info", "text": "Application myapp was created." }, { "exit_code": 0, "field": null, "severity": "warning", "text": "HAProxy instance is started\n" } ], "status": "created", "supported_api_versions": [ 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7 ], "type": "application", "version": "1.7" }
Note