Blog

Explore all Meshery blog posts, tutorials, and updates.

  • Creating Relationships in Meshery

    relationships kanvas models

    Hey Folks đź‘‹

    Relationships in Meshery are what make it smarter by quickly connecting the necessary components to each other. This ability gives Meshery an edge in modeling and managing complex cloud native environments. Relationships aren’t just about linking things, they automate how components interact, saving time and reducing manual errors. In this post, we’ll walk through how relationships are created in Meshery and the different ways you can test them to ensure your components work together just as you expect.

    What are the different kinds of relationships?

    Meshery supports several kinds of relationships to help you model real-world connections between your cloud native components:

    • Hierarchical Relationships: These are parent-child relationships, where one component depends on another (for example, a Namespace being the parent of Pods).

    • Edge Relationships: These capture connections such as network links, storage mounts, or firewall rules between components.

    • Sibling Relationships: These describe interactions between components at the same level, like two services in the same namespace that interact or share resources.

    Each relationship type is designed to reflect how components interact, inherit features, or communicate, making it easier to visualize and automate the flow of data and control within your environment. This approach improves visibility, enhances design decisions, and enables more flexible and automated configuration management in Meshery

    How to create relationships

    Creating Relationships Using the CLI

    You can create relationships in Meshery using the mesheryctl registry generate command, which takes a spreadsheet as input and generates your models and relationships automatically. To get started, either create a copy of the Meshery integration spreadsheet and add your own entries, or download three separate CSV files named Models, Components, and Relationships with strict naming conventions. This method is ideal if you prefer working from the command line and want to manage your relationships programmatically.

    Using Google spreadsheet

       mesheryctl registry generate --spreadsheet-id "1DZHnzxYWOlJ69Oguz4LkRVTFM79kC2tuvdwizOJmeMw 
       --spreadsheet-cred "[spreadsheet-credential-file]"
    

    Using local csv files

        mesheryctl registry generate --directory <path-to-directory>
    

    Creating Relationships Using the UI

    Meshery’s UI offers a user-friendly way to create relationships as well. You can upload your CSV files directly through the interface in Kanvas or from the registry, or if you have OCI artifact files for your models, you can upload those too. This approach is great for users who prefer a visual workflow or want to quickly import and manage relationships without using CLI commands.

    Registry import option

    Kanvas Import Option

    How to test/debug relationships

    • Head to Settings and look under the Registry section. Dive into the details of your model—you’ll see a count of all the available relationships for that model.

    • Jump into Kanvas and start building out your design. Add components and check if your intended relationships are working as expected.

    • Try creating an edge relationship between components, then see if those components update or interact as you planned after the relationship is set up.

    • Open the configuration for any component, and in the Relationship section, you’ll find a summary showing the number of existing and active relationships for that specific component.

    • Review the evaluation history generated while you’re building designs—this log gives you insight into how your relationships are being applied and whether they’re functioning as intended.

    • Use the Layers button in Kanvas to get a visual overview: it displays all components, as well as both active and available relationships in your current design.

    • From the Layers panel, you can also toggle relationships on and off, making it easy to see how changes affect your architecture in real time.

    Use these checks to quickly determine if your relationships in Meshery are functioning as intended or need adjustments. This will ensure that your Meshery designs behave as expected and relationships between components are accurately established

    Troubleshooting Common Relationship Issues in Meshery

    Parent-Child (Hierarchical) Relationship Not Working?

    Double-check that your parent component’s schema includes the genealogy property set to parent. Without this, Meshery won’t recognize the component as a valid parent in the hierarchy.

    Edge Relationship Not Behaving as Expected?

    Make sure you’ve correctly set the mutatedRef and mutatorRef in your component implementation. The mutatedRef is the placeholder where values from the mutatorRef path will appear after the relationship is established.

    Verify Relationship Paths

    Check that the paths you’ve specified under both mutatedRef and mutatorRef are accurate and match the intended configuration fields in your components. Incorrect paths can prevent relationships from being properly formed or updated.

    General Debugging Tip

    If you’re still running into issues, review your model and relationship definitions for typos or missing fields, and check Meshery’s evaluation history logs or UI feedback for more specific messages.

    Need more information

    Refer to our docs section for more details:

    Get started with the Contributor’s Guide

    Refer to User Guide

    Contribute and Collaborate with Meshery

    Meshery thrives because of its active, welcoming community, and everyone is encouraged to get involved. Check out our existing models, pick one that interests you, and showcase your skills by creating new relationships, every contribution helps Meshery grow and evolve. Whether you’re just exploring or ready to dive in, your participation makes a real difference, so jump in and let’s build something great together

    Explore, create, and contribute together, let’s make Meshery more effective!

  • Improving Meshery UI's E2E Tests

    playwright e2e-testing contributors

    Hey Meshery Contributors đź‘‹

  • Meshery Reaches 7,000 Stars

    community milestones

    “Growth is never by mere chance; it is the result of forces working together.”
    – James Cash Penney

  • Meshery to Participate in Security Slam

    kubecon events security

    We’re thrilled to announce that Meshery has been selected as one of four CNCF projects to take part in the Security Slam at KubeCon EU 2025! This is a fantastic opportunity for the Meshery community to come together and make significant strides in enhancing the security of our project.

  • Meshery v0.8.0

    releases announcements milestones

    We’re thrilled to unveil Meshery v0.8.0! This release marks a significant milestone in Meshery’s journey, introducing powerful features and enhancements that streamline cloud native infrastructure management. Since the release of v0.7.0, we’ve been busy building a more robust, extensible, and user-friendly platform. Here’s a glimpse of what’s new: We are excited to announce the release of Meshery v0.8.0! This release includes a number of new features and improvements.

  • Share Your Meshery Models

    meshery mesheryctl models

    Participating in the Meshery Catalog is an excellent opportunity to enhance and share your cloud native configurations with the community. By contributing your models and patterns, you not only showcase your work but also empower others to leverage your innovations. This guide provides a defined approach to using mesheryctl for uploading your models and patterns to the Catalog, ensuring a smooth and efficient contribution process.