#
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, seeInstancePurpose
ID
: ID of the instanceNAME
: name of the instancePRODUCT_ID
: name of theMANIFEST
key'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
: eitherOperatingSystem
value (WINDOWS
,LINUX
,AIX
).VALUE
: the target value to expand if the target OS matches theOSNAME
value.
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.