v1alpha1

package
v0.2.1 Latest Latest
Warning

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

Go to latest
Published: Jun 26, 2024 License: Apache-2.0 Imports: 8 Imported by: 0

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

View Source
const (
	// ClusterFinalizer allows cleanup of resources, which are
	// associated with the IonosCloudCluster before removing it from the API server.
	ClusterFinalizer = "ionoscloudcluster.infrastructure.cluster.x-k8s.io"

	// IonosCloudClusterReady is the condition for the IonosCloudCluster, which indicates that the cluster is ready.
	IonosCloudClusterReady clusterv1.ConditionType = "ClusterReady"

	// IonosCloudClusterKind is the string resource kind of the IonosCloudCluster resource.
	IonosCloudClusterKind = "IonosCloudCluster"
)
View Source
const (
	// IonosCloudMachineType is the named type for the API object.
	IonosCloudMachineType = "IonosCloudMachine"

	// MachineFinalizer is the finalizer for the IonosCloudMachine resources.
	// It will prevent the deletion of the resource until it was removed by the controller
	// to ensure that related cloud resources will be deleted before the IonosCloudMachine resource
	// will be removed from the API server.
	MachineFinalizer = "ionoscloudmachine.infrastructure.cluster.x-k8s.io"

	// MachineProvisionedCondition documents the status of the provisioning of a IonosCloudMachine and
	// the underlying VM.
	MachineProvisionedCondition clusterv1.ConditionType = "MachineProvisioned"

	// WaitingForClusterInfrastructureReason (Severity=Info) indicates that the IonosCloudMachine is currently
	// waiting for the cluster infrastructure to become ready.
	WaitingForClusterInfrastructureReason = "WaitingForClusterInfrastructure"

	// WaitingForBootstrapDataReason (Severity=Info) indicates that the bootstrap provider has not yet finished
	// creating the bootstrap data secret and store it in the Cluster API Machine.
	WaitingForBootstrapDataReason = "WaitingForBootstrapData"

	// CloudResourceConfigAuto is a constant to indicate that the cloud resource should be managed by the
	// Cluster API provider implementation.
	CloudResourceConfigAuto = "AUTO"
)

Variables

View Source
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 AvailabilityZone

type AvailabilityZone string

AvailabilityZone is the availability zone where different cloud resources are created in.

const (
	// AvailabilityZoneAuto automatically selects an availability zone.
	AvailabilityZoneAuto AvailabilityZone = "AUTO"
	// AvailabilityZoneOne zone 1.
	AvailabilityZoneOne AvailabilityZone = "ZONE_1"
	// AvailabilityZoneTwo zone 2.
	AvailabilityZoneTwo AvailabilityZone = "ZONE_2"
	// AvailabilityZoneThree zone 3.
	AvailabilityZoneThree AvailabilityZone = "ZONE_3"
)

func (AvailabilityZone) String

func (a AvailabilityZone) String() string

String returns the string representation of the AvailabilityZone.

type ImageSpec

type ImageSpec struct {
	// ID is the ID of the image to use for the VM.
	//+kubebuilder:validation:MinLength=1
	ID string `json:"id"`
}

ImageSpec defines the image to use for the VM.

func (*ImageSpec) DeepCopy

func (in *ImageSpec) DeepCopy() *ImageSpec

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

func (*ImageSpec) DeepCopyInto

func (in *ImageSpec) DeepCopyInto(out *ImageSpec)

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

type IonosCloudCluster

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

	Spec   IonosCloudClusterSpec   `json:"spec,omitempty"`
	Status IonosCloudClusterStatus `json:"status,omitempty"`
}

IonosCloudCluster is the Schema for the ionoscloudclusters API.

func (*IonosCloudCluster) DeepCopy

func (in *IonosCloudCluster) DeepCopy() *IonosCloudCluster

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

func (*IonosCloudCluster) DeepCopyInto

func (in *IonosCloudCluster) DeepCopyInto(out *IonosCloudCluster)

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

func (*IonosCloudCluster) DeepCopyObject

func (in *IonosCloudCluster) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*IonosCloudCluster) DeleteCurrentClusterRequest

func (i *IonosCloudCluster) DeleteCurrentClusterRequest()

DeleteCurrentClusterRequest deletes the current provisioning request for the cluster.

func (*IonosCloudCluster) GetConditions

func (i *IonosCloudCluster) GetConditions() clusterv1.Conditions

GetConditions returns the conditions from the status.

func (*IonosCloudCluster) SetConditions

func (i *IonosCloudCluster) SetConditions(conditions clusterv1.Conditions)

SetConditions sets the conditions in the status.

func (*IonosCloudCluster) SetCurrentClusterRequest

func (i *IonosCloudCluster) SetCurrentClusterRequest(method, status, requestPath string)

SetCurrentClusterRequest sets the current provisioning request for the cluster.

type IonosCloudClusterList

type IonosCloudClusterList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []IonosCloudCluster `json:"items"`
}

IonosCloudClusterList contains a list of IonosCloudCluster.

func (*IonosCloudClusterList) DeepCopy

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

func (*IonosCloudClusterList) DeepCopyInto

func (in *IonosCloudClusterList) DeepCopyInto(out *IonosCloudClusterList)

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

func (*IonosCloudClusterList) DeepCopyObject

func (in *IonosCloudClusterList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type IonosCloudClusterSpec

type IonosCloudClusterSpec struct {
	// ControlPlaneEndpoint represents the endpoint used to communicate with the control plane.
	//+kubebuilder:validation:XValidation:rule="self.host == oldSelf.host || oldSelf.host == ”",message="control plane endpoint host cannot be updated"
	//+kubebuilder:validation:XValidation:rule="self.port == oldSelf.port || oldSelf.port == 0",message="control plane endpoint port cannot be updated"
	//
	// TODO(gfariasalves): as of now, IP must be provided by the user as we still don't insert the
	// provider-provided block IP into the kube-vip manifest.
	ControlPlaneEndpoint clusterv1.APIEndpoint `json:"controlPlaneEndpoint,omitempty"`

	// Location is the location where the data centers should be located.
	//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="location is immutable"
	//+kubebuilder:example=de/txl
	//+kubebuilder:validation:MinLength=1
	Location string `json:"location"`

	// CredentialsRef is a reference to the secret containing the credentials to access the IONOS Cloud API.
	//+kubebuilder:validation:XValidation:rule="has(self.name) && self.name != ”",message="credentialsRef.name must be provided"
	CredentialsRef corev1.LocalObjectReference `json:"credentialsRef"`
}

IonosCloudClusterSpec defines the desired state of IonosCloudCluster.

func (*IonosCloudClusterSpec) DeepCopy

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

func (*IonosCloudClusterSpec) DeepCopyInto

func (in *IonosCloudClusterSpec) DeepCopyInto(out *IonosCloudClusterSpec)

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

type IonosCloudClusterStatus

type IonosCloudClusterStatus struct {
	// Ready indicates that the cluster is ready.
	//+optional
	Ready bool `json:"ready,omitempty"`

	// Conditions defines current service state of the IonosCloudCluster.
	//+optional
	Conditions clusterv1.Conditions `json:"conditions,omitempty"`

	// CurrentRequestByDatacenter maps data center IDs to a pending provisioning request made during reconciliation.
	//+optional
	CurrentRequestByDatacenter map[string]ProvisioningRequest `json:"currentRequest,omitempty"`

	// CurrentClusterRequest is the current pending request made during reconciliation for the whole cluster.
	//+optional
	CurrentClusterRequest *ProvisioningRequest `json:"currentClusterRequest,omitempty"`

	// ControlPlaneEndpointIPBlockID is the IONOS Cloud UUID for the control plane endpoint IP block.
	//+optional
	ControlPlaneEndpointIPBlockID string `json:"controlPlaneEndpointIPBlockID,omitempty"`
}

IonosCloudClusterStatus defines the observed state of IonosCloudCluster.

func (*IonosCloudClusterStatus) DeepCopy

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

func (*IonosCloudClusterStatus) DeepCopyInto

func (in *IonosCloudClusterStatus) DeepCopyInto(out *IonosCloudClusterStatus)

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

type IonosCloudMachine

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

	//+kubebuilder:validation:XValidation:rule="self.type != 'VCPU' || !has(self.cpuFamily)",message="cpuFamily must not be specified when using VCPU"
	Spec   IonosCloudMachineSpec   `json:"spec,omitempty"`
	Status IonosCloudMachineStatus `json:"status,omitempty"`
}

IonosCloudMachine is the Schema for the ionoscloudmachines API.

func (*IonosCloudMachine) DeepCopy

func (in *IonosCloudMachine) DeepCopy() *IonosCloudMachine

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

func (*IonosCloudMachine) DeepCopyInto

func (in *IonosCloudMachine) DeepCopyInto(out *IonosCloudMachine)

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

func (*IonosCloudMachine) DeepCopyObject

func (in *IonosCloudMachine) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*IonosCloudMachine) DeleteCurrentRequest

func (m *IonosCloudMachine) DeleteCurrentRequest()

DeleteCurrentRequest deletes the current provisioning request for the machine.

func (*IonosCloudMachine) ExtractServerID

func (m *IonosCloudMachine) ExtractServerID() string

ExtractServerID extracts the server ID from the provider ID. if the provider ID is empty, an empty string will be returned instead.

func (*IonosCloudMachine) GetConditions

func (m *IonosCloudMachine) GetConditions() clusterv1.Conditions

GetConditions returns the observations of the operational state of the IonosCloudMachine resource.

func (*IonosCloudMachine) SetConditions

func (m *IonosCloudMachine) SetConditions(conditions clusterv1.Conditions)

SetConditions sets the underlying service state of the IonosCloudMachine to the predescribed clusterv1.Conditions.

func (*IonosCloudMachine) SetCurrentRequest

func (m *IonosCloudMachine) SetCurrentRequest(method, status, requestPath string)

SetCurrentRequest sets the current provisioning request for the machine.

type IonosCloudMachineList

type IonosCloudMachineList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []IonosCloudMachine `json:"items"`
}

IonosCloudMachineList contains a list of IonosCloudMachine.

func (*IonosCloudMachineList) DeepCopy

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

func (*IonosCloudMachineList) DeepCopyInto

func (in *IonosCloudMachineList) DeepCopyInto(out *IonosCloudMachineList)

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

func (*IonosCloudMachineList) DeepCopyObject

func (in *IonosCloudMachineList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type IonosCloudMachineSpec

type IonosCloudMachineSpec struct {
	// ProviderID is the IONOS Cloud provider ID
	// will be in the format ionos://ee090ff2-1eef-48ec-a246-a51a33aa4f3a
	//+optional
	ProviderID *string `json:"providerID,omitempty"`

	// DatacenterID is the ID of the data center where the VM should be created in.
	//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="datacenterID is immutable"
	//+kubebuilder:validation:Format=uuid
	DatacenterID string `json:"datacenterID"`

	// NumCores defines the number of cores for the VM.
	//+kubebuilder:validation:Minimum=1
	//+kubebuilder:default=1
	//+optional
	NumCores int32 `json:"numCores,omitempty"`

	// AvailabilityZone is the availability zone in which the VM should be provisioned.
	//+kubebuilder:validation:Enum=AUTO;ZONE_1;ZONE_2
	//+kubebuilder:default=AUTO
	//+optional
	AvailabilityZone AvailabilityZone `json:"availabilityZone,omitempty"`

	// MemoryMB is the memory size for the VM in MB.
	// Size must be specified in multiples of 256 MB with a minimum of 1024 MB
	// which is required as we are using hot-pluggable RAM by default.
	//+kubebuilder:validation:MultipleOf=1024
	//+kubebuilder:validation:Minimum=2048
	//+kubebuilder:default=3072
	//+optional
	MemoryMB int32 `json:"memoryMB,omitempty"`

	// CPUFamily defines the CPU architecture, which will be used for this VM.
	// Not all CPU architectures are available in all data centers.
	//
	// If not specified, the cloud will select a suitable CPU family
	// based on the availability in the data center.
	//+kubebuilder:example=AMD_OPTERON
	//+optional
	CPUFamily *string `json:"cpuFamily,omitempty"`

	// Disk defines the boot volume of the VM.
	Disk *Volume `json:"disk"`

	// AdditionalNetworks defines the additional network configurations for the VM.
	// NOTE(lubedacht): We currently only support networks with DHCP enabled.
	//+optional
	AdditionalNetworks Networks `json:"additionalNetworks,omitempty"`

	// FailoverIP can be set to enable failover for VMs in the same MachineDeployment.
	// It can be either set to an already reserved IPv4 address, or it can be set to "AUTO"
	// which will automatically reserve an IPv4 address for the Failover Group.
	//
	// If the machine is a control plane machine, this field will not be taken into account.
	//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="failoverIP is immutable"
	//+kubebuilder:validation:XValidation:rule=`self == "AUTO" || self.matches("((25[0-5]|(2[0-4]|1\\d|[1-9]|)\\d)\\.?\\b){4}$")`,message="failoverIP must be either 'AUTO' or a valid IPv4 address"
	//+optional
	FailoverIP *string `json:"failoverIP,omitempty"`

	// Type is the server type of the VM. Can be either ENTERPRISE or VCPU.
	//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="type is immutable"
	//+kubebuilder:validation:Enum=ENTERPRISE;VCPU
	//+kubebuilder:default=ENTERPRISE
	//+optional
	Type ServerType `json:"type,omitempty"`
}

IonosCloudMachineSpec defines the desired state of IonosCloudMachine.

func (*IonosCloudMachineSpec) DeepCopy

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

func (*IonosCloudMachineSpec) DeepCopyInto

func (in *IonosCloudMachineSpec) DeepCopyInto(out *IonosCloudMachineSpec)

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

type IonosCloudMachineStatus

type IonosCloudMachineStatus struct {
	// Ready indicates the VM has been provisioned and is ready.
	//+optional
	Ready bool `json:"ready"`

	// MachineNetworkInfo contains information about the network configuration of the VM.
	// This information is only available after the VM has been provisioned.
	MachineNetworkInfo *MachineNetworkInfo `json:"machineNetworkInfo,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 IonosCloudMachines
	// can be added as events to the IonosCloudMachine object and/or logged in the
	// controller's output.
	//+optional
	FailureReason *errors.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 IonosCloudMachines
	// can be added as events to the IonosCloudMachine object and/or logged in the
	// controller's output.
	//+optional
	FailureMessage *string `json:"failureMessage,omitempty"`

	// Conditions defines current service state of the IonosCloudMachine.
	//+optional
	Conditions clusterv1.Conditions `json:"conditions,omitempty"`

	// CurrentRequest shows the current provisioning request for any
	// cloud resource that is being provisioned.
	//+optional
	CurrentRequest *ProvisioningRequest `json:"currentRequest,omitempty"`
}

IonosCloudMachineStatus defines the observed state of IonosCloudMachine.

func (*IonosCloudMachineStatus) DeepCopy

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

func (*IonosCloudMachineStatus) DeepCopyInto

func (in *IonosCloudMachineStatus) DeepCopyInto(out *IonosCloudMachineStatus)

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

type IonosCloudMachineTemplate

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

	Spec IonosCloudMachineTemplateSpec `json:"spec,omitempty"`
}

IonosCloudMachineTemplate is the Schema for the ionoscloudmachinetemplates API.

func (*IonosCloudMachineTemplate) DeepCopy

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

func (*IonosCloudMachineTemplate) DeepCopyInto

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

func (*IonosCloudMachineTemplate) DeepCopyObject

func (in *IonosCloudMachineTemplate) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type IonosCloudMachineTemplateList

type IonosCloudMachineTemplateList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []IonosCloudMachineTemplate `json:"items"`
}

IonosCloudMachineTemplateList contains a list of IonosCloudMachineTemplate.

func (*IonosCloudMachineTemplateList) DeepCopy

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

func (*IonosCloudMachineTemplateList) DeepCopyInto

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

func (*IonosCloudMachineTemplateList) DeepCopyObject

func (in *IonosCloudMachineTemplateList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type IonosCloudMachineTemplateResource

type IonosCloudMachineTemplateResource 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 is the IonosCloudMachineSpec for the IonosCloudMachineTemplate.
	Spec IonosCloudMachineSpec `json:"spec"`
}

IonosCloudMachineTemplateResource defines the spec and metadata for IonosCloudMachineTemplate supported by capi.

func (*IonosCloudMachineTemplateResource) DeepCopy

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

func (*IonosCloudMachineTemplateResource) DeepCopyInto

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

type IonosCloudMachineTemplateSpec

type IonosCloudMachineTemplateSpec struct {
	// Template is the IonosCloudMachineTemplateResource for the IonosCloudMachineTemplate.
	Template IonosCloudMachineTemplateResource `json:"template"`
}

IonosCloudMachineTemplateSpec defines the desired state of IonosCloudMachineTemplate.

func (*IonosCloudMachineTemplateSpec) DeepCopy

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

func (*IonosCloudMachineTemplateSpec) DeepCopyInto

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

type MachineNetworkInfo

type MachineNetworkInfo struct {
	// NICInfo holds information about the NICs, which are attached to the VM.
	//+optional
	NICInfo []NICInfo `json:"nicInfo,omitempty"`
}

MachineNetworkInfo contains information about the network configuration of the VM.

func (*MachineNetworkInfo) DeepCopy

func (in *MachineNetworkInfo) DeepCopy() *MachineNetworkInfo

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

func (*MachineNetworkInfo) DeepCopyInto

func (in *MachineNetworkInfo) DeepCopyInto(out *MachineNetworkInfo)

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

type NICInfo

type NICInfo struct {
	// IPv4Addresses contains the IPv4 addresses of the NIC.
	IPv4Addresses []string `json:"ipv4Addresses"`

	// IPv6Addresses contains the IPv6 addresses of the NIC.
	IPv6Addresses []string `json:"ipv6Addresses"`

	// NetworkID is the ID of the LAN to which the NIC is connected.
	NetworkID int32 `json:"networkID"`

	// Primary indicates whether the NIC is the primary NIC of the VM.
	Primary bool `json:"primary"`
}

NICInfo provides information about the NIC of the VM.

func (*NICInfo) DeepCopy

func (in *NICInfo) DeepCopy() *NICInfo

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

func (*NICInfo) DeepCopyInto

func (in *NICInfo) DeepCopyInto(out *NICInfo)

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

type Network

type Network struct {
	// NetworkID represents an ID an existing LAN in the data center.
	// This LAN will be excluded from the deletion process.
	//+kubebuilder:validation:Minimum=1
	NetworkID int32 `json:"networkID"`
}

Network contains the config for additional LANs.

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 Networks

type Networks []Network

Networks contains a list of additional LAN IDs that should be attached to the VM.

func (Networks) DeepCopy

func (in Networks) DeepCopy() Networks

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

func (Networks) DeepCopyInto

func (in Networks) DeepCopyInto(out *Networks)

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

type ProvisioningRequest

type ProvisioningRequest struct {
	// Method is the request method
	Method string `json:"method"`

	// RequestPath is the sub path for the request URL
	RequestPath string `json:"requestPath"`

	// RequestStatus is the status of the request in the queue.
	//+kubebuilder:validation:Enum=QUEUED;RUNNING;DONE;FAILED
	//+optional
	State string `json:"state,omitempty"`
}

ProvisioningRequest is a definition of a provisioning request in the IONOS Cloud.

func (*ProvisioningRequest) DeepCopy

func (in *ProvisioningRequest) DeepCopy() *ProvisioningRequest

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

func (*ProvisioningRequest) DeepCopyInto

func (in *ProvisioningRequest) DeepCopyInto(out *ProvisioningRequest)

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

type ServerType

type ServerType string

ServerType is the type of server which is created (ENTERPRISE or VCPU).

const (
	// ServerTypeEnterprise server of type ENTERPRISE.
	ServerTypeEnterprise ServerType = "ENTERPRISE"
	// ServerTypeVCPU server of type VCPU.
	ServerTypeVCPU ServerType = "VCPU"
)

func (ServerType) String

func (a ServerType) String() string

String returns the string representation of the ServerType.

type Volume

type Volume struct {
	// Name is the name of the volume
	//+optional
	Name string `json:"name,omitempty"`

	// DiskType defines the type of the hard drive.
	//+kubebuilder:validation:Enum=HDD;SSD Standard;SSD Premium
	//+kubebuilder:default=HDD
	//+optional
	DiskType VolumeDiskType `json:"diskType,omitempty"`

	// SizeGB defines the size of the volume in GB
	//+kubebuilder:validation:Minimum=10
	//+kubebuilder:default=20
	//+optional
	SizeGB int `json:"sizeGB,omitempty"`

	// AvailabilityZone is the availability zone where the volume will be created.
	//+kubebuilder:validation:Enum=AUTO;ZONE_1;ZONE_2;ZONE_3
	//+kubebuilder:default=AUTO
	//+optional
	AvailabilityZone AvailabilityZone `json:"availabilityZone,omitempty"`

	// Image is the image to use for the VM.
	//+required
	Image *ImageSpec `json:"image"`
}

Volume is the physical storage on the VM.

func (*Volume) DeepCopy

func (in *Volume) DeepCopy() *Volume

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

func (*Volume) DeepCopyInto

func (in *Volume) DeepCopyInto(out *Volume)

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

type VolumeDiskType

type VolumeDiskType string

VolumeDiskType specifies the type of hard disk.

const (
	// VolumeDiskTypeHDD defines the disk type HDD.
	VolumeDiskTypeHDD VolumeDiskType = "HDD"
	// VolumeDiskTypeSSDStandard defines the standard SSD disk type.
	// This is the same as VolumeDiskTypeSSD.
	VolumeDiskTypeSSDStandard VolumeDiskType = "SSD Standard"
	// VolumeDiskTypeSSDPremium defines the premium SSD disk type.
	VolumeDiskTypeSSDPremium VolumeDiskType = "SSD Premium"
)

func (VolumeDiskType) String

func (v VolumeDiskType) String() string

String returns the string representation of the VolumeDiskType.

Jump to

Keyboard shortcuts

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