v1alpha1

package
v1.0.0-beta.1 Latest Latest
Warning

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

Go to latest
Published: May 23, 2022 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Overview

Package v1alpha1 contains the v1alpha1 group K8s resources of the IONOS Cloud provider. +kubebuilder:object:generate=true +groupName=k8s.ionoscloud.crossplane.io +versionName=v1alpha1

Index

Constants

View Source
const (
	Group   = "k8s.ionoscloud.crossplane.io"
	Version = "v1alpha1"
)

Package type metadata.

Variables

View Source
var (
	ClusterKind             = reflect.TypeOf(Cluster{}).Name()
	ClusterGroupKind        = schema.GroupKind{Group: Group, Kind: ClusterKind}.String()
	ClusterKindAPIVersion   = ClusterKind + "." + SchemeGroupVersion.String()
	ClusterGroupVersionKind = SchemeGroupVersion.WithKind(ClusterKind)
)

Cluster type metadata.

View Source
var (
	// SchemeGroupVersion is group version used to register these objects
	SchemeGroupVersion = schema.GroupVersion{Group: Group, Version: Version}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion}
)
View Source
var (
	NodePoolKind             = reflect.TypeOf(NodePool{}).Name()
	NodePoolGroupKind        = schema.GroupKind{Group: Group, Kind: NodePoolKind}.String()
	NodePoolKindAPIVersion   = NodePoolKind + "." + SchemeGroupVersion.String()
	NodePoolGroupVersionKind = SchemeGroupVersion.WithKind(NodePoolKind)
)

NodePool type metadata.

Functions

func ExtractClusterID

func ExtractClusterID() reference.ExtractValueFn

ExtractClusterID returns the externalName of a referenced Cluster.

Types

type Cluster

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

	Spec   ClusterSpec   `json:"spec"`
	Status ClusterStatus `json:"status,omitempty"`
}

A Cluster is an example API type. +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" +kubebuilder:printcolumn:name="CLUSTER ID",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" +kubebuilder:printcolumn:name="CLUSTER NAME",type="string",JSONPath=".spec.forProvider.name" +kubebuilder:printcolumn:name="K8S VERSION",priority=1,type="string",JSONPath=".spec.forProvider.k8sVersion" +kubebuilder:printcolumn:name="PUBLIC",priority=1,type="string",JSONPath=".spec.forProvider.public" +kubebuilder:printcolumn:name="STATE",type="string",JSONPath=".status.atProvider.state" +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:subresource:status +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ionoscloud}

func (*Cluster) DeepCopy

func (in *Cluster) DeepCopy() *Cluster

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

func (*Cluster) DeepCopyInto

func (in *Cluster) DeepCopyInto(out *Cluster)

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

func (*Cluster) DeepCopyObject

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

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

func (*Cluster) GetCondition

func (mg *Cluster) GetCondition(ct xpv1.ConditionType) xpv1.Condition

GetCondition of this Cluster.

func (*Cluster) GetDeletionPolicy

func (mg *Cluster) GetDeletionPolicy() xpv1.DeletionPolicy

GetDeletionPolicy of this Cluster.

func (*Cluster) GetProviderConfigReference

func (mg *Cluster) GetProviderConfigReference() *xpv1.Reference

GetProviderConfigReference of this Cluster.

func (*Cluster) GetProviderReference

func (mg *Cluster) GetProviderReference() *xpv1.Reference

GetProviderReference of this Cluster. Deprecated: Use GetProviderConfigReference.

func (*Cluster) GetWriteConnectionSecretToReference

func (mg *Cluster) GetWriteConnectionSecretToReference() *xpv1.SecretReference

GetWriteConnectionSecretToReference of this Cluster.

func (*Cluster) SetConditions

func (mg *Cluster) SetConditions(c ...xpv1.Condition)

SetConditions of this Cluster.

func (*Cluster) SetDeletionPolicy

func (mg *Cluster) SetDeletionPolicy(r xpv1.DeletionPolicy)

SetDeletionPolicy of this Cluster.

func (*Cluster) SetProviderConfigReference

func (mg *Cluster) SetProviderConfigReference(r *xpv1.Reference)

SetProviderConfigReference of this Cluster.

func (*Cluster) SetProviderReference

func (mg *Cluster) SetProviderReference(r *xpv1.Reference)

SetProviderReference of this Cluster. Deprecated: Use SetProviderConfigReference.

func (*Cluster) SetWriteConnectionSecretToReference

func (mg *Cluster) SetWriteConnectionSecretToReference(r *xpv1.SecretReference)

SetWriteConnectionSecretToReference of this Cluster.

type ClusterConfig

type ClusterConfig struct {
	// ClusterID is the ID of the Cluster on which the resource will be created.
	// It needs to be provided via directly or via reference.
	//
	// +immutable
	// +kubebuilder:validation:Format=uuid
	// +crossplane:generate:reference:type=Cluster
	// +crossplane:generate:reference:extractor=ExtractClusterID()
	ClusterID string `json:"clusterId,omitempty"`
	// ClusterIDRef references to a Cluster to retrieve its ID
	//
	// +optional
	// +immutable
	ClusterIDRef *xpv1.Reference `json:"clusterIdRef,omitempty"`
	// ClusterIDSelector selects reference to a Cluster to retrieve its clusterId
	//
	// +optional
	ClusterIDSelector *xpv1.Selector `json:"clusterIdSelector,omitempty"`
}

ClusterConfig is used by resources that need to link clusters via id or via reference.

func (*ClusterConfig) DeepCopy

func (in *ClusterConfig) DeepCopy() *ClusterConfig

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

func (*ClusterConfig) DeepCopyInto

func (in *ClusterConfig) DeepCopyInto(out *ClusterConfig)

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

type ClusterList

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

ClusterList contains a list of Cluster

func (*ClusterList) DeepCopy

func (in *ClusterList) DeepCopy() *ClusterList

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

func (*ClusterList) DeepCopyInto

func (in *ClusterList) DeepCopyInto(out *ClusterList)

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

func (*ClusterList) DeepCopyObject

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

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

func (*ClusterList) GetItems

func (l *ClusterList) GetItems() []resource.Managed

GetItems of this ClusterList.

type ClusterObservation

type ClusterObservation struct {
	ClusterID                string   `json:"clusterId,omitempty"`
	State                    string   `json:"state,omitempty"`
	AvailableUpgradeVersions []string `json:"availableUpgradeVersions,omitempty"`
	ViableNodePoolVersions   []string `json:"viableNodePoolVersions,omitempty"`
}

ClusterObservation are the observable fields of a Cluster.

func (*ClusterObservation) DeepCopy

func (in *ClusterObservation) DeepCopy() *ClusterObservation

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

func (*ClusterObservation) DeepCopyInto

func (in *ClusterObservation) DeepCopyInto(out *ClusterObservation)

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

type ClusterParameters

type ClusterParameters struct {
	// A Kubernetes cluster name. Valid Kubernetes cluster name must be 63 characters or less and must be empty
	// or begin and end with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between.
	//
	// +kubebuilder:validation:Required
	Name string `json:"name"`
	// The Kubernetes version the cluster is running. This imposes restrictions on what Kubernetes versions can be run in a cluster's nodepools.
	// Additionally, not all Kubernetes versions are viable upgrade targets for all prior versions.
	// Example: 1.15.4
	//
	// +kubebuilder:validation:Optional
	K8sVersion string `json:"k8sVersion,omitempty"`
	// The maintenance window is used for updating the cluster's control plane and for upgrading the cluster's K8s version.
	// If no value is given, one is chosen dynamically, so there is no fixed default.
	//
	// +kubebuilder:validation:Optional
	MaintenanceWindow MaintenanceWindow `json:"maintenanceWindow,omitempty"`
	// Access to the K8s API server is restricted to these CIDRs. Traffic, internal to the cluster, is not affected by this restriction.
	// If no allow-list is specified, access is not restricted.
	// If an IP without subnet mask is provided, the default value is used: 32 for IPv4 and 128 for IPv6.
	// Example: "1.2.3.4/32", "2002::1234:abcd:ffff:c0a8:101/64", "1.2.3.4", "2002::1234:abcd:ffff:c0a8:101"
	//
	// +kubebuilder:validation:Optional
	APISubnetAllowList []string `json:"apiSubnetAllowList,omitempty"`
	// List of S3 bucket configured for K8s usage.
	// For now it contains only an S3 bucket used to store K8s API audit logs
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:MaxItems=1
	S3Buckets []S3Bucket `json:"s3Buckets,omitempty"`
}

ClusterParameters are the observable fields of a Cluster. Required fields in order to create a K8s Public Cluster: Name.

func (*ClusterParameters) DeepCopy

func (in *ClusterParameters) DeepCopy() *ClusterParameters

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

func (*ClusterParameters) DeepCopyInto

func (in *ClusterParameters) DeepCopyInto(out *ClusterParameters)

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

type ClusterSpec

type ClusterSpec struct {
	xpv1.ResourceSpec `json:",inline"`
	ForProvider       ClusterParameters `json:"forProvider"`
}

A ClusterSpec defines the desired state of a Cluster.

func (*ClusterSpec) DeepCopy

func (in *ClusterSpec) DeepCopy() *ClusterSpec

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

func (*ClusterSpec) DeepCopyInto

func (in *ClusterSpec) DeepCopyInto(out *ClusterSpec)

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

type ClusterStatus

type ClusterStatus struct {
	xpv1.ResourceStatus `json:",inline"`
	AtProvider          ClusterObservation `json:"atProvider,omitempty"`
}

A ClusterStatus represents the observed state of a Cluster.

func (*ClusterStatus) DeepCopy

func (in *ClusterStatus) DeepCopy() *ClusterStatus

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

func (*ClusterStatus) DeepCopyInto

func (in *ClusterStatus) DeepCopyInto(out *ClusterStatus)

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

type DatacenterConfig

type DatacenterConfig struct {
	// DatacenterID is the ID of the Datacenter on which the resource should have access.
	// It needs to be provided via directly or via reference.
	//
	// +immutable
	// +kubebuilder:validation:Format=uuid
	// +crossplane:generate:reference:type=github.com/ionos-cloud/crossplane-provider-ionoscloud/apis/compute/v1alpha1.Datacenter
	// +crossplane:generate:reference:extractor=github.com/ionos-cloud/crossplane-provider-ionoscloud/apis/compute/v1alpha1.ExtractDatacenterID()
	DatacenterID string `json:"datacenterId,omitempty"`
	// DatacenterIDRef references to a Datacenter to retrieve its ID
	//
	// +optional
	// +immutable
	DatacenterIDRef *xpv1.Reference `json:"datacenterIdRef,omitempty"`
	// DatacenterIDSelector selects reference to a Datacenter to retrieve its datacenterId
	//
	// +optional
	DatacenterIDSelector *xpv1.Selector `json:"datacenterIdSelector,omitempty"`
}

DatacenterConfig is used by resources that need to link datacenters via id or via reference.

func (*DatacenterConfig) DeepCopy

func (in *DatacenterConfig) DeepCopy() *DatacenterConfig

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

func (*DatacenterConfig) DeepCopyInto

func (in *DatacenterConfig) DeepCopyInto(out *DatacenterConfig)

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

type IPBlockConfig

type IPBlockConfig struct {
	// NicID is the ID of the IPBlock on which the resource will be created.
	// It needs to be provided via directly or via reference.
	//
	// +immutable
	// +kubebuilder:validation:Format=uuid
	// +crossplane:generate:reference:type=github.com/ionos-cloud/crossplane-provider-ionoscloud/apis/compute/v1alpha1.IPBlock
	// +crossplane:generate:reference:extractor=github.com/ionos-cloud/crossplane-provider-ionoscloud/apis/compute/v1alpha1.ExtractIPBlockID()
	IPBlockID string `json:"ipBlockId,omitempty"`
	// IPBlockIDRef references to a IPBlock to retrieve its ID
	//
	// +optional
	// +immutable
	IPBlockIDRef *xpv1.Reference `json:"ipBlockIdRef,omitempty"`
	// IPBlockIDSelector selects reference to a IPBlock to retrieve its nicId
	//
	// +optional
	IPBlockIDSelector *xpv1.Selector `json:"ipBlockIdSelector,omitempty"`
	// Index is referring to the IP index retrieved from the IPBlock.
	// Index is starting from 0.
	//
	// +kubebuilder:validation:Required
	Index int `json:"index"`
}

IPBlockConfig - used by resources that need to link IPBlock via id or via reference to get one single IP.

func (*IPBlockConfig) DeepCopy

func (in *IPBlockConfig) DeepCopy() *IPBlockConfig

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

func (*IPBlockConfig) DeepCopyInto

func (in *IPBlockConfig) DeepCopyInto(out *IPBlockConfig)

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

type IPConfig

type IPConfig struct {
	IP         string        `json:"ip,omitempty"`
	IPBlockCfg IPBlockConfig `json:"ipBlockConfig,omitempty"`
}

IPConfig is used by resources that need to link ips from IPBlock via id or via reference and using index. Indexes start from 0, and only one index must be set. If both IPs and IPBlockConfigs fields are set, only ip will be used.

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.

type IPsBlockConfig

type IPsBlockConfig struct {
	// NicID is the ID of the IPBlock on which the resource will be created.
	// It needs to be provided via directly or via reference.
	//
	// +immutable
	// +kubebuilder:validation:Format=uuid
	// +crossplane:generate:reference:type=github.com/ionos-cloud/crossplane-provider-ionoscloud/apis/compute/v1alpha1.IPBlock
	// +crossplane:generate:reference:extractor=github.com/ionos-cloud/crossplane-provider-ionoscloud/apis/compute/v1alpha1.ExtractIPBlockID()
	IPBlockID string `json:"ipBlockId,omitempty"`
	// IPBlockIDRef references to a IPBlock to retrieve its ID
	//
	// +optional
	// +immutable
	IPBlockIDRef *xpv1.Reference `json:"ipBlockIdRef,omitempty"`
	// IPBlockIDSelector selects reference to a IPBlock to retrieve its nicId
	//
	// +optional
	IPBlockIDSelector *xpv1.Selector `json:"ipBlockIdSelector,omitempty"`
	// Indexes are referring to the IPs indexes retrieved from the IPBlock.
	// Indexes are starting from 0. If no index is set, all IPs from the
	// corresponding IPBlock will be assigned.
	//
	// +optional
	Indexes []int `json:"indexes,omitempty"`
}

IPsBlockConfig - used by resources that need to link IPBlock via id or via reference to get multiple IPs.

func (*IPsBlockConfig) DeepCopy

func (in *IPsBlockConfig) DeepCopy() *IPsBlockConfig

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

func (*IPsBlockConfig) DeepCopyInto

func (in *IPsBlockConfig) DeepCopyInto(out *IPsBlockConfig)

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

type IPsConfigs

type IPsConfigs struct {
	IPs         []string         `json:"ips,omitempty"`
	IPBlockCfgs []IPsBlockConfig `json:"ipsBlockConfigs,omitempty"`
}

IPsConfigs - used by resources that need to link multiple IPs from IPBlock via id or via reference and using index. Indexes start from 0, and multiple indexes can be set. If no index is set, all IPs from the corresponding IPBlock will be assigned. If both IPs and IPBlockConfigs fields are set, only ips will be considered.

func (*IPsConfigs) DeepCopy

func (in *IPsConfigs) DeepCopy() *IPsConfigs

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

func (*IPsConfigs) DeepCopyInto

func (in *IPsConfigs) DeepCopyInto(out *IPsConfigs)

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

type KubernetesAutoScaling

type KubernetesAutoScaling struct {
	// The minimum number of worker nodes that the managed node group can scale in.
	// Should be set together with 'maxNodeCount'.
	// Value for this attribute must be greater than equal to 1 and less than equal to maxNodeCount.
	//
	// +kubebuilder:validation:Minimum=1
	MinNodeCount int32 `json:"minNodeCount,omitempty"`
	// The maximum number of worker nodes that the managed node pool can scale-out.
	// Should be set together with 'minNodeCount'.
	// Value for this attribute must be greater than equal to 1 and minNodeCount.
	//
	// +kubebuilder:validation:Minimum=1
	MaxNodeCount int32 `json:"maxNodeCount,omitempty"`
}

KubernetesAutoScaling struct for KubernetesAutoScaling

func (*KubernetesAutoScaling) DeepCopy

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

func (*KubernetesAutoScaling) DeepCopyInto

func (in *KubernetesAutoScaling) DeepCopyInto(out *KubernetesAutoScaling)

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

type KubernetesNodePoolLan

type KubernetesNodePoolLan struct {
	// The LAN of an existing private LAN at the related datacenter
	//
	// +kubebuilder:validation:Optional
	LanCfg LanConfig `json:"lanConfig"`
	// Indicates if the Kubernetes NodePool LAN will reserve an IP using DHCP.
	//
	// +kubebuilder:validation:Optional
	Dhcp bool `json:"dhcp,omitempty"`
	// Array of additional LANs Routes attached to worker nodes
	//
	// +kubebuilder:validation:Optional
	Routes []KubernetesNodePoolLanRoutes `json:"routes,omitempty"`
}

KubernetesNodePoolLan struct for KubernetesNodePoolLan

func (*KubernetesNodePoolLan) DeepCopy

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

func (*KubernetesNodePoolLan) DeepCopyInto

func (in *KubernetesNodePoolLan) DeepCopyInto(out *KubernetesNodePoolLan)

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

type KubernetesNodePoolLanRoutes

type KubernetesNodePoolLanRoutes struct {
	// IPv4 or IPv6 CIDR to be routed via the interface.
	//
	// +kubebuilder:validation:Optional
	Network string `json:"network,omitempty"`
	// IPv4 or IPv6 Gateway IP for the route.
	//
	// +kubebuilder:validation:Optional
	GatewayIP string `json:"gatewayIp,omitempty"`
}

KubernetesNodePoolLanRoutes struct for KubernetesNodePoolLanRoutes

func (*KubernetesNodePoolLanRoutes) DeepCopy

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

func (*KubernetesNodePoolLanRoutes) DeepCopyInto

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

type LanConfig

type LanConfig struct {
	// LanID is the ID of the Lan on which the NodePool will connect to.
	// It needs to be provided via directly or via reference.
	//
	// +immutable
	// +crossplane:generate:reference:type=github.com/ionos-cloud/crossplane-provider-ionoscloud/apis/compute/v1alpha1.Lan
	// +crossplane:generate:reference:extractor=github.com/ionos-cloud/crossplane-provider-ionoscloud/apis/compute/v1alpha1.ExtractLanID()
	LanID string `json:"lanId,omitempty"`
	// LanIDRef references to a Lan to retrieve its ID
	//
	// +optional
	// +immutable
	LanIDRef *xpv1.Reference `json:"lanIdRef,omitempty"`
	// LanIDSelector selects reference to a Lan to retrieve its lanId
	//
	// +optional
	LanIDSelector *xpv1.Selector `json:"lanIdSelector,omitempty"`
}

LanConfig is used by resources that need to link lans via id or via reference.

func (*LanConfig) DeepCopy

func (in *LanConfig) DeepCopy() *LanConfig

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

func (*LanConfig) DeepCopyInto

func (in *LanConfig) DeepCopyInto(out *LanConfig)

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

type MaintenanceWindow

type MaintenanceWindow struct {
	Time string `json:"time,omitempty"`
	// DayOfTheWeek The name of the week day.
	DayOfTheWeek string `json:"dayOfTheWeek,omitempty"`
}

MaintenanceWindow A weekly window, during which maintenance might occur

func (*MaintenanceWindow) DeepCopy

func (in *MaintenanceWindow) DeepCopy() *MaintenanceWindow

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

func (*MaintenanceWindow) DeepCopyInto

func (in *MaintenanceWindow) DeepCopyInto(out *MaintenanceWindow)

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

type NodePool

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

	Spec   NodePoolSpec   `json:"spec"`
	Status NodePoolStatus `json:"status,omitempty"`
}

A NodePool is an example API type. +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" +kubebuilder:printcolumn:name="CLUSTER ID",type="string",JSONPath=".spec.forProvider.clusterConfig.clusterId" +kubebuilder:printcolumn:name="NODEPOOL ID",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" +kubebuilder:printcolumn:name="NODEPOOL NAME",type="string",JSONPath=".spec.forProvider.name" +kubebuilder:printcolumn:name="DATACENTER ID",priority=1,type="string",JSONPath=".spec.forProvider.datacenterConfig.datacenterId" +kubebuilder:printcolumn:name="K8S VERSION",priority=1,type="string",JSONPath=".spec.forProvider.k8sVersion" +kubebuilder:printcolumn:name="STATE",type="string",JSONPath=".status.atProvider.state" +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:subresource:status +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ionoscloud}

func (*NodePool) DeepCopy

func (in *NodePool) DeepCopy() *NodePool

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

func (*NodePool) DeepCopyInto

func (in *NodePool) DeepCopyInto(out *NodePool)

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

func (*NodePool) DeepCopyObject

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

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

func (*NodePool) GetCondition

func (mg *NodePool) GetCondition(ct xpv1.ConditionType) xpv1.Condition

GetCondition of this NodePool.

func (*NodePool) GetDeletionPolicy

func (mg *NodePool) GetDeletionPolicy() xpv1.DeletionPolicy

GetDeletionPolicy of this NodePool.

func (*NodePool) GetProviderConfigReference

func (mg *NodePool) GetProviderConfigReference() *xpv1.Reference

GetProviderConfigReference of this NodePool.

func (*NodePool) GetProviderReference

func (mg *NodePool) GetProviderReference() *xpv1.Reference

GetProviderReference of this NodePool. Deprecated: Use GetProviderConfigReference.

func (*NodePool) GetWriteConnectionSecretToReference

func (mg *NodePool) GetWriteConnectionSecretToReference() *xpv1.SecretReference

GetWriteConnectionSecretToReference of this NodePool.

func (*NodePool) ResolveReferences

func (mg *NodePool) ResolveReferences(ctx context.Context, c client.Reader) error

ResolveReferences of this NodePool.

func (*NodePool) SetConditions

func (mg *NodePool) SetConditions(c ...xpv1.Condition)

SetConditions of this NodePool.

func (*NodePool) SetDeletionPolicy

func (mg *NodePool) SetDeletionPolicy(r xpv1.DeletionPolicy)

SetDeletionPolicy of this NodePool.

func (*NodePool) SetProviderConfigReference

func (mg *NodePool) SetProviderConfigReference(r *xpv1.Reference)

SetProviderConfigReference of this NodePool.

func (*NodePool) SetProviderReference

func (mg *NodePool) SetProviderReference(r *xpv1.Reference)

SetProviderReference of this NodePool. Deprecated: Use SetProviderConfigReference.

func (*NodePool) SetWriteConnectionSecretToReference

func (mg *NodePool) SetWriteConnectionSecretToReference(r *xpv1.SecretReference)

SetWriteConnectionSecretToReference of this NodePool.

type NodePoolList

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

NodePoolList contains a list of NodePool

func (*NodePoolList) DeepCopy

func (in *NodePoolList) DeepCopy() *NodePoolList

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

func (*NodePoolList) DeepCopyInto

func (in *NodePoolList) DeepCopyInto(out *NodePoolList)

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

func (*NodePoolList) DeepCopyObject

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

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

func (*NodePoolList) GetItems

func (l *NodePoolList) GetItems() []resource.Managed

GetItems of this NodePoolList.

type NodePoolObservation

type NodePoolObservation struct {
	NodePoolID               string   `json:"nodePoolId,omitempty"`
	State                    string   `json:"state,omitempty"`
	PublicIPs                []string `json:"publicIps,omitempty"`
	AvailableUpgradeVersions []string `json:"availableUpgradeVersions,omitempty"`
}

NodePoolObservation are the observable fields of a NodePool.

func (*NodePoolObservation) DeepCopy

func (in *NodePoolObservation) DeepCopy() *NodePoolObservation

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

func (*NodePoolObservation) DeepCopyInto

func (in *NodePoolObservation) DeepCopyInto(out *NodePoolObservation)

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

type NodePoolParameters

type NodePoolParameters struct {
	// The K8s Cluster on which the NodePool will be created
	//
	// +immutable
	// +kubebuilder:validation:Required
	ClusterCfg ClusterConfig `json:"clusterConfig"`
	// A Kubernetes node pool name. Valid Kubernetes node pool name must be 63 characters or less
	// and must be empty or begin and end with an alphanumeric character ([a-z0-9A-Z]) with
	// dashes (-), underscores (_), dots (.), and alphanumerics between.
	//
	// +immutable
	// +kubebuilder:validation:Required
	Name string `json:"name"`
	// A Datacenter, to which the user has access.
	//
	// +immutable
	// +kubebuilder:validation:Required
	DatacenterCfg DatacenterConfig `json:"datacenterConfig"`
	// The number of nodes that make up the node pool.
	//
	// +kubebuilder:validation:Required
	NodeCount int32 `json:"nodeCount"`
	// A valid CPU family name.
	// If no CPUFamily is provided, it will be set the first CPUFamily supported by the location.
	//
	// +immutable
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum=AMD_OPTERON;INTEL_SKYLAKE;INTEL_XEON
	CPUFamily string `json:"cpuFamily,omitempty"`
	// The number of cores for the node.
	//
	// +kubebuilder:validation:Required
	CoresCount int32 `json:"coresCount"`
	// The RAM size for the node. Must be set in multiples of 1024 MB, with minimum size is of 2048 MB.
	//
	// +immutable
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MultipleOf=1024
	// +kubebuilder:validation:Minimum=2048
	RAMSize int32 `json:"ramSize"`
	// The availability zone in which the target VM should be provisioned.
	//
	// +immutable
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=AUTO;ZONE_1;ZONE_2
	AvailabilityZone string `json:"availabilityZone"`
	// The type of hardware for the volume.
	//
	// +immutable
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=HDD;SSD
	StorageType string `json:"storageType"`
	// The size of the volume in GB. The size should be greater than 10GB.
	//
	// +immutable
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=10
	StorageSize int32 `json:"storageSize"`
	// The Kubernetes version the NodePool is running. This imposes restrictions on what Kubernetes
	// versions can be run in a cluster's NodePools. Additionally, not all Kubernetes versions are
	// viable upgrade targets for all prior versions.
	//
	// +kubebuilder:validation:Optional
	K8sVersion string `json:"k8sVersion,omitempty"`
	// The maintenance window is used for updating the software on the NodePool's nodes and for upgrading the NodePool's K8s version.
	// If no value is given, one is chosen dynamically, so there is no fixed default.
	//
	// +kubebuilder:validation:Optional
	MaintenanceWindow MaintenanceWindow `json:"maintenanceWindow,omitempty"`
	// property to be set when auto-scaling needs to be enabled for the NodePool.
	// By default, auto-scaling is not enabled.
	//
	// +kubebuilder:validation:Optional
	AutoScaling KubernetesAutoScaling `json:"autoScaling,omitempty"`
	// Array of additional private LANs attached to worker nodes
	//
	// +kubebuilder:validation:Optional
	Lans []KubernetesNodePoolLan `json:"lans,omitempty"`
	// Map of labels attached to NodePool.
	//
	// +kubebuilder:validation:Optional
	Labels map[string]string `json:"labels,omitempty"`
	// Map of annotations attached to NodePool.
	//
	// +kubebuilder:validation:Optional
	Annotations map[string]string `json:"annotations,omitempty"`
	// Optional array of reserved public IP addresses to be used by the nodes.
	// IPs must be from same location as the Datacenter used for the NodePool.
	// The array must contain one more IP than the maximum possible number of nodes
	// (nodeCount+1 for fixed number of nodes or maxNodeCount+1 when auto-scaling is used).
	// The extra IP is used when the nodes are rebuilt.
	// IPs can be set directly or via reference and indexes.
	//
	// +kubebuilder:validation:Optional
	PublicIPsCfg IPsConfigs `json:"publicIpsConfigs,omitempty"`
}

NodePoolParameters are the observable fields of a NodePool. Required fields in order to create a K8s NodePool: ClusterConfig, Name, DatacenterConfig, NodeCount, CoresCount, RAMSize, AvailabilityZone, StorageType, StorageSize.

func (*NodePoolParameters) DeepCopy

func (in *NodePoolParameters) DeepCopy() *NodePoolParameters

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

func (*NodePoolParameters) DeepCopyInto

func (in *NodePoolParameters) DeepCopyInto(out *NodePoolParameters)

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

type NodePoolSpec

type NodePoolSpec struct {
	xpv1.ResourceSpec `json:",inline"`
	ForProvider       NodePoolParameters `json:"forProvider"`
}

A NodePoolSpec defines the desired state of a NodePool.

func (*NodePoolSpec) DeepCopy

func (in *NodePoolSpec) DeepCopy() *NodePoolSpec

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

func (*NodePoolSpec) DeepCopyInto

func (in *NodePoolSpec) DeepCopyInto(out *NodePoolSpec)

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

type NodePoolStatus

type NodePoolStatus struct {
	xpv1.ResourceStatus `json:",inline"`
	AtProvider          NodePoolObservation `json:"atProvider,omitempty"`
}

A NodePoolStatus represents the observed state of a NodePool.

func (*NodePoolStatus) DeepCopy

func (in *NodePoolStatus) DeepCopy() *NodePoolStatus

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

func (*NodePoolStatus) DeepCopyInto

func (in *NodePoolStatus) DeepCopyInto(out *NodePoolStatus)

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

type S3Bucket

type S3Bucket struct {
	// +kubebuilder:validation:Required
	Name string `json:"name"`
}

S3Bucket configured for K8s usage.

func (*S3Bucket) DeepCopy

func (in *S3Bucket) DeepCopy() *S3Bucket

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

func (*S3Bucket) DeepCopyInto

func (in *S3Bucket) DeepCopyInto(out *S3Bucket)

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