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
- An installed Communication Operator on a Kubernetes cluster.
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.