#
Interfaces
#
Model Class Naming
The classes in this project follow a strict naming scheme.
#
Variable Expansion
This project contains the logic for resolving variables when deploying to a minion. The following schemes are supported.
Expansion of variables happens for launcher paths and parameter values. Additionally, all configuration files are post-processed on the target to perform the exact same expansion.
ApplicationParameterProvider
Variable Pattern: {{V:[APP:]PARAM}}
Supported Values:
APP: (optional) The name of the application to reference. If not given, the parameter is referenced within the same application as the referencing parameterPARAM: The name of the parameter
Example: {{V:MyServer:my.param.id}}
Description: Expand the value of another parameter inline into the value of this parameter.
DeploymentPathProvider
Variable Pattern: {{P:PATH_ID}}
Supported Values:
CONFIG: directory where all configuration files will be placed by deploymentBIN: directory where all binaries are placed by deploymentRUNTIME: directory with runtime data (e.d. stdout/stderr capture files)DATA: persistent data directory - the only directory shared by multiple deployments of the same instance.
Example: {{P:CONFIG}}/myFile.json
Description: Expand one of the special directories (see SpecialDirectory) know by the deployment process.
InstanceVariableResolver
Variable Pattern: {{I:VAR}}
Supported Values:
SYSTEM_PURPOSE: the purpose of the instance, seeInstancePurposeID: ID of the instanceNAME: name of the instancePRODUCT_ID: name of theMANIFESTkey's name of the configured productPRODUCT_TAG: the tag (i.e. 'version') of the configured product
Example: {{I:SYSTEM_PURPOSE}}
Description: Expand values related to the instance containing the parameter's process
ManifestRefPathProvider
Variable Pattern: {{M:MANIFEST_NAME[:TAG]}}
Supported Values:
MANIFEST_NAME: the name of the manifest to reference. The variable will expand to the installation path of that other manifest. * TAG: (optional) if given expand to the exact manifest version.
Example: {{M:openjdk/jre8}}/bin/java
Description: Expand the absolute installation path to another manifest's path on the target system.
OsConditionalProvider
Variable Pattern: {{OSNAME:VALUE}}
Supported Values:
OSNAME: eitherOperatingSystemvalue (WINDOWS,LINUX,AIX).VALUE: the target value to expand if the target OS matches theOSNAMEvalue.
Example: .../bin/java{{WINDOWS:.exe}}
Description: Insert the given VALUE if and only if the given OSNAME (see OperatingSystem) matches.
MinionConfigVariableResolver
Variable Pattern: {{H:HOSTNAME}}
Supported Values:
HOSTNAME: expands to the hostname of the target minion where the application is deployed.
Example: {{H:HOSTNAME}}
Description: Expands to target minion properties - currently only HOSTNAME is supported.