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
- Variables
- type CloudSigmaCluster
- type CloudSigmaClusterList
- type CloudSigmaClusterSpec
- type CloudSigmaClusterStatus
- type CloudSigmaDisk
- type CloudSigmaIPConf
- type CloudSigmaIPRef
- type CloudSigmaMachine
- type CloudSigmaMachineList
- type CloudSigmaMachineSpec
- type CloudSigmaMachineStatus
- type CloudSigmaMachineTemplate
- type CloudSigmaMachineTemplateList
- type CloudSigmaMachineTemplateResource
- type CloudSigmaMachineTemplateSpec
- type CloudSigmaNIC
- type LoadBalancerSpec
- type LoadBalancerStatus
- type NetworkStatus
- type ObjectReference
- type VLANSpec
Constants ¶
const ( // NetworkReadyCondition reports on the successful reconciliation of CloudSigma network NetworkReadyCondition clusterv1.ConditionType = "NetworkReady" // NetworkCreateFailedReason used when network/VLAN creation fails NetworkCreateFailedReason = "NetworkCreateFailed" )
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 ¶
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