Architecture
Components
The Meshery Operator manages three core components:1. Meshery Operator Controller
A Kubernetes operator built with Kubebuilder that:- Watches
BrokerandMeshSyncCRDs - Reconciles desired state with actual state
- Manages component lifecycle
- Reports status via CRD status fields
2. Meshery Broker (NATS)
A NATS server providing pub/sub messaging:- Event distribution between MeshSync and Meshery Server
- Exposed via LoadBalancer service
- External endpoint for Meshery Server connection
3. MeshSync
Cluster discovery and synchronization agent:- Watches Kubernetes resources
- Publishes resource changes to Broker
- Configurable resource filtering (whitelist/blacklist)
Installation
Using Helm
The recommended installation method is via Helm:Using kubectl
Direct installation with manifests:Using mesheryctl
Custom Resource Definitions
Broker CRD
Defines a Meshery Broker instance:| Field | Type | Description | Default |
|---|---|---|---|
size | int32 | Number of broker replicas | 1 |
| Field | Type | Description |
|---|---|---|
conditions | []Condition | Operational status conditions |
endpoint.internal | string | Internal cluster DNS name |
endpoint.external | string | External LoadBalancer endpoint |
MeshSync CRD
Defines a MeshSync instance:| Field | Type | Description | Default |
|---|---|---|---|
size | int32 | Number of MeshSync replicas | 1 |
version | string | Meshery version | - |
broker.native.name | string | Broker CR name to use | - |
broker.native.namespace | string | Broker namespace | - |
broker.custom.url | string | External broker URL (alternative) | - |
watch-list.data.whitelist | string | JSON array of resources to watch | - |
watch-list.data.blacklist | string | JSON array of resources to ignore | - |
| Field | Type | Description |
|---|---|---|
conditions | []Condition | Operational status |
publishing-to | string | Broker endpoint in use |
Deployment Configuration
Operator Deployment
RBAC Configuration
The operator requires cluster-wide permissions:Configuration
Helm Values
Environment Variables
| Variable | Description | Default |
|---|---|---|
MESHERY_SERVER | Meshery Server URL | - |
KUBECONFIG | Path to kubeconfig | - |
ADAPTER_URLS | Comma-separated adapter URLs | - |
Verification
Check operator deployment:Troubleshooting
Operator Not Starting
Broker Not Accessible
MeshSync Not Discovering Resources
Uninstallation
Using Helm
Using kubectl
Next Steps
MeshSync
Learn about cluster discovery
Broker
Understand event streaming