API Reference¶
This document provides detailed reference for the KubeVirtBMC Custom Resource Definition (CRD).
Table of Contents¶
VirtualMachineBMC¶
The VirtualMachineBMC is a Custom Resource that represents a virtual BMC for a KubeVirt VirtualMachine.
API Version¶
Kind¶
Full Resource Name¶
Specification¶
VirtualMachineBMCSpec¶
The spec section defines the desired state of the Virtual BMC.
spec:
virtualMachineRef:
name: string # Required
authSecretRef:
name: string # Required
service:
type: ClusterIP # Optional, defaults to ClusterIP
labels: {} # Optional
annotations: {} # Optional
ipmi:
enabled: false # Optional, defaults to false
storageClassName: string # Optional, defaults to the cluster's default StorageClass
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
virtualMachineRef |
LocalObjectReference |
Yes | Reference to the VirtualMachine to manage |
virtualMachineRef.name |
string |
Yes | Name of the VirtualMachine resource |
authSecretRef |
LocalObjectReference |
Yes | Reference to the Secret containing BMC credentials |
authSecretRef.name |
string |
Yes | Name of the Secret resource |
service |
BMCServiceSpec |
No | BMC Service configuration. When omitted, the Service defaults to type ClusterIP. |
ipmi |
IPMISpec |
No | IPMI configuration. When omitted, IPMI is disabled. |
storageClassName |
string |
No | StorageClass used for the DataVolume created on virtual media insert. When omitted, the cluster's default StorageClass is used. |
BMCServiceSpec¶
BMCServiceSpec configures the Service the controller creates to expose the virtbmc Pod.
service:
type: LoadBalancer # Optional, one of ClusterIP | NodePort | LoadBalancer, defaults to ClusterIP
labels: # Optional, merged with the controller's own labels
team: infra
annotations: # Optional
example.com/owner: "infra-team"
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
service.type |
string |
No | Type of Service to create. One of ClusterIP, NodePort, or LoadBalancer. Defaults to ClusterIP. Changing this value deletes and recreates the Service. |
service.labels |
map[string]string |
No | Additional labels applied to the Service, merged with the labels the controller sets for Pod selection. |
service.annotations |
map[string]string |
No | Annotations applied to the Service, useful for cloud load balancer controllers, service meshes, or monitoring tooling. |
Note
Changing service.labels or service.annotations patches the existing Service in place. Changing service.type deletes and recreates the Service, which changes its ClusterIP and might change previously assigned NodePort/LoadBalancer address.
IPMISpec¶
IPMISpec configures the IPMI simulator.
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
ipmi.enabled |
bool |
No | Toggles the IPMI simulator. Defaults to false when omitted. Set to true to enable IPMI support. |
Related Resources¶
For the latest API specification, see the CRD definition.