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 AvailabilityZone
- type IPAMConfig
- type ImageSelector
- type ImageSpec
- type IonosCloudCluster
- func (in *IonosCloudCluster) DeepCopy() *IonosCloudCluster
- func (in *IonosCloudCluster) DeepCopyInto(out *IonosCloudCluster)
- func (in *IonosCloudCluster) DeepCopyObject() runtime.Object
- func (i *IonosCloudCluster) DeleteCurrentClusterRequest()
- func (i *IonosCloudCluster) GetConditions() clusterv1.Conditions
- func (i *IonosCloudCluster) SetConditions(conditions clusterv1.Conditions)
- func (i *IonosCloudCluster) SetCurrentClusterRequest(method, status, requestPath string)
- type IonosCloudClusterList
- type IonosCloudClusterSpec
- type IonosCloudClusterStatus
- type IonosCloudClusterTemplate
- type IonosCloudClusterTemplateList
- type IonosCloudClusterTemplateResource
- type IonosCloudClusterTemplateSpec
- type IonosCloudMachine
- func (in *IonosCloudMachine) DeepCopy() *IonosCloudMachine
- func (in *IonosCloudMachine) DeepCopyInto(out *IonosCloudMachine)
- func (in *IonosCloudMachine) DeepCopyObject() runtime.Object
- func (m *IonosCloudMachine) DeleteCurrentRequest()
- func (m *IonosCloudMachine) ExtractServerID() string
- func (m *IonosCloudMachine) GetConditions() clusterv1.Conditions
- func (m *IonosCloudMachine) SetConditions(conditions clusterv1.Conditions)
- func (m *IonosCloudMachine) SetCurrentRequest(method, status, requestPath string)
- type IonosCloudMachineList
- type IonosCloudMachineSpec
- type IonosCloudMachineStatus
- type IonosCloudMachineTemplate
- type IonosCloudMachineTemplateList
- type IonosCloudMachineTemplateResource
- type IonosCloudMachineTemplateSpec
- type MachineNetworkInfo
- type NICInfo
- type Network
- type ProvisioningRequest
- type ServerType
- type Volume
- type VolumeDiskType
Constants ¶
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" )
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 ¶
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 IPAMConfig ¶ added in v0.5.0
type IPAMConfig struct { // IPv4PoolRef is a reference to an IPAMConfig Pool resource, which exposes IPv4 addresses. // The NIC will use an available IP address from the referenced pool. // +kubebuilder:validation:XValidation:rule="self.apiGroup == 'ipam.cluster.x-k8s.io'",message="ipv4PoolRef allows only IPAMConfig apiGroup ipam.cluster.x-k8s.io" // +kubebuilder:validation:XValidation:rule="self.kind == 'InClusterIPPool' || self.kind == 'GlobalInClusterIPPool'",message="ipv4PoolRef allows either InClusterIPPool or GlobalInClusterIPPool" // +kubebuilder:validation:XValidation:rule="self.name != ”",message="ipv4PoolRef.name is required" // +optional IPv4PoolRef *corev1.TypedLocalObjectReference `json:"ipv4PoolRef,omitempty"` // IPv6PoolRef is a reference to an IPAMConfig pool resource, which exposes IPv6 addresses. // The NIC will use an available IP address from the referenced pool. // +kubebuilder:validation:XValidation:rule="self.apiGroup == 'ipam.cluster.x-k8s.io'",message="ipv6PoolRef allows only IPAMConfig apiGroup ipam.cluster.x-k8s.io" // +kubebuilder:validation:XValidation:rule="self.kind == 'InClusterIPPool' || self.kind == 'GlobalInClusterIPPool'",message="ipv6PoolRef allows either InClusterIPPool or GlobalInClusterIPPool" // +kubebuilder:validation:XValidation:rule="self.name != ”",message="ipv6PoolRef.name is required" // +optional IPv6PoolRef *corev1.TypedLocalObjectReference `json:"ipv6PoolRef,omitempty"` }
IPAMConfig optionally defines which IP Pools to use.
func (*IPAMConfig) DeepCopy ¶ added in v0.5.0
func (in *IPAMConfig) DeepCopy() *IPAMConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPAMConfig.
func (*IPAMConfig) DeepCopyInto ¶ added in v0.5.0
func (in *IPAMConfig) DeepCopyInto(out *IPAMConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImageSelector ¶ added in v0.3.0
type ImageSelector struct { // MatchLabels is a map of key/value pairs. // //+kubebuilder:validation:MinProperties=1 MatchLabels map[string]string `json:"matchLabels"` // UseMachineVersion indicates whether to use the parent Machine's version field to look up image names. // Enabled by default. // //+kubebuilder:default=true //+optional UseMachineVersion *bool `json:"useMachineVersion,omitempty"` }
ImageSelector defines label selectors for looking up images.
func (*ImageSelector) DeepCopy ¶ added in v0.3.0
func (in *ImageSelector) DeepCopy() *ImageSelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageSelector.
func (*ImageSelector) DeepCopyInto ¶ added in v0.3.0
func (in *ImageSelector) DeepCopyInto(out *ImageSelector)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImageSpec ¶
type ImageSpec struct { // ID is the ID of the image to use for the VM. Has precedence over selector. // //+optional ID string `json:"id,omitempty"` // Selector is used to look up images by name and labels. // Only images in the IonosCloudCluster's location are considered. // //+optional Selector *ImageSelector `json:"selector,omitempty"` }
ImageSpec defines the image to use for the VM.
func (*ImageSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageSpec.
func (*ImageSpec) DeepCopyInto ¶
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 ¶
func (in *IonosCloudClusterList) DeepCopy() *IonosCloudClusterList
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="size(self.host) == 0 && self.port == 0 || self.port > 0 && self.port < 65536",message="port must be within 1-65535" // // 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 //+optional Location string `json:"location,omitempty"` // 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"` // LoadBalancerProviderRef is a reference to the load balancer provider configuration. // An empty loadBalancerProviderRef field is allowed and means to disable any load balancer logic. LoadBalancerProviderRef *corev1.LocalObjectReference `json:"loadBalancerProviderRef,omitempty"` }
IonosCloudClusterSpec defines the desired state of IonosCloudCluster.
func (*IonosCloudClusterSpec) DeepCopy ¶
func (in *IonosCloudClusterSpec) DeepCopy() *IonosCloudClusterSpec
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 ¶
func (in *IonosCloudClusterStatus) DeepCopy() *IonosCloudClusterStatus
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 IonosCloudClusterTemplate ¶ added in v0.3.0
type IonosCloudClusterTemplate struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec IonosCloudClusterTemplateSpec `json:"spec,omitempty"` }
IonosCloudClusterTemplate is the Schema for the ionoscloudclustertemplates API.
func (*IonosCloudClusterTemplate) DeepCopy ¶ added in v0.3.0
func (in *IonosCloudClusterTemplate) DeepCopy() *IonosCloudClusterTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IonosCloudClusterTemplate.
func (*IonosCloudClusterTemplate) DeepCopyInto ¶ added in v0.3.0
func (in *IonosCloudClusterTemplate) DeepCopyInto(out *IonosCloudClusterTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*IonosCloudClusterTemplate) DeepCopyObject ¶ added in v0.3.0
func (in *IonosCloudClusterTemplate) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type IonosCloudClusterTemplateList ¶ added in v0.3.0
type IonosCloudClusterTemplateList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []IonosCloudCluster `json:"items"` }
IonosCloudClusterTemplateList contains a list of IonosCloudClusterTemplate.
func (*IonosCloudClusterTemplateList) DeepCopy ¶ added in v0.3.0
func (in *IonosCloudClusterTemplateList) DeepCopy() *IonosCloudClusterTemplateList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IonosCloudClusterTemplateList.
func (*IonosCloudClusterTemplateList) DeepCopyInto ¶ added in v0.3.0
func (in *IonosCloudClusterTemplateList) DeepCopyInto(out *IonosCloudClusterTemplateList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*IonosCloudClusterTemplateList) DeepCopyObject ¶ added in v0.3.0
func (in *IonosCloudClusterTemplateList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type IonosCloudClusterTemplateResource ¶ added in v0.3.0
type IonosCloudClusterTemplateResource struct {
Spec IonosCloudClusterSpec `json:"spec"`
}
IonosCloudClusterTemplateResource describes the data for creating a IonosCloudCluster from a template.
func (*IonosCloudClusterTemplateResource) DeepCopy ¶ added in v0.3.0
func (in *IonosCloudClusterTemplateResource) DeepCopy() *IonosCloudClusterTemplateResource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IonosCloudClusterTemplateResource.
func (*IonosCloudClusterTemplateResource) DeepCopyInto ¶ added in v0.3.0
func (in *IonosCloudClusterTemplateResource) DeepCopyInto(out *IonosCloudClusterTemplateResource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IonosCloudClusterTemplateSpec ¶ added in v0.3.0
type IonosCloudClusterTemplateSpec struct {
Template IonosCloudClusterTemplateResource `json:"template"`
}
IonosCloudClusterTemplateSpec defines the desired state of IonosCloudClusterTemplate.
func (*IonosCloudClusterTemplateSpec) DeepCopy ¶ added in v0.3.0
func (in *IonosCloudClusterTemplateSpec) DeepCopy() *IonosCloudClusterTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IonosCloudClusterTemplateSpec.
func (*IonosCloudClusterTemplateSpec) DeepCopyInto ¶ added in v0.3.0
func (in *IonosCloudClusterTemplateSpec) DeepCopyInto(out *IonosCloudClusterTemplateSpec)
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 ¶
func (in *IonosCloudMachineList) DeepCopy() *IonosCloudMachineList
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. // //+optional AdditionalNetworks []Network `json:"additionalNetworks,omitempty"` // IPAMConfig allows to obtain IP Addresses from existing IP pools instead of using DHCP. IPAMConfig `json:",inline"` // 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 ¶
func (in *IonosCloudMachineSpec) DeepCopy() *IonosCloudMachineSpec
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. //+optional 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"` // Location is the location of the datacenter the VM is provisioned in. //+optional Location string `json:"location"` }
IonosCloudMachineStatus defines the observed state of IonosCloudMachine.
func (*IonosCloudMachineStatus) DeepCopy ¶
func (in *IonosCloudMachineStatus) DeepCopy() *IonosCloudMachineStatus
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 ¶
func (in *IonosCloudMachineTemplate) DeepCopy() *IonosCloudMachineTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IonosCloudMachineTemplate.
func (*IonosCloudMachineTemplate) DeepCopyInto ¶
func (in *IonosCloudMachineTemplate) DeepCopyInto(out *IonosCloudMachineTemplate)
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 ¶
func (in *IonosCloudMachineTemplateList) DeepCopy() *IonosCloudMachineTemplateList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IonosCloudMachineTemplateList.
func (*IonosCloudMachineTemplateList) DeepCopyInto ¶
func (in *IonosCloudMachineTemplateList) DeepCopyInto(out *IonosCloudMachineTemplateList)
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 ¶
func (in *IonosCloudMachineTemplateResource) DeepCopy() *IonosCloudMachineTemplateResource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IonosCloudMachineTemplateResource.
func (*IonosCloudMachineTemplateResource) DeepCopyInto ¶
func (in *IonosCloudMachineTemplateResource) DeepCopyInto(out *IonosCloudMachineTemplateResource)
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 ¶
func (in *IonosCloudMachineTemplateSpec) DeepCopy() *IonosCloudMachineTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IonosCloudMachineTemplateSpec.
func (*IonosCloudMachineTemplateSpec) DeepCopyInto ¶
func (in *IonosCloudMachineTemplateSpec) DeepCopyInto(out *IonosCloudMachineTemplateSpec)
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. Before the provisioning MachineNetworkInfo may contain IP addresses to be used for provisioning. After provisioning this information is available completely.
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. // By default, we enable dual-stack, but as we are storing the IP obtained from AddressClaims here before // creating the VM this can be temporarily empty, e.g. we use DHCP for IPv4 and fixed IP for IPv6. //+optional IPv4Addresses []string `json:"ipv4Addresses,omitempty"` // IPv6Addresses contains the IPv6 addresses of the NIC. // By default, we enable dual-stack, but as we are storing the IP obtained from AddressClaims here before // creating the VM this can be temporarily empty, e.g. we use DHCP for IPv6 and fixed IP for IPv4. //+optional IPv6Addresses []string `json:"ipv6Addresses,omitempty"` // 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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NICInfo.
func (*NICInfo) DeepCopyInto ¶
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"` // VNET is solely used for internal purposes and requires elevated permissions. //+optional VNET *string `json:"vnet,omitempty"` // DHCP indicates whether DHCP is enabled for the LAN. // The primary NIC will always have DHCP enabled. //+kubebuilder:default=true //+optional DHCP *bool `json:"dhcp,omitempty"` // IPAMConfig allows to obtain IP Addresses from existing IP pools instead of using DHCP. IPAMConfig `json:",inline"` }
Network contains the config for additional LANs.
func (*Network) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Network.
func (*Network) DeepCopyInto ¶
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. //+kubebuilder:validation:XValidation:rule="self.id != ” || has(self.selector)",message="must provide either id or selector" Image *ImageSpec `json:"image"` }
Volume is the physical storage on the VM.
func (*Volume) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Volume.
func (*Volume) DeepCopyInto ¶
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.