v1alpha1

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Jun 13, 2025 License: MIT Imports: 5 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 ClusterFinalizer = "scalewaycluster.infrastructure.cluster.x-k8s.io/sc-protection"
View Source
const MachineFinalizer = "scalewaycluster.infrastructure.cluster.x-k8s.io/sm-protection"

Variables

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

	// 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 CIDR

type CIDR string

CIDR is an IP address range in CIDR notation (for example, "10.0.0.0/8" or "fd00::/8"). +kubebuilder:validation:XValidation:rule="isCIDR(self)",message="value must be a valid CIDR network address" +kubebuilder:validation:MaxLength:=43 +kubebuilder:validation:MinLength:=1

type ControlPlaneDNSSpec

type ControlPlaneDNSSpec struct {
	// Domain is the DNS Zone that this record should live in. It must be pre-existing in your Scaleway account.
	// The format must be a string that conforms to the definition of a subdomain in DNS (RFC 1123).
	// +kubebuilder:validation:Pattern:=^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
	Domain string `json:"domain"`
	// Name is the DNS short name of the record (non-FQDN). The format must consist of
	// alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character.
	// +kubebuilder:validation:Pattern:=^[a-z0-9]([-a-z0-9.]*[a-z0-9])?$
	Name string `json:"name"`
}

func (*ControlPlaneDNSSpec) DeepCopy

func (in *ControlPlaneDNSSpec) DeepCopy() *ControlPlaneDNSSpec

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

func (*ControlPlaneDNSSpec) DeepCopyInto

func (in *ControlPlaneDNSSpec) DeepCopyInto(out *ControlPlaneDNSSpec)

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

type ControlPlaneLoadBalancerSpec

type ControlPlaneLoadBalancerSpec struct {
	// +kubebuilder:validation:XValidation:rule="has(self.ip) == has(oldSelf.ip)",message="ip cannot be added or removed"
	// +kubebuilder:validation:XValidation:rule="!has(oldSelf.ip) || self.ip == oldSelf.ip",message="ip is immutable"
	// +kubebuilder:validation:XValidation:rule="has(self.zone) == has(oldSelf.zone)",message="zone cannot be added or removed"
	// +kubebuilder:validation:XValidation:rule="!has(oldSelf.zone) || self.zone == oldSelf.zone",message="zone is immutable"
	LoadBalancerSpec `json:",inline"`

	// Port configured on the Load Balancer. It must be valid port range (1-65535).
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=65535
	Port *int32 `json:"port,omitempty"`

	// AllowedRanges allows to set a list of allowed IP ranges that can access
	// the cluster through the loadbalancer. When unset, all IP ranges are allowed.
	// To allow the cluster to work properly, public IPs of nodes and Public
	// Gateways will automatically be allowed. However, if this field is set,
	// you MUST manually allow IPs of the nodes of your management cluster.
	// +kubebuilder:validation:MaxItems=30
	// +listType=set
	// +optional
	AllowedRanges []CIDR `json:"allowedRanges,omitempty"`
}

ControlPlaneLoadBalancerSpec defines control-plane loadbalancer settings for the cluster. +kubebuilder:validation:XValidation:rule="has(self.port) == has(oldSelf.port)",message="port cannot be added or removed"

func (*ControlPlaneLoadBalancerSpec) DeepCopy

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

func (*ControlPlaneLoadBalancerSpec) DeepCopyInto

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

type ImageSpec

type ImageSpec struct {
	// ID of the image.
	ID *string `json:"id,omitempty"`
	// Name of the image.
	Name *string `json:"name,omitempty"`
	// Label of the image.
	Label *string `json:"label,omitempty"`
}

ImageSpec contains an ID, Name or Label to use to create the instance. +kubebuilder:validation:XValidation:rule="(has(self.id) ? 1 : 0) + (has(self.name) ? 1 : 0) + (has(self.label) ? 1 : 0) == 1",message="exactly one of id, name or label must be set"

func (*ImageSpec) DeepCopy

func (in *ImageSpec) DeepCopy() *ImageSpec

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

func (*ImageSpec) DeepCopyInto

func (in *ImageSpec) DeepCopyInto(out *ImageSpec)

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

type LoadBalancerSpec

type LoadBalancerSpec struct {
	// Zone where to create the loadbalancer. Must be in the same region as the
	// cluster. Defaults to the first zone of the region.
	// +optional
	Zone *string `json:"zone,omitempty"`

	// Load Balancer commercial offer type.
	// +kubebuilder:default="LB-S"
	// +optional
	Type *string `json:"type,omitempty"`

	// IP to use when creating a loadbalancer.
	// +kubebuilder:validation:Format=ipv4
	// +optional
	IP *string `json:"ip,omitempty"`
}

LoadBalancerSpec defines loadbalancer parameters.

func (*LoadBalancerSpec) DeepCopy

func (in *LoadBalancerSpec) DeepCopy() *LoadBalancerSpec

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

func (*LoadBalancerSpec) DeepCopyInto

func (in *LoadBalancerSpec) DeepCopyInto(out *LoadBalancerSpec)

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

type NetworkSpec

type NetworkSpec struct {
	// ControlPlaneLoadBalancer contains loadbalancer settings.
	// +optional
	ControlPlaneLoadBalancer *ControlPlaneLoadBalancerSpec `json:"controlPlaneLoadBalancer,omitempty"`

	// ControlPlaneExtraLoadBalancers allows configuring additional LoadBalancers.
	// Because Scaleway LoadBalancers are currently zonal resources, you may set
	// up to 3 additional LoadBalancers for achieving regional redundancy. It is
	// mandatory to set the controlPlaneDNS field when you do so.
	// This may be removed in the future, when Scaleway supports regional LoadBalancers.
	// +kubebuilder:validation:MaxItems=3
	// +optional
	ControlPlaneExtraLoadBalancers []LoadBalancerSpec `json:"controlPlaneExtraLoadBalancers,omitempty"`

	// ControlPlaneDNS allows configuring a Scaleway Domain DNS Zone.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	// +optional
	ControlPlaneDNS *ControlPlaneDNSSpec `json:"controlPlaneDNS,omitempty"`

	// PrivateNetwork allows attaching machines of the cluster to a Private Network.
	// +optional
	PrivateNetwork *PrivateNetworkSpec `json:"privateNetwork,omitempty"`

	// PublicGateways allows to create Public Gateways that will be attached to the
	// Private Network of the cluster.
	// +kubebuilder:validation:MaxItems=6
	// +optional
	PublicGateways []PublicGatewaySpec `json:"publicGateways,omitempty"`
}

NetworkSpec defines network specific settings. +kubebuilder:validation:XValidation:rule="!has(self.controlPlaneExtraLoadBalancers) || has(self.controlPlaneDNS)",message="controlPlaneDNS is required when controlPlaneExtraLoadBalancers is set" +kubebuilder:validation:XValidation:rule="has(self.controlPlaneDNS) == has(oldSelf.controlPlaneDNS)",message="controlPlaneDNS cannot be added or removed" +kubebuilder:validation:XValidation:rule="has(self.privateNetwork) == has(oldSelf.privateNetwork)",message="privateNetwork cannot be added or removed" +kubebuilder:validation:XValidation:rule="!has(self.publicGateways) || has(self.privateNetwork) && self.privateNetwork.enabled",message="privateNetwork is required when publicGateways is set"

func (*NetworkSpec) DeepCopy

func (in *NetworkSpec) DeepCopy() *NetworkSpec

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

func (*NetworkSpec) DeepCopyInto

func (in *NetworkSpec) DeepCopyInto(out *NetworkSpec)

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

type NetworkStatus

type NetworkStatus struct {
	// PrivateNetworkID is set if the cluster has an associated Private Network.
	// +optional
	PrivateNetworkID *string `json:"privateNetworkID,omitempty"`

	// PublicGatewayIDs is a list of Public Gateway IDs.
	// +optional
	PublicGatewayIDs []string `json:"publicGatewayIDs,omitempty"`

	// LoadBalancerIP is the public IP of the cluster control-plane.
	// +optional
	LoadBalancerIP *string `json:"loadBalancerIP,omitempty"`

	// ExtraLoadBalancerIPs is a list of IPs of the extra loadbalancers.
	// +optional
	ExtraLoadBalancerIPs []string `json:"extraLoadBalancerIPs,omitempty"`
}

NetworkStatus contains information about network resources of the cluster.

func (*NetworkStatus) DeepCopy

func (in *NetworkStatus) DeepCopy() *NetworkStatus

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

func (*NetworkStatus) DeepCopyInto

func (in *NetworkStatus) DeepCopyInto(out *NetworkStatus)

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

type PrivateNetworkSpec

type PrivateNetworkSpec struct {
	// Set to true to automatically attach machines to a Private Network.
	// The Private Network is automatically created if no existing Private
	// Network ID is provided.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	Enabled bool `json:"enabled"`

	// Set a Private Network ID to reuse an existing Private Network.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	// +optional
	ID *string `json:"id,omitempty"`

	// Set the VPC ID where the new Private Network will be created.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	// +optional
	VPCID *string `json:"vpcID,omitempty"`

	// Optional subnet for the Private Network. Only used on newly created Private Networks.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	// +optional
	Subnet *string `json:"subnet,omitempty"`
}

PrivateNetworkSpec defines Private Network settings for the cluster. +kubebuilder:validation:XValidation:rule="has(self.vpcID) == has(oldSelf.vpcID)",message="vpcID cannot be added or removed" +kubebuilder:validation:XValidation:rule="has(self.id) == has(oldSelf.id)",message="id cannot be added or removed" +kubebuilder:validation:XValidation:rule="has(self.subnet) == has(oldSelf.subnet)",message="subnet cannot be added or removed" +kubebuilder:validation:XValidation:rule="has(self.id) && !has(self.subnet) || !has(self.id)",message="subnet cannot be set when id is set" +kubebuilder:validation:XValidation:rule="has(self.id) && !has(self.vpcID) || !has(self.id)",message="vpcID cannot be set when id is set"

func (*PrivateNetworkSpec) DeepCopy

func (in *PrivateNetworkSpec) DeepCopy() *PrivateNetworkSpec

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

func (*PrivateNetworkSpec) DeepCopyInto

func (in *PrivateNetworkSpec) DeepCopyInto(out *PrivateNetworkSpec)

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

type PublicGatewaySpec

type PublicGatewaySpec struct {
	// Public Gateway commercial offer type.
	// +kubebuilder:default="VPC-GW-S"
	// +optional
	Type *string `json:"type,omitempty"`

	// IP to use when creating a Public Gateway.
	// +kubebuilder:validation:Format=ipv4
	// +optional
	IP *string `json:"ip,omitempty"`

	// Zone where to create the Public Gateway. Must be in the same region as the
	// cluster. Defaults to the first zone of the region.
	// +optional
	Zone *string `json:"zone,omitempty"`
}

PublicGatewaySpec defines Public Gateway settings for the cluster.

func (*PublicGatewaySpec) DeepCopy

func (in *PublicGatewaySpec) DeepCopy() *PublicGatewaySpec

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

func (*PublicGatewaySpec) DeepCopyInto

func (in *PublicGatewaySpec) DeepCopyInto(out *PublicGatewaySpec)

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

type PublicNetworkSpec

type PublicNetworkSpec struct {
	// EnableIPv4 defines whether server has IPv4 address enabled.
	// +optional
	EnableIPv4 *bool `json:"enableIPv4,omitempty"`
	// EnableIPv6 defines whether server has IPv6 addresses enabled.
	// +optional
	EnableIPv6 *bool `json:"enableIPv6,omitempty"`
}

PublicNetworkSpec allows enabling the attachment of public IPs to the instance.

func (*PublicNetworkSpec) DeepCopy

func (in *PublicNetworkSpec) DeepCopy() *PublicNetworkSpec

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

func (*PublicNetworkSpec) DeepCopyInto

func (in *PublicNetworkSpec) DeepCopyInto(out *PublicNetworkSpec)

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

type RootVolumeSpec

type RootVolumeSpec struct {
	// Size of the root volume in GB. Defaults to 20 GB.
	// +kubebuilder:default=20
	// +kubebuilder:validation:Minimum=8
	// +optional
	Size *int64 `json:"size,omitempty"`

	// Type of the root volume. Can be local or block. Note that not all types
	// of instances support local volumes.
	// +kubebuilder:validation:Enum=local;block
	// +kubebuilder:default="block"
	// +optional
	Type *string `json:"type,omitempty"`

	// IOPS is the number of IOPS requested for the disk. This is only applicable for block volumes.
	// +optional
	IOPS *int64 `json:"iops,omitempty"`
}

RootVolumeSpec defines the characteristics of the system (root) volume.

func (*RootVolumeSpec) DeepCopy

func (in *RootVolumeSpec) DeepCopy() *RootVolumeSpec

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

func (*RootVolumeSpec) DeepCopyInto

func (in *RootVolumeSpec) DeepCopyInto(out *RootVolumeSpec)

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

type ScalewayCluster

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

	Spec   ScalewayClusterSpec   `json:"spec,omitempty"`
	Status ScalewayClusterStatus `json:"status,omitempty"`
}

ScalewayCluster is the Schema for the scalewayclusters API. +kubebuilder:validation:XValidation:rule="self.metadata.name.size() <= 63",message="name must be between 1 and 63 characters" +kubebuilder:validation:XValidation:rule="self.metadata.name.matches('^[a-z0-9]([-a-z0-9]*[a-z0-9])?$')",message="name must be a valid DNS label"

func (*ScalewayCluster) DeepCopy

func (in *ScalewayCluster) DeepCopy() *ScalewayCluster

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

func (*ScalewayCluster) DeepCopyInto

func (in *ScalewayCluster) DeepCopyInto(out *ScalewayCluster)

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

func (*ScalewayCluster) DeepCopyObject

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

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

type ScalewayClusterList

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

ScalewayClusterList contains a list of ScalewayCluster.

func (*ScalewayClusterList) DeepCopy

func (in *ScalewayClusterList) DeepCopy() *ScalewayClusterList

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

func (*ScalewayClusterList) DeepCopyInto

func (in *ScalewayClusterList) DeepCopyInto(out *ScalewayClusterList)

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

func (*ScalewayClusterList) DeepCopyObject

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

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

type ScalewayClusterSpec

type ScalewayClusterSpec struct {
	// ProjectID is the Scaleway project ID where the cluster will be created.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	// +kubebuilder:validation:Pattern:="^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
	ProjectID string `json:"projectID"`

	// Region represents the region where the cluster will be hosted.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	// +kubebuilder:validation:Pattern:="^[a-z]{2}-[a-z]{3}$"
	Region string `json:"region"`

	// Network contains network related options for the cluster.
	// +optional
	Network *NetworkSpec `json:"network,omitempty"`

	// ScalewaySecretName is the name of the secret that contains the Scaleway client parameters.
	// The following keys are required: SCW_ACCESS_KEY, SCW_SECRET_KEY, SCW_DEFAULT_PROJECT_ID.
	// The following key is optional: SCW_API_URL.
	ScalewaySecretName string `json:"scalewaySecretName"`

	// FailureDomains is a list of failure domains where the control-plane nodes will be created.
	// Failure domains correspond to Scaleway zones inside the cluster region (e.g. fr-par-1).
	// +listType=set
	// +optional
	FailureDomains []string `json:"failureDomains,omitempty"`

	// ControlPlaneEndpoint represents the endpoint used to communicate with the control plane.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	// +optional
	ControlPlaneEndpoint clusterv1.APIEndpoint `json:"controlPlaneEndpoint,omitempty"`
}

ScalewayClusterSpec defines the desired state of ScalewayCluster. +kubebuilder:validation:XValidation:rule="!has(oldSelf.controlPlaneEndpoint) || has(self.controlPlaneEndpoint)", message="controlPlaneEndpoint is required once set"

func (*ScalewayClusterSpec) DeepCopy

func (in *ScalewayClusterSpec) DeepCopy() *ScalewayClusterSpec

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

func (*ScalewayClusterSpec) DeepCopyInto

func (in *ScalewayClusterSpec) DeepCopyInto(out *ScalewayClusterSpec)

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

type ScalewayClusterStatus

type ScalewayClusterStatus struct {
	// Ready denotes that the Scaleway cluster infrastructure is fully provisioned.
	// NOTE: this field is part of the Cluster API contract and it is used to orchestrate provisioning.
	// The value of this field is never updated after provisioning is completed.
	// +optional
	Ready bool `json:"ready"`

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

	// FailureDomains is a list of failure domain objects synced from the infrastructure provider.
	// +optional
	FailureDomains clusterv1.FailureDomains `json:"failureDomains,omitempty"`
}

ScalewayClusterStatus defines the observed state of ScalewayCluster.

func (*ScalewayClusterStatus) DeepCopy

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

func (*ScalewayClusterStatus) DeepCopyInto

func (in *ScalewayClusterStatus) DeepCopyInto(out *ScalewayClusterStatus)

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

type ScalewayClusterTemplate

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

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

ScalewayClusterTemplate is the Schema for the scalewayclustertemplates API.

func (*ScalewayClusterTemplate) DeepCopy

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

func (*ScalewayClusterTemplate) DeepCopyInto

func (in *ScalewayClusterTemplate) DeepCopyInto(out *ScalewayClusterTemplate)

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

func (*ScalewayClusterTemplate) DeepCopyObject

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

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

type ScalewayClusterTemplateList

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

ScalewayClusterTemplateList contains a list of ScalewayClusterTemplate.

func (*ScalewayClusterTemplateList) DeepCopy

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

func (*ScalewayClusterTemplateList) DeepCopyInto

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

func (*ScalewayClusterTemplateList) DeepCopyObject

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

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

type ScalewayClusterTemplateResource

type ScalewayClusterTemplateResource struct {
	// Standard object's metadata.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
	// +optional
	ObjectMeta metav1.ObjectMeta   `json:"metadata,omitempty"`
	Spec       ScalewayClusterSpec `json:"spec"`
}

func (*ScalewayClusterTemplateResource) DeepCopy

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

func (*ScalewayClusterTemplateResource) DeepCopyInto

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

type ScalewayClusterTemplateSpec

type ScalewayClusterTemplateSpec struct {
	Template ScalewayClusterTemplateResource `json:"template"`
}

ScalewayClusterTemplateSpec defines the desired state of ScalewayClusterTemplate.

func (*ScalewayClusterTemplateSpec) DeepCopy

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

func (*ScalewayClusterTemplateSpec) DeepCopyInto

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

type ScalewayMachine

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

	// +kubebuilder:validation:Required
	Spec   ScalewayMachineSpec   `json:"spec,omitempty"`
	Status ScalewayMachineStatus `json:"status,omitempty"`
}

ScalewayMachine is the Schema for the scalewaymachines API. +kubebuilder:validation:XValidation:rule="self.metadata.name.size() <= 63",message="name must be between 1 and 63 characters" +kubebuilder:validation:XValidation:rule="self.metadata.name.matches('^[a-z0-9]([-a-z0-9]*[a-z0-9])?$')",message="name must be a valid DNS label"

func (*ScalewayMachine) DeepCopy

func (in *ScalewayMachine) DeepCopy() *ScalewayMachine

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

func (*ScalewayMachine) DeepCopyInto

func (in *ScalewayMachine) DeepCopyInto(out *ScalewayMachine)

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

func (*ScalewayMachine) DeepCopyObject

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

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

type ScalewayMachineList

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

ScalewayMachineList contains a list of ScalewayMachine.

func (*ScalewayMachineList) DeepCopy

func (in *ScalewayMachineList) DeepCopy() *ScalewayMachineList

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

func (*ScalewayMachineList) DeepCopyInto

func (in *ScalewayMachineList) DeepCopyInto(out *ScalewayMachineList)

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

func (*ScalewayMachineList) DeepCopyObject

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

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

type ScalewayMachineSpec

type ScalewayMachineSpec struct {
	// ProviderID must match the provider ID as seen on the node object corresponding to this machine.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	// +optional
	ProviderID *string `json:"providerID,omitempty"`

	// CommercialType of instance (e.g. PRO2-S).
	// +kubebuilder:default="PRO2-S"
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	CommercialType string `json:"commercialType"`

	// Image ID, Name or Label to use to create the instance.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	Image ImageSpec `json:"image"`

	// RootVolume defines the characteristics of the system (root) volume.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	// +optional
	RootVolume *RootVolumeSpec `json:"rootVolume,omitempty"`

	// PublicNetwork allows attaching public IPs to the instance.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	// +optional
	PublicNetwork *PublicNetworkSpec `json:"publicNetwork,omitempty"`
}

ScalewayMachineSpec defines the desired state of ScalewayMachine. +kubebuilder:validation:XValidation:rule="has(self.rootVolume) == has(oldSelf.rootVolume)",message="rootVolume cannot be added or removed" +kubebuilder:validation:XValidation:rule="has(self.publicNetwork) == has(oldSelf.publicNetwork)",message="publicNetwork cannot be added or removed"

func (*ScalewayMachineSpec) DeepCopy

func (in *ScalewayMachineSpec) DeepCopy() *ScalewayMachineSpec

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

func (*ScalewayMachineSpec) DeepCopyInto

func (in *ScalewayMachineSpec) DeepCopyInto(out *ScalewayMachineSpec)

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

type ScalewayMachineStatus

type ScalewayMachineStatus struct {
	// Addresses contains the associated addresses for the machine.
	// +optional
	Addresses []clusterv1.MachineAddress `json:"addresses,omitempty"`

	// Ready denotes that the Scaleway machine infrastructure is fully provisioned.
	// NOTE: this field is part of the Cluster API contract and it is used to orchestrate provisioning.
	// The value of this field is never updated after provisioning is completed. Please use conditions
	// to check the operational state of the infra machine.
	// +optional
	Ready bool `json:"ready"`
}

ScalewayMachineStatus defines the observed state of ScalewayMachine.

func (*ScalewayMachineStatus) DeepCopy

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

func (*ScalewayMachineStatus) DeepCopyInto

func (in *ScalewayMachineStatus) DeepCopyInto(out *ScalewayMachineStatus)

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

type ScalewayMachineTemplate

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

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

ScalewayMachineTemplate is the Schema for the scalewaymachinetemplates API.

func (*ScalewayMachineTemplate) DeepCopy

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

func (*ScalewayMachineTemplate) DeepCopyInto

func (in *ScalewayMachineTemplate) DeepCopyInto(out *ScalewayMachineTemplate)

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

func (*ScalewayMachineTemplate) DeepCopyObject

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

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

type ScalewayMachineTemplateList

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

ScalewayMachineTemplateList contains a list of ScalewayMachineTemplate.

func (*ScalewayMachineTemplateList) DeepCopy

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

func (*ScalewayMachineTemplateList) DeepCopyInto

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

func (*ScalewayMachineTemplateList) DeepCopyObject

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

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

type ScalewayMachineTemplateResource

type ScalewayMachineTemplateResource struct {
	// Standard object's metadata.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
	// +optional
	ObjectMeta metav1.ObjectMeta   `json:"metadata,omitempty"`
	Spec       ScalewayMachineSpec `json:"spec"`
}

func (*ScalewayMachineTemplateResource) DeepCopy

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

func (*ScalewayMachineTemplateResource) DeepCopyInto

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

type ScalewayMachineTemplateSpec

type ScalewayMachineTemplateSpec struct {
	Template ScalewayMachineTemplateResource `json:"template"`
}

ScalewayMachineTemplateSpec defines the desired state of ScalewayMachineTemplate.

func (*ScalewayMachineTemplateSpec) DeepCopy

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

func (*ScalewayMachineTemplateSpec) DeepCopyInto

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