Skip to main content

Installation

OctoMesh uses Communication Operators to manage distributed computing resources using Kubernetes. The Communication Operators are responsible for managing the lifecycle of the Adapters, including creating, updating, and deleting Adapters.

Prerequisites

Installation of Pool

We want to install a pool named pool-documentation for tenant meshtest in the namespace pool-documentation.

Step 1: Create a Pool runtime entity

First, we need to create a pool as runtime entity in the Asset Repository. The pool runtime entity is a System.Communication/Pool object. The following example shows the pool runtime entity for the pool pool-documentation:

$schema: https://schemas.meshmakers.cloud/runtime-model.schema.json
dependencies:
- System.Communication
entities:
- rtId: 65d5c447b420da3fb12381bb
ckTypeId: System.Communication/Pool
attributes:
- id: System/Name
value: pool-documentation

This file can be imported in the Admin Panel under Communication/Pools tab or using octo-cli command line tool using command ImportRt.

Step 2: Create a namespace and secret

We need to create a secret for the connection to the message broker. The secret pattern is {TenantId}-{PoolName}-octo-mesh-connection and is stored in the namespace pool-documentation. The secret contains the username and password for the message broker. The following example shows the secret:

apiVersion: v1
kind: Secret
metadata:
name: meshtest-pool-documentation-octo-mesh-connection
namespace: pool-documentation # Namespace of the pool, must match the CommunicationPool object's namespace
type: Opaque
data:
brokerusername: ZGVtbw== # base64 encoded username for message broker
brokerpassword: ZGVtbw== # base64 encoded password for message broker

Step 3: Create a CommunicationPool

Finally, we need to create a CommunicationPool object in the namespace pool-documentation. The following example shows the CommunicationPool object for the pool pool-documentation:

apiVersion: octo-mesh.meshmakers.io/v1alpha1
kind: CommunicationPool
metadata:
name: pool-documentation # Name of the CommunicationPool, must not match spec.poolName
namespace: pool-documentation # Namespace of the pool, must match the secret's namespace
spec:
communicationControllerUri: "https://communication.domain.com" # URI of the Communication Controller
poolName: "pool-documentation" # Pool name
tenantId: "meshtest" # Tenant ID
brokerHost: "mq.domain.com" # Hostname of the message broker

After deployment of the CommunicationPool object, the Communication Operator will create the pool and connect to the defined communication controller. The pool is now ready to deploy Adapters.