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 StackitAPIServerLoadBalancerSpec
- type StackitBastionCloudInitRef
- type StackitBastionSpec
- type StackitBastionStatus
- type StackitCluster
- type StackitClusterInitializationStatus
- type StackitClusterList
- type StackitClusterNetworkSpec
- type StackitClusterSpec
- type StackitClusterStatus
- type StackitClusterTemplate
- type StackitClusterTemplateList
- type StackitClusterTemplateResource
- type StackitClusterTemplateSpec
- type StackitMachine
- type StackitMachineInitializationStatus
- type StackitMachineList
- type StackitMachineNetworkSpec
- type StackitMachineSpec
- type StackitMachineStatus
- type StackitMachineTemplate
- type StackitMachineTemplateList
- type StackitMachineTemplateResource
- type StackitMachineTemplateSpec
- type StackitRootVolumeSpec
Constants ¶
const ( ClusterReadyCondition = "Ready" ClusterNetworkReadyCondition = "NetworkReady" ClusterLoadBalancerReadyCondition = "LoadBalancerReady" ClusterCredentialsReadyCondition = "CredentialsReady" ClusterBastionReadyCondition = "BastionReady" )
Condition types maintained by the StackitClusterReconciler.
const ( MachineReadyCondition = "Ready" MachineBootstrapReadyCondition = "BootstrapReady" MachineCredentialsReadyCondition = "CredentialsReady" MachineInstanceReadyCondition = "InstanceReady" )
Condition types maintained by the StackitMachineReconciler.
const ClusterFinalizer = "stackitcluster.infrastructure.cluster.x-k8s.io"
ClusterFinalizer allows StackitClusterReconciler to clean up resources before the StackitCluster is finally removed from the API server.
const MachineFinalizer = "stackitmachine.infrastructure.cluster.x-k8s.io"
MachineFinalizer allows StackitMachineReconciler to clean up the underlying VM before the StackitMachine is finally removed from the API server.
Variables ¶
var ( // SchemeGroupVersion is group version used to register these objects. // This name is used by applyconfiguration generators (e.g. controller-gen). SchemeGroupVersion = schema.GroupVersion{Group: "infrastructure.cluster.x-k8s.io", Version: "v1alpha1"} // GroupVersion is an alias for SchemeGroupVersion, for backward compatibility. GroupVersion = SchemeGroupVersion // SchemeBuilder is used to add go types to the GroupVersionKind scheme. SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
This section is empty.
Types ¶
type StackitAPIServerLoadBalancerSpec ¶
type StackitAPIServerLoadBalancerSpec struct {
// enabled toggles creation of an API server load balancer.
// +optional
Enabled bool `json:"enabled,omitempty"`
}
StackitAPIServerLoadBalancerSpec configures an optional load balancer for the Kubernetes API server.
func (*StackitAPIServerLoadBalancerSpec) DeepCopy ¶
func (in *StackitAPIServerLoadBalancerSpec) DeepCopy() *StackitAPIServerLoadBalancerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackitAPIServerLoadBalancerSpec.
func (*StackitAPIServerLoadBalancerSpec) DeepCopyInto ¶
func (in *StackitAPIServerLoadBalancerSpec) DeepCopyInto(out *StackitAPIServerLoadBalancerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StackitBastionCloudInitRef ¶
type StackitBastionCloudInitRef struct {
// kind is the Kubernetes object kind containing the cloud-init document.
// +required
// +kubebuilder:validation:Enum=ConfigMap;Secret
Kind string `json:"kind"`
// name is the ConfigMap or Secret name in the StackitCluster namespace.
// +required
// +kubebuilder:validation:MinLength=1
Name string `json:"name"`
// key is the data key containing the cloud-init document.
// +required
// +kubebuilder:validation:MinLength=1
Key string `json:"key"`
}
StackitBastionCloudInitRef references cloud-init user data for the bastion.
func (*StackitBastionCloudInitRef) DeepCopy ¶
func (in *StackitBastionCloudInitRef) DeepCopy() *StackitBastionCloudInitRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackitBastionCloudInitRef.
func (*StackitBastionCloudInitRef) DeepCopyInto ¶
func (in *StackitBastionCloudInitRef) DeepCopyInto(out *StackitBastionCloudInitRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StackitBastionSpec ¶
type StackitBastionSpec struct {
// enabled toggles creation of a provider-managed SSH bastion host.
// +optional
Enabled bool `json:"enabled,omitempty"`
// imageID is the ID of the STACKIT image to boot the bastion from.
// Required when enabled is true.
// +optional
// +kubebuilder:validation:Pattern=`^[0-9a-fA-F-]{36}$`
ImageID string `json:"imageID,omitempty"`
// machineType selects the STACKIT machine flavor for the bastion VM.
// Required when enabled is true.
// +optional
// +kubebuilder:validation:Pattern=`^[a-z0-9][a-z0-9.-]*[a-z0-9]$`
MachineType string `json:"machineType,omitempty"`
// sshKeyName is the name of an existing SSH key in the STACKIT project.
// Required when enabled is true.
// +optional
// +kubebuilder:validation:MaxLength=127
// +kubebuilder:validation:Pattern=`^[A-Za-z0-9_.@-]+$`
SSHKeyName string `json:"sshKeyName,omitempty"`
// allowedCIDRs are CIDR ranges allowed to connect to TCP/22 on the bastion.
// Required when enabled is true.
// +optional
// +kubebuilder:validation:items:Format=cidr
AllowedCIDRs []string `json:"allowedCIDRs,omitempty"`
// rootVolume configures the bastion root disk.
// +optional
RootVolume StackitRootVolumeSpec `json:"rootVolume,omitempty"`
// cloudInitRef references cloud-init user data passed to the bastion VM.
// It can point to a ConfigMap for non-sensitive configuration or a Secret
// when the cloud-init document contains sensitive values.
// +optional
CloudInitRef *StackitBastionCloudInitRef `json:"cloudInitRef,omitempty"`
}
StackitBastionSpec configures an optional provider-managed SSH bastion host.
func (*StackitBastionSpec) DeepCopy ¶
func (in *StackitBastionSpec) DeepCopy() *StackitBastionSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackitBastionSpec.
func (*StackitBastionSpec) DeepCopyInto ¶
func (in *StackitBastionSpec) DeepCopyInto(out *StackitBastionSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StackitBastionStatus ¶
type StackitBastionStatus struct {
// serverID is the provider-managed bastion server ID.
// +optional
ServerID string `json:"serverID,omitempty"`
// publicIPID is the provider-managed public IP resource ID.
// +optional
PublicIPID string `json:"publicIPID,omitempty"`
// publicIP is the routable IP address users connect to.
// +optional
PublicIP string `json:"publicIP,omitempty"`
// securityGroupID is the provider-managed bastion security group ID.
// +optional
SecurityGroupID string `json:"securityGroupID,omitempty"`
// cloudInitHash records the resolved cloudInitRef content used to create
// the current provider-managed bastion server.
// +optional
CloudInitHash string `json:"cloudInitHash,omitempty"`
}
StackitBastionStatus holds provider-managed bastion resource IDs.
func (*StackitBastionStatus) DeepCopy ¶
func (in *StackitBastionStatus) DeepCopy() *StackitBastionStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackitBastionStatus.
func (*StackitBastionStatus) DeepCopyInto ¶
func (in *StackitBastionStatus) DeepCopyInto(out *StackitBastionStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StackitCluster ¶
type StackitCluster struct {
metav1.TypeMeta `json:",inline"`
// metadata is a standard object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitzero"`
// spec defines the desired state of StackitCluster
// +required
Spec StackitClusterSpec `json:"spec"`
// status defines the observed state of StackitCluster
// +optional
Status StackitClusterStatus `json:"status,omitzero"`
}
StackitCluster is the Schema for the stackitclusters API.
func (*StackitCluster) DeepCopy ¶
func (in *StackitCluster) DeepCopy() *StackitCluster
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackitCluster.
func (*StackitCluster) DeepCopyInto ¶
func (in *StackitCluster) DeepCopyInto(out *StackitCluster)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*StackitCluster) DeepCopyObject ¶
func (in *StackitCluster) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type StackitClusterInitializationStatus ¶
type StackitClusterInitializationStatus struct {
// provisioned is true when the cluster infrastructure is provisioned.
// +optional
Provisioned bool `json:"provisioned,omitempty"`
}
StackitClusterInitializationStatus holds Cluster API initialization state.
func (*StackitClusterInitializationStatus) DeepCopy ¶
func (in *StackitClusterInitializationStatus) DeepCopy() *StackitClusterInitializationStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackitClusterInitializationStatus.
func (*StackitClusterInitializationStatus) DeepCopyInto ¶
func (in *StackitClusterInitializationStatus) DeepCopyInto(out *StackitClusterInitializationStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StackitClusterList ¶
type StackitClusterList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitzero"`
Items []StackitCluster `json:"items"`
}
StackitClusterList contains a list of StackitCluster.
func (*StackitClusterList) DeepCopy ¶
func (in *StackitClusterList) DeepCopy() *StackitClusterList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackitClusterList.
func (*StackitClusterList) DeepCopyInto ¶
func (in *StackitClusterList) DeepCopyInto(out *StackitClusterList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*StackitClusterList) DeepCopyObject ¶
func (in *StackitClusterList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type StackitClusterNetworkSpec ¶
type StackitClusterNetworkSpec struct {
// id is the STACKIT network ID.
// +required
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:Pattern=`^[0-9a-fA-F-]{36}$`
ID string `json:"id"`
}
StackitClusterNetworkSpec references an existing STACKIT network.
func (*StackitClusterNetworkSpec) DeepCopy ¶
func (in *StackitClusterNetworkSpec) DeepCopy() *StackitClusterNetworkSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackitClusterNetworkSpec.
func (*StackitClusterNetworkSpec) DeepCopyInto ¶
func (in *StackitClusterNetworkSpec) DeepCopyInto(out *StackitClusterNetworkSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StackitClusterSpec ¶
type StackitClusterSpec struct {
// projectID is the STACKIT project that owns the cluster infrastructure.
// +required
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:Pattern=`^[0-9a-fA-F-]{36}$`
ProjectID string `json:"projectID"`
// region is the STACKIT region in which infrastructure is created.
// +required
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:Pattern=`^[a-z]{2}[0-9]{2}$`
Region string `json:"region"`
// credentialsSecretRef references the Secret containing STACKIT credentials.
// +required
CredentialsSecretRef corev1.SecretReference `json:"credentialsSecretRef"`
// network references the existing STACKIT network the cluster will use.
// For MVP the network must already exist.
// +required
Network StackitClusterNetworkSpec `json:"network"`
// apiServerLoadBalancer configures the load balancer in front of the
// Kubernetes API server.
// +optional
APIServerLoadBalancer StackitAPIServerLoadBalancerSpec `json:"apiServerLoadBalancer,omitempty"`
// controlPlaneEndpoint allows the user to provide a pre-existing endpoint
// when apiServerLoadBalancer.enabled is false.
// +optional
ControlPlaneEndpoint clusterv1.APIEndpoint `json:"controlPlaneEndpoint,omitempty,omitzero"`
// bastion configures an optional provider-managed SSH bastion host.
// +optional
Bastion StackitBastionSpec `json:"bastion,omitempty"`
// additionalLabels is merged into the labels applied to cluster-wide
// STACKIT resources such as the API server load balancer.
// +optional
// +kubebuilder:validation:MaxProperties=64
AdditionalLabels map[string]string `json:"additionalLabels,omitempty"`
}
StackitClusterSpec defines the desired state of StackitCluster. +kubebuilder:validation:XValidation:rule="has(self.credentialsSecretRef.name) && size(self.credentialsSecretRef.name) > 0",message="credentialsSecretRef.name is required" +kubebuilder:validation:XValidation:rule="has(self.apiServerLoadBalancer) && has(self.apiServerLoadBalancer.enabled) && self.apiServerLoadBalancer.enabled ? true : has(self.controlPlaneEndpoint) && has(self.controlPlaneEndpoint.host) && size(self.controlPlaneEndpoint.host) > 0",message="controlPlaneEndpoint.host is required when apiServerLoadBalancer.enabled is false" +kubebuilder:validation:XValidation:rule="!has(self.bastion) || !has(self.bastion.enabled) || !self.bastion.enabled || (has(self.bastion.imageID) && size(self.bastion.imageID) > 0 && has(self.bastion.machineType) && size(self.bastion.machineType) > 0 && has(self.bastion.sshKeyName) && size(self.bastion.sshKeyName) > 0 && has(self.bastion.allowedCIDRs) && size(self.bastion.allowedCIDRs) > 0)",message="bastion.imageID, bastion.machineType, bastion.sshKeyName, and bastion.allowedCIDRs are required when bastion.enabled is true"
func (*StackitClusterSpec) DeepCopy ¶
func (in *StackitClusterSpec) DeepCopy() *StackitClusterSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackitClusterSpec.
func (*StackitClusterSpec) DeepCopyInto ¶
func (in *StackitClusterSpec) DeepCopyInto(out *StackitClusterSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StackitClusterStatus ¶
type StackitClusterStatus struct {
// ready indicates that the infrastructure required for the cluster is ready.
// +optional
Ready bool `json:"ready,omitempty"`
// initialization provides Cluster API v1beta2 contract state.
// +optional
Initialization StackitClusterInitializationStatus `json:"initialization,omitempty"`
// apiServerEndpoint is the endpoint the Kubernetes API server is reachable at.
// +optional
APIServerEndpoint clusterv1.APIEndpoint `json:"apiServerEndpoint,omitempty,omitzero"`
// apiServerLoadBalancerID stores the ID of a provider-managed API server
// load balancer so it can be deleted on cluster teardown.
// +optional
APIServerLoadBalancerID string `json:"apiServerLoadBalancerID,omitempty"`
// bastion stores observed provider-managed bastion resources.
// +optional
Bastion StackitBastionStatus `json:"bastion,omitempty"`
// failureDomains is a list of availability zones available to the cluster.
// +listType=map
// +listMapKey=name
// +optional
FailureDomains []clusterv1.FailureDomain `json:"failureDomains,omitempty"`
// conditions represent the current state of the StackitCluster resource.
// +listType=map
// +listMapKey=type
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty"`
}
StackitClusterStatus defines the observed state of StackitCluster.
func (*StackitClusterStatus) DeepCopy ¶
func (in *StackitClusterStatus) DeepCopy() *StackitClusterStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackitClusterStatus.
func (*StackitClusterStatus) DeepCopyInto ¶
func (in *StackitClusterStatus) DeepCopyInto(out *StackitClusterStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StackitClusterTemplate ¶
type StackitClusterTemplate struct {
metav1.TypeMeta `json:",inline"`
// metadata is a standard object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitzero"`
// spec defines the desired state of StackitClusterTemplate
// +required
Spec StackitClusterTemplateSpec `json:"spec"`
}
StackitClusterTemplate is the Schema for the stackitclustertemplates API.
func (*StackitClusterTemplate) DeepCopy ¶
func (in *StackitClusterTemplate) DeepCopy() *StackitClusterTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackitClusterTemplate.
func (*StackitClusterTemplate) DeepCopyInto ¶
func (in *StackitClusterTemplate) DeepCopyInto(out *StackitClusterTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*StackitClusterTemplate) DeepCopyObject ¶
func (in *StackitClusterTemplate) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type StackitClusterTemplateList ¶
type StackitClusterTemplateList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitzero"`
Items []StackitClusterTemplate `json:"items"`
}
StackitClusterTemplateList contains a list of StackitClusterTemplate.
func (*StackitClusterTemplateList) DeepCopy ¶
func (in *StackitClusterTemplateList) DeepCopy() *StackitClusterTemplateList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackitClusterTemplateList.
func (*StackitClusterTemplateList) DeepCopyInto ¶
func (in *StackitClusterTemplateList) DeepCopyInto(out *StackitClusterTemplateList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*StackitClusterTemplateList) DeepCopyObject ¶
func (in *StackitClusterTemplateList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type StackitClusterTemplateResource ¶
type StackitClusterTemplateResource struct {
// metadata is the 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,omitzero"`
// spec is the StackitClusterSpec that will be used to create the
// StackitCluster.
// +required
Spec StackitClusterSpec `json:"spec"`
}
StackitClusterTemplateResource holds the spec for a StackitCluster created from a template.
func (*StackitClusterTemplateResource) DeepCopy ¶
func (in *StackitClusterTemplateResource) DeepCopy() *StackitClusterTemplateResource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackitClusterTemplateResource.
func (*StackitClusterTemplateResource) DeepCopyInto ¶
func (in *StackitClusterTemplateResource) DeepCopyInto(out *StackitClusterTemplateResource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StackitClusterTemplateSpec ¶
type StackitClusterTemplateSpec struct {
// template wraps the StackitCluster spec used to create new clusters.
// +required
Template StackitClusterTemplateResource `json:"template"`
}
StackitClusterTemplateSpec defines the desired state of StackitClusterTemplate.
func (*StackitClusterTemplateSpec) DeepCopy ¶
func (in *StackitClusterTemplateSpec) DeepCopy() *StackitClusterTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackitClusterTemplateSpec.
func (*StackitClusterTemplateSpec) DeepCopyInto ¶
func (in *StackitClusterTemplateSpec) DeepCopyInto(out *StackitClusterTemplateSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StackitMachine ¶
type StackitMachine struct {
metav1.TypeMeta `json:",inline"`
// metadata is a standard object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitzero"`
// spec defines the desired state of StackitMachine
// +required
Spec StackitMachineSpec `json:"spec"`
// status defines the observed state of StackitMachine
// +optional
Status StackitMachineStatus `json:"status,omitzero"`
}
StackitMachine is the Schema for the stackitmachines API.
func (*StackitMachine) DeepCopy ¶
func (in *StackitMachine) DeepCopy() *StackitMachine
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackitMachine.
func (*StackitMachine) DeepCopyInto ¶
func (in *StackitMachine) DeepCopyInto(out *StackitMachine)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*StackitMachine) DeepCopyObject ¶
func (in *StackitMachine) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type StackitMachineInitializationStatus ¶
type StackitMachineInitializationStatus struct {
// provisioned is true when the VM is provisioned.
// +optional
Provisioned bool `json:"provisioned,omitempty"`
}
StackitMachineInitializationStatus holds Cluster API initialization state.
func (*StackitMachineInitializationStatus) DeepCopy ¶
func (in *StackitMachineInitializationStatus) DeepCopy() *StackitMachineInitializationStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackitMachineInitializationStatus.
func (*StackitMachineInitializationStatus) DeepCopyInto ¶
func (in *StackitMachineInitializationStatus) DeepCopyInto(out *StackitMachineInitializationStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StackitMachineList ¶
type StackitMachineList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitzero"`
Items []StackitMachine `json:"items"`
}
StackitMachineList contains a list of StackitMachine.
func (*StackitMachineList) DeepCopy ¶
func (in *StackitMachineList) DeepCopy() *StackitMachineList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackitMachineList.
func (*StackitMachineList) DeepCopyInto ¶
func (in *StackitMachineList) DeepCopyInto(out *StackitMachineList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*StackitMachineList) DeepCopyObject ¶
func (in *StackitMachineList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type StackitMachineNetworkSpec ¶
type StackitMachineNetworkSpec struct {
// id is the STACKIT network ID.
// +required
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:Pattern=`^[0-9a-fA-F-]{36}$`
ID string `json:"id"`
}
StackitMachineNetworkSpec references an existing STACKIT network.
func (*StackitMachineNetworkSpec) DeepCopy ¶
func (in *StackitMachineNetworkSpec) DeepCopy() *StackitMachineNetworkSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackitMachineNetworkSpec.
func (*StackitMachineNetworkSpec) DeepCopyInto ¶
func (in *StackitMachineNetworkSpec) DeepCopyInto(out *StackitMachineNetworkSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StackitMachineSpec ¶
type StackitMachineSpec struct {
// providerID is the unique identifier the cloud-provider will use to
// reconcile this machine with the corresponding Node. It is set by the
// controller once the VM has been created.
// +optional
ProviderID *string `json:"providerID,omitempty"`
// imageID is the ID of the STACKIT image to boot from.
// +required
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:Pattern=`^[0-9a-fA-F-]{36}$`
ImageID string `json:"imageID"`
// machineType selects the STACKIT machine flavor (e.g. c2i.2).
// +required
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:Pattern=`^[a-z0-9][a-z0-9.-]*[a-z0-9]$`
MachineType string `json:"machineType"`
// availabilityZone selects a STACKIT availability zone (e.g. eu01-1).
// +optional
// +kubebuilder:validation:Pattern=`^[a-z]{2}[0-9]{2}-[a-z0-9]+$`
AvailabilityZone string `json:"availabilityZone,omitempty"`
// sshKeyName is the name of an existing SSH key in the STACKIT project.
// +optional
// +kubebuilder:validation:MaxLength=127
// +kubebuilder:validation:Pattern=`^[A-Za-z0-9_.@-]+$`
SSHKeyName string `json:"sshKeyName,omitempty"`
// rootVolume configures the root disk for the VM.
// +optional
RootVolume StackitRootVolumeSpec `json:"rootVolume,omitempty"`
// network references the STACKIT network the VM should be attached to.
// +required
Network StackitMachineNetworkSpec `json:"network"`
// securityGroups is a list of STACKIT security group IDs applied to the VM.
// +optional
// +kubebuilder:validation:items:Pattern=`^[0-9a-fA-F-]{36}$`
SecurityGroups []string `json:"securityGroups,omitempty"`
// additionalLabels is merged into the labels applied to STACKIT resources.
// +optional
// +kubebuilder:validation:MaxProperties=64
AdditionalLabels map[string]string `json:"additionalLabels,omitempty"`
}
StackitMachineSpec defines the desired state of StackitMachine.
NOTE: There is intentionally no userData field on StackitMachineSpec. Bootstrap data is provided by CABPK/KubeadmConfig via Machine.spec.bootstrap.dataSecretName, read by the reconciler and passed to the cloud client during VM creation.
func (*StackitMachineSpec) DeepCopy ¶
func (in *StackitMachineSpec) DeepCopy() *StackitMachineSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackitMachineSpec.
func (*StackitMachineSpec) DeepCopyInto ¶
func (in *StackitMachineSpec) DeepCopyInto(out *StackitMachineSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StackitMachineStatus ¶
type StackitMachineStatus struct {
// ready indicates the underlying VM is provisioned and known to the
// provider.
// +optional
Ready bool `json:"ready,omitempty"`
// initialization provides Cluster API v1beta2 contract state.
// +optional
Initialization StackitMachineInitializationStatus `json:"initialization,omitempty"`
// providerID is the providerID written back to the owning Machine.
// +optional
ProviderID string `json:"providerID,omitempty"`
// instanceID is the STACKIT server ID assigned to this machine.
// +optional
InstanceID string `json:"instanceID,omitempty"`
// instanceState is the latest known state of the STACKIT server.
// +optional
InstanceState string `json:"instanceState,omitempty"`
// addresses contains the IP addresses associated with the VM.
// +optional
Addresses []clusterv1.MachineAddress `json:"addresses,omitempty"`
// conditions represent the current state of the StackitMachine resource.
// +listType=map
// +listMapKey=type
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty"`
}
StackitMachineStatus defines the observed state of StackitMachine.
func (*StackitMachineStatus) DeepCopy ¶
func (in *StackitMachineStatus) DeepCopy() *StackitMachineStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackitMachineStatus.
func (*StackitMachineStatus) DeepCopyInto ¶
func (in *StackitMachineStatus) DeepCopyInto(out *StackitMachineStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StackitMachineTemplate ¶
type StackitMachineTemplate struct {
metav1.TypeMeta `json:",inline"`
// metadata is a standard object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitzero"`
// spec defines the desired state of StackitMachineTemplate
// +required
Spec StackitMachineTemplateSpec `json:"spec"`
}
StackitMachineTemplate is the Schema for the stackitmachinetemplates API.
func (*StackitMachineTemplate) DeepCopy ¶
func (in *StackitMachineTemplate) DeepCopy() *StackitMachineTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackitMachineTemplate.
func (*StackitMachineTemplate) DeepCopyInto ¶
func (in *StackitMachineTemplate) DeepCopyInto(out *StackitMachineTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*StackitMachineTemplate) DeepCopyObject ¶
func (in *StackitMachineTemplate) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type StackitMachineTemplateList ¶
type StackitMachineTemplateList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitzero"`
Items []StackitMachineTemplate `json:"items"`
}
StackitMachineTemplateList contains a list of StackitMachineTemplate.
func (*StackitMachineTemplateList) DeepCopy ¶
func (in *StackitMachineTemplateList) DeepCopy() *StackitMachineTemplateList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackitMachineTemplateList.
func (*StackitMachineTemplateList) DeepCopyInto ¶
func (in *StackitMachineTemplateList) DeepCopyInto(out *StackitMachineTemplateList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*StackitMachineTemplateList) DeepCopyObject ¶
func (in *StackitMachineTemplateList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type StackitMachineTemplateResource ¶
type StackitMachineTemplateResource struct {
// metadata is the 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,omitzero"`
// spec is the StackitMachineSpec that will be used to create the
// StackitMachine.
// +required
Spec StackitMachineSpec `json:"spec"`
}
StackitMachineTemplateResource holds the spec for a StackitMachine created from a template.
func (*StackitMachineTemplateResource) DeepCopy ¶
func (in *StackitMachineTemplateResource) DeepCopy() *StackitMachineTemplateResource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackitMachineTemplateResource.
func (*StackitMachineTemplateResource) DeepCopyInto ¶
func (in *StackitMachineTemplateResource) DeepCopyInto(out *StackitMachineTemplateResource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StackitMachineTemplateSpec ¶
type StackitMachineTemplateSpec struct {
// template wraps the StackitMachine spec used to create new machines.
// +required
Template StackitMachineTemplateResource `json:"template"`
}
StackitMachineTemplateSpec defines the desired state of StackitMachineTemplate.
func (*StackitMachineTemplateSpec) DeepCopy ¶
func (in *StackitMachineTemplateSpec) DeepCopy() *StackitMachineTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackitMachineTemplateSpec.
func (*StackitMachineTemplateSpec) DeepCopyInto ¶
func (in *StackitMachineTemplateSpec) DeepCopyInto(out *StackitMachineTemplateSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StackitRootVolumeSpec ¶
type StackitRootVolumeSpec struct {
// sizeGiB is the size of the root volume in GiB.
// +optional
// +kubebuilder:validation:Minimum=0
SizeGiB int `json:"sizeGiB,omitempty"`
// performanceClass selects a STACKIT storage performance class.
// +optional
// +kubebuilder:validation:MinLength=1
PerformanceClass string `json:"performanceClass,omitempty"`
// deleteOnTermination causes the root volume to be deleted when the VM is
// deleted.
// +optional
DeleteOnTermination *bool `json:"deleteOnTermination,omitempty"`
}
StackitRootVolumeSpec configures the boot/root disk of a VM.
func (*StackitRootVolumeSpec) DeepCopy ¶
func (in *StackitRootVolumeSpec) DeepCopy() *StackitRootVolumeSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackitRootVolumeSpec.
func (*StackitRootVolumeSpec) DeepCopyInto ¶
func (in *StackitRootVolumeSpec) DeepCopyInto(out *StackitRootVolumeSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.