This page documents a version of Oakestra which is not the latest stable. Please refer to the latest docs for a current version.

Advanced Cluster Configurations

Root Orchestrator Environment Variables

In a complex network environment, you might want to reach your Root Orchestrator from a specific IP. You can customize the default IP by exporting the following environment variable before the Root Orchestrator installation command.

# Example configuration for root orchestrator
export SYSTEM_MANAGER_URL=192.158.18.104
oak install root

Cluster Orchestrator Environment Variables

You can customize the IP address your cluster orchestrator has to use to reach your Root Orchestrator using the following command before the cluster orchestrator installation:

# Example configuration for the cluster orchestrator
oak config set root_orchestrator_address <IP OF ROOT ORCHESTRATOR>
oak install cluster

Watch out!

The Root Orchestrator has to be reachable by the Cluster Orchestrator. When not on the same network, the Root Orchestrator URL has to be a public address!

Choose a Different Installation Version

By default, these scripts will use the latest version of Oakestra from the latest stable release. However, this can be changed by appending a specific Oakestra version for each component.

E.g.

oak install root alpha-v0.4.403 #this installs the alpha-v0.4.403 of oakestra root

Watch out!

Please make sure all the components of your Oakestra installation run on the same version!

Note

Oakestra has many features that have not yet been released. You can check out what’s in the pipeline by taking a look at some of the active branches here.

Compose Overrides

Since Oakestra uses docker-compose to build the components, we can use overrides to fine-tune our build environment.

To use the override files, specify them in a comma-separated list by setting the OVERRIDE_FILES env variable before running the installation scripts.

export OVERRIDE_FILES=override-ipv6-enabled.yml
Click to see an overview of Root Orchestrator overrides
  • override-no-addons.yml: Disable the addons engine and marketplace.
  • override-no-dashboard.yml: Do not deploy the dashboard.
  • override-no-network.yml: Exclude network components.
  • override-ipv6-enabled.yml: Enable IPv6 for container deployments.
  • override-no-observe.yml: Disable the observability stack.
Click to see an overview of Cluster Orchestrator overrides
  • override-ipv6-enabled.yml: Enable IPv6 for container deployments.
  • override-no-observe.yml: Disable the observability stack.
  • override-mosquitto-auth.yml: Enable MQTT Authentication.
  • override-no-network.yml: Exclude network components.
  • override-no-observe.yml: Disable the observability stack.

Advanced Network Configuration

If you run into a restricted network (e.g., on a cloud VM), you need to configure the firewall rules accordingly.

Root:

  • External APIs: port 10000
  • Cluster APIs: ports 10099, 10000

Cluster:

  • Worker’s Broker: port 10003
  • Worker’s APIs: port 10100

Worker:

  • P2P tunnel towards other workers: port 50103

Additionally, the NetManager component, responsible for the worker nodes’ P2P tunnel, must be configured. Therefore, follow these steps on every Worker Node:

  1. Shutdown your worker node components using
sudo worker stop
  1. Edit the NetManager configuration file /etc/netmanager/netcfg.json as follows:
{
  "NodePublicAddress": "<IP ADDRESS OF THIS DEVICE, must be reachable from the other workers>",
  "NodePublicPort": "<TUNNEL PORT, The PORT must be reachable from the other workers, use 50103 as default>",
  "ClusterUrl": "0.0.0.0",
  "ClusterMqttPort": "10003",
  "Debug": False
}

N.b. leave ClusterUrl to 0.0.0.0, this field is populated using the NodeEngine data.

  1. If necessary, you can customize the NodeEngine cluster configuration

use oak worker config cluster command to configure a custom cluster URL.

Usage:
  oak worker config cluster [url] [flags]

Flags:
  -p, --clusterPort int   Custom port of the cluster orchestrator (default 10100)
  -s, --clusterSSL        Perform cluster orchestrator handshake over HTTPS

Example:

oak worker config cluster 192.168.10.1
  1. Restart the NodeEngine
oak worker -d