v1alpha1

package
v0.1.0-alpha.1 Latest Latest
Warning

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

Go to latest
Published: Sep 15, 2026 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

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

Index

Constants

View Source
const (
	ClusterReadyCondition             = "Ready"
	ClusterNetworkReadyCondition      = "NetworkReady"
	ClusterLoadBalancerReadyCondition = "LoadBalancerReady"
	ClusterCredentialsReadyCondition  = "CredentialsReady"
	ClusterBastionReadyCondition      = "BastionReady"
)

Condition types maintained by the StackitClusterReconciler.

View Source
const (
	MachineReadyCondition            = "Ready"
	MachineBootstrapReadyCondition   = "BootstrapReady"
	MachineCredentialsReadyCondition = "CredentialsReady"
	MachineInstanceReadyCondition    = "InstanceReady"
)

Condition types maintained by the StackitMachineReconciler.

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

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

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

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

func (*StackitAPIServerLoadBalancerSpec) DeepCopyInto

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

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

func (*StackitBastionCloudInitRef) DeepCopyInto

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

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

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

func (*StackitClusterInitializationStatus) DeepCopyInto

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

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

func (*StackitClusterNetworkSpec) DeepCopyInto

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

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

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

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

func (*StackitClusterTemplateList) DeepCopyInto

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

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

func (*StackitClusterTemplateResource) DeepCopyInto

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

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

func (*StackitClusterTemplateSpec) DeepCopyInto

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

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

func (*StackitMachineInitializationStatus) DeepCopyInto

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

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

func (*StackitMachineNetworkSpec) DeepCopyInto

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

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

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

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

func (*StackitMachineTemplateList) DeepCopyInto

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

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

func (*StackitMachineTemplateResource) DeepCopyInto

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

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

func (*StackitMachineTemplateSpec) DeepCopyInto

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

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.

Jump to

Keyboard shortcuts

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