-
Notifications
You must be signed in to change notification settings - Fork 272
docs(kubevirt): add dedicated KubeVirt toolset documentation #815
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,65 @@ | ||
| ## KubeVirt integration | ||
|
|
||
| This server can expose KubeVirt tools so assistants can create and manage virtual machines running on Kubernetes clusters with [KubeVirt](https://kubevirt.io/). | ||
|
|
||
| ### Prerequisites | ||
|
|
||
| - A Kubernetes cluster with [KubeVirt](https://kubevirt.io/user-guide/cluster_admin/installation/) installed | ||
| - The KubeVirt API resources (`VirtualMachine`, `VirtualMachineInstance`, `VirtualMachineClone`, etc.) must be available in the cluster | ||
|
|
||
| ### Enable the KubeVirt toolset | ||
|
|
||
| The KubeVirt toolset is not enabled by default. Enable it via the CLI flag or a TOML configuration file. | ||
|
|
||
| CLI: | ||
|
|
||
| ```shell | ||
| kubernetes-mcp-server --toolsets core,kubevirt | ||
| ``` | ||
|
|
||
| Config (TOML): | ||
|
|
||
| ```toml | ||
| toolsets = ["core", "kubevirt"] | ||
| ``` | ||
|
|
||
| No additional toolset-specific configuration is required. The server uses your existing Kubernetes credentials (from kubeconfig or in-cluster) to interact with the KubeVirt API. | ||
|
|
||
| ### Available tools | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I understand that this is a brief overview of the available tools provided by the toolset. |
||
|
|
||
| #### `vm_create` | ||
|
|
||
| Create a VirtualMachine in the cluster. The tool automatically resolves instance types, preferences, and container disk images based on the provided parameters. | ||
|
|
||
| - **Workload resolution** - Accepts OS names such as `fedora`, `ubuntu`, `centos`, `centos-stream`, `debian`, `rhel`, `opensuse`, `opensuse-tumbleweed`, and `opensuse-leap`. These are resolved to container disk images from `quay.io/containerdisks`. Full container disk image URLs are also accepted. If DataSources are available in the cluster, the tool will match against those first. | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The code in |
||
| - **Instance type resolution** - Automatically selects an appropriate instance type based on the `size` (e.g., `small`, `medium`, `large`) and `performance` (e.g., `general-purpose`, `overcommitted`, `compute-optimized`, `memory-optimized`) hints. Instance types can also be specified explicitly. | ||
| - **Preference resolution** - Resolves VM preferences from cluster resources or DataSource defaults. | ||
| - **Networking** - Supports attaching secondary network interfaces via Multus NetworkAttachmentDefinitions. | ||
| - **Run strategy** - VMs are created in `Halted` state by default. Set `autostart` to `true` to start the VM immediately. | ||
|
|
||
| #### `vm_lifecycle` | ||
|
|
||
| Manage the lifecycle of an existing VirtualMachine: | ||
|
|
||
| - `start` - Sets the runStrategy to `Always`, starting the VM. | ||
| - `stop` - Sets the runStrategy to `Halted`, stopping the VM. | ||
| - `restart` - Stops and then starts the VM. | ||
|
|
||
| #### `vm_clone` | ||
|
|
||
| Clone an existing VirtualMachine by creating a `VirtualMachineClone` resource. This creates a copy of the source VM with a new name using the KubeVirt Clone API. | ||
|
|
||
| ### Available prompts | ||
|
|
||
| #### `vm-troubleshoot` | ||
|
|
||
| Generate a step-by-step troubleshooting guide for diagnosing VirtualMachine issues. The prompt collects and presents: | ||
|
|
||
| 1. VirtualMachine status | ||
| 2. VirtualMachineInstance status | ||
| 3. VM volumes configuration | ||
| 4. virt-launcher Pod information | ||
| 5. virt-launcher Pod logs | ||
| 6. Related Kubernetes events | ||
|
|
||
| Usage requires the `namespace` and `name` of the VirtualMachine to troubleshoot. | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit: alphabetically "Kiali" comes before "KubeVirt" (
i<u). Consider swapping the order to keep the list sorted.