Ruk-Com PaaS Documentation

Build, deploy and operate applications on the platform.

RUK-COM PAAS / DEVELOPMENT TOOLS

CreateEnv Parameters

This guide is maintained for Ruk-Com PaaS. Screens and options may vary by platform version and account permissions.

Confirm the environment, region and account permissions, and back up current settings before changing a production system.

Creation of a new environment at the platform can be automated in a variety of different ways, e.g., with the help of platform CLI, through the direct API request or by declaring the appropriate parameters via JPS manifest. Herewith, though representing a rather simple operation, it can include a bunch of different parameters for the precise topology definition.

Thus, below we provide the description for all of such settings with the examples on their usage via CLI. They are divided into 3 major sections as arrays of the ~/Ruk-Com PaaS/environment/control/createenvironment method, being named according to the appropriate arrays’ denominations - two common ones and listing of the specialized parameters for the Docker containers’ creation:

Common Environment Configurations

The parameters below are to be specified within the env array (of either CLI command or JSON file) and define the most common environment configurations, like programming language, name, region and others:

Name Description Type Example Value Mandatory
region Environment region string Name of the required region - depends on hosting service provider settings. no
ishaenabled High Availability boolean true, false Note: Applicable only for Tomcat 6/7, Jetty6, TomEE, GlassFish3 no
engine Programming language version string java6, java7, java8, php5.3, php5.4, php5.5, etc. yes (except of Docker-based environments)
displayName Environment alias string my-env-alias no
sslstate Built-In SSL boolean true, false no
shortdomain Name for the environment to be created string my-cli-env yes

Example:

Copy

env '{"region": "default_hn_group", "ishaenabled": "false", "engine": "java7", "displayName": "my-env-alias", "sslstate": "true", "shortdomain": "my-cli-env"}'

Nodes Configurations

Within the nodes section, more subtle adjustment can be set to define the comprised servers’ parameters, like their type, amount, number of allocated reserved/dynamic cloudlets and more:

Name Description Type Example Value Mandatory
extip Public IP boolean true, false no
count Number of nodes integer 1, 2, 3, … no
fixedCloudlets Number of fixed cloudlets integer 1, 2, 3, … yes
flexibleCloudlets Number of flexible cloudlets integer 1, 2, 3, … but can not be less than fixedCloudlets yes
displayName Node’s alias name string my-node-alias no
nodeType Type of the stack string docker, tomcat6, tomcat7, tomee, mysql5, apache2, nginxphp, etc. (see the full list of available values here) yes
docker List of Docker container settings array check the corresponding section below only for dockernodeType

Example:

Copy

nodes '[{"extip": "true", "count": "2", "fixedCloudlets": "16", "flexibleCloudlets": "32", "displayName": "my-node-alias", "nodeType": "docker", "docker": {...}}]'

Docker-Based Environment Configurations

The docker subsection is intended to state the specialized Docker container parameters, required for its deployment.

Name Description Type Example Value Mandatory
cmd Run command configuration string run.sh no
image Docker image name with a tag version (optionally) string ubuntu, tutum/apache-php, Ruk-Com PaaS/tomcat8:latest, etc. yes
nodeGroup Environment layer the image should be placed to string cp - application server bl - load balancer nosqldb - noSQL database sqldb - SQl database cache - cache node storage - storage node no (if not specified, an image will be added to the Extra layer)
links Linking parameters array described within the expandable list below no
env The list of environment variables object described within the expandable list below no
registry Credentials for the private registry array described within the expandable list below no
volumes List of local volumes array described within the expandable list below no
volumeMounts List of mounted data directories array described within the expandable list below no
volumesFrom List of nodes to copy the volume settings from array described within the expandable list below no

Example:

Copy

"docker": {"cmd": "run.sh", "image": "jelastic/tomcat8:latest", "nodeGroup": "cp", "links": [...], "env": {...}, "registry": {...}, "volumes": [...], "volumeMounts": {...}, "volumesFrom": [{...}]}
  • linking configuration - for establishing connection between Docker containers in confines of a single environment| Name | Description | Type | Example Value | Mandatory | | --- | --- | --- | --- | --- | | - | defines the layer/node the current instance should be linked with and sets an alias for this bundle | string | sqldb:DB, cp:alias | no |

Example:

Copy ```text "links": ["cp:alias", "sqldb:DB"]

*   environment variables configuration - for stating environment variables in Docker containers| Name | Description | Type | Example Value | Mandatory |
| --- | --- | --- | --- | --- |
| _custom\_variable\_name_ | Sets the environment variables | string | _var1 value1_ (the entire string after first space will be treated as the value, including spaces and quotes) _var2=value1 \value2 \value3_ (for setting multiple values at a time, i.e., to create an array; here, quotes and backslashes are used as separators) | no |

Example:

Copy ```text
"env": {"var1": "value1", "var2": "value1 \value2 \value3"}
  • registry configuration - for connection to private registry| Name | Description | Type | Example Value | Mandatory | | --- | --- | --- | --- | --- | | password | Password to a private registry | string | passw0rd | only if you are using private registry | | user | Name of the user of a private registry | string | admin | only if you are using private registry | | url | URL to a private registry | string | http://example.com/private-registry | only if you are using private registry |

Example:

Copy ```text "registry": {"password": "passw0rd", "user": "admin", "url": "http://example.com/private-registry"}

*   local volumes - list of volumes to be created within local file system of Docker container| Name | Description | Type | Example Value | Mandatory |
| --- | --- | --- | --- | --- |
| custom_path | Local volume path | string | _/my\_custom\_volume_ | no |

Example:

Copy ```text
"volumes": ["/volume1", "/volume2", "/volume3"]
  • mount points - set of parameters that define folder(s) with required data to be attached from other servers| Name | Description | Type | Example Value | Mandatory | | --- | --- | --- | --- | --- | | local_path | Local path the mounted data will refer to | array | /mounted_data | yes | | sourcePath | Path to the required data directory on the remote server | string | /required_data if not defined, is stated equal to local_path (for remote storage server) | no | | sourceNodeId | Node ID of storage container | integer | 459315 | yes in case neither sourceNodeGroup, nor sourceHost is specified | | sourceNodeGroup | Particular environment layer within current environment | string | cp - application server bl - load balancer nosqldb - noSQL database sqldb - SQl database cache - cache node storage - storage node | yes in case neither sourceNodeId, nor sourceHost is specified | | sourceHost | Public IP or domain of the external Data Storage server | string | 195.67.231.39 | yes in case neither sourceNodeGroup, nor sourceNodeId is specified | | readOnly | Defines read only or read & write rights for client node | boolean | true is false by default | no |

Example:

Copy ```text "volumeMaunts": {"/data": {"sourcePath": "/exported", "sourceNodeId": "693215", "readOnly": "true"}}

*   account volumes - list of nodes at the current account for the volumes to be imported from| Name | Description | Type | Example Value | Mandatory |
| --- | --- | --- | --- | --- |
| sourceNodeId | ID of storage container | integer | _81725_ | yes, if _**sourceNodeGroup**_ is not specified |
| sourceNodeGroup | Particular environment layer within current environment | string | _cp_ - application server _bl_ - load balancer _nosqldb_ - noSQL database _sqldb_ - SQl database _cache_ - cache node _storage_ - storage node | yes, if _**sourceNodeId**_ is not specified |
| volumes | List of volumes to export | string | _/volume_ If not specified, all volumes on a node will be exported | no |
| readOnly | Defines _read only_ or _read & write_ rights for client node | boolean | _true_(states in _false_ by default) | no |

Example:

Copy ```text
"volumesFrom": [{"sourceNodeGroup": "cp", "volumes": ["/master", "/local"], "readOnly": "true"}]