Helm Kanvas Snapshot
Categories:
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 π
- Snapshot Generation: Create visual snapshots of Helm charts, complete with associated resources.
- Synchronous/Asynchronous Delivery: Choose between receiving snapshots via email or directly in the terminal.
- Seamless Integration: Leverages Meshery Cloud and GitHub Actions to handle snapshot rendering.
- Support for Packaged Charts: Works with both packaged
.tar.gzcharts and unpackaged Helm charts.
Installation and Use π
To install the Kanvas Snapshot Helm Plugin, use the following steps:
Prerequisites π
helmmust be installed on your system.- (Optional) A free Layer5 Cloud user account.
Plugin Installation
- Run the following command to install the Helm Kanvas Snapshot plugin:
helm plugin install https://github.com/meshery/helm-kanvas-snapshot
- Verify the installation by running:
helm plugin list
You should see the Kanvas Snapshot listed as helm-kanvas-snapshot.
- Set up the required environment variables (see the Environment Variables section).
Usage π
Once the plugin is installed, you can generate a snapshot using either a packaged or unpackaged Helm chart.
helm snapshot --f <chart-URI> [--name <snapshot-name>] [--email <email>]
-f,--file: (required) path or URL to the Helm chart (required).--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.github.io/meshery.io/charts/meshery-v1.0.20.tgz, you can use:
helm snapshot -f https://meshery.github.io/meshery.io/charts/meshery-v1.0.20.tgz --name meshery-chart
What the plugin accepts π
The plugin submits -f as a URL of a packaged chart (.tgz) that the snapshot service can download without credentials. A local file path is not a supported input, and unpackaged charts are not a supported input. It needs no Layer5 Cloud account: the plugin ships with service credentials. The image sits at a public URL, and the design is saved under those credentials, not under your account.
Email delivery requires an address in lowercase. The plugin rejects uppercase letters. Without --email, it prints the snapshot URL. The image takes three to five minutes to appear. --name names the design. Without it, the plugin uses the file name without its extension.
The plugin exits with status 1 and one of these codes: kanvas-snapshot-900 invalid chart URI, 901 could not create the design, 902 could not start the render, 903 HTTP request failed, 905 response could not be decoded, 906 unexpected status, 907 required field missing, 908 email not valid, 909 GitHub rejected the render start with 401 or 403.
Related Reading
Recent Discussions on Kanvas
- Jul 12 | Unleash Visual Power: Import Your Configs by zihan kuang
- Oct 14 | Explore Meshery's Published Relationship Design Examples by Awani Alero
- Oct 03 | Design Review RFC: Kanvas Empty State Enhancement by Lee Calcote
- Jul 19 | [For Discussion] Visual indication of semantically vs non-semantically meaningful Meshery components by Lee Calcote
- Jun 07 | What are the conditions for a "System is unhealthy" warning? by James
- May 30 | Looking for a meshmate to help with first PR by Faisal Imtiyaz123
- Feb 28 | For Discussion: Capturing potential, but unrealized Relationships in Design Snapshots by Lee Calcote
- Feb 12 | Hint on Scaling & Verifying Cronjob in Playground by Sandra Ashipala