Repository metrics
- Stars
- (10,013 stars)
- PR merge metrics
- (Avg merge 22d 16h) (332 merged PRs in 30d)
Description
See mesheryctl Command Tracker for current status of commands.
Desired Behavior
Kubernetes manifests, especially collections of them, can be complex. This plugin will bridge the gap between Kubernetes cluster and workflow configurations and their visual representation in Meshery UI Snapshots. The plugin will allow users to generate a visual snapshot of the combination of multiple Kubernetes manifest files, each containing one or more Kubernetes resources.
Feature Overview
Meshery users may want to generate snapshots of their designs for various purposes. Meshery currently provides the ability to create snapshots and integrates with GitHub, allowing snapshots to be generated automatically when a pull request is made. This feature gives reviewers a visual representation of the infrastructure changes, simplifying the review process.
In addition to GitHub integration, users working with tools like Helm, Kubernetes, and Docker may also want to generate snapshots directly from the command line.
A Helm plugin, allowing users to generate a visual snapshot of their Helm charts directly from the command line, has already been developed available at: https://github.com/meshery/helm-kanvas-snapshot.
Implementation
With the Kubectl plugin, users will be able to generate a snapshot from a Kubernetes manifest file.
The proposed command will be: kubectl kanvas-snapshot -f manifest.yaml
This plugin will be developed using the Kubectl Krew Plugin manager.
Additional Reference material
1. Krew, the plugin manager for kubectl 2. Reference https://docs.meshery.io/extensions/snapshot 3. Reference https://github.com/marketplace/actions/meshmap-snapshot
Acceptance Tests
- Users can install the latest snapshot plugin.
- Users can execute
kubectl kanvas-snapshot -f manifest.yamland have the Meshery Snapshot workflow invoked.
After generating the snapshot:
- Users will receive a URL in the terminal that they can click to view the snapshot in their browser.
- Users may also choose to have the snapshot sent to them via email.
Additional options for viewing snapshots could be proposed, such as:
- Downloading the image directly to their local machine.
- Sharing the snapshot via messaging apps or collaboration platforms (e.g., Slack, Teams).
- Embedding the snapshot into project documentation.