-
Language:
English
-
Language:
English
11.2. Create an Application
Description
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 and URL Structure
Method | URL Structure |
---|---|
POST | /broker/rest/domain/:domain_name/applications |
Request Parameters
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
Valid cartridge options may be different based on your OpenShift Enterprise deployment.
See Section A.6, “Applications” for more information about the valid options applicable to these request parameters.
Request
{ "name": "myapp", "cartridges": "ruby-2.0", "scale": "true", "gear_size": "small", "initial_git_url": "" }
cURL Command Example
$ 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
In the previous cURL command example, the
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
JSON Response
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
An application may not be immediately available after it is created. Therefore, ensure the application DNS resolves correctly before executing other REST API calls to that application.