MTA Module Types, Resource Types, and Parameters for Applications in the Cloud Foundry Environment

This section contains information about the supported MTA modules, their default parameters, properties, and supported resource types available in the Cloud Foundry environment.

MTA Module Types

Modify the following MTA module types by providing specific properties or parameters in the MTA deployment descriptor (mtad.yaml).

MTA Default Modules Types

Module Type

Module Parameters (Default Value of Parameter) and Description Module Properties Result
javascript.nodejs None None Automatic buildpack detection
nodejs buildpack(nodejs_buildpack) None Node.js runtime
custom None None Automatic buildpack detection
application None None Automatic buildpack detection
java buildpack (sap_java_buildpack) None Automatic runtime detection by sap_java_buildpack
java.tomcat buildpack (sap_java_buildpack) TARGET_RUNTIME (tomcat) Tomcat runtime of sap_java_buildpack
java.tomee buildpack (sap_java_buildpack) TARGET_RUNTIME (tomee) TomEE runtime of sap_java_buildpack
com.sap.xs.hdi
  • no-route (true)

    Do not assign a route to the application.

  • memory (256MB)
  • health-check-type - (none)
  • execute-app (true)

    After start and upon completion, application sets [success | failure]-marker in a log message.

  • success-marker (deploy: done)
  • failure-marker (deploy: failed)
  • check-deploy-id (true)

    Check the deployment (process) ID when checking the application execution status

  • dependency-type (hard)

    In circular module-dependencies, deploy modules with dependency type “hard” first

None HDI content activation
com.sap.xs.hdi-dynamic buildpack(nodejs_buildpack) None Node.js runtime
com.sap.portal.site-content
  • no-route ( true)

    Do not assign a route to the application

  • memory (256MB
  • health-check-type - (none)
  • execute-app - true

    After start and upon completion, the application sets the [success | failure]-marker in a log message

  • success-marker - (deploy: done)
  • failure-marker (deploy: failed)
  • check-deploy-id - (true)

    Check the deployment (process) ID when checking the application execution status

  • dependency-type - (hard)

    In circular module-dependencies, deploy modules with dependency type “hard” first

None HDI content activation
com.sap.application.content

Required dependency parameters:

  • content-target(false)

    Specify that the resource would be used as a target for the module content deployment.

None Direct content deployment in the SAP provided services
com.sap.html5.application-content
  • no-route (true). Defines if a route should be assigned to the application.
  • memory (256M). Defines the memory allocated to the application.
  • execute-app - (true). Defines whether the application is executed. If yes, the application performs certain amount of work and upon completion sets a success-marker or failure-marker by means of a log message.
  • success-marker (STDOUT:The deployment of html5 application content done.*)
  • failure-marker(STDERR:The deployment of html5 application content failed.*)
  • stop-app (true). Defines if the application should be stopped after execution.
  • check-deploy-id (true) - Defines if the deployment (process) ID should also be checked when checking the application execution status.
  • dependency-type(hard). Defines if this module should be deployed first, if it takes part in circular module dependency cycles. If hard means that this module is deployed first.
  • health-check-type(none). Defines if the module should be monitored for availability.
None Deploys the Business Logging for configuring text resources
business-logging None Deploys the Business Logging for configuring text resources
staticfile buildpack (staticfile_buildpack) None Static file runtime
ruby buildpack(ruby_buildpack) None Ruby runtime
go buildpack(go_buildpack) None Go runtime
python buildpack(python_buildpack) None Python runtime
php buildpack(php_buildpack) None PHP runtime
binary buildpack(binary_buildpack) None Binary runtime
dotnet_core buildpack(dotnet_core_buildpack) None Dotnet runtime
To choose a binary_buildpack, define it by using the following:

MTA Resource Types

Default Resource Types

Modify the default MTA resource types by providing specific properties or parameters in the MTA deployment descriptor.

MTA Default Resource Types and Mapped Services
Resource Type Service Service Plan Created Service
com.sap.xs.hana-sbss hana sbss Service-broker security
com.sap.xs.hana-schema hana schema Plain schema
com.sap.xs.hana-securestore hana securestore SAP HANA secure store

com.sap.xs.hdi-container

hana hdi-shared HDI container
com.sap.xs.managed-hdi-container managed-hana hdi-shared Managed HDI container
com.sap.xs.managed-hana-schema managed-hana schema Managed plain schema
com.sap.xs.managed-hana-securestore managed-hana securestore Managed SAP HANA secure store
com.sap.xs.jobscheduler jobscheduler lite Job Scheduler
com.sap.xs.uaa xsuaa applicaton Application UAA
com.sap.xs.fs fs-storage lite File-system storage
com.sap.xs.uaa-application xsuaa application Application UAA
com.sap.xs.uaa-devuser xsuaa application Application UAA
com.sap.xs.uaa-broker xsuaa broker Broker UAA
com.sap.xs.uaa-space xsuaa application Application UAA
com.sap.xs.application-logs application-logs lite Streams logs of bound applications to a central application logging stack
com.sap.portal.site-content portal-services site-content Portal services
com.sap.portal.site-host portal-services site-host Portal services
com.sap.xs.auditlog auditlog standard Audit log service
auditlog auditlog standard Audit log service
autoscaler autoscaler lite Automatically increase or decrease the number of application instances based on a policy you define.
application-logs application-logs lite Streams logs of bound applications to a central application logging stack
connectivity connectivity lite Establishes a secure and reliable connectivity between cloud applications and on-premise systems
destination destination lite Provides a secure and a reliable access to destination configurations
feature-flags feature-flags lite Feature Flags service for controlling feature rollout
ml-foundation-services ml-foundation-services lite
objectstore objectstore s3-standard Highly available and distributed consistent object store
org.mongodb mongodb v3.0-container MongoDB document-oriented database system.
mongodb mongodb v3.0-container MongoDB document-oriented database system
org.postgresql postgresql v9.4-container PostgreSQL object-relational database system
postgresql postgresql v9.4-container PostgreSQL object-relational database system
com.rabbitmq rabbitmq v3.6-container RabbitMQ messaging
rabbitmq rabbitmq v3.6-container RabbitMQ messaging
io.redis redis v3.0-container Redis in-memory data structure store
redis redis v3.0-container Redis in-memory data structure store

Special Resource Types

  • org.cloudfoundry.managed-service
    To choose a managed service and/or service plan that is not listed in the table above, you define it using the org.cloudfoundry.managed-service resource type with the following parameters:
    • service

      Required. Name of the service to create.
    • service-plan

      Required. Name of the service to create.
    For example:
  • org.cloudfoundry.existing-service
    То аssume that the named service exists, but to not manage its lifecycle, you define the service name by using the org.cloudfoundry.managed-service resource type with the following parameters:
    • service-name

      Optional. Service instance name. Default value is the resource name.
  • org.cloudfoundry.existing-service-key

    Existing service keys can be modeled as a resource of type org.cloudfoundry.existing-service-key, which checks and uses their credentials. For more information, see Service Keys.

  • org.cloudfoundry.user-provided-service

    Create or update a user-provided service configured with the following resource parameters:

    • service-name

      Optional. Name of the service to create. Default value is the resource name.
    • configRequired. Map value, containing the service creation configuration, for example, url and user credentials (user and password)
  • configuration

    For more information, see Cross-MTA Dependencies.

Parameters

Module, resource, and dependency parameters have platform-specific semantics. To reference a parameter value, use the placeholder notation ${<parameter>}, for example, ${default-host}.

The following parameters are supported:

MTA Development and Deployment Parameters
Parameter Scope Read-Only (System) Description Default Value Example
app-name modules The name of the application in the Cloud Foundry environment to be deployed for this module, based on the module name The module name with or without a name-space prefix

node-hello-world

com.sap.xs2.samples.xsjshelloworld.node-hello-world

authorization-url All Yes The authorization URL as specified in the cloud controller's /v2/info endpoint. n/a https://login.cf.sap.hana.ondemand.com

https://localhost:30032/uaa-security

buildpack modules The name or the URL of a custom buildpack required by the application Empty, or as specified in the deploy service configuration buildpack: git://github.acme.com/xs2-java/xs2javabuildpack
command modules A custom command required to start the application Empty, or as specified in the deploy service configuration command: node index.js
controller-url All Yes The URL of the cloud controller n/a https://api.cf.sap.hana.ondemand.com

https://localhost:30030

create-service-broker modules Yes Specifies whether [true|false] a service broker should be registered for the application module; default value is: false create-service-broker: true
default-container-name resources Yes Default value for the container-name parameter that is used during HDI creation. It is based on the organization, space and service name, which are combined in a way that conforms to the container-name restrictions for length and legal characters. n/a INITIAL_INITIAL_SERVICE_NAME
default-domain All Yes The default domain (configured in the Cloud Foundry environment) n/a accra6024

cfapps.acme.com

default-host modules Yes The default host name, composed based on the target platform name and the module name, which ensures uniqueness. Used with host-based routing to compose the default URI, see below n/a trial-a007007-node-hello-world
default-uri modules Yes The default URI, composed as ${host}.${domain} (host-based routing). Note that ${host} will be the same as ${default-host}, unless specified explicitly as a parameter. Similarly, ${domain} will be the same as ${default-domain}, unless specified explicitly n/a trial-a007007-node-hello-world.cfapps.acme.ondemand.com
default-url modules Yes The default URL, composed as ${protocol}://${default-uri}. Note that the ${default-uri} placeholder will be resolved as ${host}.${domain} (host-based routing) n/a ${protocol}://${default-uri}
default-xsappname resources Yes Default value for the xsappname parameter that is used during UAA creation. It is based on the service name, which is modified in a way that conforms to the xsappname restrictions for length and legal characters. n/a xs_-deploy-service-database (if the service name is xs@-deploy-service-database
dependency-type modules Deployment order of modules with circular dependencies soft dependency-type: hard

dependency-type: soft

deploy-url All Yes The deploy service URL for the Cloud Foundry environment n/a
disk-quota modules The disk space that will be available to the application. This parameter requires a unit of measurement M, MB, G, or GB in upper or lower case. 1, or as specified in module-type disk-quota: 1G
docker modules Write

Creates a module from a docker image. When using a docker image parameter, we do not need to specify the module in the MANIFEST.mf file. An image parameter is a docker image from the Docker Hub or somewhere else. The username and the password are optional, but if a Docker image from a private repository is uploaded, then they are mandatory.

When uploading a docker image, the content of a module is not needed.

n/a
domain modules The domain on which the application will be available later ${default-domain} domain: ${default-domain}.acme.com
domains modules The domains on which the application will be available later. The resulting application routes will be the Cartesian product of the domains and hosts. That is, a separate route for each host is constructed on each domain. domains: - ${default} domains: - ${default-domain}.acme.com - test-${default-domain}.acme.com
enable-ssh modules Enables use of SSH within an application. Supported for the Diego container runtime environment only. n/a "enable-ssh": true

"enable-ssh": false

env-var-name required dependency Write Used when consuming an existing service key. Specifies the name of the environment variable that will contain the service key's credentials. See Consumption of existing service keys for more information. The name of the service key. env-var-name: SERVICE_KEY_CREDENTIALS
generated-password All Yes n/a IG@zGg#2g-cvMvsW
generated-user All Yes A generated user id that is composed of 16 characters that may contain upper and lower case letters, digits and special characters (_, -, @, $, &, #, *). n/a uYi$d41TzM1-Dm6f
health-check-http-endpoint modules If the health-check-type parameter is set to http, the controller will do a GET request to this endpoint. The application will be considered as healthy if the response is 200 OK. If health-check-type is set to http, the default value is /, otherwise there is no default value health-check-type: ht

health-check-http-endpoint: /health

health-check-timeout modules The application health check timeout in seconds n/a health-check-timeout:120
upload-timeout modules The application upload timeout in seconds. 3600 upload-timeout: 1800
health-check-type modules The application health check type http health-check-type: port

health-check-type: http

health-check-type: process

host modules The hostname or subdomain where an application is available later ${default-host} host: ${space}-node-hello-world
hosts modules The hostnames or subdomain where an application is available later hosts: - ${host} hosts: - ${space}-node-hello-world - test-${space}-node-hello-world
instances modules The number of application instances that will be started during the deployment 1, or as specified in module-type instances: 2
keep-existing modules Defines the application attributes which will be kept after the deployment or blue-green deployment has finished. The supported attributes which could be kept are application environment, application bindings and application routes. If not specified, the default values are false, which indicates that each application attribute will be updated with the new values presented in the deployment descriptor false
keep-existing-routes Global, modules Write

When specified on module level, it indicates if the existing routes of the module's corresponding application should be kept even if they are not defined within the deployment and/or extension descriptors.

When specified on global level, under the parameters section of the descriptor, it indicates if the existing routes of all applications within that MTA should be kept.

false
memory modules The memory limit for all instances of an application. This parameter requires a unit of measurement M, MB, G, or GB in upper or lower case. 256M, or as specified in module-type memory: 128M
no-route modules Write Configures the deployer to create or skip the creation of a route for the application described by the module false no-route: true
no-start modules

Start/do not start the application during deployment.

If you explicitly set the no-start to false for the module foo in the example provided, then the module foo is started on deployment, even if you also specify the command-line option --no-start with the cf deploy command.

Depends on the command line option --no-start no-stsart: true
org All Yes Name of the target organization The current name of the target organization initial, trial
protocol All Yes The protocol used by the Cloud Foundry environment, for example: “http” or “https” n/a http, https
restart-on-env-change modules Write

Specifies whether an application should be restarted if an environment variable has been changed in one of the following categories:

  • vcap-application
  • vcap-services
  • user-provided
routes modules

A parameter that lists multiple HTTP routes.

It is a combination of the old parameters host, domain, port and route-path, which encompasses the full addresses to which to bind a module.

In case the new routes parameter and the old ones are available, the routes value is used and the values of the old parameters are ignored. Each route for the application is created if it does not already exist.

${default-uri}
route-path modules Yes The context “route-path” which is part of the application default URI. Context path routing is routing based not only on domain names (host header) but also the path specified in the URL n/a route-path: /myapp
service resources The type of the created service Empty, or as specified in resource-type service: hana
service-alternatives resources List of alternatives of a default service offering, defined in the deploy service configuration. If a default service offering does not exist for the current org/space or creating a service to it fails (with a specific error), service alternatives are used. The order of service alternatives is considered. Empty, or as specified in in the deploy service configuration (resource-type)

For Coud Foundry Trial, “hanatrial” is available instead of “hana”.

service-alternatives: [“hanatrial”]

service-broker-name modules Yes The name of the service broker in the Cloud Foundry environment to be created and registered for the specified application module ${app-name}

service-broker-name: jobscheduler

service-broker-name: ${app-name}

service-broker-password modules Yes The password used for authentication by the XS controller at the service broker when performing service-related requests. The parameter is mandatory if create-service-broker: true. service-broker-password: ${generated-password}
service-broker-space-scoped modules No Makes the service plans of the broker visible only within the targeted space. false service-broker-space-scoped: true
service-broker-url modules Yes Specifies the value of the service broker universal resource locator (URL) to register; service requests are sent to this URL. The parameter is mandatory if create-service-broker: true. service-broker-url: ${default-url}
service-broker-user modules Yes The name of the user required for authentication by the XS controller at the service broker when performing service-related requests. The parameter is mandatory if create-service-broker: true. service-broker-user: ${generated-user}
service-key-name resources Write Used when consuming an existing service key. Specifies the name of the service key. See Consumption of existing service keys for more information. The name of the resource. service-key-name: my-service-key
service-name resources Yes The name of the service in the Cloud Foundry environment to be created for this resource, based on the resource name with or without a name-space prefix The resource name with or without a name-space prefix nodejs-hdi-container

com.sap.xs2.samples.xsjshelloworld.nodejs-hdi-container

service-plan resources The plan of the created service Empty, or as specified in resource-type service-plan: hdi-shared
service-tags resources Write Some services employ a list of custom tags, which provide an easier way for applications to parse <VCA_PSERVICES> for credentials. You can provide custom tags when creating a service instance. For more information, see Service Tags. n/a
resources: 
  - name: nodejs-uaa 
    type: com.sap.xs.uaa 
    parameters: 
      service-tags: ["custom-tag-A", "custom-tag-B"] 
siteId resources A globally unique ID (GUID) for your Fiori LaunchPad site siteId=4c736e0c-a096-45f1-9ae5-a613eb24b2b9
space All Yes Name of the target organizational space n/a initial, a007007
stack modules Read/Write Use this parameter to define which prebuilt root file system (rootfs) you want to use. n/a
tasks modules Yes Specify tasks, which are available for execution in the current droplet of the application. Also provide use of environment variables which are specified with the env scope. n/a
tasks: 
 - name: task-1 
command: some-script.sh 
env: 
  env1: value1 
  env2: value2 
tcp modules Specifies whether the application should have TCP type routes. false tcp:true
tcps modules Specifies whether the application should have TCPS type routes. false tcps:true
timestamp modules Yes Current timestamp in milliseconds n/a
user All Yes Name of the current user n/a
visibility provided dependency Write Specifies the organizations and spaces in which public provided dependencies are visible. See Visibility of cross-MTA configuration for more information.

In all spaces of the current organization.

visibility:
  - org: ${org}
    space: "*"
visibility:
  - org: foo
    space: "*"
  - org: bar
    space: "*"
  - org: baz
    space: qux
xs-type All Yes The XS type, Cloud Foundry or XS advanced. n/a CF, XSA
zdm-mode modules Read/Write Parameter value of the com.sap.xs.hdi module type that if set to true, runs the deployment in a ZDM mode. n/a zdm-mode: true