Documentation ¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the infrastructure v1alpha1 API group +kubebuilder:object:generate=true +groupName=infrastructure.cluster.x-k8s.io
Index ¶
- Constants
- Variables
- type AdditionalNetworkDevice
- type DiskSize
- type IPAddress
- type IPConfigSpec
- type InterfaceConfig
- type MTU
- type MetadataSettings
- type NetworkDevice
- type NetworkSpec
- type NetworkStatus
- type NodeLocation
- type NodeLocations
- type ProxmoxCluster
- func (c *ProxmoxCluster) AddNodeLocation(loc NodeLocation, isControlPlane bool)
- func (in *ProxmoxCluster) DeepCopy() *ProxmoxCluster
- func (in *ProxmoxCluster) DeepCopyInto(out *ProxmoxCluster)
- func (in *ProxmoxCluster) DeepCopyObject() runtime.Object
- func (c *ProxmoxCluster) GetConditions() clusterv1.Conditions
- func (c *ProxmoxCluster) GetNode(machineName string, isControlPlane bool) string
- func (c *ProxmoxCluster) HasMachine(machineName string, isControlPlane bool) bool
- func (c *ProxmoxCluster) RemoveNodeLocation(machineName string, isControlPlane bool)
- func (c *ProxmoxCluster) SetConditions(conditions clusterv1.Conditions)
- func (c *ProxmoxCluster) SetInClusterIPPoolRef(pool client.Object)
- func (c *ProxmoxCluster) UpdateNodeLocation(machineName, node string, isControlPlane bool) bool
- type ProxmoxClusterCloneSpec
- type ProxmoxClusterList
- type ProxmoxClusterSpec
- type ProxmoxClusterStatus
- type ProxmoxClusterTemplate
- type ProxmoxClusterTemplateList
- type ProxmoxClusterTemplateResource
- type ProxmoxClusterTemplateSpec
- type ProxmoxMachine
- func (in *ProxmoxMachine) DeepCopy() *ProxmoxMachine
- func (in *ProxmoxMachine) DeepCopyInto(out *ProxmoxMachine)
- func (in *ProxmoxMachine) DeepCopyObject() runtime.Object
- func (r *ProxmoxMachine) GetConditions() clusterv1.Conditions
- func (r *ProxmoxMachine) GetNode() string
- func (r *ProxmoxMachine) GetTemplateID() int32
- func (r *ProxmoxMachine) GetVirtualMachineID() int64
- func (r *ProxmoxMachine) SetConditions(conditions clusterv1.Conditions)
- type ProxmoxMachineChecks
- type ProxmoxMachineList
- type ProxmoxMachineSpec
- type ProxmoxMachineStatus
- type ProxmoxMachineTemplate
- type ProxmoxMachineTemplateList
- type ProxmoxMachineTemplateResource
- type ProxmoxMachineTemplateSpec
- type RouteSpec
- type Routing
- type RoutingPolicySpec
- type SchedulerHints
- type Storage
- type TargetFileStorageFormat
- type VMIDRange
- type VRFDevice
- type VirtualMachine
- type VirtualMachineCloneSpec
- type VirtualMachineState
- type VirtualNetworkDevices
Constants ¶
const ( // VMProvisionedCondition documents the status of the provisioning of a ProxmoxMachine and its underlying ProxmoxVM. VMProvisionedCondition clusterv1.ConditionType = "VMProvisioned" // VMProvisionFailedReason used for failures during instance provisioning. VMProvisionFailedReason = "VMProvisionFailed" // VMTerminatedReason used when vm is being terminated. VMTerminatedReason = "VMTerminated" // WaitingForClusterInfrastructureReason (Severity=Info) documents a ProxmoxMachine waiting for the cluster // infrastructure to be ready before starting the provisioning process. // // NOTE: This reason does not apply to ProxmoxVM (this state happens before the ProxmoxVM is actually created). WaitingForClusterInfrastructureReason = "WaitingForClusterInfrastructure" // WaitingForBootstrapDataReason (Severity=Info) documents a ProxmoxMachine waiting for the bootstrap // script to be ready before starting the provisioning process. // // NOTE: This reason does not apply to ProxmoxVM (this state happens before the ProxmoxVM is actually created). WaitingForBootstrapDataReason = "WaitingForBootstrapData" // WaitingForStaticIPAllocationReason (Severity=Info) documents a ProxmoxVM waiting for the allocation of // a static IP address. WaitingForStaticIPAllocationReason = "WaitingForStaticIPAllocation" // CloningReason documents (Severity=Info) a ProxmoxMachine/ProxmoxVM currently executing the clone operation. CloningReason = "Cloning" // CloningFailedReason (Severity=Warning) documents a ProxmoxMachine/ProxmoxVM controller detecting // an error while provisioning; those kind of errors are usually transient and failed provisioning // are automatically re-tried by the controller. CloningFailedReason = "CloningFailed" // PoweringOnReason documents (Severity=Info) a ProxmoxMachine/ProxmoxVM currently executing the power on sequence. PoweringOnReason = "PoweringOn" // PoweringOnFailedReason (Severity=Warning) documents a ProxmoxMachine/ProxmoxVM controller detecting // an error while powering on; those kind of errors are usually transient and failed provisioning // are automatically re-tried by the controller. PoweringOnFailedReason = "PoweringOnFailed" // VMProvisionStarted used for starting vm provisioning. VMProvisionStarted = "VMProvisionStarted" // TaskFailure (Severity=Warning) documents a ProxmoxMachine/Proxmox task failure; the reconcile look will automatically // retry the operation, but a user intervention might be required to fix the problem. TaskFailure = "TaskFailure" // WaitingForNetworkAddressesReason (Severity=Info) documents a ProxmoxMachine waiting for the the machine network // settings to be reported after machine being powered on. // // NOTE: This reason does not apply to ProxmoxVM (this state happens after the ProxmoxVM is in ready state). WaitingForNetworkAddressesReason = "WaitingForNetworkAddresses" // NotFoundReason (Severity=Warning) documents the ProxmoxVM not found. NotFoundReason = "NotFound" // UnknownReason (Severity=Warning) documents the ProxmoxVM Unknown. UnknownReason = "Unknown" // MissingControlPlaneEndpointReason (Severity=Warning) documents the missing Control Plane endpoint when Cluster is backed by an externally managed Control Plane. MissingControlPlaneEndpointReason = "MissingControlPlaneEndpoint" )
const ( // ProxmoxClusterReady documents the status of ProxmoxCluster and its underlying resources. ProxmoxClusterReady clusterv1.ConditionType = "ClusterReady" // ProxmoxUnreachableReason (Severity=Error) documents a controller detecting // issues with Proxmox reachability. ProxmoxUnreachableReason = "ProxmoxUnreachable" )
const ( // ProxmoxClusterKind is the ProxmoxCluster kind. ProxmoxClusterKind = "ProxmoxCluster" // ClusterFinalizer allows cleaning up resources associated with a // ProxmoxCluster before removing it from the apiserver. ClusterFinalizer = "proxmoxcluster.infrastructure.cluster.x-k8s.io" // SecretFinalizer is the finalizer for ProxmoxCluster credentials secrets . SecretFinalizer = "proxmoxcluster.infrastructure.cluster.x-k8s.io/secret" //nolint:gosec )
const ( // ProxmoxMachineKind is the ProxmoxMachine kind. ProxmoxMachineKind = "ProxmoxMachine" // MachineFinalizer allows cleaning up resources associated with a // ProxmoxMachine before removing it from the API Server. MachineFinalizer = "proxmoxmachine.infrastructure.cluster.x-k8s.io" // DefaultReconcilerRequeue is the default value for the reconcile retry. DefaultReconcilerRequeue = 10 * time.Second // DefaultNetworkDevice is the default network device name. DefaultNetworkDevice = "net0" // DefaultSuffix is the default suffix for the network device. DefaultSuffix = "inet" // IPV4Format is the IP v4 format. IPV4Format = "v4" // IPV6Format is the IP v6 format. IPV6Format = "v6" )
Variables ¶
var ( // GroupVersion is group version used to register these objects. GroupVersion = schema.GroupVersion{Group: "infrastructure.cluster.x-k8s.io", Version: "v1alpha1"} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = schemeBuilder.AddToScheme )
Functions ¶
This section is empty.
Types ¶
type AdditionalNetworkDevice ¶
type AdditionalNetworkDevice struct { NetworkDevice `json:",inline"` // Name is the network device name. // Must be unique within the virtual machine and different from the primary device 'net0'. // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:XValidation:rule="self != 'net0'",message="additional network devices doesn't allow net0" Name string `json:"name"` // InterfaceConfig contains all configurables a network interface can have. // +optional InterfaceConfig `json:",inline"` }
AdditionalNetworkDevice the definition of a Proxmox network device. +kubebuilder:validation:XValidation:rule="self.ipv4PoolRef != null || self.ipv6PoolRef != null",message="at least one pool reference must be set, either ipv4PoolRef or ipv6PoolRef"
func (*AdditionalNetworkDevice) DeepCopy ¶
func (in *AdditionalNetworkDevice) DeepCopy() *AdditionalNetworkDevice
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AdditionalNetworkDevice.
func (*AdditionalNetworkDevice) DeepCopyInto ¶
func (in *AdditionalNetworkDevice) DeepCopyInto(out *AdditionalNetworkDevice)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DiskSize ¶
type DiskSize struct { // Disk is the name of the disk device, that should be resized. // Example values are: ide[0-3], scsi[0-30], sata[0-5]. Disk string `json:"disk"` // Size defines the size in gigabyte. // // As Proxmox does not support shrinking, the size // must be bigger than the already configured size in the // template. // // +kubebuilder:validation:Minimum=5 SizeGB int32 `json:"sizeGb"` }
DiskSize is contains values for the disk device and size.
func (*DiskSize) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DiskSize.
func (*DiskSize) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DiskSize) FormatSize ¶
FormatSize returns the format required for the Proxmox API.
type IPAddress ¶
type IPAddress struct { // IPV4 is the IPv4 address. // +optional IPV4 string `json:"ipv4,omitempty"` // IPV6 is the IPv6 address. // +optional IPV6 string `json:"ipv6,omitempty"` }
IPAddress defines the IP addresses of a network interface.
func (*IPAddress) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPAddress.
func (*IPAddress) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IPConfigSpec ¶ added in v0.4.0
type IPConfigSpec struct { // Addresses is a list of IP addresses that can be assigned. This set of // addresses can be non-contiguous. Addresses []string `json:"addresses"` // Prefix is the network prefix to use. // +kubebuilder:validation:Maximum=128 Prefix int `json:"prefix"` // Gateway // +optional Gateway string `json:"gateway,omitempty"` // Metric is the route priority applied to the default gateway // +kubebuilder:default=100 Metric *uint32 `json:"metric"` }
IPConfigSpec contains information about available IP config.
func (*IPConfigSpec) DeepCopy ¶ added in v0.4.0
func (in *IPConfigSpec) DeepCopy() *IPConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPConfigSpec.
func (*IPConfigSpec) DeepCopyInto ¶ added in v0.4.0
func (in *IPConfigSpec) DeepCopyInto(out *IPConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type InterfaceConfig ¶ added in v0.3.0
type InterfaceConfig struct { // IPv4PoolRef is a reference to an IPAM Pool resource, which exposes IPv4 addresses. // The network device will use an available IP address from the referenced pool. // This can be combined with `IPv6PoolRef` in order to enable dual stack. // +optional // +kubebuilder:validation:XValidation:rule="self.apiGroup == 'ipam.cluster.x-k8s.io'",message="ipv4PoolRef allows only IPAM apiGroup ipam.cluster.x-k8s.io" // +kubebuilder:validation:XValidation:rule="self.kind == 'InClusterIPPool' || self.kind == 'GlobalInClusterIPPool'",message="ipv4PoolRef allows either InClusterIPPool or GlobalInClusterIPPool" IPv4PoolRef *corev1.TypedLocalObjectReference `json:"ipv4PoolRef,omitempty"` // IPv6PoolRef is a reference to an IPAM pool resource, which exposes IPv6 addresses. // The network device will use an available IP address from the referenced pool. // this can be combined with `IPv4PoolRef` in order to enable dual stack. // +optional // +kubebuilder:validation:XValidation:rule="self.apiGroup == 'ipam.cluster.x-k8s.io'",message="ipv6PoolRef allows only IPAM apiGroup ipam.cluster.x-k8s.io" // +kubebuilder:validation:XValidation:rule="self.kind == 'InClusterIPPool' || self.kind == 'GlobalInClusterIPPool'",message="ipv6PoolRef allows either InClusterIPPool or GlobalInClusterIPPool" IPv6PoolRef *corev1.TypedLocalObjectReference `json:"ipv6PoolRef,omitempty"` // DNSServers contains information about nameservers to be used for this interface. // If this field is not set, it will use the default dns servers from the ProxmoxCluster. // +optional // +kubebuilder:validation:MinItems=1 DNSServers []string `json:"dnsServers,omitempty"` // Routing is the common spec of routes and routing policies to all interfaces and VRFs. Routing `json:",inline"` // LinkMTU is the network device Maximum Transmission Unit. // +optional LinkMTU MTU `json:"linkMtu,omitempty"` }
InterfaceConfig contains all configurables a network interface can have.
func (*InterfaceConfig) DeepCopy ¶ added in v0.3.0
func (in *InterfaceConfig) DeepCopy() *InterfaceConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InterfaceConfig.
func (*InterfaceConfig) DeepCopyInto ¶ added in v0.3.0
func (in *InterfaceConfig) DeepCopyInto(out *InterfaceConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MTU ¶ added in v0.4.0
type MTU *uint16
MTU is the network device Maximum Transmission Unit. MTUs below 1280 break IPv6. +optional +kubebuilder:validation:XValidation:rule="self == 1 || ( self >= 576 && self <= 65520)",message="invalid MTU value"
type MetadataSettings ¶ added in v0.6.0
type MetadataSettings struct { // ProviderIDInjection enables the injection of the `providerID` into the cloudinit metadata. // this will basically set the `provider-id` field in the metadata to `proxmox://<instanceID>`. // +optional ProviderIDInjection bool `json:"providerIDInjection,omitempty"` }
MetadataSettings defines the metadata settings for the machine.
func (*MetadataSettings) DeepCopy ¶ added in v0.6.0
func (in *MetadataSettings) DeepCopy() *MetadataSettings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetadataSettings.
func (*MetadataSettings) DeepCopyInto ¶ added in v0.6.0
func (in *MetadataSettings) DeepCopyInto(out *MetadataSettings)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NetworkDevice ¶
type NetworkDevice struct { // Bridge is the network bridge to attach to the machine. // +kubebuilder:validation:MinLength=1 Bridge string `json:"bridge"` // Model is the network device model. // +optional // +kubebuilder:validation:Enum=e1000;virtio;rtl8139;vmxnet3 // +kubebuilder:default=virtio Model *string `json:"model,omitempty"` // MTU is the network device Maximum Transmission Unit. // When set to 1, virtio devices inherit the MTU value from the underlying bridge. // +optional MTU MTU `json:"mtu,omitempty"` // VLAN is the network L2 VLAN. // +optional // +kubebuilder:validation:Minimum=1 // +kubebuilder:validation:Maximum=4094 VLAN *uint16 `json:"vlan,omitempty"` }
NetworkDevice defines the required details of a virtual machine network device.
func (*NetworkDevice) DeepCopy ¶
func (in *NetworkDevice) DeepCopy() *NetworkDevice
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkDevice.
func (*NetworkDevice) DeepCopyInto ¶
func (in *NetworkDevice) DeepCopyInto(out *NetworkDevice)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NetworkSpec ¶
type NetworkSpec struct { // Default is the default network device, // which will be used for the primary network interface. // net0 is always the default network device. // +optional Default *NetworkDevice `json:"default,omitempty"` // AdditionalDevices defines additional network devices bound to the virtual machine. // +optional // +listType=map // +listMapKey=name AdditionalDevices []AdditionalNetworkDevice `json:"additionalDevices,omitempty"` // VirtualNetworkDevices defines virtual network devices (e.g. bridges, vlans ...). VirtualNetworkDevices `json:",inline"` }
NetworkSpec defines the virtual machine's network configuration.
func (*NetworkSpec) DeepCopy ¶
func (in *NetworkSpec) DeepCopy() *NetworkSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkSpec.
func (*NetworkSpec) DeepCopyInto ¶
func (in *NetworkSpec) DeepCopyInto(out *NetworkSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NetworkStatus ¶
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"` }
NetworkStatus provides information about one of a VM's networks.
func (*NetworkStatus) DeepCopy ¶
func (in *NetworkStatus) DeepCopy() *NetworkStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkStatus.
func (*NetworkStatus) DeepCopyInto ¶
func (in *NetworkStatus) DeepCopyInto(out *NetworkStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NodeLocation ¶
type NodeLocation struct { // Machine is the reference to the ProxmoxMachine. Machine corev1.LocalObjectReference `json:"machine"` // Node is the Proxmox node. Node string `json:"node"` }
NodeLocation holds information about a single VM in Proxmox.
func (*NodeLocation) DeepCopy ¶
func (in *NodeLocation) DeepCopy() *NodeLocation
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeLocation.
func (*NodeLocation) DeepCopyInto ¶
func (in *NodeLocation) DeepCopyInto(out *NodeLocation)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NodeLocations ¶
type NodeLocations struct { // ControlPlane contains all deployed control plane nodes. // +optional ControlPlane []NodeLocation `json:"controlPlane,omitempty"` // Workers contains all deployed worker nodes. // +optional Workers []NodeLocation `json:"workers,omitempty"` }
NodeLocations holds information about the deployment state of control plane and worker nodes in Proxmox.
func (*NodeLocations) DeepCopy ¶
func (in *NodeLocations) DeepCopy() *NodeLocations
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeLocations.
func (*NodeLocations) DeepCopyInto ¶
func (in *NodeLocations) DeepCopyInto(out *NodeLocations)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProxmoxCluster ¶
type ProxmoxCluster struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // +kubebuilder:validation:XValidation:rule="self.ipv4Config != null || self.ipv6Config != null",message="at least one ip config must be set, either ipv4Config or ipv6Config" Spec ProxmoxClusterSpec `json:"spec,omitempty"` Status ProxmoxClusterStatus `json:"status,omitempty"` }
ProxmoxCluster is the Schema for the proxmoxclusters API.
func (*ProxmoxCluster) AddNodeLocation ¶
func (c *ProxmoxCluster) AddNodeLocation(loc NodeLocation, isControlPlane bool)
AddNodeLocation will add a node location to either the control plane or worker node locations based on the isControlPlane parameter.
func (*ProxmoxCluster) DeepCopy ¶
func (in *ProxmoxCluster) DeepCopy() *ProxmoxCluster
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxmoxCluster.
func (*ProxmoxCluster) DeepCopyInto ¶
func (in *ProxmoxCluster) DeepCopyInto(out *ProxmoxCluster)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ProxmoxCluster) DeepCopyObject ¶
func (in *ProxmoxCluster) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ProxmoxCluster) GetConditions ¶
func (c *ProxmoxCluster) GetConditions() clusterv1.Conditions
GetConditions returns the observations of the operational state of the ProxmoxCluster resource.
func (*ProxmoxCluster) GetNode ¶
func (c *ProxmoxCluster) GetNode(machineName string, isControlPlane bool) string
GetNode tries to return the Proxmox node for the provided machine name.
func (*ProxmoxCluster) HasMachine ¶
func (c *ProxmoxCluster) HasMachine(machineName string, isControlPlane bool) bool
HasMachine returns if true if a machine was found on any node.
func (*ProxmoxCluster) RemoveNodeLocation ¶
func (c *ProxmoxCluster) RemoveNodeLocation(machineName string, isControlPlane bool)
RemoveNodeLocation removes a node location from the status.
func (*ProxmoxCluster) SetConditions ¶
func (c *ProxmoxCluster) SetConditions(conditions clusterv1.Conditions)
SetConditions sets the underlying service state of the ProxmoxCluster to the predescribed clusterv1.Conditions.
func (*ProxmoxCluster) SetInClusterIPPoolRef ¶
func (c *ProxmoxCluster) SetInClusterIPPoolRef(pool client.Object)
SetInClusterIPPoolRef will set the reference to the provided InClusterIPPool. If nil was provided, the status field will be cleared.
func (*ProxmoxCluster) UpdateNodeLocation ¶
func (c *ProxmoxCluster) UpdateNodeLocation(machineName, node string, isControlPlane bool) bool
UpdateNodeLocation will update the node location based on the provided machine name. If the node location does not exist, it will be added.
The function returns true if the value was added or updated, otherwise false.
type ProxmoxClusterCloneSpec ¶ added in v0.4.0
type ProxmoxClusterCloneSpec struct { // +kubebuilder:validation:XValidation:rule="has(self.controlPlane)",message="Cowardly refusing to deploy cluster without control plane" ProxmoxMachineSpec map[string]ProxmoxMachineSpec `json:"machineSpec"` // SshAuthorizedKeys contains the authorized keys deployed to the PROXMOX VMs. // +optional SSHAuthorizedKeys []string `json:"sshAuthorizedKeys,omitempty"` // VirtualIPNetworkInterface is the interface the k8s control plane binds to. // +optional VirtualIPNetworkInterface string `json:"virtualIPNetworkInterface,omitempty"` }
ProxmoxClusterCloneSpec is the configuration pertaining to all items configurable in the configuration and cloning of a proxmox VM.
func (*ProxmoxClusterCloneSpec) DeepCopy ¶ added in v0.4.0
func (in *ProxmoxClusterCloneSpec) DeepCopy() *ProxmoxClusterCloneSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxmoxClusterCloneSpec.
func (*ProxmoxClusterCloneSpec) DeepCopyInto ¶ added in v0.4.0
func (in *ProxmoxClusterCloneSpec) DeepCopyInto(out *ProxmoxClusterCloneSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProxmoxClusterList ¶
type ProxmoxClusterList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []ProxmoxCluster `json:"items"` }
ProxmoxClusterList contains a list of ProxmoxCluster.
func (*ProxmoxClusterList) DeepCopy ¶
func (in *ProxmoxClusterList) DeepCopy() *ProxmoxClusterList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxmoxClusterList.
func (*ProxmoxClusterList) DeepCopyInto ¶
func (in *ProxmoxClusterList) DeepCopyInto(out *ProxmoxClusterList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ProxmoxClusterList) DeepCopyObject ¶
func (in *ProxmoxClusterList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ProxmoxClusterSpec ¶
type ProxmoxClusterSpec struct { // ControlPlaneEndpoint represents the endpoint used to communicate with the control plane. // +optional // +kubebuilder:validation:XValidation:rule="self.port > 0 && self.port < 65536",message="port must be within 1-65535" ControlPlaneEndpoint *clusterv1.APIEndpoint `json:"controlPlaneEndpoint"` // ExternalManagedControlPlane can be enabled to allow externally managed Control Planes to patch the // Proxmox cluster with the Load Balancer IP provided by Control Plane provider. ExternalManagedControlPlane bool `json:"externalManagedControlPlane,omitempty"` // AllowedNodes specifies all Proxmox nodes which will be considered // for operations. This implies that VMs can be cloned on different nodes from // the node which holds the VM template. // +optional AllowedNodes []string `json:"allowedNodes,omitempty"` // SchedulerHints allows to influence the decision on where a VM will be scheduled. For example by applying a multiplicator // to a node's resources, to allow for overprovisioning or to ensure a node will always have a safety buffer. // +optional SchedulerHints *SchedulerHints `json:"schedulerHints,omitempty"` // IPv4Config contains information about available IPV4 address pools and the gateway. // This can be combined with ipv6Config in order to enable dual stack. // Either IPv4Config or IPv6Config must be provided. // +optional // +kubebuilder:validation:XValidation:rule="self.addresses.size() > 0",message="IPv4Config addresses must be provided" IPv4Config *IPConfigSpec `json:"ipv4Config,omitempty"` // IPv6Config contains information about available IPV6 address pools and the gateway. // This can be combined with ipv4Config in order to enable dual stack. // Either IPv4Config or IPv6Config must be provided. // +optional // +kubebuilder:validation:XValidation:rule="self.addresses.size() > 0",message="IPv6Config addresses must be provided" IPv6Config *IPConfigSpec `json:"ipv6Config,omitempty"` // DNSServers contains information about nameservers used by the machines. // +kubebuilder:validation:MinItems=1 DNSServers []string `json:"dnsServers"` // NodeCloneSpec is the configuration pertaining to all items configurable // in the configuration and cloning of a proxmox VM. Multiple types of nodes can be specified. // +optional CloneSpec *ProxmoxClusterCloneSpec `json:"cloneSpec,omitempty"` // CredentialsRef is a reference to a Secret that contains the credentials to use for provisioning this cluster. If not // supplied then the credentials of the controller will be used. // if no namespace is provided, the namespace of the ProxmoxCluster will be used. // +optional CredentialsRef *corev1.SecretReference `json:"credentialsRef,omitempty"` }
ProxmoxClusterSpec defines the desired state of a ProxmoxCluster.
func (*ProxmoxClusterSpec) DeepCopy ¶
func (in *ProxmoxClusterSpec) DeepCopy() *ProxmoxClusterSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxmoxClusterSpec.
func (*ProxmoxClusterSpec) DeepCopyInto ¶
func (in *ProxmoxClusterSpec) DeepCopyInto(out *ProxmoxClusterSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProxmoxClusterStatus ¶
type ProxmoxClusterStatus struct { // Ready indicates that the cluster is ready. // +optional // +kubebuilder:default=false Ready bool `json:"ready"` // InClusterIPPoolRef is the reference to the created in-cluster IP pool. // +optional InClusterIPPoolRef []corev1.LocalObjectReference `json:"inClusterIpPoolRef,omitempty"` // NodeLocations keeps track of which nodes have been selected // for different machines. // +optional NodeLocations *NodeLocations `json:"nodeLocations,omitempty"` // FailureReason will be set in the event that there is a terminal problem // reconciling the Machine and will contain a succinct value suitable // for machine interpretation. // // This field should not be set for transitive errors that a controller // faces that are expected to be fixed automatically over // time (like service outages), but instead indicate that something is // fundamentally wrong with the Machine's spec or the configuration of // the controller, and that manual intervention is required. Examples // of terminal errors would be invalid combinations of settings in the // spec, values that are unsupported by the controller, or the // responsible controller itself being critically misconfigured. // // Any transient errors that occur during the reconciliation of ProxmoxCluster // can be added as events to the ProxmoxCluster object and/or logged in the // controller's output. // +optional FailureReason *errors.ClusterStatusError `json:"failureReason,omitempty"` // FailureMessage will be set in the event that there is a terminal problem // reconciling the Machine and will contain a more verbose string suitable // for logging and human consumption. // // This field should not be set for transitive errors that a controller // faces that are expected to be fixed automatically over // time (like service outages), but instead indicate that something is // fundamentally wrong with the Machine's spec or the configuration of // the controller, and that manual intervention is required. Examples // of terminal errors would be invalid combinations of settings in the // spec, values that are unsupported by the controller, or the // responsible controller itself being critically misconfigured. // // Any transient errors that occur during the reconciliation of ProxmoxMachines // can be added as events to the ProxmoxCluster object and/or logged in the // controller's output. // +optional FailureMessage *string `json:"failureMessage,omitempty"` // Conditions defines current service state of the ProxmoxCluster. // +optional Conditions clusterv1.Conditions `json:"conditions,omitempty"` }
ProxmoxClusterStatus defines the observed state of a ProxmoxCluster.
func (*ProxmoxClusterStatus) DeepCopy ¶
func (in *ProxmoxClusterStatus) DeepCopy() *ProxmoxClusterStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxmoxClusterStatus.
func (*ProxmoxClusterStatus) DeepCopyInto ¶
func (in *ProxmoxClusterStatus) DeepCopyInto(out *ProxmoxClusterStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProxmoxClusterTemplate ¶ added in v0.4.0
type ProxmoxClusterTemplate struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec ProxmoxClusterTemplateSpec `json:"spec,omitempty"` }
ProxmoxClusterTemplate is the Schema for the proxmoxclustertemplates API.
func (*ProxmoxClusterTemplate) DeepCopy ¶ added in v0.4.0
func (in *ProxmoxClusterTemplate) DeepCopy() *ProxmoxClusterTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxmoxClusterTemplate.
func (*ProxmoxClusterTemplate) DeepCopyInto ¶ added in v0.4.0
func (in *ProxmoxClusterTemplate) DeepCopyInto(out *ProxmoxClusterTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ProxmoxClusterTemplate) DeepCopyObject ¶ added in v0.4.0
func (in *ProxmoxClusterTemplate) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ProxmoxClusterTemplateList ¶ added in v0.4.0
type ProxmoxClusterTemplateList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []ProxmoxClusterTemplate `json:"items"` }
ProxmoxClusterTemplateList contains a list of ProxmoxClusterTemplate.
func (*ProxmoxClusterTemplateList) DeepCopy ¶ added in v0.4.0
func (in *ProxmoxClusterTemplateList) DeepCopy() *ProxmoxClusterTemplateList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxmoxClusterTemplateList.
func (*ProxmoxClusterTemplateList) DeepCopyInto ¶ added in v0.4.0
func (in *ProxmoxClusterTemplateList) DeepCopyInto(out *ProxmoxClusterTemplateList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ProxmoxClusterTemplateList) DeepCopyObject ¶ added in v0.4.0
func (in *ProxmoxClusterTemplateList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ProxmoxClusterTemplateResource ¶ added in v0.4.0
type ProxmoxClusterTemplateResource struct { // Standard object's metadata. // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata // +optional ObjectMeta clusterv1.ObjectMeta `json:"metadata,omitempty"` Spec ProxmoxClusterSpec `json:"spec"` }
ProxmoxClusterTemplateResource defines the spec and metadata for ProxmoxClusterTemplate supported by capi.
func (*ProxmoxClusterTemplateResource) DeepCopy ¶ added in v0.4.0
func (in *ProxmoxClusterTemplateResource) DeepCopy() *ProxmoxClusterTemplateResource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxmoxClusterTemplateResource.
func (*ProxmoxClusterTemplateResource) DeepCopyInto ¶ added in v0.4.0
func (in *ProxmoxClusterTemplateResource) DeepCopyInto(out *ProxmoxClusterTemplateResource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProxmoxClusterTemplateSpec ¶ added in v0.4.0
type ProxmoxClusterTemplateSpec struct {
Template ProxmoxClusterTemplateResource `json:"template"`
}
ProxmoxClusterTemplateSpec defines the desired state of ProxmoxClusterTemplate.
func (*ProxmoxClusterTemplateSpec) DeepCopy ¶ added in v0.4.0
func (in *ProxmoxClusterTemplateSpec) DeepCopy() *ProxmoxClusterTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxmoxClusterTemplateSpec.
func (*ProxmoxClusterTemplateSpec) DeepCopyInto ¶ added in v0.4.0
func (in *ProxmoxClusterTemplateSpec) DeepCopyInto(out *ProxmoxClusterTemplateSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProxmoxMachine ¶
type ProxmoxMachine struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // +kubebuilder:validation:XValidation:rule="self.full && self.format != ”",message="Must set full=true when specifying format" Spec ProxmoxMachineSpec `json:"spec,omitempty"` Status ProxmoxMachineStatus `json:"status,omitempty"` }
ProxmoxMachine is the Schema for the proxmoxmachines API.
func (*ProxmoxMachine) DeepCopy ¶
func (in *ProxmoxMachine) DeepCopy() *ProxmoxMachine
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxmoxMachine.
func (*ProxmoxMachine) DeepCopyInto ¶
func (in *ProxmoxMachine) DeepCopyInto(out *ProxmoxMachine)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ProxmoxMachine) DeepCopyObject ¶
func (in *ProxmoxMachine) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ProxmoxMachine) GetConditions ¶
func (r *ProxmoxMachine) GetConditions() clusterv1.Conditions
GetConditions returns the observations of the operational state of the ProxmoxMachine resource.
func (*ProxmoxMachine) GetNode ¶
func (r *ProxmoxMachine) GetNode() string
GetNode get the Proxmox node used to provision this machine.
func (*ProxmoxMachine) GetTemplateID ¶
func (r *ProxmoxMachine) GetTemplateID() int32
GetTemplateID get the Proxmox template "vmid" used to provision this machine.
func (*ProxmoxMachine) GetVirtualMachineID ¶
func (r *ProxmoxMachine) GetVirtualMachineID() int64
GetVirtualMachineID get the Proxmox "vmid".
func (*ProxmoxMachine) SetConditions ¶
func (r *ProxmoxMachine) SetConditions(conditions clusterv1.Conditions)
SetConditions sets the underlying service state of the ProxmoxMachine to the predescribed clusterv1.Conditions.
type ProxmoxMachineChecks ¶ added in v0.6.0
type ProxmoxMachineChecks struct { // Skip checking CloudInit which can be very useful for specific Operating Systems like TalOS // +optional SkipCloudInitStatus *bool `json:"skipCloudInitStatus,omitempty"` // Skip checking QEMU Agent readiness which can be very useful for specific Operating Systems like TalOS // +optional SkipQemuGuestAgent *bool `json:"skipQemuGuestAgent,omitempty"` }
ProxmoxMachineChecks defines possibibles checks to skip.
func (*ProxmoxMachineChecks) DeepCopy ¶ added in v0.6.0
func (in *ProxmoxMachineChecks) DeepCopy() *ProxmoxMachineChecks
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxmoxMachineChecks.
func (*ProxmoxMachineChecks) DeepCopyInto ¶ added in v0.6.0
func (in *ProxmoxMachineChecks) DeepCopyInto(out *ProxmoxMachineChecks)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProxmoxMachineList ¶
type ProxmoxMachineList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []ProxmoxMachine `json:"items"` }
ProxmoxMachineList contains a list of ProxmoxMachine.
func (*ProxmoxMachineList) DeepCopy ¶
func (in *ProxmoxMachineList) DeepCopy() *ProxmoxMachineList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxmoxMachineList.
func (*ProxmoxMachineList) DeepCopyInto ¶
func (in *ProxmoxMachineList) DeepCopyInto(out *ProxmoxMachineList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ProxmoxMachineList) DeepCopyObject ¶
func (in *ProxmoxMachineList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ProxmoxMachineSpec ¶
type ProxmoxMachineSpec struct { VirtualMachineCloneSpec `json:",inline"` // ProviderID is the virtual machine BIOS UUID formatted as // proxmox://6c3fa683-bef9-4425-b413-eaa45a9d6191 // +optional ProviderID *string `json:"providerID,omitempty"` // VirtualMachineID is the Proxmox identifier for the ProxmoxMachine VM. // +optional VirtualMachineID *int64 `json:"virtualMachineID,omitempty"` // NumSockets is the number of CPU sockets in a virtual machine. // Defaults to the property value in the template from which the virtual machine is cloned. // +kubebuilder:validation:Minimum=1 // +optional NumSockets int32 `json:"numSockets,omitempty"` // NumCores is the number of cores per CPU socket in a virtual machine. // Defaults to the property value in the template from which the virtual machine is cloned. // +kubebuilder:validation:Minimum=1 // +optional NumCores int32 `json:"numCores,omitempty"` // MemoryMiB is the size of a virtual machine's memory, in MiB. // Defaults to the property value in the template from which the virtual machine is cloned. // +kubebuilder:validation:MultipleOf=8 // +optional MemoryMiB int32 `json:"memoryMiB,omitempty"` // Disks contains a set of disk configuration options, // which will be applied before the first startup. // // +optional Disks *Storage `json:"disks,omitempty"` // Network is the network configuration for this machine's VM. // +optional Network *NetworkSpec `json:"network,omitempty"` // VMIDRange is the range of VMIDs to use for VMs. // +optional // +kubebuilder:validation:XValidation:rule="self.end >= self.start",message="end should be greater than or equal to start" VMIDRange *VMIDRange `json:"vmIDRange,omitempty"` // Checks defines possibles checks to skip. // +optional Checks *ProxmoxMachineChecks `json:"checks,omitempty"` // MetadataSettings defines the metadata settings for this machine's VM. // +optional MetadataSettings *MetadataSettings `json:"metadataSettings,omitempty"` }
ProxmoxMachineSpec defines the desired state of a ProxmoxMachine.
func (*ProxmoxMachineSpec) DeepCopy ¶
func (in *ProxmoxMachineSpec) DeepCopy() *ProxmoxMachineSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxmoxMachineSpec.
func (*ProxmoxMachineSpec) DeepCopyInto ¶
func (in *ProxmoxMachineSpec) DeepCopyInto(out *ProxmoxMachineSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProxmoxMachineStatus ¶
type ProxmoxMachineStatus struct { // Ready indicates the Docker infrastructure has been provisioned and is ready. // +optional Ready bool `json:"ready"` // Addresses contains the Proxmox VM instance associated addresses. // +optional Addresses []clusterv1.MachineAddress `json:"addresses,omitempty"` // VMStatus is used to identify the virtual machine status. // +optional VMStatus VirtualMachineState `json:"vmStatus,omitempty"` // BootstrapDataProvided whether the virtual machine has an injected bootstrap data. // +optional BootstrapDataProvided *bool `json:"bootstrapDataProvided,omitempty"` // IPAddresses are the IP addresses used to access the virtual machine. // +optional IPAddresses map[string]IPAddress `json:"ipAddresses,omitempty"` // Network returns the network status for each of the machine's configured. // network interfaces. // +optional Network []NetworkStatus `json:"network,omitempty"` // ProxmoxNode is the name of the proxmox node, which was chosen for this // machine to be deployed on. // +optional ProxmoxNode *string `json:"proxmoxNode,omitempty"` // TaskRef is a managed object reference to a Task related to the ProxmoxMachine. // This value is set automatically at runtime and should not be set or // modified by users. // +optional TaskRef *string `json:"taskRef,omitempty"` // RetryAfter tracks the time we can retry queueing a task. // +optional RetryAfter metav1.Time `json:"retryAfter,omitempty"` // FailureReason will be set in the event that there is a terminal problem // reconciling the Machine and will contain a succinct value suitable // for machine interpretation. // // This field should not be set for transitive errors that a controller // faces that are expected to be fixed automatically over // time (like service outages), but instead indicate that something is // fundamentally wrong with the Machine's spec or the configuration of // the controller, and that manual intervention is required. Examples // of terminal errors would be invalid combinations of settings in the // spec, values that are unsupported by the controller, or the // responsible controller itself being critically misconfigured. // // Any transient errors that occur during the reconciliation of ProxmoxMachines // can be added as events to the ProxmoxMachine object and/or logged in the // controller's output. // +optional FailureReason *clusterapierrors.MachineStatusError `json:"failureReason,omitempty"` // FailureMessage will be set in the event that there is a terminal problem // reconciling the Machine and will contain a more verbose string suitable // for logging and human consumption. // // This field should not be set for transitive errors that a controller // faces that are expected to be fixed automatically over // time (like service outages), but instead indicate that something is // fundamentally wrong with the Machine's spec or the configuration of // the controller, and that manual intervention is required. Examples // of terminal errors would be invalid combinations of settings in the // spec, values that are unsupported by the controller, or the // responsible controller itself being critically misconfigured. // // Any transient errors that occur during the reconciliation of ProxmoxMachines // can be added as events to the ProxmoxMachine object and/or logged in the // controller's output. // +optional FailureMessage *string `json:"failureMessage,omitempty"` // Conditions defines current service state of the ProxmoxMachine. // +optional Conditions clusterv1.Conditions `json:"conditions,omitempty"` }
ProxmoxMachineStatus defines the observed state of a ProxmoxMachine.
func (*ProxmoxMachineStatus) DeepCopy ¶
func (in *ProxmoxMachineStatus) DeepCopy() *ProxmoxMachineStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxmoxMachineStatus.
func (*ProxmoxMachineStatus) DeepCopyInto ¶
func (in *ProxmoxMachineStatus) DeepCopyInto(out *ProxmoxMachineStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProxmoxMachineTemplate ¶
type ProxmoxMachineTemplate struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec ProxmoxMachineTemplateSpec `json:"spec,omitempty"` }
ProxmoxMachineTemplate is the Schema for the proxmoxmachinetemplates API.
func (*ProxmoxMachineTemplate) DeepCopy ¶
func (in *ProxmoxMachineTemplate) DeepCopy() *ProxmoxMachineTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxmoxMachineTemplate.
func (*ProxmoxMachineTemplate) DeepCopyInto ¶
func (in *ProxmoxMachineTemplate) DeepCopyInto(out *ProxmoxMachineTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ProxmoxMachineTemplate) DeepCopyObject ¶
func (in *ProxmoxMachineTemplate) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ProxmoxMachineTemplateList ¶
type ProxmoxMachineTemplateList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []ProxmoxMachineTemplate `json:"items"` }
ProxmoxMachineTemplateList contains a list of ProxmoxMachineTemplate.
func (*ProxmoxMachineTemplateList) DeepCopy ¶
func (in *ProxmoxMachineTemplateList) DeepCopy() *ProxmoxMachineTemplateList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxmoxMachineTemplateList.
func (*ProxmoxMachineTemplateList) DeepCopyInto ¶
func (in *ProxmoxMachineTemplateList) DeepCopyInto(out *ProxmoxMachineTemplateList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ProxmoxMachineTemplateList) DeepCopyObject ¶
func (in *ProxmoxMachineTemplateList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ProxmoxMachineTemplateResource ¶
type ProxmoxMachineTemplateResource struct { // Standard object's metadata. // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata // +optional ObjectMeta clusterv1.ObjectMeta `json:"metadata,omitempty"` Spec ProxmoxMachineSpec `json:"spec"` }
ProxmoxMachineTemplateResource defines the spec and metadata for ProxmoxMachineTemplate supported by capi.
func (*ProxmoxMachineTemplateResource) DeepCopy ¶
func (in *ProxmoxMachineTemplateResource) DeepCopy() *ProxmoxMachineTemplateResource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxmoxMachineTemplateResource.
func (*ProxmoxMachineTemplateResource) DeepCopyInto ¶
func (in *ProxmoxMachineTemplateResource) DeepCopyInto(out *ProxmoxMachineTemplateResource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProxmoxMachineTemplateSpec ¶
type ProxmoxMachineTemplateSpec struct {
Template ProxmoxMachineTemplateResource `json:"template"`
}
ProxmoxMachineTemplateSpec defines the desired state of ProxmoxMachineTemplate.
func (*ProxmoxMachineTemplateSpec) DeepCopy ¶
func (in *ProxmoxMachineTemplateSpec) DeepCopy() *ProxmoxMachineTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxmoxMachineTemplateSpec.
func (*ProxmoxMachineTemplateSpec) DeepCopyInto ¶
func (in *ProxmoxMachineTemplateSpec) DeepCopyInto(out *ProxmoxMachineTemplateSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RouteSpec ¶ added in v0.3.0
type RouteSpec struct { // To is the subnet to be routed. // +optional To string `json:"to,omitempty"` // Via is the gateway to the subnet. // +optional Via string `json:"via,omitempty"` // Metric is the priority of the route in the routing table. // +optional Metric uint32 `json:"metric,omitempty"` // Table is the routing table used for this route. // +optional Table uint32 `json:"table,omitempty"` }
RouteSpec describes an IPv4/IPv6 Route.
func (*RouteSpec) DeepCopy ¶ added in v0.3.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteSpec.
func (*RouteSpec) DeepCopyInto ¶ added in v0.3.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Routing ¶ added in v0.4.0
type Routing struct { // Routes are the routes associated with this interface. // +optional // +kubebuilder:validation:MinItems=1 Routes []RouteSpec `json:"routes,omitempty"` // RoutingPolicy is an interface-specific policy inserted into FIB (forwarding information base). // +optional // +kubebuilder:validation:MinItems=1 RoutingPolicy []RoutingPolicySpec `json:"routingPolicy,omitempty"` }
Routing is shared fields across devices and VRFs.
func (*Routing) DeepCopy ¶ added in v0.4.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Routing.
func (*Routing) DeepCopyInto ¶ added in v0.4.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RoutingPolicySpec ¶ added in v0.3.0
type RoutingPolicySpec struct { // To is the subnet of the target. // +optional To string `json:"to,omitempty"` // From is the subnet of the source. // +optional From string `json:"from,omitempty"` // Table is the routing table ID. // when used in the networks, the value should be the VRF Table. // +optional Table *uint32 `json:"table,omitempty"` // Priority is the position in the ip rule FIB table. // +kubebuilder:validation:Maximum=4294967295 // +kubebuilder:validation:XValidation:message="Cowardly refusing to insert FIB rule matching kernel rules",rule="(self > 0 && self < 32765) || (self > 32766)" // +optional Priority uint32 `json:"priority,omitempty"` }
RoutingPolicySpec is a Linux FIB rule.
func (*RoutingPolicySpec) DeepCopy ¶ added in v0.3.0
func (in *RoutingPolicySpec) DeepCopy() *RoutingPolicySpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoutingPolicySpec.
func (*RoutingPolicySpec) DeepCopyInto ¶ added in v0.3.0
func (in *RoutingPolicySpec) DeepCopyInto(out *RoutingPolicySpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SchedulerHints ¶ added in v0.2.0
type SchedulerHints struct { // MemoryAdjustment allows to adjust a node's memory by a given percentage. // For example, setting it to 300 allows to allocate 300% of a host's memory for VMs, // and setting it to 95 limits memory allocation to 95% of a host's memory. // Setting it to 0 entirely disables scheduling memory constraints. // By default 100% of a node's memory will be used for allocation. // +optional MemoryAdjustment *uint64 `json:"memoryAdjustment,omitempty"` }
SchedulerHints allows to pass the scheduler instructions to (dis)allow over- or enforce underprovisioning of resources.
func (*SchedulerHints) DeepCopy ¶ added in v0.2.0
func (in *SchedulerHints) DeepCopy() *SchedulerHints
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SchedulerHints.
func (*SchedulerHints) DeepCopyInto ¶ added in v0.2.0
func (in *SchedulerHints) DeepCopyInto(out *SchedulerHints)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*SchedulerHints) GetMemoryAdjustment ¶ added in v0.2.0
func (sh *SchedulerHints) GetMemoryAdjustment() uint64
GetMemoryAdjustment returns the memory adjustment percentage to use within the scheduler.
type Storage ¶
type Storage struct { // BootVolume defines the storage size for the boot volume. // This field is optional, and should only be set if you want // to change the size of the boot volume. // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable" // +optional BootVolume *DiskSize `json:"bootVolume,omitempty"` }
Storage is the physical storage on the node.
func (*Storage) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Storage.
func (*Storage) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TargetFileStorageFormat ¶
type TargetFileStorageFormat string
TargetFileStorageFormat the target format of the cloned disk.
const ( TargetStorageFormatRaw TargetFileStorageFormat = "raw" TargetStorageFormatQcow2 TargetFileStorageFormat = "qcow2" TargetStorageFormatVmdk TargetFileStorageFormat = "vmdk" )
Supported disk formats.
type VMIDRange ¶ added in v0.6.0
type VMIDRange struct { // VMIDRangeStart is the start of the VMID range to use for VMs. // +kubebuilder:validation:Minimum=100 // +kubebuilder:validation:ExclusiveMinimum=false // +kubebuilder:validation:Maximum=999999999 // +kubebuilder:validation:ExclusiveMaximum=false // +kubebuilder:validation:Required Start int64 `json:"start"` // VMIDRangeEnd is the end of the VMID range to use for VMs. // Only used if VMIDRangeStart is set. // +kubebuilder:validation:Minimum=100 // +kubebuilder:validation:ExclusiveMinimum=false // +kubebuilder:validation:Maximum=999999999 // +kubebuilder:validation:ExclusiveMaximum=false // +kubebuilder:validation:Required End int64 `json:"end"` }
VMIDRange defines the range of VMIDs to use for VMs.
func (*VMIDRange) DeepCopy ¶ added in v0.6.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMIDRange.
func (*VMIDRange) DeepCopyInto ¶ added in v0.6.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VRFDevice ¶ added in v0.3.0
type VRFDevice struct { // Interfaces is the list of proxmox network devices managed by this virtual device. Interfaces []string `json:"interfaces,omitempty"` // Name is the virtual network device name. // Must be unique within the virtual machine. // +kubebuilder:validation:MinLength=3 Name string `json:"name"` // Table is the ID of the routing table used for the l3mdev vrf device. // +kubebuilder:validation:Maximum=4294967295 // +kubebuilder:validation:XValidation:message="Cowardly refusing to insert l3mdev rules into kernel tables",rule="(self > 0 && self < 254) || (self > 255)" Table uint32 `json:"table"` // Routing is the common spec of routes and routing policies to all interfaces and VRFs. Routing `json:",inline"` }
VRFDevice defines Virtual Routing Flow devices.
func (*VRFDevice) DeepCopy ¶ added in v0.3.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VRFDevice.
func (*VRFDevice) DeepCopyInto ¶ added in v0.3.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMachine ¶
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"` }
VirtualMachine represents data about a Proxmox virtual machine object.
func (*VirtualMachine) DeepCopy ¶
func (in *VirtualMachine) DeepCopy() *VirtualMachine
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachine.
func (*VirtualMachine) DeepCopyInto ¶
func (in *VirtualMachine) DeepCopyInto(out *VirtualMachine)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMachineCloneSpec ¶
type VirtualMachineCloneSpec struct { // SourceNode is the initially selected proxmox node. // This node will be used to locate the template VM, which will // be used for cloning operations. // // Cloning will be performed according to the configuration. // Setting the `Target` field will tell Proxmox to clone the // VM on that target node. // // When Target is not set and the ProxmoxCluster contains // a set of `AllowedNodes`, the algorithm will instead evenly // distribute the VMs across the nodes from that list. // // If neither a `Target` nor `AllowedNodes` was set, the VM // will be cloned onto the same node as SourceNode. // // +kubebuilder:validation:MinLength=1 SourceNode string `json:"sourceNode"` // TemplateID the vm_template vmid used for cloning a new VM. // +optional TemplateID *int32 `json:"templateID,omitempty"` // Description for the new VM. // +optional Description *string `json:"description,omitempty"` // Format for file storage. Only valid for full clone. // +kubebuilder:validation:Enum=raw;qcow2;vmdk // +kubebuilder:default=raw // +optional Format *TargetFileStorageFormat `json:"format,omitempty"` // Full Create a full copy of all disks. // This is always done when you clone a normal VM. // Create a Full clone by default. // +kubebuilder:default=true // +optional Full *bool `json:"full,omitempty"` // Pool Add the new VM to the specified pool. // +optional Pool *string `json:"pool,omitempty"` // SnapName The name of the snapshot. // +optional SnapName *string `json:"snapName,omitempty"` // Storage for full clone. // +optional Storage *string `json:"storage,omitempty"` // Target node. Only allowed if the original VM is on shared storage. // +optional Target *string `json:"target,omitempty"` }
VirtualMachineCloneSpec is information used to clone a virtual machine.
func (*VirtualMachineCloneSpec) DeepCopy ¶
func (in *VirtualMachineCloneSpec) DeepCopy() *VirtualMachineCloneSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineCloneSpec.
func (*VirtualMachineCloneSpec) DeepCopyInto ¶
func (in *VirtualMachineCloneSpec) DeepCopyInto(out *VirtualMachineCloneSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMachineState ¶
type VirtualMachineState string
VirtualMachineState describes the state of a VM.
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" )
type VirtualNetworkDevices ¶ added in v0.3.0
type VirtualNetworkDevices struct { // Definition of a VRF Device. // +optional // +listType=map // +listMapKey=name VRFs []VRFDevice `json:"vrfs,omitempty"` }
VirtualNetworkDevices defines Linux software networking devices.
func (*VirtualNetworkDevices) DeepCopy ¶ added in v0.3.0
func (in *VirtualNetworkDevices) DeepCopy() *VirtualNetworkDevices
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualNetworkDevices.
func (*VirtualNetworkDevices) DeepCopyInto ¶ added in v0.3.0
func (in *VirtualNetworkDevices) DeepCopyInto(out *VirtualNetworkDevices)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.