models

  • 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!

  • 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.

  • Lego Bricks and Lego Instructions

    meshery models designs

    In Meshery, two key concepts play a pivotal role in managing infrastructure and deployments: Meshery Models and Meshery Designs. Understanding their difference and their similarities will greatly increase your benefit from these two powerful, systems management paradigms.