https://github.com/meshery-extensions/helm-kanvas-snapshot
https://github.com/meshery-extensions/helm-kanvas-snapshot
architecture-diagram cncf cncf-shapes helm kanvas kubernetes layer5 meshery solution-architecture topology
Last synced: 6 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/meshery-extensions/helm-kanvas-snapshot
- Owner: meshery-extensions
- License: apache-2.0
- Created: 2024-09-25T13:49:10.000Z (7 months ago)
- Default Branch: master
- Last Pushed: 2025-04-14T17:43:47.000Z (19 days ago)
- Last Synced: 2025-04-14T18:44:51.632Z (19 days ago)
- Topics: architecture-diagram, cncf, cncf-shapes, helm, kanvas, kubernetes, layer5, meshery, solution-architecture, topology
- Language: Go
- Size: 131 MB
- Stars: 27
- Watchers: 7
- Forks: 17
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: .github/security-insights.yml
- Governance: GOVERNANCE.md
- Roadmap: ROADMAP.md
Awesome Lists containing this project
- awesome-cloud-native - helm-kanvas-snapshot - A Plugin that generates a visual snapshot of Helm charts. (Application Delivery)
README
# Meshery Extension: Kanvas Snapshot Helm Plugin
[Meshery Extensions](https://meshery.io/extension) are plugins or add-ons that enhance the functionality of the Meshery platform beyond its core capabilities. Meshery supports different types of extensions ([docs](https://docs.meshery.io/extensions/)):
- [Adapters](https://docs.meshery.io/concepts/architecture/adapters): Adapters allow Meshery to interface with the different cloud native infrastructure.
- [Load Generators](https://docs.meshery.io/extensibility/load-generators): for performance characterization and benchmarking
- [Integrations](https://docs.meshery.io/extensibility/integrations): model-based support for a broad variety of design and orchestration of cloud and cloud native platforms, tools, and technologies.
- [Providers](https://docs.meshery.io/extensibility/providers): for connecting to different cloud providers and infrastructure platforms
- [UI Plugins](https://docs.meshery.io/extensibility/ui): Meshery UI has a number of extension points that allow users to customize their experience with third-party plugins.**Table of Contents**
- [Meshery Extension: Kanvas Snapshot Helm Plugin](#meshery-extension-kanvas-snapshot-helm-plugin)
- [Extension Overview](#extension-overview)
- [Features](#features)
- [Installation and Use](#installation-and-use)
- [Prerequisites](#prerequisites)
- [Usage](#usage)
- [Contributing](#contributing)
- [Join the Meshery community!](#join-the-meshery-community)
- [Contributing](#contributing-1)
- [Show Your Support](#show-your-support)
- [License](#license)## Extension Overview
The **Kanvas Snapshot Helm Plugin** allows users to generate a visual snapshot of their Helm charts directly from the command line. It simplifies the process of creating Meshery Snapshots, providing a visual representation of packaged Helm charts. This plugin integrates with Meshery Cloud and GitHub Actions to automate the workflow of snapshot creation, which is especially useful for Helm users who need to quickly visualize their chart configurations.
Helm charts can be complex, especially when custom configurations are applied via `values.yaml` files. This Meshery extension bridges the gap between Helm chart configurations and their visual representation by converting Helm charts into **Kanvas Snapshots**. These snapshots can be received either via email or as a URL displayed directly in the terminal.
### Features
1. **Snapshot Generation:** Create visual snapshots of Helm charts, complete with associated resources.
2. **Synchronous/Asynchronous Delivery:** Choose between receiving snapshots via email or directly in the terminal.
3. **Seamless Integration:** Leverages Meshery Cloud and GitHub Actions to handle snapshot rendering.
4. **Support for Packaged Charts:** Works with both packaged `.tar.gz` charts and unpackaged Helm charts.## Installation and Use
To install the Meshery Snapshot Helm Plugin, use the following steps:
### Prerequisites
- `helm` must be [installed]( helm plugin install https://github.com/meshery/helm-kanvas-snapshot) on your system.
- (Optional) A free [Layer5 Cloud](https://meshery.layer5.io) user account.
- Environemnt Variables:
1. ...?**Plugin Installation**
1. Run the following command to install the Helm Kanvas Snapshot plugin:
```bash
helm plugin install https://github.com/meshery/helm-kanvas-snapshot
```3. Verify the installation by running:
```bash
helm plugin list
```You should see the Kanvas Snapshot listed as `snapshot`.
4. Set up the required environment variables (see the [Environment Variables](#environment-variables) section).
### Usage
Once the plugin is installed, you can generate a snapshot using either a packaged or unpackaged Helm chart.
```bash
helm snapshot -f [-n ] [-e ]
```- **`-f`**, **`--file`**: (required) path or URL to the Helm chart (required).
- **`-n`**, **`--name`**: (optional) name for the snapshot. If not provided, a name will be auto-generated based on the chart name.
- **`-e`, **`--email`**: (optional) email address to notify when snapshot is ready. If not provided, a link to the snapshot will be displayed in the terminal.**Example**
To generate a snapshot for a Helm chart located at `https://meshery.io/charts/v0.8.0-meshery.tar.gz`, you can use:
```bash
helm snapshot -f https://meshery.io/charts/v0.8.0-meshery.tar.gz -n meshery-chart
```## Contributing
Please do! Thank you for your help in improving this Meshery extension! :balloon:
Start by forking the repository.
**1. Fork the Repository**
To get started, you'll first need to clone the Meshery Snapshot Helm Plugin repository from GitHub. Run the following command in your terminal:
```bash
git clone https://github.com/layer5labs/meshery-extensions-packages.git
```**2. Navigate to the Plugin Directory**
Once the repository is cloned, navigate to the `helm-kanvas-snapshot` directory.
```bash
cd helm-kanvas-snapshot
```**3. Replace the placeholder values with your actual credentials.**
**4. Build the binary**
```bash
make
```**5. Install the Snapshot plugin**
```bash
helm plugin install kanvas-snapshot
```**6. Test the Plugin Locally**
Once the plugin is built, you can test it locally. For example, to generate a snapshot for a Helm chart, run the following command:
```bash
helm kanvas-snapshot -f https://meshery.io/charts/v0.8.0-meshery.tar.gz -n meshery-chart
```This command will trigger the snapshot generation process. If everything is set up correctly, you should see a visual snapshot URL or receive the snapshot via email, depending on the options you specified.
**7. Debugging**
If you encounter any issues during testing, check the log file generated in the `snapshot-plugin` directory. The logs can provide more insight into any errors that may occur.
To check the logs, open the log file in your preferred text editor:
```bash
cat snapshot.log
```This file contains a timestamped log of operations performed during the snapshot generation process.
## Join the Meshery community!
Our projects are community-built and welcome collaboration. 👍 Be sure to see the Contributor Journey Map 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.Find your MeshMate
MeshMates are experienced Layer5 community members, who will help you learn your way around, discover live projects, and expand your community network. Connect with a Meshmate today!
Find out more on the Layer5 community.
✔️ Join any or all of the weekly meetings on community calendar.
✔️ Watch community meeting recordings.
✔️ Fill-in a community member form to 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](https://docs.meshery.io/project/contributing) for a tour of resources available to you and how to get started.
### Show Your Support
If you like Meshery, please ★ star this repository to show your support! 🤩### License
This repository and site are available as open-source under the terms of the [Apache 2.0 License](https://opensource.org/licenses/Apache-2.0).