v1beta1

package
v0.3.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 25, 2024 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Overview

Package v1beta1 contains API Schema definitions for the infrastructure v1beta1 API group +kubebuilder:object:generate=true +groupName=infrastructure.cluster.x-k8s.io

Index

Constants

View Source
const (
	// ClusterFinalizer
	ClusterFinalizer = "proxmoxcluster.infrastructure.cluster.x-k8s.io"
)
View Source
const (
	// MachineFinalizer
	MachineFinalizer = "proxmoxmachine.infrastructure.cluster.x-k8s.io"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "infrastructure.cluster.x-k8s.io", Version: "v1beta1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var (
	InstanceStatusPaused  = InstanceStatus(api.ProcessStatusPaused)
	InstanceStatusRunning = InstanceStatus(api.ProcessStatusRunning)
	InstanceStatusStopped = InstanceStatus(api.ProcessStatusStopped)
)

Functions

This section is empty.

Types

type Arch

type Arch string

+kubebuilder:validation:Enum:=x86_64;aarch64

type BIOS

type BIOS string

+kubebuilder:validation:Enum:=seabios;ovmf

type CACert

type CACert struct {
	RemoveDefaults bool     `yaml:"remove_defaults,omitempty" json:"remove_defaults,omitempty"`
	Trusted        []string `yaml:"trusted,omitempty" json:"trusted,omitempty"`
}

func (*CACert) DeepCopy

func (in *CACert) DeepCopy() *CACert

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CACert.

func (*CACert) DeepCopyInto

func (in *CACert) DeepCopyInto(out *CACert)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ChPasswd

type ChPasswd struct {
	Expire string `yaml:"expire,omitempty" json:"expire,omitempty"`
}

func (*ChPasswd) DeepCopy

func (in *ChPasswd) DeepCopy() *ChPasswd

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChPasswd.

func (*ChPasswd) DeepCopyInto

func (in *ChPasswd) DeepCopyInto(out *ChPasswd)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CloudInit

type CloudInit struct {
	UserData *UserData `json:"user,omitempty"`
}

CloudInit is passed to disk directly as raw yaml file not via Proxmox API so you can configure more detailed configs

func (*CloudInit) DeepCopy

func (in *CloudInit) DeepCopy() *CloudInit

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudInit.

func (*CloudInit) DeepCopyInto

func (in *CloudInit) DeepCopyInto(out *CloudInit)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Hardware

type Hardware struct {
	// amount of RAM for the VM in MiB : 16 ~
	// +kubebuilder:validation:Minimum:=16
	// +kubebuilder:default:=4096
	Memory int `json:"memory,omitempty"`

	// number of CPU cores : 1 ~
	// +kubebuilder:validation:Minimum:=1
	// +kubebuilder:default:=2
	CPU int `json:"cpu,omitempty"`

	// Emulated CPU Type. Defaults to kvm64
	CPUType string `json:"cpuType,omitempty"`

	// +kubebuilder:validation:Minimum:=1
	// The number of CPU sockets. Defaults to 1.
	Sockets int `json:"sockets,omitempty"`

	// +kubebuilder:validation:Minimum:=0
	// Limit of CPU usage. If the computer has 2 CPUs, it has total of '2' CPU time.
	// Value '0' indicates no CPU limit. Defaults to 0.
	CPULimit int `json:"cpuLimit,omitempty"`

	// Select BIOS implementation. Defaults to seabios. seabios or ovmf.
	// Defaults to seabios.
	BIOS BIOS `json:"bios,omitempty"`

	// hard disk size
	// +kubebuilder:validation:Pattern:=\+?\d+(\.\d+)?[KMGT]?
	// +kubebuilder:default:="50G"
	Disk string `json:"disk,omitempty"`

	// network devices
	// to do: multiple devices
	// +kubebuilder:default:={model:virtio,bridge:vmbr0,firewall:true}
	NetworkDevice NetworkDevice `json:"networkDevice,omitempty"`
}

Hardware

func (*Hardware) DeepCopy

func (in *Hardware) DeepCopy() *Hardware

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Hardware.

func (*Hardware) DeepCopyInto

func (in *Hardware) DeepCopyInto(out *Hardware)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HugePages

type HugePages int

+kubebuilder:validation:Enum:=0;2;1024

func (*HugePages) String

func (h *HugePages) String() string

type IPConfig

type IPConfig struct {
	// IPv4 with CIDR
	IP string `json:"ip,omitempty"`

	// gateway IPv4
	Gateway string `json:"gateway,omitempty"`

	// IPv6 with CIDR
	IP6 string `json:"ip6,omitempty"`

	// gateway IPv6
	Gateway6 string `json:"gateway6,omitempty"`
}

IPConfig defines IP addresses and gateways for corresponding interface. it defaults to using dhcp on IPv4 if neither IP nor IP6 is specified.

func (*IPConfig) DeepCopy

func (in *IPConfig) DeepCopy() *IPConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPConfig.

func (*IPConfig) DeepCopyInto

func (in *IPConfig) DeepCopyInto(out *IPConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*IPConfig) String

func (c *IPConfig) String() string

type Image

type Image struct {
	// +kubebuilder:validation:Pattern:=.*\.(iso|img|qcow2|qed|raw|vdi|vpc|vmdk)$
	// URL is a location of an image to deploy.
	// supported formats are iso/qcow2/qed/raw/vdi/vpc/vmdk.
	URL string `json:"url"`

	// Checksum
	// Always better to specify checksum otherwise cappx will download
	// same image for every time. If checksum is specified, cappx will try
	// to avoid downloading existing image.
	Checksum string `json:"checksum,omitempty"`

	// +kubebuilder:validation:Enum:=sha256;sha256sum;md5;md5sum
	// ChecksumType
	ChecksumType *string `json:"checksumType,omitempty"`
}

Image is the image to be provisioned

func (*Image) DeepCopy

func (in *Image) DeepCopy() *Image

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Image.

func (*Image) DeepCopyInto

func (in *Image) DeepCopyInto(out *Image)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type InstanceStatus

type InstanceStatus string

type Lock

type Lock string

+kubebuilder:validation:Enum:=backup;clone;create;migrate;rollback;snapshot;snapshot-delete;suspending;suspended

type Network

type Network struct {
	// to do : should accept multiple IPConfig
	IPConfig IPConfig `json:"ipConfig,omitempty"`

	// DNS server
	NameServer string `json:"nameServer,omitempty"`

	// search domain
	SearchDomain string `json:"searchDomain,omitempty"`
}

Network cloud-init network configuration is configured through Proxmox API it may be migrated to raw yaml way from Proxmox API way in the future

func (*Network) DeepCopy

func (in *Network) DeepCopy() *Network

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Network.

func (*Network) DeepCopyInto

func (in *Network) DeepCopyInto(out *Network)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NetworkDevice

type NetworkDevice struct {
	// +kubebuilder:default:="virtio"
	Model NetworkDeviceModel `json:"model,omitempty"`

	// +kubebuilder:default:="vmbr0"
	Bridge NetworkDeviceBridge `json:"bridge,omitempty"`

	// +kubebuilder:default:=true
	Firewall bool `json:"firewall,omitempty"`

	LinkDown bool `json:"linkDown,omitempty"`

	MacAddr string `json:"macAddr,omitempty"`

	MTU int `json:"mtu,omitempty"`

	Queues int `json:"queues,omitempty"`

	// since float is highly discouraged, use string instead
	// +kubebuilder:validation:Pattern:=[0-9]+(\.|)[0-9]*
	Rate string `json:"rate,omitempty"`

	Tag int `json:"tag,omitempty"`

	// trunks: array of vlanid
	Trunks []int `json:"trunks,omitempty"`
}

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.

func (*NetworkDevice) String

func (n *NetworkDevice) String() string

type NetworkDeviceBridge

type NetworkDeviceBridge string

+kubebuilder:validation:Pattern:="vmbr[0-9]{1,4}"

type NetworkDeviceModel

type NetworkDeviceModel string

+kubebuilder:validation:Enum:=e1000;virtio;rtl8139;vmxnet3

type OSType

type OSType string

+kubebuilder:validation:Enum:=other;wxp;w2k;w2k3;w2k8;wvista;win7;win8;win10;win11;l24;l26;solaris

type ObjectReference

type ObjectReference struct {
	// Namespace of the referent.
	// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
	Namespace string `json:"namespace,omitempty"`

	// Name of the referent.
	// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
	// +kubebuilder:validation:Required
	Name string `json:"name"`
}

ObjectReference is a reference to another Kubernetes object instance.

func (*ObjectReference) DeepCopy

func (in *ObjectReference) DeepCopy() *ObjectReference

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectReference.

func (*ObjectReference) DeepCopyInto

func (in *ObjectReference) DeepCopyInto(out *ObjectReference)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Options

type Options struct {
	// Enable/Disable ACPI. Defaults to true.
	ACPI bool `json:"acpi,omitempty"`

	// Virtual processor architecture. Defaults to the host. x86_64 or aarch64.
	Arch Arch `json:"arch,omitempty"`

	// +kubebuilder:validation:Minimum:=0
	// Amount of target RAM for the VM in MiB. Using zero disables the ballon driver.
	Balloon int `json:"balloon,omitempty"`

	// Description for the VM. Shown in the web-interface VM's summary.
	// This is saved as comment inside the configuration file.
	Description string `json:"description,omitempty"`

	// enable/disable hugepages memory. 0 or 2 or 1024. 0 indicated 'any'
	HugePages *HugePages `json:"hugePages,omitempty"`

	// Use together with hugepages. If enabled, hugepages will not not be deleted
	// after VM shutdown and can be used for subsequent starts. Defaults to false.
	KeepHugePages bool `json:"keepHugePages,omitempty"`

	// Enable/disable KVM hardware virtualization. Defaults to true.
	KVM bool `json:"kvm,omitempty"`

	// Set the real time clock (RTC) to local time.
	// This is enabled by default if the `ostype` indicates a Microsoft Windows OS.
	LocalTime bool `json:"localTime,omitempty"`

	// Lock/unlock the VM.
	Lock Lock `json:"lock,omitempty"`

	// Enable/disable NUMA.
	NUMA bool `json:"numa,omitempty"`

	// Specifies whether a VM will be started during system bootup.
	OnBoot bool `json:"onBoot,omitempty"`

	// Specify guest operating system. This is used to enable special
	// optimization/features for specific operating systems.
	OSType OSType `json:"osType,omitempty"`

	// Sets the protection flag of the VM.
	// This will disable the remove VM and remove disk operations.
	// Defaults to false.
	Protection bool `json:"protection,omitempty"`

	// Allow reboot. If set to 'false' the VM exit on reboot.
	// Defaults to true.
	Reboot bool `json:"reboot,omitempty"`

	// +kubebuilder:validation:Minimum:=0
	// +kubebuilder:validation:Maximum:=5000
	// Amount of memory shares for auto-ballooning. The larger the number is, the more memory this VM gets.
	// Number is relative to weights of all other running VMs. Using zero disables auto-ballooning.
	// Auto-ballooning is done by pvestatd. 0 ~ 5000. Defaults to 1000.
	Shares int `json:"shares,omitempty"`

	// Enable/disable the USB tablet device. This device is usually needed to allow
	// absolute mouse positioning with VNC. Else the mouse runs out of sync with normal VNC clients.
	// If you're running lots of console-only guests on one host,
	// you may consider disabling this to save some context switches.
	// This is turned off by default if you use spice (`qm set <vmid> --vga qxl`).
	// Defaults to true.
	Tablet bool `json:"tablet,omitempty"`

	// Tags of the VM. This is only meta information.
	Tags Tags `json:"tags,omitempty"`

	// Enable/disable time drift fix. Defaults to false.
	TimeDriftFix bool `json:"timeDriftFix,omitempty"`

	// Enable/disable Template. Defaults to false.
	Template bool `json:"template,omitempty"`

	// +kubebuilder:validation:Minimum:=0
	// Number of hotplugged vcpus. Defaults to 0.
	VCPUs int `json:"vcpus,omitempty"`

	// +kubebuilder:validation:Pattern:="(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])"
	// The VM generation ID (vmgenid) device exposes a 128-bit integer value identifier to the guest OS.
	// This allows to notify the guest operating system when the virtual machine is executed with a different configuration
	// (e.g. snapshot execution or creation from a template).
	// The guest operating system notices the change, and is then able to react as appropriate by marking its copies of distributed databases as dirty,
	// re-initializing its random number generator, etc.
	// Note that auto-creation only works when done through API/CLI create or update methods, but not when manually editing the config file.
	// regex: (?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01]). Defaults to 1 (autogenerated)
	VMGenerationID string `json:"vmGenerationID,omitempty"`
}

Options

func (*Options) DeepCopy

func (in *Options) DeepCopy() *Options

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Options.

func (*Options) DeepCopyInto

func (in *Options) DeepCopyInto(out *Options)

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"`

	Spec   ProxmoxClusterSpec   `json:"spec,omitempty"`
	Status ProxmoxClusterStatus `json:"status,omitempty"`
}

ProxmoxCluster is the Schema for the proxmoxclusters API

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.

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
	ControlPlaneEndpoint clusterv1.APIEndpoint `json:"controlPlaneEndpoint"`

	// ServerRef is used for configuring Proxmox client
	ServerRef ServerRef `json:"serverRef"`

	// storage is used for storing cloud init snippet
	Storage Storage `json:"storage,omitempty"`
}

ProxmoxClusterSpec defines the desired state of 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
	Ready bool `json:"ready"`

	// FailureDomains
	FailureDomains clusterv1.FailureDomains `json:"failureDomains,omitempty"`

	// Conditions
	Conditions clusterv1.Conditions `json:"conditions,omitempty"`
}

ProxmoxClusterStatus defines the observed state of ProxmoxCluster

func (*ProxmoxClusterStatus) DeepCopy

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 ProxmoxMachine

type ProxmoxMachine struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	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.

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 {
	// ProviderID
	ProviderID *string `json:"providerID,omitempty"`

	// Node is proxmox node hosting vm instance which used for ProxmoxMachine
	Node string `json:"node,omitempty"`

	// Storage is name of proxmox storage used by this node.
	// The storage must support "images(VM Disks)" type of content.
	// cappx will use random storage if empty
	Storage string `json:"storage,omitempty"`

	// +kubebuilder:validation:Minimum:=0
	// VMID is proxmox qemu's id
	VMID *int `json:"vmID,omitempty"`

	// Image is the image to be provisioned
	Image Image `json:"image"`

	// CloudInit defines options related to the bootstrapping systems where
	// CloudInit is used.
	CloudInit CloudInit `json:"cloudInit,omitempty"`

	// Hardware
	// +kubebuilder:default:={cpu:2,disk:"50G",memory:4096,networkDevice:{model:virtio,bridge:vmbr0,firewall:true}}
	Hardware Hardware `json:"hardware,omitempty"`

	// Network
	Network Network `json:"network,omitempty"`

	// Options for QEMU instance
	Options Options `json:"options,omitempty"`

	// FailureDomain is the failure domain unique identifier this Machine should be attached to, as defined in Cluster API.
	FailureDomain *string `json:"failureDomain,omitempty"`
}

ProxmoxMachineSpec defines the desired state of 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 is true when the provider resource is ready.
	// +optional
	Ready bool `json:"ready"`

	// FailureReason
	FailureReason *errors.MachineStatusError `json:"failureReason,omitempty"`

	// FailureMessage
	FailureMessage *string `json:"failureMessage,omitempty"`

	// Addresses
	Addresses []clusterv1.MachineAddress `json:"addresses,omitempty"`

	// Conditions
	Conditions clusterv1.Conditions `json:"conditions,omitempty"`

	// Configuration
	Config api.VirtualMachineConfig `json:"config,omitempty"`

	// InstanceStatus is the status of the proxmox instance for this machine.
	// +optional
	InstanceStatus *InstanceStatus `json:"instanceStatus,omitempty"` // InstanceStatus
}

ProxmoxMachineStatus defines the observed state of ProxmoxMachine

func (*ProxmoxMachineStatus) DeepCopy

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"`
	Status ProxmoxMachineTemplateStatus `json:"status,omitempty"`
}

ProxmoxMachineTemplate is the Schema for the proxmoxmachinetemplates API

func (*ProxmoxMachineTemplate) DeepCopy

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxmoxMachineTemplateList.

func (*ProxmoxMachineTemplateList) DeepCopyInto

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 {
	// +optional
	ObjectMeta clusterv1.ObjectMeta `json:"metadata.omitempty"`
	Spec       ProxmoxMachineSpec   `json:"spec"`
}

func (*ProxmoxMachineTemplateResource) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxmoxMachineTemplateResource.

func (*ProxmoxMachineTemplateResource) DeepCopyInto

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxmoxMachineTemplateSpec.

func (*ProxmoxMachineTemplateSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ProxmoxMachineTemplateStatus

type ProxmoxMachineTemplateStatus struct {
}

ProxmoxMachineTemplateStatus defines the observed state of ProxmoxMachineTemplate

func (*ProxmoxMachineTemplateStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxmoxMachineTemplateStatus.

func (*ProxmoxMachineTemplateStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SSH

type SSH struct {
	EmitKeysToConsole bool `yaml:"emit_keys_to_console,omitempty" json:"emit_keys_to_console,omitempty"`
}

func (*SSH) DeepCopy

func (in *SSH) DeepCopy() *SSH

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SSH.

func (*SSH) DeepCopyInto

func (in *SSH) DeepCopyInto(out *SSH)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SSHKeys

type SSHKeys struct {
	RSAPrivate   string `yaml:"rsa_private,omitempty" json:"rsa_private,omitempty"`
	RSAPublic    string `yaml:"rsa_public,omitempty" json:"rsa_public,omitempty"`
	DSAPrivate   string `yaml:"dsa_private,omitempty" json:"dsa_private,omitempty"`
	DSAPublic    string `yaml:"dsa_public,omitempty" json:"dsa_public,omitempty"`
	ECDSAPrivate string `yaml:"ecdsa_private,omitempty" json:"ecdsa_private,omitempty"`
	EDSCAPublic  string `yaml:"ecdsa_public,omitempty" json:"ecdsa_public,omitempty"`
}

func (*SSHKeys) DeepCopy

func (in *SSHKeys) DeepCopy() *SSHKeys

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SSHKeys.

func (*SSHKeys) DeepCopyInto

func (in *SSHKeys) DeepCopyInto(out *SSHKeys)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServerRef

type ServerRef struct {
	// endpoint is the address of the Proxmox-VE REST API endpoint.
	Endpoint string `json:"endpoint"`

	// SecretRef is a reference for secret which contains proxmox login secrets
	SecretRef *ObjectReference `json:"secretRef"`
}

ServerRef is used for configuring Proxmox client

func (*ServerRef) DeepCopy

func (in *ServerRef) DeepCopy() *ServerRef

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerRef.

func (*ServerRef) DeepCopyInto

func (in *ServerRef) DeepCopyInto(out *ServerRef)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Storage

type Storage struct {
	Name string `json:"name,omitempty"`
	Path string `json:"path,omitempty"`
}

Storage for image and snippets

func (*Storage) DeepCopy

func (in *Storage) DeepCopy() *Storage

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Storage.

func (*Storage) DeepCopyInto

func (in *Storage) DeepCopyInto(out *Storage)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Tag

type Tag string

+kubebuilder:validation:Pattern:="[a-zA-Z0-9-_.;]+"

type Tags

type Tags []Tag

func (Tags) DeepCopy

func (in Tags) DeepCopy() Tags

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Tags.

func (Tags) DeepCopyInto

func (in Tags) DeepCopyInto(out *Tags)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Tags) String

func (t *Tags) String() string

type User

type User struct {
	Name string `yaml:"name" json:"name"`
	// +kubebuilder:validation:Pattern:="^/d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$"
	ExpireDate string `yaml:"expiredate,omitempty" json:"expiredate,omitempty"`
	GECOS      string `yaml:"gecos,omitempty" json:"gecos,omitempty"`
	// +kubebuilder:validation:Pattern:=^/.+
	HomeDir      string   `yaml:"homedir,omitempty" json:"homedir,omitempty"`
	PrimaryGroup string   `yaml:"primary_group,omitempty" json:"primary_group,omitempty"`
	Groups       []string `yaml:"groups,omitempty" json:"groups,omitempty"`
	SELinuxUser  string   `yaml:"selinux_user,omitempty" json:"selinux_user,omitempty"`
	LockPasswd   *bool    `yaml:"lock_passwd,omitempty" json:"lock_passwd,omitempty"`
	// +kubebuilder:validation:Minimum:=0
	Inactive          int      `yaml:"inactive,omitempty" json:"inactive,omitempty"`
	Passwd            string   `yaml:"passwd,omitempty" json:"passwd,omitempty"`
	NoCreateHome      bool     `yaml:"no_create_home,omitempty" json:"no_create_home,omitempty"`
	NoUserGroup       bool     `yaml:"no_user_group,omitempty" json:"no_user_group,omitempty"`
	NoLogInit         bool     `yaml:"no_log_init,omitempty" json:"no_log_init,omitempty"`
	SSHImportID       []string `yaml:"ssh_import_id,omitempty" json:"ssh_import_id,omitempty"`
	SSHAuthorizedKeys []string `yaml:"ssh_authorized_keys,omitempty" json:"ssh_authorized_keys,omitempty"`
	SSHRedirectUser   bool     `yaml:"ssh_redirect_user,omitempty" json:"ssh_redirect_user,omitempty"`
	Sudo              []string `yaml:"sudo,omitempty" json:"sudo,omitempty"`
	System            bool     `yaml:"system,omitempty" json:"system,omitempty"`
	SnapUser          string   `yaml:"snapuser,omitempty" json:"snapuser,omitempty"`
	Shell             string   `yaml:"shell,omitempty" json:"shell,omitempty"`
}

func (*User) DeepCopy

func (in *User) DeepCopy() *User

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new User.

func (*User) DeepCopyInto

func (in *User) DeepCopyInto(out *User)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type UserData

type UserData struct {
	BootCmd           []string     `yaml:"bootcmd,omitempty" json:"bootcmd,omitempty"`
	CACerts           CACert       `yaml:"ca_certs,omitempty" json:"ca_certs,omitempty"`
	ChPasswd          ChPasswd     `yaml:"chpasswd,omitempty" json:"chpasswd,omitempty"`
	HostName          string       `yaml:"hostname,omitempty" json:"-"`
	ManageEtcHosts    bool         `yaml:"manage_etc_hosts,omitempty" json:"manage_etc_hosts,omitempty"`
	NoSSHFingerprints bool         `yaml:"no_ssh_fingerprints,omitempty" json:"no_ssh_fingerprints,omitempty"`
	Packages          []string     `yaml:"packages,omitempty" json:"packages,omitempty"`
	PackageUpdate     bool         `yaml:"package_update,omitempty" json:"package_update,omitempty"`
	PackageUpgrade    bool         `yaml:"package_upgrade,omitempty" json:"package_upgrade,omitempty"`
	Password          string       `yaml:"password,omitempty" json:"password,omitempty"`
	RunCmd            []string     `yaml:"runcmd,omitempty" json:"runCmd,omitempty"`
	SSH               SSH          `yaml:"ssh,omitempty" json:"ssh,omitempty"`
	SSHAuthorizedKeys []string     `yaml:"ssh_authorized_keys,omitempty" json:"ssh_authorized_keys,omitempty"`
	SSHKeys           SSHKeys      `yaml:"ssh_keys,omitempty" json:"ssh_keys,omitempty"`
	SSHPWAuth         bool         `yaml:"ssh_pwauth,omitempty" json:"ssh_pwauth,omitempty"`
	User              string       `yaml:"user,omitempty" json:"user,omitempty"`
	Users             []User       `yaml:"users,omitempty" json:"users,omitempty"`
	WriteFiles        []WriteFiles `yaml:"write_files,omitempty" json:"writeFiles,omitempty"`
}

func (*UserData) DeepCopy

func (in *UserData) DeepCopy() *UserData

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserData.

func (*UserData) DeepCopyInto

func (in *UserData) DeepCopyInto(out *UserData)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type WriteFiles

type WriteFiles struct {
	Encoding    string `yaml:"encoding,omitempty" json:"encoding,omitempty"`
	Path        string `yaml:"path,omitempty" json:"path,omitempty"`
	Owner       string `yaml:"owner,omitempty" json:"owner,omitempty"`
	Permissions string `yaml:"permissions,omitempty" json:"permissions,omitempty"`
	Defer       bool   `yaml:"defer,omitempty" json:"defer,omitempty"`
	Content     string `yaml:"content,omitempty" json:"content,omitempty"`
}

func (*WriteFiles) DeepCopy

func (in *WriteFiles) DeepCopy() *WriteFiles

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WriteFiles.

func (*WriteFiles) DeepCopyInto

func (in *WriteFiles) DeepCopyInto(out *WriteFiles)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL