mirror of
https://github.com/outbackdingo/cluster-api-provider-proxmox.git
synced 2026-01-27 10:18:38 +00:00
Co-authored-by: Felix Wischke <felix.wischke@ionos.com> Co-authored-by: Jonas Bender <90411737+jonas-be@users.noreply.github.com> Co-authored-by: Ludwig Bedacht <132355999+lubedacht@users.noreply.github.com> Co-authored-by: Mario Valderrama <15158349+avorima@users.noreply.github.com> Co-authored-by: Mohamed Chiheb Ben jemaa <mohamed-chiheb.ben-jemaa@ionos.com> Co-authored-by: Vic Kerr <318870+wikkyk@users.noreply.github.com>
69 lines
2.1 KiB
Go
69 lines
2.1 KiB
Go
/*
|
|
Copyright 2023 IONOS Cloud.
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
*/
|
|
|
|
package v1alpha1
|
|
|
|
// VirtualMachineState describes the state of a VM.
|
|
type VirtualMachineState string
|
|
|
|
const (
|
|
// VirtualMachineStateNotFound is the string representing a VM that
|
|
// cannot be located.
|
|
VirtualMachineStateNotFound VirtualMachineState = "notfound"
|
|
|
|
// VirtualMachineStatePending is the string representing a VM with an in-flight task.
|
|
VirtualMachineStatePending VirtualMachineState = "pending"
|
|
|
|
// VirtualMachineStateReady is the string representing a powered-on VM with reported IP addresses.
|
|
VirtualMachineStateReady VirtualMachineState = "ready"
|
|
)
|
|
|
|
// VirtualMachine represents data about a Proxmox virtual machine object.
|
|
type VirtualMachine struct {
|
|
// Node is the VM node.
|
|
Node string `json:"node"`
|
|
|
|
// Name is the VM's name.
|
|
Name string `json:"name"`
|
|
|
|
// VMID is the VM's ID.
|
|
VMID uint64 `json:"vmID"`
|
|
|
|
// State is the VM's state.
|
|
State VirtualMachineState `json:"state"`
|
|
|
|
// Network is the status of the VM's network devices.
|
|
Network []NetworkStatus `json:"network"`
|
|
}
|
|
|
|
// NetworkStatus provides information about one of a VM's networks.
|
|
type NetworkStatus struct {
|
|
// Connected is a flag that indicates whether this network is currently
|
|
// connected to the VM.
|
|
Connected bool `json:"connected,omitempty"`
|
|
|
|
// IPAddrs is one or more IP addresses reported by vm-tools.
|
|
// +optional
|
|
IPAddrs []string `json:"ipAddrs,omitempty"`
|
|
|
|
// MACAddr is the MAC address of the network device.
|
|
MACAddr string `json:"macAddr"`
|
|
|
|
// NetworkName is the name of the network.
|
|
// +optional
|
|
NetworkName string `json:"networkName,omitempty"`
|
|
}
|