Skip to content

MeshSync one of a family of custom controllers within Meshery Operator.

License

Notifications You must be signed in to change notification settings

meshery/meshsync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Shows an illustrated light mode meshery logo in light color mode and a dark mode meshery logo dark color mode.



Docker Pulls Go Report Card Build Status Website Twitter Follow Slack CII Best Practices

MeshSync

MeshSync, an event-driven, continuous discovery and synchronization engine performs the task of ensuring that the state of configuration and status of operation of any supported Meshery platform (e.g. Kubernetes) and environment are known to Meshery Server. When deployed into Kubernetes enviroments, MeshSync runs as a Kubernetes custom controller under the control of Meshery Operator.

See MeshSync in Meshery Docs for additional information.


Could be run in two modes:

  • nats (default)
  • file

See details on input params in command help output:

meshsync --help

NATS mode

NATS mode is the default mode.

In that mode, MeshSync expects a NATS connection and outputs Kubernetes resources updates into NATS queue, which is how MeshSync runs when deployed in Kubernetes cluster in conjuction with Meshery Broker.

File mode

File mode is an option to run meshsync without dependency on nats and CRD.

In that mode meshsync outputs k8s resources updates into file in kubernetes manifest yaml format.

The result of run is two files:

  • meshery-cluster-snapshot-YYYYMMDD-00.yaml
  • meshery-cluster-snapshot-YYYYMMDD-00-extended.yaml

meshery-cluster-snapshot-YYYYMMDD-00-extended.yaml contains all events meshsync produces as output;

meshery-cluster-snapshot-YYYYMMDD-00.yaml contains a deduplicated version where each resource is presented with one entity. Deduplication is done by metadata.uid field.

Notes (on file mode)

Right now the format of the generated files is very close to kubernetes manifest yaml format, but not exactly the same.

Generated files contain metadata.labels as array while in kubernetes manifest it should be an object.

It is due to the format of KubernetesResourceObjectMeta.

kubectl apply --dry-run returns corresponding error:

kubectl apply --dry-run=client -f meshery-cluster-snapshot-YYYYMMDD-00.yaml

unable to decode "meshery-cluster-snapshot-YYYYMMDD-00.yaml": json: cannot unmarshal array into Go struct field ObjectMeta.metadata.labels of type map[string]string
 

Join the Community!

Our projects are community-built and welcome collaboration. 👍 Be sure to see the Contributor Welcome Guide and Community Handbook for a tour of resources available to you and the Repository Overview for a cursory description of repository by technology and programming language. Jump into community Slack or discussion forum to participate.

MeshMates

Find your MeshMate

MeshMates are experienced community members, who will help you learn your way around, discover live projects, and expand your community network. Connect with a Meshmate today!

Learn more about the MeshMates program.



Meshery Cloud Native Community

✔️ Join any or all of the weekly meetings on community calendar.
✔️ Watch community meeting recordings.
✔️ Fill-in a member form and gain access to community resources.
✔️ Discuss in the Community Forum.
✔️ Explore more in the Community Handbook.





     Not sure where to start? Grab an open issue with the help-wanted label.



 

Contributing

Please do! We're a warm and welcoming community of open source contributors. Please join. All types of contributions are welcome. Be sure to read the Contributor Guides for a tour of resources available to you and how to get started.