tosca_definitions_version: tosca_simple_yaml_1_0 description: > TOSCA simple profile with nodejs and mongodb. imports: - custom_types/paypalpizzastore_nodejs_app.yaml dsl_definitions: host_capabilities: &host_capabilities disk_size: 10 GB num_cpus: 1 mem_size: 4096 MB os_capabilities: &os_capabilities architecture: x86_64 type: Linux distribution: Ubuntu version: 14.04 topology_template: inputs: my_cpus: type: integer description: Number of CPUs for the server. constraints: - valid_values: [ 1, 2, 4, 8 ] default: 1 github_url: type: string description: The URL to download nodejs. default: http://github.com/paypal/rest-api-sample-app-nodejs.git node_templates: paypal_pizzastore: type: tosca.nodes.WebApplication.PayPalPizzaStore properties: github_url: { get_input: github_url } requirements: - host: nodejs - database_connection: mongo_db interfaces: Standard: configure: implementation: nodejs/config.sh inputs: github_url: http://github.com/paypal/rest-api-sample-app-nodejs.git mongodb_ip: { get_attribute: [mongo_server, private_address] } start: nodejs/start.sh nodejs: type: tosca.nodes.WebServer requirements: - host: app_server interfaces: Standard: create: nodejs/create.sh mongo_db: type: tosca.nodes.Database requirements: - host: mongo_dbms interfaces: Standard: create: mongodb/create_database.sh mongo_dbms: type: tosca.nodes.DBMS requirements: - host: mongo_server interfaces: Standard: create: mongodb/create.sh configure: implementation: mongodb/config.sh inputs: mongodb_ip: { get_attribute: [mongo_server, private_address] } start: mongodb/start.sh mongo_server: type: tosca.nodes.Compute capabilities: host: properties: *host_capabilities os: properties: *os_capabilities app_server: type: tosca.nodes.Compute capabilities: host: properties: *host_capabilities os: properties: *os_capabilities outputs: nodejs_url: description: URL for the nodejs server, http://:3000 value: { get_attribute: [app_server, private_address] } mongodb_url: description: URL for the mongodb server. value: { get_attribute: [mongo_server, private_address] }