Application Type - Generic
Generic type means that you can run any process in operating system you want. You just need to provide command that can be executed. Additionally it is required to provide commands to stop and terminate the process. It can be a script, command or any other option in operating system. It is possible also to add aditional commands that you can execute over API remotly.
Example configuration
app:
name: 'python-app'
version: '1.0.0'
appType: 'standard'
procType: 'native'
processProvider:
name: 'GenericOsProcessProviderImpl'
version: '1.0.0'
executable:
start:
command: 'python3 ${ont_app_path}/bin/main.py --port ${ont_port_1} --log_dir ${ont_app_logs_path}'
cpus: null
memory: null
successLine: 'Application started.'
before: []
after: []
path: null
getPid: null
pidFilePath: null
stop:
command: "pkill -SIGTERM -F ${ont_log_path}/ONTEON_PID"
terminate:
command: "pkill -SIGKILL -F ${ont_log_path}/ONTEON_PID"
custom_command_name:
command: "./run_my_custom_command"
placeHolder:
name: 'PlaceHolderManagerImpl'
version: '1.0.0'
filesToReplace: []
variables: {}
serviceRepository:
healthCheckUrl: 'http://${address}:${ont_port_1}'
entities:
- entity:
priority: 1
port: ${ont_port_1}
protocol:
type: 'HTTP'
version: '1.1'
isExternal: true
isInternal: true
Configuration keys
app.name
Name of application.
app:
name: 'application-name'
app.version
Version of application.
app:
version: '1.0.0'
app.type
Application type. It should be set to standard
.
Possible values:
- standard - Standard application.
- embedded - Application used for internal purposes, such as edge balancer.
- unknown - Unknown application.
app:
appType: 'standard'
app.procType
Process type. It should be set to native
.
Possible values:
- native - Native application.
- docker - Docker application.
- unknown - Unknown application.
app:
procType: 'native'
app.processProvider.name
Name of process provider. It should be set to GenericOsProcessProviderImpl
.
Possible values:
- GenericOsProcessProviderImpl - for native processes.
- JVMOsProcessProviderImpl - for native JVM processes.
- DockerOsProcessProviderImpl - for docker processes.
app:
processProvider:
name: 'GenericOsProcessProviderImpl'
app.processProvider.version
Version of process provider. It should be set to 1.0.0
.
app:
processProvider:
version: '1.0.0'
app.processProvider.version.executable.(action).command
Command that executes specific action.
app:
processProvider:
executable:
start:
command: '${ont_app_path}/bin/bin/start.sh --port ${ont_port_1}'
app.processProvider.version.executable.start.successLine
Log line that will determine that the application has started. If you do not specify success line, Onteon node will wait 90 seconds. Wait time can be changed here.
app:
processProvider:
executable:
start:
successLine: 'Application started...'
app.processProvider.version.executable.start.cpus
CPUs limit for process.
app:
processProvider:
executable:
start:
cpus: null
app.processProvider.version.executable.start.memory
Memory limit for process.
app:
processProvider:
executable:
start:
memory: null
app.processProvider.version.executable.start.before
List of actions (defined on executable list) to run before running start command.
app:
processProvider:
executable:
start:
before: []
app.processProvider.version.executable.start.after
List of actions (defined on executable list) to run after running start command.
app:
processProvider:
executable:
start:
after: []
app.processProvider.version.executable.start.path
Path to directory with executable.
app:
processProvider:
executable:
start:
memory: null
path: null
app.processProvider.version.executable.start.getPid
Command to retrieve application's process ID.
app:
processProvider:
executable:
start:
getPid: null
app.processProvider.version.executable.start.pidFilePath
Path to file that contains application's process ID.
app:
processProvider:
executable:
start:
pidFilePath: null
app.placeHolder.name
Placeholder name.
app:
placeHolder:
name: 'PlaceHolderManagerImpl'
app.placeHolder.version
Placeholder version.
app:
placeHolder:
version: '1.0.0'
app.placeHolder.filesToReplace
List of files that will have placeholder replaced.
app:
placeHolder:
filesToReplace: []
app.placeHolder.variables
Placeholders variables in key-value format.
app:
placeHolder:
variables: {}
app.serviceRepository.healthCheckUrl
Url that will determine if application is alive.
app:
serviceRepository:
healthCheckUrl: 'http://${address}:${ont_port_1}/isAlive/'
app.serviceRepository.entities
List of service repository entities.
app:
serviceRepository:
entities:
- entity:
priority: 1
port: ${ont_port_1} # entity port
protocol:
type: 'HTTP' # entity protocol
version: '1.1' # entity protocol version
isExternal: true # if true, application will be available in edge balancer
isInternal: true # if true, application will be available in inner balancer