Skip to main content

Runtimes

Runtimes provide the context in which processing jobs are executed.

FarEarth supports these runtime "types".

Kubernetes: A language agnostic runtime which interfaces with a FarEarth Processor app, via an MQTT messaging bus

java-cmdline: A Java processing process started by the FarEarth Processor app, on the same machine as itself

java-classpath: A Java processing process started within the same JVM as the FarEarth Processor app (primarily used for testing only)

Kubernetes runtime configurations​

The default method to start executors with FarEarth are as Kubernetes containers. The example below shows such a configuration.

Communication to the containers are handled through MQTT.

The container images are retrieved from the specified container registry.

{
"id": "farearth.orion",
"type": "kubernetes",
"maxJobs": 5,
"enabledExecutors": [
"diagnostics:1.0.12",
"ndvi:1.1.22",
],
"properties": {
"clusterId": "orion",
"namespace": "ns-farearth",
"configMount": "/etc/farearth/certs/incoming:/etc/farearth/certs/incoming",
"yamlCredentialsBase64": "<insert base-64 encoded yaml credentials>",
"jobMemoryLimitGi": 15,
"jobCpuLimitMilli": 3500,
"jobDiskLimitGi": 100.0,
"registries": [
{
"baseUrl": "registry.domain.local:5000",
"secure": false,
"username": "<insert username>",
"password": "<insert password>"
}
]
}
}

Java command-line runtime configuration​

Below is an example of a Java processor that can be started by the FarEarth Processor app, as a separate process. For this runtime, the code for the Executor must be compiled into the processor app already.

{
"id": "farearth.local-cmdline",
"type": "java-cmdline",
"deactivated": true,
"enabledExecutors": [
"diagnostics:1.0.12"
],
"properties": {
"jsonPluginsFolderPath": "../../../../../farearth-plugins/src/capabilities"
}
}

Java classpath runtime configuration​

Below is an example of a Java processor running within the same JVM as the FarEarth Processor app. For this runtime, the code for the Executor must be compiled into the processor app already.

{
"id": "farearth.local-classpath",
"type": "java-classpath",
"enabledExecutors": [
"test_processor:1.0.12",
"single_to_multi:1.0.12"
],
"properties": {
"jsonPluginsFolderPath": "../../../../../farearth-plugins/src/capabilities"
}
}

The enabledExecutors specify which Executors within the JVM is enabled.