v1beta1

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Dec 2, 2025 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Overview

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

Index

Constants

View Source
const (
	// NetworkReadyCondition reports on the successful reconciliation of CloudSigma network
	NetworkReadyCondition clusterv1.ConditionType = "NetworkReady"

	// NetworkCreateFailedReason used when network/VLAN creation fails
	NetworkCreateFailedReason = "NetworkCreateFailed"
)
View Source
const (
	// ServerReadyCondition reports on the successful reconciliation of CloudSigma server
	ServerReadyCondition clusterv1.ConditionType = "ServerReady"

	// ServerCreateFailedReason used when server creation fails
	ServerCreateFailedReason = "ServerCreateFailed"

	// ServerDeleteFailedReason used when server deletion fails
	ServerDeleteFailedReason = "ServerDeleteFailed"

	// ServerNotRunningReason used when server is not in running state
	ServerNotRunningReason = "ServerNotRunning"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "infrastructure.cluster.x-k8s.io", Version: "v1beta1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

This section is empty.

Types

type CloudSigmaCluster

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

	Spec   CloudSigmaClusterSpec   `json:"spec,omitempty"`
	Status CloudSigmaClusterStatus `json:"status,omitempty"`
}

CloudSigmaCluster is the Schema for the cloudsigmaclusters API

func (*CloudSigmaCluster) GetConditions

func (c *CloudSigmaCluster) GetConditions() clusterv1.Conditions

GetConditions returns the conditions for the CloudSigmaCluster

func (*CloudSigmaCluster) SetConditions

func (c *CloudSigmaCluster) SetConditions(conditions clusterv1.Conditions)

SetConditions sets the conditions for the CloudSigmaCluster

type CloudSigmaClusterList

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

CloudSigmaClusterList contains a list of CloudSigmaCluster

type CloudSigmaClusterSpec

type CloudSigmaClusterSpec struct {
	// ControlPlaneEndpoint represents the endpoint used to communicate with the control plane.
	// +optional
	ControlPlaneEndpoint clusterv1.APIEndpoint `json:"controlPlaneEndpoint"`

	// Region is the CloudSigma datacenter region (e.g., "zrh", "fra", "next")
	// +kubebuilder:validation:Required
	Region string `json:"region"`

	// VLAN specifies the VLAN configuration for the cluster network
	// +optional
	VLAN *VLANSpec `json:"vlan,omitempty"`

	// LoadBalancer specifies the load balancer configuration
	// +optional
	LoadBalancer *LoadBalancerSpec `json:"loadBalancer,omitempty"`

	// CredentialsRef is a reference to a Secret containing CloudSigma credentials
	// +optional
	CredentialsRef *ObjectReference `json:"credentialsRef,omitempty"`
}

CloudSigmaClusterSpec defines the desired state of CloudSigmaCluster

type CloudSigmaClusterStatus

type CloudSigmaClusterStatus struct {
	// Ready indicates the cluster infrastructure is ready
	Ready bool `json:"ready"`

	// Network contains the cluster network information
	// +optional
	Network *NetworkStatus `json:"network,omitempty"`

	// LoadBalancer contains the load balancer information
	// +optional
	LoadBalancer *LoadBalancerStatus `json:"loadBalancer,omitempty"`

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

	// FailureReason indicates there is a fatal problem reconciling the cluster
	// +optional
	FailureReason *string `json:"failureReason,omitempty"`

	// FailureMessage indicates a human-readable message about why the cluster is in a failed state
	// +optional
	FailureMessage *string `json:"failureMessage,omitempty"`
}

CloudSigmaClusterStatus defines the observed state of CloudSigmaCluster

type CloudSigmaDisk

type CloudSigmaDisk struct {
	// UUID is the drive/image UUID
	UUID string `json:"uuid"`

	// Device is the device type (virtio or ide)
	// +kubebuilder:validation:Enum=virtio;ide
	Device string `json:"device"`

	// BootOrder is the boot priority
	BootOrder int `json:"boot_order"`

	// Size is the disk size in bytes
	Size int64 `json:"size"`
}

CloudSigmaDisk defines a disk configuration

type CloudSigmaIPConf

type CloudSigmaIPConf struct {
	// Conf is the configuration type (dhcp, static, or manual)
	// +kubebuilder:validation:Enum=dhcp;static;manual
	Conf string `json:"conf"`

	// IP is the IP address reference for static configuration
	// +optional
	IP *CloudSigmaIPRef `json:"ip,omitempty"`
}

CloudSigmaIPConf defines IP configuration

type CloudSigmaIPRef

type CloudSigmaIPRef struct {
	// UUID is the IP address UUID
	UUID string `json:"uuid"`
}

CloudSigmaIPRef references an IP address

type CloudSigmaMachine

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

	Spec   CloudSigmaMachineSpec   `json:"spec,omitempty"`
	Status CloudSigmaMachineStatus `json:"status,omitempty"`
}

CloudSigmaMachine is the Schema for the cloudsigmamachines API

func (*CloudSigmaMachine) GetConditions

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

GetConditions returns the conditions for the CloudSigmaMachine

func (*CloudSigmaMachine) SetConditions

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

SetConditions sets the conditions for the CloudSigmaMachine

type CloudSigmaMachineList

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

CloudSigmaMachineList contains a list of CloudSigmaMachine

type CloudSigmaMachineSpec

type CloudSigmaMachineSpec struct {
	// ProviderID is the unique identifier as specified by the cloud provider
	// Format: cloudsigma://server-uuid
	// +optional
	ProviderID *string `json:"providerID,omitempty"`

	// CPU is the CPU frequency in MHz
	// +kubebuilder:validation:Minimum=1000
	// +kubebuilder:validation:Maximum=100000
	CPU int `json:"cpu"`

	// Memory is the memory size in MB
	// +kubebuilder:validation:Minimum=512
	// +kubebuilder:validation:Maximum=524288
	Memory int `json:"memory"`

	// Disks defines the disk configuration
	// +kubebuilder:validation:MinItems=1
	Disks []CloudSigmaDisk `json:"disks"`

	// NICs defines the network interface configuration
	// When empty, CloudSigma will auto-assign a public NAT IP
	// +optional
	NICs []CloudSigmaNIC `json:"nics,omitempty"`

	// Tags are metadata tags for the server
	// +optional
	Tags []string `json:"tags,omitempty"`

	// Meta is custom metadata for the server
	// +optional
	Meta map[string]string `json:"meta,omitempty"`
}

CloudSigmaMachineSpec defines the desired state of CloudSigmaMachine

type CloudSigmaMachineStatus

type CloudSigmaMachineStatus struct {
	// Ready indicates the machine is ready
	Ready bool `json:"ready"`

	// InstanceID is the CloudSigma server UUID
	// +optional
	InstanceID string `json:"instanceID,omitempty"`

	// InstanceState is the current server state
	// +optional
	InstanceState string `json:"instanceState,omitempty"`

	// Addresses contains the machine's network addresses
	// +optional
	Addresses []clusterv1.MachineAddress `json:"addresses,omitempty"`

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

	// FailureReason indicates there is a fatal problem reconciling the machine
	// +optional
	FailureReason *string `json:"failureReason,omitempty"`

	// FailureMessage indicates a human-readable message about why the machine is in a failed state
	// +optional
	FailureMessage *string `json:"failureMessage,omitempty"`
}

CloudSigmaMachineStatus defines the observed state of CloudSigmaMachine

type CloudSigmaMachineTemplate

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

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

CloudSigmaMachineTemplate is the Schema for the cloudsigmamachinetemplates API

type CloudSigmaMachineTemplateList

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

CloudSigmaMachineTemplateList contains a list of CloudSigmaMachineTemplate

type CloudSigmaMachineTemplateResource

type CloudSigmaMachineTemplateResource struct {
	// Spec is the specification of the desired behavior of the machine.
	Spec CloudSigmaMachineSpec `json:"spec"`
}

CloudSigmaMachineTemplateResource describes the data needed to create a CloudSigmaMachine from a template

type CloudSigmaMachineTemplateSpec

type CloudSigmaMachineTemplateSpec struct {
	Template CloudSigmaMachineTemplateResource `json:"template"`
}

CloudSigmaMachineTemplateSpec defines the desired state of CloudSigmaMachineTemplate

type CloudSigmaNIC

type CloudSigmaNIC struct {
	// VLAN is the VLAN UUID
	VLAN string `json:"vlan"`

	// IPv4Conf is the IPv4 configuration
	IPv4Conf CloudSigmaIPConf `json:"ipv4_conf"`
}

CloudSigmaNIC defines a network interface configuration

type LoadBalancerSpec

type LoadBalancerSpec struct {
	// Enabled specifies whether to create a load balancer
	Enabled bool `json:"enabled"`

	// Type specifies the load balancer type (tcp or http)
	// +optional
	// +kubebuilder:validation:Enum=tcp;http
	Type string `json:"type,omitempty"`
}

LoadBalancerSpec defines the load balancer configuration

type LoadBalancerStatus

type LoadBalancerStatus struct {
	// IP is the load balancer IP address
	// +optional
	IP string `json:"ip,omitempty"`

	// Ready indicates the load balancer is ready
	Ready bool `json:"ready"`
}

LoadBalancerStatus contains load balancer status information

type NetworkStatus

type NetworkStatus struct {
	// VLANUUID is the UUID of the VLAN
	// +optional
	VLANUUID string `json:"vlanUUID,omitempty"`

	// CIDR is the IP range of the network
	// +optional
	CIDR string `json:"cidr,omitempty"`
}

NetworkStatus contains cluster network status information

type ObjectReference

type ObjectReference struct {
	// Name of the referenced object
	Name string `json:"name"`

	// Namespace of the referenced object
	// +optional
	Namespace string `json:"namespace,omitempty"`
}

ObjectReference contains information to locate a referenced object

type VLANSpec

type VLANSpec struct {
	// UUID is the existing VLAN UUID to use
	// +optional
	UUID string `json:"uuid,omitempty"`

	// Name is the name for a new VLAN to create
	// +optional
	Name string `json:"name,omitempty"`

	// CIDR is the IP range for a new VLAN (e.g., "10.220.0.0/16")
	// +optional
	// +kubebuilder:validation:Pattern=`^([0-9]{1,3}\.){3}[0-9]{1,3}/[0-9]{1,2}$`
	CIDR string `json:"cidr,omitempty"`
}

VLANSpec defines the VLAN configuration

Jump to

Keyboard shortcuts

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