Documentation
¶
Overview ¶
Package v1alpha2 contains API Schema definitions for the infrastructure v1alpha2 API group. +kubebuilder:object:generate=true +groupName=infrastructure.cluster.x-k8s.io
Index ¶
- Constants
- Variables
- type ACL
- type AutoUpgrade
- type Autoscaler
- type CIDR
- type ControlPlaneDNS
- type ControlPlaneLoadBalancer
- type IDOrName
- type IPv4
- type Image
- type LoadBalancer
- type MaintenanceWindow
- type OnDelete
- type OpenIDConnect
- type PrivateNetwork
- type PrivateNetworkSpec
- type PublicGateway
- type PublicNetwork
- type RootVolume
- type ScalewayCluster
- func (in *ScalewayCluster) DeepCopy() *ScalewayCluster
- func (in *ScalewayCluster) DeepCopyInto(out *ScalewayCluster)
- func (in *ScalewayCluster) DeepCopyObject() runtime.Object
- func (s *ScalewayCluster) GetConditions() []metav1.Condition
- func (*ScalewayCluster) Hub()
- func (s *ScalewayCluster) SetConditions(conditions []metav1.Condition)
- type ScalewayClusterInitializationStatus
- type ScalewayClusterList
- type ScalewayClusterNetwork
- type ScalewayClusterNetworkStatus
- type ScalewayClusterSpec
- type ScalewayClusterStatus
- type ScalewayClusterTemplate
- type ScalewayClusterTemplateList
- type ScalewayClusterTemplateResource
- type ScalewayClusterTemplateSpec
- type ScalewayMachine
- func (in *ScalewayMachine) DeepCopy() *ScalewayMachine
- func (in *ScalewayMachine) DeepCopyInto(out *ScalewayMachine)
- func (in *ScalewayMachine) DeepCopyObject() runtime.Object
- func (s *ScalewayMachine) GetConditions() []metav1.Condition
- func (*ScalewayMachine) Hub()
- func (s *ScalewayMachine) SetConditions(conditions []metav1.Condition)
- type ScalewayMachineInitializationStatus
- type ScalewayMachineList
- type ScalewayMachineSpec
- type ScalewayMachineStatus
- type ScalewayMachineTemplate
- type ScalewayMachineTemplateList
- type ScalewayMachineTemplateResource
- type ScalewayMachineTemplateSpec
- type ScalewayManagedCluster
- func (in *ScalewayManagedCluster) DeepCopy() *ScalewayManagedCluster
- func (in *ScalewayManagedCluster) DeepCopyInto(out *ScalewayManagedCluster)
- func (in *ScalewayManagedCluster) DeepCopyObject() runtime.Object
- func (s *ScalewayManagedCluster) GetConditions() []metav1.Condition
- func (*ScalewayManagedCluster) Hub()
- func (s *ScalewayManagedCluster) SetConditions(conditions []metav1.Condition)
- type ScalewayManagedClusterInitializationStatus
- type ScalewayManagedClusterList
- type ScalewayManagedClusterNetwork
- type ScalewayManagedClusterNetworkStatus
- type ScalewayManagedClusterSpec
- type ScalewayManagedClusterStatus
- type ScalewayManagedControlPlane
- func (in *ScalewayManagedControlPlane) DeepCopy() *ScalewayManagedControlPlane
- func (in *ScalewayManagedControlPlane) DeepCopyInto(out *ScalewayManagedControlPlane)
- func (in *ScalewayManagedControlPlane) DeepCopyObject() runtime.Object
- func (s *ScalewayManagedControlPlane) GetConditions() []metav1.Condition
- func (*ScalewayManagedControlPlane) Hub()
- func (s *ScalewayManagedControlPlane) SetConditions(conditions []metav1.Condition)
- type ScalewayManagedControlPlaneInitializationStatus
- type ScalewayManagedControlPlaneList
- type ScalewayManagedControlPlaneSpec
- type ScalewayManagedControlPlaneStatus
- type ScalewayManagedMachinePool
- func (in *ScalewayManagedMachinePool) DeepCopy() *ScalewayManagedMachinePool
- func (in *ScalewayManagedMachinePool) DeepCopyInto(out *ScalewayManagedMachinePool)
- func (in *ScalewayManagedMachinePool) DeepCopyObject() runtime.Object
- func (s *ScalewayManagedMachinePool) GetConditions() []metav1.Condition
- func (*ScalewayManagedMachinePool) Hub()
- func (s *ScalewayManagedMachinePool) SetConditions(conditions []metav1.Condition)
- type ScalewayManagedMachinePoolInitializationStatus
- type ScalewayManagedMachinePoolList
- type ScalewayManagedMachinePoolSpec
- type ScalewayManagedMachinePoolStatus
- type ScalewayRegion
- type ScalewayZone
- type Scaling
- type UUID
- type UpgradePolicy
Constants ¶
const ( // PrivateNetworkReadyCondition surfaces details about the current status of the private network. PrivateNetworkReadyCondition = "PrivateNetworkReady" // PublicGatewaysReadyCondition surfaces details about the current status of the public gateways. PublicGatewaysReadyCondition = "PublicGatewaysReady" )
const ( // ReadyReason surfaces when the resource is ready. ReadyReason = "Ready" // ReadyReason surfaces when the resource is not ready. NotReadyReason = "NotReady" // ProvisionedReason surfaces when the resource is provisioned. ProvisionedReason = "Provisioned" // NoPrivateNetworkReason surfaces when no private network is defined in the spec. NoPrivateNetworkReason = "NoPrivateNetwork" // PrivateNetworkNotFoundReason surfaces when the provided private network cannot be found. PrivateNetworkNotFoundReason = "PrivateNetworkNotfound" // CreationFailedReason surfaces when the resource creation failed. CreationFailedReason = "CreationFailed" // ReconciliationFailedReason surfaces when the resource reconciliation failed. ReconciliationFailedReason = "ReconciliationFailed" // PrivateNetworkAttachmentFailedReason surfaces when the attachment of resources to the private network failed. PrivateNetworkAttachmentFailedReason = "PrivateNetworkAttachmentFailed" // InternalErrorReason surfaces unexpected errors reporting by controllers. // In most cases, it will be required to look at controllers logs to properly triage those issues. InternalErrorReason = "InternalError" )
const ( // DomainReadyCondition indicates whether the domain for the control plane endpoint is ready. ScalewayClusterDomainReadyCondition = "DomainReady" // ScalewayClusterNoDomainReason surfaces when no domain is defined in the spec. // In this case, the condition is set to True as there is nothing to configure. ScalewayClusterNoDomainReason = "NoDomain" // ScalewayClusterDomainReconciliationFailedReason surfaces when the domain reconciliation failed. ScalewayClusterDomainReconciliationFailedReason = ReconciliationFailedReason // ScalewayClusterDomainZoneConfiguredReason surfaces when the domain zone has been successfully configured. ScalewayClusterDomainZoneConfiguredReason = "ZoneConfigured" )
ScalewayCluster's DomainReady condition and corresponding reasons.
const ( // LoadBalancersReadyCondition indicates whether the load balancers for the control plane endpoint are ready. ScalewayClusterLoadBalancersReadyCondition = "LoadBalancersReady" // ScalewayClusterLoadBalancersReadyReason surfaces when the load balancers are provisioned and ready. ScalewayClusterLoadBalancersReadyReason = ReadyReason // ScalewayClusterLoadBalancersNotReadyReason surfaces when one or multiple load balancers are not ready. ScalewayClusterLoadBalancersNotReadyReason = NotReadyReason // ScalewayClusterLoadBalancersInternalErrorReason surfaces when an unexpected error has occurred. ScalewayClusterLoadBalancersInternalErrorReason = InternalErrorReason // ScalewayClusterMainLoadBalancerReconciliationFailedReason surfaces when the main load balancer reconciliation failed. ScalewayClusterMainLoadBalancerReconciliationFailedReason = "MainLoadBalancerReconciliationFailed" // ScalewayClusterExtraLoadBalancersReconciliationFailedReason surfaces when the extra load balancers reconciliation failed. ScalewayClusterExtraLoadBalancersReconciliationFailedReason = "ExtraLoadBalancersReconciliationFailed" // ScalewayClusterLoadBalancerPrivateNetworkAttachmentFailedReason when the attachment of the load balancers to the private network failed. ScalewayClusterLoadBalancerPrivateNetworkAttachmentFailedReason = PrivateNetworkAttachmentFailedReason // ScalewayClusterBackendReconciliationFailedReason surfaces when the backend reconciliation failed. ScalewayClusterBackendReconciliationFailedReason = "BackendReconciliationFailed" // ScalewayClusterFrontendReconciliationFailedReason surfaces when the frontend reconciliation failed. ScalewayClusterFrontendReconciliationFailedReason = "FrontendReconciliationFailed" // ScalewayClusterLoadBalancerACLReconciliationFailedReason surfaces when the load balancer ACL reconciliation failed. ScalewayClusterLoadBalancerACLReconciliationFailedReason = "LoadBalancerACLReconciliationFailed" )
ScalewayCluster's LoadBalancersReady condition and corresponding reasons.
const ( // ScalewayMachineInstanceReadyCondition indicates whether the Scaleway instance is ready. ScalewayMachineInstanceReadyCondition = "InstanceReady" // ScalewayMachineInstanceReadyReason surfaces when the Scaleway instance is ready. ScalewayMachineInstanceReadyReason = ReadyReason // ScalewayMachineInstanceReconciliationFailedReason surfaces when there is a failure in reconciling the Scaleway instance. ScalewayMachineInstanceReconciliationFailedReason = ReconciliationFailedReason )
ScalewayMachine's InstanceReady condition and corresponding reasons.
const ( // ScalewayManagedControlPlaneClusterReadyCondition indicates whether // the Scaleway Kubernetes Cluster is ready. ScalewayManagedControlPlaneClusterReadyCondition = "ClusterReady" // ScalewayManagedControlPlaneClusterReadyReason surfaces when the Scaleway Kubernetes Cluster is ready. ScalewayManagedControlPlaneClusterReadyReason = ReadyReason // ScalewayManagedControlPlaneClusterReconciliationFailedReason surfaces // when there is a failure in reconciling the Scaleway Kubernetes Cluster. ScalewayManagedControlPlaneClusterReconciliationFailedReason = ReconciliationFailedReason // ScalewayManagedControlPlaneClusterTransientStatusReason surfaces when the // Scaleway Kubernetes Cluster has a transient status. ScalewayManagedControlPlaneClusterTransientStatusReason = "TransientStatus" )
ScalewayManagedControlPlane's ClusterReady condition and corresponding reasons.
const ( // ScalewayManagedMachinePoolPoolReadyCondition indicates whether the Scaleway Kubernetes Pool is ready. ScalewayManagedMachinePoolPoolReadyCondition = "PoolReady" // ScalewayManagedMachinePoolPoolReadyReason surfaces when the Scaleway Kubernetes Pool is ready. ScalewayManagedMachinePoolPoolReadyReason = ReadyReason // ScalewayManagedMachinePoolPoolReconciliationFailedReason surfaces // when there is a failure in reconciling the Scaleway Kubernetes Pool. ScalewayManagedMachinePoolPoolReconciliationFailedReason = ReconciliationFailedReason // ScalewayManagedMachinePoolPoolTransientStatusReason surfaces when the // Scaleway Kubernetes Pool has a transient status. ScalewayManagedMachinePoolPoolTransientStatusReason = "TransientStatus" )
ScalewayManagedMachinePool's PoolReady condition and corresponding reasons.
const ScalewayClusterFinalizer = "scalewaycluster.infrastructure.cluster.x-k8s.io/sc-protection"
ScalewayClusterFinalizer is the finalizer that prevents deletion of a ScalewayCluster.
const ScalewayClusterReadyCondition = clusterv1.ReadyCondition
ScalewayClusterReadyCondition reports if the ScalewayCluster is ready.
const ScalewayMachineFinalizer = "scalewaymachine.infrastructure.cluster.x-k8s.io/sm-protection"
ScalewayMachineFinalizer is the finalizer that prevents deletion of a ScalewayMachine.
const ScalewayMachineReadyCondition = clusterv1.ReadyCondition
ScalewayMachineReadyCondition reports if the ScalewayMachine is ready.
const ScalewayManagedClusterFinalizer = "scalewaymanagedcluster.infrastructure.cluster.x-k8s.io/smc-protection"
ScalewayManagedClusterFinalizer is the finalizer that prevents deletion of a ScalewayManagedCluster.
const ScalewayManagedClusterReadyCondition = clusterv1.ReadyCondition
ScalewayManagedClusterReadyCondition reports if the ScalewayManagedCluster is ready.
const ScalewayManagedControlPlaneFinalizer = "scalewaymanagedcontrolplane.infrastructure.cluster.x-k8s.io/smcp-protection"
ScalewayManagedControlPlaneFinalizer is the finalizer that prevents deletion of a ScalewayManagedControlPlane.
const ScalewayManagedControlPlaneReadyCondition = clusterv1.ReadyCondition
ScalewayManagedControlPlaneReadyCondition reports if the ScalewayManagedControlPlane is ready.
const ScalewayManagedMachinePoolFinalizer = "scalewaymanagedmachinepool.infrastructure.cluster.x-k8s.io/smmp-protection"
ScalewayManagedMachinePoolFinalizer is the finalizer that prevents deletion of a ScalewayManagedMachinePool.
const ScalewayManagedMachinePoolReadyCondition = clusterv1.ReadyCondition
ScalewayManagedMachinePoolReadyCondition reports if the ScalewayManagedMachinePool is ready.
Variables ¶
var ( // GroupVersion is group version used to register these objects. GroupVersion = schema.GroupVersion{Group: "infrastructure.cluster.x-k8s.io", Version: "v1alpha2"} // 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 ACL ¶
type ACL struct {
// allowedRanges is a list of allowed public IP ranges that can access
// the managed cluster. When empty, all IP ranges are DENIED. Make sure the nodes
// of your management cluster can still access the cluster by allowing their IPs.
// +kubebuilder:validation:MaxItems=30
// +optional
// +listType=set
AllowedRanges []CIDR `json:"allowedRanges,omitempty"`
}
ACL configures the ACLs of the managed cluster.
func (*ACL) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ACL.
func (*ACL) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AutoUpgrade ¶
type AutoUpgrade struct {
// enabled defines whether auto upgrade is enabled for the cluster.
// +required
Enabled *bool `json:"enabled,omitempty"`
// maintenanceWindow of the cluster auto upgrades.
// +optional
MaintenanceWindow MaintenanceWindow `json:"maintenanceWindow,omitempty,omitzero"`
}
AutoUpgrade allows to set a specific 2-hour time window in which the cluster can be automatically updated to the latest patch version.
func (*AutoUpgrade) DeepCopy ¶
func (in *AutoUpgrade) DeepCopy() *AutoUpgrade
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AutoUpgrade.
func (*AutoUpgrade) DeepCopyInto ¶
func (in *AutoUpgrade) DeepCopyInto(out *AutoUpgrade)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Autoscaler ¶
type Autoscaler struct {
// scaleDownDisabled allows to disable the cluster autoscaler.
// +optional
ScaleDownDisabled *bool `json:"scaleDownDisabled,omitempty"`
// scaleDownDelayAfterAdd defines how long after scale up the scale down evaluation resumes.
// +optional
// +kubebuilder:validation:Format="duration"
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=10
ScaleDownDelayAfterAdd string `json:"scaleDownDelayAfterAdd,omitempty"`
// estimator is the type of resource estimator to be used in scale up.
// +optional
// +kubebuilder:validation:Enum=binpacking
Estimator string `json:"estimator,omitempty"`
// expander is the type of node group expander to be used in scale up.
// +optional
// +kubebuilder:validation:Enum=random;most_pods;least_waste;priority;price
Expander string `json:"expander,omitempty"`
// ignoreDaemonsetsUtilization allows to ignore DaemonSet pods when calculating
// resource utilization for scaling down.
// +optional
IgnoreDaemonsetsUtilization *bool `json:"ignoreDaemonsetsUtilization,omitempty"`
// balanceSimilarNodeGroups allows to detect similar node groups and balance
// the number of nodes between them.
// +optional
BalanceSimilarNodeGroups *bool `json:"balanceSimilarNodeGroups,omitempty"`
// expendablePodsPriorityCutoff defines the priority threshold below which pods
// are considered expendable. Pods with priority below cutoff will be expendable.
// They can be killed without any consideration during scale down and they won't cause scale up.
// Pods with null priority (PodPriority disabled) are non expendable.
// +optional
ExpendablePodsPriorityCutoff *int32 `json:"expendablePodsPriorityCutoff,omitempty"`
// scaleDownUnneededTime defines how long a node should be unneeded before it
// is eligible to be scaled down.
// +optional
// +kubebuilder:validation:Format="duration"
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=10
ScaleDownUnneededTime string `json:"scaleDownUnneededTime,omitempty"`
// scaleDownUtilizationThreshold is the Node utilization level, defined as a
// sum of requested resources divided by capacity, below which a node can be
// considered for scale down.
// +optional
// +kubebuilder:validation:Format="float"
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=10
ScaleDownUtilizationThreshold string `json:"scaleDownUtilizationThreshold,omitempty"`
// maxGracefulTerminationSec is the maximum number of seconds the cluster autoscaler
// waits for pod termination when trying to scale down a node.
// +optional
// +kubebuilder:validation:Minimum=1
MaxGracefulTerminationSec int32 `json:"maxGracefulTerminationSec,omitempty"`
}
Autoscaler allows you to set (to an extent) your preferred autoscaler configuration, which is an implementation of the cluster-autoscaler (https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler/). +kubebuilder:validation:MinProperties=1
func (*Autoscaler) DeepCopy ¶
func (in *Autoscaler) DeepCopy() *Autoscaler
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Autoscaler.
func (*Autoscaler) DeepCopyInto ¶
func (in *Autoscaler) DeepCopyInto(out *Autoscaler)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
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:MinLength=1 +kubebuilder:validation:MaxLength=43
type ControlPlaneDNS ¶
type ControlPlaneDNS 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).
// This is optional if the control plane load balancer is private.
// +optional
// +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=253
Domain string `json:"domain,omitempty"`
// 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.
// +required
// +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9.]*[a-z0-9])?$
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=63
Name string `json:"name,omitempty"`
}
ControlPlaneDNS defines the DNS configuration of the control plane endpoint.
func (*ControlPlaneDNS) DeepCopy ¶
func (in *ControlPlaneDNS) DeepCopy() *ControlPlaneDNS
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneDNS.
func (*ControlPlaneDNS) DeepCopyInto ¶
func (in *ControlPlaneDNS) DeepCopyInto(out *ControlPlaneDNS)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ControlPlaneDNS) IsDefined ¶
func (c *ControlPlaneDNS) IsDefined() bool
IsDefined returns true if the ControlPlaneDNS is set.
type ControlPlaneLoadBalancer ¶
type ControlPlaneLoadBalancer struct {
// +kubebuilder:validation:XValidation:rule="!has(oldSelf.ip) || self.ip == oldSelf.ip",message="ip is immutable"
// +kubebuilder:validation:XValidation:rule="!has(oldSelf.zone) || self.zone == oldSelf.zone",message="zone is immutable"
// +kubebuilder:validation:XValidation:rule="!has(oldSelf.privateIP) || self.privateIP == oldSelf.privateIP",message="privateIP is immutable"
LoadBalancer `json:",inline"`
// allowedRanges allows to set a list of allowed IP ranges that can access
// the cluster through the load balancer. 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.
// +optional
// +listType=set
// +kubebuilder:validation:MinItems=1
// +kubebuilder:validation:MaxItems=30
AllowedRanges []CIDR `json:"allowedRanges,omitempty"`
// private disables the creation of a public IP on the load balancers when it's set to true.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
Private *bool `json:"private,omitempty"`
}
ControlPlaneLoadBalancer defines control plane load balancer settings. +kubebuilder:validation:MinProperties=1
func (*ControlPlaneLoadBalancer) DeepCopy ¶
func (in *ControlPlaneLoadBalancer) DeepCopy() *ControlPlaneLoadBalancer
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneLoadBalancer.
func (*ControlPlaneLoadBalancer) DeepCopyInto ¶
func (in *ControlPlaneLoadBalancer) DeepCopyInto(out *ControlPlaneLoadBalancer)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IDOrName ¶
type IDOrName struct {
// id of the Scaleway resource.
// +optional
ID UUID `json:"id,omitempty"`
// name of the Scaleway resource.
// +optional
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=100
Name string `json:"name,omitempty"`
}
IDOrName contains an ID or Name of an existing Scaleway resource. +kubebuilder:validation:MinProperties=1 +kubebuilder:validation:MaxProperties=1
func (*IDOrName) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IDOrName.
func (*IDOrName) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IPv4 ¶
type IPv4 string
IPv4 is a valid IPv4. +kubebuilder:validation:Format=ipv4 +kubebuilder:validation:MinLength=1 +kubebuilder:validation:MaxLength=15
type Image ¶
type Image struct {
IDOrName `json:",inline"`
// label of the image (as defined in the marketplace).
// +optional
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=100
Label string `json:"label,omitempty"`
}
Image contains an ID, Name or Label to use to create the instance. +kubebuilder:validation:MinProperties=1 +kubebuilder:validation:MaxProperties=1
func (*Image) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Image.
func (*Image) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LoadBalancer ¶
type LoadBalancer struct {
// zone where to create the load balancer. Must be in the same region as the
// cluster. Defaults to the first zone of the region.
// +optional
Zone ScalewayZone `json:"zone,omitempty"`
// type is the load balancer commercial offer type.
// +optional
// +kubebuilder:default="LB-S"
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=10
Type string `json:"type,omitempty"`
// ip is an existing public IPv4 to use when creating a load balancer.
// +optional
IP IPv4 `json:"ip,omitempty"`
// privateIP is an existing private IPv4 inside the Private Network to use
// when attaching a load balancer to a Private Network. It must be pre-booked
// inside the Scaleway IPAM.
// +optional
PrivateIP IPv4 `json:"privateIP,omitempty"`
}
LoadBalancer defines load balancer parameters. +kubebuilder:validation:MinProperties=1
func (*LoadBalancer) DeepCopy ¶
func (in *LoadBalancer) DeepCopy() *LoadBalancer
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancer.
func (*LoadBalancer) DeepCopyInto ¶
func (in *LoadBalancer) DeepCopyInto(out *LoadBalancer)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MaintenanceWindow ¶
type MaintenanceWindow struct {
// startHour is the start time of the two-hour maintenance window.
// +optional
// +kubebuilder:validation:Minimum=0
StartHour *int32 `json:"startHour,omitempty"`
// day of the week for the maintenance window.
// +optional
// +kubebuilder:validation:Enum=any;monday;tuesday;wednesday;thursday;friday;saturday;sunday
Day string `json:"day,omitempty"`
}
MaintenanceWindow defines the window of the cluster auto upgrades. +kubebuilder:validation:MinProperties=1
func (*MaintenanceWindow) DeepCopy ¶
func (in *MaintenanceWindow) DeepCopy() *MaintenanceWindow
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MaintenanceWindow.
func (*MaintenanceWindow) DeepCopyInto ¶
func (in *MaintenanceWindow) DeepCopyInto(out *MaintenanceWindow)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OnDelete ¶
type OnDelete struct {
// withAdditionalResources allows to also automatically delete all volumes
// (including those with volume type "retain"), empty Private Networks and
// Load Balancers whose names start with cluster ID.
// +optional
WithAdditionalResources *bool `json:"withAdditionalResources,omitempty"`
}
OnDelete configures the settings to apply when deleting the Scaleway managed cluster. +kubebuilder:validation:MinProperties=1
func (*OnDelete) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OnDelete.
func (*OnDelete) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OpenIDConnect ¶
type OpenIDConnect struct {
// issuerURL of the provider which allows the API server to discover public signing keys.
// Only URLs using the https:// scheme are accepted. This is typically the provider's
// discovery URL without a path, for example "https://accounts.google.com" or "https://login.salesforce.com".
// +required
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=255
IssuerURL string `json:"issuerURL,omitempty"`
// clientID is a client ID that all tokens must be issued for.
// +required
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=255
ClientID string `json:"clientID,omitempty"`
// usernameClaim is the JWT claim to use as the user name. The default is "sub",
// which is expected to be the end user's unique identifier. Admins can choose other claims,
// such as email or name, depending on their provider. However, claims other
// than email will be prefixed with the issuer URL to prevent name collision.
// +optional
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=100
UsernameClaim string `json:"usernameClaim,omitempty"`
// usernamePrefix is the prefix prepended to username claims to prevent name collision (such as "system:" users).
// For example, the value "oidc:"" will create usernames like "oidc:jane.doe".
// If this flag is not provided and "username_claim" is a value other than email,
// the prefix defaults to "( Issuer URL )#" where "( Issuer URL )" is the value of "issuer_url".
// The value "-" can be used to disable all prefixing.
// +optional
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=100
UsernamePrefix string `json:"usernamePrefix,omitempty"`
// groupsClaim is the JWT claim to use as the user's group.
// +optional
// +listType=set
// +kubebuilder:validation:MinItems=1
// +kubebuilder:validation:MaxItems=10
// +kubebuilder:validation:items:MinLength=1
// +kubebuilder:validation:items:MaxLength=100
GroupsClaim []string `json:"groupsClaim,omitempty"`
// groupsPrefix is the prefix prepended to group claims to prevent name collision (such as "system:" groups).
// For example, the value "oidc:" will create group names like "oidc:engineering" and "oidc:infra".
// +optional
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=100
GroupsPrefix string `json:"groupsPrefix,omitempty"`
// requiredClaim is multiple key=value pairs describing a required claim in the ID token.
// If set, the claims are verified to be present in the ID token with a matching value.
// +optional
// +listType=set
// +kubebuilder:validation:MinItems=1
// +kubebuilder:validation:MaxItems=10
// +kubebuilder:validation:items:MinLength=1
// +kubebuilder:validation:items:MaxLength=100
RequiredClaim []string `json:"requiredClaim,omitempty"`
}
OpenIDConnect defines the OpenID Connect configuration of the Kubernetes API server.
func (*OpenIDConnect) DeepCopy ¶
func (in *OpenIDConnect) DeepCopy() *OpenIDConnect
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenIDConnect.
func (*OpenIDConnect) DeepCopyInto ¶
func (in *OpenIDConnect) DeepCopyInto(out *OpenIDConnect)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PrivateNetwork ¶
type PrivateNetwork struct {
// id allows to reuse an existing Private Network instead of creating a new one.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
ID UUID `json:"id,omitempty"`
// vpcID defines the ID of the VPC where the new Private Network will be created if none is provided.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
VPCID UUID `json:"vpcID,omitempty"`
// subnet defines a subnet for the Private Network. Only used on newly created Private Networks.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
Subnet CIDR `json:"subnet,omitempty"`
}
PrivateNetwork allows to reference an existing Private Network or configure the parameters of the auto-created Private Network. +kubebuilder:validation:MinProperties=1 +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.id) != has(self.vpcID)",message="id and vpcID cannot be set at the same time" +kubebuilder:validation:XValidation:rule="!has(self.id) || has(self.id) != has(self.subnet)",message="id and subnet cannot be set at the same time"
func (*PrivateNetwork) DeepCopy ¶
func (in *PrivateNetwork) DeepCopy() *PrivateNetwork
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivateNetwork.
func (*PrivateNetwork) DeepCopyInto ¶
func (in *PrivateNetwork) DeepCopyInto(out *PrivateNetwork)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PrivateNetworkSpec ¶
type PrivateNetworkSpec struct {
PrivateNetwork `json:",inline"`
// enabled allows to automatically attach machines to a Private Network when it's set to true.
// The Private Network is automatically created if no existing Private
// Network ID is provided.
// +required
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
Enabled *bool `json:"enabled,omitempty"`
}
PrivateNetworkSpec defines Private Network settings for the cluster.
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 PublicGateway ¶
type PublicGateway struct {
// type is a Public Gateway commercial offer type.
// +optional
// +kubebuilder:default="VPC-GW-S"
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=20
Type string `json:"type,omitempty"`
// ip to use when creating a Public Gateway.
// +optional
IP IPv4 `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 ScalewayZone `json:"zone,omitempty"`
}
PublicGateway defines settings of the Public Gateway that will be created. +kubebuilder:validation:MinProperties=1
func (*PublicGateway) DeepCopy ¶
func (in *PublicGateway) DeepCopy() *PublicGateway
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PublicGateway.
func (*PublicGateway) DeepCopyInto ¶
func (in *PublicGateway) DeepCopyInto(out *PublicGateway)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PublicNetwork ¶
type PublicNetwork struct {
// enableIPv4 defines whether server should have an IPv4 created and attached.
// +optional
EnableIPv4 *bool `json:"enableIPv4,omitempty"`
// enableIPv6 defines whether server should have an IPv6 created and attached.
// +optional
EnableIPv6 *bool `json:"enableIPv6,omitempty"`
}
PublicNetwork allows enabling the attachment of public IPs to the instance. +kubebuilder:validation:MinProperties=1
func (*PublicNetwork) DeepCopy ¶
func (in *PublicNetwork) DeepCopy() *PublicNetwork
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PublicNetwork.
func (*PublicNetwork) DeepCopyInto ¶
func (in *PublicNetwork) DeepCopyInto(out *PublicNetwork)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RootVolume ¶
type RootVolume struct {
// size of the root volume in GB. Defaults to 20 GB.
// +optional
// +kubebuilder:default=20
// +kubebuilder:validation:Minimum=8
// +kubebuilder:validation:Maximum=10000
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.
// +optional
// +kubebuilder:default="block"
// +kubebuilder:validation:Enum=local;block
Type string `json:"type,omitempty"`
// iops is the number of IOPS requested for the disk. This is only applicable for block volumes.
// +optional
// +kubebuilder:validation:Minimum=5000
IOPS int64 `json:"iops,omitempty"`
}
RootVolume defines the characteristics of the system (root) volume. +kubebuilder:validation:MinProperties=1 +kubebuilder:validation:XValidation:rule="!has(self.iops) || has(self.type) && self.type == 'block'",message="iops can only be set for block volumes"
func (*RootVolume) DeepCopy ¶
func (in *RootVolume) DeepCopy() *RootVolume
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RootVolume.
func (*RootVolume) DeepCopyInto ¶
func (in *RootVolume) DeepCopyInto(out *RootVolume)
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"`
// metadata is a standard object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty,omitzero"`
// spec defines the desired state of ScalewayCluster
// +required
Spec ScalewayClusterSpec `json:"spec,omitempty,omitzero"`
// status defines the observed state of ScalewayCluster
// +optional
Status ScalewayClusterStatus `json:"status,omitempty,omitzero"`
}
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.
func (*ScalewayCluster) GetConditions ¶
func (s *ScalewayCluster) GetConditions() []metav1.Condition
GetConditions returns the list of conditions for an ScalewayCluster API object.
func (*ScalewayCluster) Hub ¶
func (*ScalewayCluster) Hub()
Hub marks this type as a conversion hub.
func (*ScalewayCluster) SetConditions ¶
func (s *ScalewayCluster) SetConditions(conditions []metav1.Condition)
SetConditions will set the given conditions on an ScalewayCluster object.
type ScalewayClusterInitializationStatus ¶
type ScalewayClusterInitializationStatus struct {
// provisioned is true when the infrastructure provider reports that the Cluster's infrastructure is fully provisioned.
// NOTE: this field is part of the Cluster API contract, and it is used to orchestrate initial Cluster provisioning.
// +optional
Provisioned *bool `json:"provisioned,omitempty"`
}
ScalewayClusterInitializationStatus provides observations of the ScalewayCluster initialization process. +kubebuilder:validation:MinProperties=1
func (*ScalewayClusterInitializationStatus) DeepCopy ¶
func (in *ScalewayClusterInitializationStatus) DeepCopy() *ScalewayClusterInitializationStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalewayClusterInitializationStatus.
func (*ScalewayClusterInitializationStatus) DeepCopyInto ¶
func (in *ScalewayClusterInitializationStatus) DeepCopyInto(out *ScalewayClusterInitializationStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
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 ScalewayClusterNetwork ¶
type ScalewayClusterNetwork struct {
// controlPlaneLoadBalancer defines settings for the load balancer of the control plane.
// +optional
ControlPlaneLoadBalancer ControlPlaneLoadBalancer `json:"controlPlaneLoadBalancer,omitempty,omitzero"`
// controlPlaneExtraLoadBalancers allows configuring additional load balancers.
// Because Scaleway load balancers are currently zonal resources, you may set
// up to 3 additional load balancers for achieving regional redundancy. It is
// mandatory to set the controlPlaneDNS field when you do so.
// NOTE: This may be removed in the future, when Scaleway supports regional LoadBalancers.
// +optional
// +listType=atomic
// +kubebuilder:validation:MinItems=1
// +kubebuilder:validation:MaxItems=3
ControlPlaneExtraLoadBalancers []LoadBalancer `json:"controlPlaneExtraLoadBalancers,omitempty"`
// controlPlaneDNS allows configuring a Scaleway Domain DNS Zone.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
ControlPlaneDNS ControlPlaneDNS `json:"controlPlaneDNS,omitempty,omitzero"`
// privateNetwork allows attaching machines of the cluster to a Private Network.
// +optional
PrivateNetwork PrivateNetworkSpec `json:"privateNetwork,omitempty,omitzero"`
// publicGateways allows to manage Public Gateways that will be created and
// attached to the Private Network of the cluster.
// +optional
// +listType=atomic
// +kubebuilder:validation:MinItems=1
// +kubebuilder:validation:MaxItems=6
PublicGateways []PublicGateway `json:"publicGateways,omitempty"`
}
ScalewayClusterNetwork defines network settings for a ScalewayCluster. +kubebuilder:validation:MinProperties=1 +kubebuilder:validation:XValidation:rule="!has(self.controlPlaneExtraLoadBalancers) || has(self.controlPlaneDNS)",message="controlPlaneDNS is required when controlPlaneExtraLoadBalancers is set" +kubebuilder:validation:XValidation:rule="!has(self.publicGateways) || has(self.privateNetwork) && self.privateNetwork.enabled",message="privateNetwork is required when publicGateways is set" +kubebuilder:validation:XValidation:rule="!has(self.controlPlaneLoadBalancer) || !has(self.controlPlaneLoadBalancer.private) || !self.controlPlaneLoadBalancer.private || has(self.privateNetwork) && self.privateNetwork.enabled",message="privateNetwork is required when private LoadBalancer is enabled" +kubebuilder:validation:XValidation:rule="!has(self.controlPlaneDNS) || has(self.controlPlaneDNS) && has(self.controlPlaneDNS.domain) || has(self.controlPlaneDNS) && !has(self.controlPlaneDNS.domain) && has(self.controlPlaneLoadBalancer) && has(self.controlPlaneLoadBalancer.private) && self.controlPlaneLoadBalancer.private",message=".controlPlaneDNS.domain must be set unless control plane load balancer is private"
func (*ScalewayClusterNetwork) DeepCopy ¶
func (in *ScalewayClusterNetwork) DeepCopy() *ScalewayClusterNetwork
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalewayClusterNetwork.
func (*ScalewayClusterNetwork) DeepCopyInto ¶
func (in *ScalewayClusterNetwork) DeepCopyInto(out *ScalewayClusterNetwork)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScalewayClusterNetworkStatus ¶
type ScalewayClusterNetworkStatus struct {
// vpcID is set if the cluster has an associated Private Network.
// +optional
VPCID UUID `json:"vpcID,omitempty"`
// privateNetworkID is set if the cluster has an associated Private Network.
// +optional
PrivateNetworkID UUID `json:"privateNetworkID,omitempty"`
// publicGatewayIDs is a list of Public Gateway IDs.
// +optional
// +listType=atomic
// +kubebuilder:validation:MinItems=1
// +kubebuilder:validation:MaxItems=10
PublicGatewayIDs []UUID `json:"publicGatewayIDs,omitempty"`
// loadBalancerIP is the public IP of the cluster control-plane.
// +optional
LoadBalancerIP IPv4 `json:"loadBalancerIP,omitempty"`
// extraLoadBalancerIPs is a list of IPs of the extra loadbalancers.
// +optional
// +listType=atomic
// +kubebuilder:validation:MinItems=1
// +kubebuilder:validation:MaxItems=10
ExtraLoadBalancerIPs []IPv4 `json:"extraLoadBalancerIPs,omitempty"`
}
ScalewayClusterNetworkStatus contains information about network resources of the cluster. +kubebuilder:validation:MinProperties=1
func (*ScalewayClusterNetworkStatus) DeepCopy ¶
func (in *ScalewayClusterNetworkStatus) DeepCopy() *ScalewayClusterNetworkStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalewayClusterNetworkStatus.
func (*ScalewayClusterNetworkStatus) DeepCopyInto ¶
func (in *ScalewayClusterNetworkStatus) DeepCopyInto(out *ScalewayClusterNetworkStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScalewayClusterSpec ¶
type ScalewayClusterSpec struct {
// projectID is the ID of a Scaleway project where the cluster will be created.
// +required
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
ProjectID UUID `json:"projectID,omitempty"`
// region represents the region where the cluster will be hosted.
// +required
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
Region ScalewayRegion `json:"region,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.
// The following key is optional: SCW_API_URL.
// +required
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=253
ScalewaySecretName string `json:"scalewaySecretName,omitempty"`
// 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).
// +optional
// +listType=set
// +kubebuilder:validation:MinItems=1
// +kubebuilder:validation:MaxItems=3
FailureDomains []ScalewayZone `json:"failureDomains,omitempty"`
// network contains network related options for the cluster.
// +optional
Network ScalewayClusterNetwork `json:"network,omitempty,omitzero"`
// controlPlaneEndpoint represents the endpoint used to communicate with the control plane.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
ControlPlaneEndpoint clusterv1.APIEndpoint `json:"controlPlaneEndpoint,omitempty,omitzero"`
}
ScalewayClusterSpec defines the desired state of ScalewayCluster. +kubebuilder:validation:XValidation:rule="!has(oldSelf.controlPlaneEndpoint) || has(self.controlPlaneEndpoint)", message="controlPlaneEndpoint is required once set" +kubebuilder:validation:XValidation:rule="(has(self.network) && has(self.network.controlPlaneDNS)) == (has(oldSelf.network) && has(oldSelf.network.controlPlaneDNS))",message="controlPlaneDNS cannot be added or removed" +kubebuilder:validation:XValidation:rule="(has(self.network) && has(self.network.privateNetwork)) == (has(oldSelf.network) && has(oldSelf.network.privateNetwork))",message="privateNetwork cannot be added or removed" +kubebuilder:validation:XValidation:rule="(has(self.network) && has(self.network.controlPlaneLoadBalancer) && has(self.network.controlPlaneLoadBalancer.private)) == (has(oldSelf.network) && has(oldSelf.network.controlPlaneLoadBalancer) && has(oldSelf.network.controlPlaneLoadBalancer.private))",message="private cannot be added or removed" +kubebuilder:validation:XValidation:rule="(has(self.network) && has(self.network.controlPlaneLoadBalancer) && has(self.network.controlPlaneLoadBalancer.ip)) == (has(oldSelf.network) && has(oldSelf.network.controlPlaneLoadBalancer) && has(oldSelf.network.controlPlaneLoadBalancer.ip))",message="ip cannot be added or removed" +kubebuilder:validation:XValidation:rule="(has(self.network) && has(self.network.controlPlaneLoadBalancer) && has(self.network.controlPlaneLoadBalancer.zone)) == (has(oldSelf.network) && has(oldSelf.network.controlPlaneLoadBalancer) && has(oldSelf.network.controlPlaneLoadBalancer.zone))",message="zone cannot be added or removed" +kubebuilder:validation:XValidation:rule="(has(self.network) && has(self.network.controlPlaneLoadBalancer) && has(self.network.controlPlaneLoadBalancer.privateIP)) == (has(oldSelf.network) && has(oldSelf.network.controlPlaneLoadBalancer) && has(oldSelf.network.controlPlaneLoadBalancer.privateIP))",message="privateIP cannot be added or removed"
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 {
// conditions represent the current state of the ScalewayCluster resource.
// Each condition has a unique type and reflects the status of a specific aspect of the resource.
//
// The status of each condition is one of True, False, or Unknown.
// +optional
// +listType=map
// +listMapKey=type
// +kubebuilder:validation:MaxItems=32
Conditions []metav1.Condition `json:"conditions,omitempty"`
// failureDomains is a list of failure domain objects synced from the infrastructure provider.
// +optional
// +listType=map
// +listMapKey=name
// +kubebuilder:validation:MinItems=1
// +kubebuilder:validation:MaxItems=100
FailureDomains []clusterv1.FailureDomain `json:"failureDomains,omitempty"`
// initialization provides observations of the ScalewayCluster initialization process.
// NOTE: Fields in this struct are part of the Cluster API contract and are used to orchestrate initial Cluster provisioning.
// +optional
Initialization ScalewayClusterInitializationStatus `json:"initialization,omitempty,omitzero"`
// network contains information about network resources of the cluster.
// +optional
Network ScalewayClusterNetworkStatus `json:"network,omitempty,omitzero"`
}
ScalewayClusterStatus defines the observed state of ScalewayCluster. +kubebuilder:validation:MinProperties=1
func (*ScalewayClusterStatus) DeepCopy ¶
func (in *ScalewayClusterStatus) DeepCopy() *ScalewayClusterStatus
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"`
// metadata is a standard object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty,omitzero"`
// spec defines the desired state of ScalewayClusterTemplate
// +required
Spec ScalewayClusterTemplateSpec `json:"spec,omitempty,omitzero"`
}
ScalewayClusterTemplate is the Schema for the scalewayclustertemplates API
func (*ScalewayClusterTemplate) DeepCopy ¶
func (in *ScalewayClusterTemplate) DeepCopy() *ScalewayClusterTemplate
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.
func (*ScalewayClusterTemplate) Hub ¶
func (*ScalewayClusterTemplate) Hub()
Hub marks this type as a conversion hub.
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 ¶
func (in *ScalewayClusterTemplateList) DeepCopy() *ScalewayClusterTemplateList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalewayClusterTemplateList.
func (*ScalewayClusterTemplateList) DeepCopyInto ¶
func (in *ScalewayClusterTemplateList) DeepCopyInto(out *ScalewayClusterTemplateList)
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 {
// metadata is a 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 defines the desired state of ScalewayCluster
// +required
Spec ScalewayClusterSpec `json:"spec,omitempty,omitzero"`
}
func (*ScalewayClusterTemplateResource) DeepCopy ¶
func (in *ScalewayClusterTemplateResource) DeepCopy() *ScalewayClusterTemplateResource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalewayClusterTemplateResource.
func (*ScalewayClusterTemplateResource) DeepCopyInto ¶
func (in *ScalewayClusterTemplateResource) DeepCopyInto(out *ScalewayClusterTemplateResource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScalewayClusterTemplateSpec ¶
type ScalewayClusterTemplateSpec struct {
// template is a ScalewayCluster template resource.
// +required
Template ScalewayClusterTemplateResource `json:"template,omitempty,omitzero"`
}
ScalewayClusterTemplateSpec defines the desired state of ScalewayClusterTemplate
func (*ScalewayClusterTemplateSpec) DeepCopy ¶
func (in *ScalewayClusterTemplateSpec) DeepCopy() *ScalewayClusterTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalewayClusterTemplateSpec.
func (*ScalewayClusterTemplateSpec) DeepCopyInto ¶
func (in *ScalewayClusterTemplateSpec) DeepCopyInto(out *ScalewayClusterTemplateSpec)
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"`
// metadata is a standard object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty,omitzero"`
// spec defines the desired state of ScalewayMachine
// +required
Spec ScalewayMachineSpec `json:"spec,omitempty,omitzero"`
// status defines the observed state of ScalewayMachine
// +optional
Status ScalewayMachineStatus `json:"status,omitempty,omitzero"`
}
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.
func (*ScalewayMachine) GetConditions ¶
func (s *ScalewayMachine) GetConditions() []metav1.Condition
GetConditions returns the list of conditions for an ScalewayMachine API object.
func (*ScalewayMachine) Hub ¶
func (*ScalewayMachine) Hub()
Hub marks this type as a conversion hub.
func (*ScalewayMachine) SetConditions ¶
func (s *ScalewayMachine) SetConditions(conditions []metav1.Condition)
SetConditions will set the given conditions on an ScalewayMachine object.
type ScalewayMachineInitializationStatus ¶
type ScalewayMachineInitializationStatus struct {
// provisioned is true when the infrastructure provider reports that the Machine's infrastructure is fully provisioned.
// NOTE: this field is part of the Cluster API contract, and it is used to orchestrate initial Machine provisioning.
// +optional
Provisioned *bool `json:"provisioned,omitempty"`
}
ScalewayMachineInitializationStatus provides observations of the ScalewayMachine initialization process. +kubebuilder:validation:MinProperties=1
func (*ScalewayMachineInitializationStatus) DeepCopy ¶
func (in *ScalewayMachineInitializationStatus) DeepCopy() *ScalewayMachineInitializationStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalewayMachineInitializationStatus.
func (*ScalewayMachineInitializationStatus) DeepCopyInto ¶
func (in *ScalewayMachineInitializationStatus) DeepCopyInto(out *ScalewayMachineInitializationStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
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.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=512
ProviderID string `json:"providerID,omitempty"`
// commercialType of instance (e.g. PRO2-S).
// +required
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=20
CommercialType string `json:"commercialType,omitempty"`
// image defines an image ID, Name or Label to use to create the instance.
// +required
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
Image Image `json:"image,omitempty,omitzero"`
// rootVolume defines the characteristics of the system (root) volume.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
RootVolume RootVolume `json:"rootVolume,omitempty,omitzero"`
// publicNetwork allows attaching public IPs to the instance.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
PublicNetwork PublicNetwork `json:"publicNetwork,omitempty,omitzero"`
// placementGroup allows attaching a Placement Group to the instance.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
PlacementGroup IDOrName `json:"placementGroup,omitempty,omitzero"`
// securityGroup allows attaching a Security Group to the instance.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
SecurityGroup IDOrName `json:"securityGroup,omitempty,omitzero"`
}
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" +kubebuilder:validation:XValidation:rule="has(self.placementGroup) == has(oldSelf.placementGroup)",message="placementGroup cannot be added or removed" +kubebuilder:validation:XValidation:rule="has(self.securityGroup) == has(oldSelf.securityGroup)",message="securityGroup 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 {
// conditions represent the current state of the ScalewayMachine resource.
// Each condition has a unique type and reflects the status of a specific aspect of the resource.
//
// The status of each condition is one of True, False, or Unknown.
// +optional
// +listType=map
// +listMapKey=type
// +kubebuilder:validation:MaxItems=32
Conditions []metav1.Condition `json:"conditions,omitempty"`
// initialization provides observations of the ScalewayMachine initialization process.
// NOTE: Fields in this struct are part of the Cluster API contract and are used to orchestrate initial Machine provisioning.
// +optional
Initialization ScalewayMachineInitializationStatus `json:"initialization,omitempty,omitzero"`
// addresses contains the associated addresses for the machine.
// +optional
// +listType=atomic
// +kubebuilder:validation:MaxItems=32
Addresses []clusterv1.MachineAddress `json:"addresses,omitempty"`
}
ScalewayMachineStatus defines the observed state of ScalewayMachine. +kubebuilder:validation:MinProperties=1
func (*ScalewayMachineStatus) DeepCopy ¶
func (in *ScalewayMachineStatus) DeepCopy() *ScalewayMachineStatus
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"`
// metadata is a standard object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty,omitzero"`
// spec defines the desired state of ScalewayMachineTemplate
// +required
Spec ScalewayMachineTemplateSpec `json:"spec,omitempty,omitzero"`
}
ScalewayMachineTemplate is the Schema for the scalewaymachinetemplates API
func (*ScalewayMachineTemplate) DeepCopy ¶
func (in *ScalewayMachineTemplate) DeepCopy() *ScalewayMachineTemplate
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.
func (*ScalewayMachineTemplate) Hub ¶
func (*ScalewayMachineTemplate) Hub()
Hub marks this type as a conversion hub.
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 ¶
func (in *ScalewayMachineTemplateList) DeepCopy() *ScalewayMachineTemplateList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalewayMachineTemplateList.
func (*ScalewayMachineTemplateList) DeepCopyInto ¶
func (in *ScalewayMachineTemplateList) DeepCopyInto(out *ScalewayMachineTemplateList)
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 {
// metadata is a 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 defines the desired state of ScalewayMachine
// +required
Spec ScalewayMachineSpec `json:"spec,omitempty,omitzero"`
}
func (*ScalewayMachineTemplateResource) DeepCopy ¶
func (in *ScalewayMachineTemplateResource) DeepCopy() *ScalewayMachineTemplateResource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalewayMachineTemplateResource.
func (*ScalewayMachineTemplateResource) DeepCopyInto ¶
func (in *ScalewayMachineTemplateResource) DeepCopyInto(out *ScalewayMachineTemplateResource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScalewayMachineTemplateSpec ¶
type ScalewayMachineTemplateSpec struct {
// template is a ScalewayMachine template resource.
// +required
Template ScalewayMachineTemplateResource `json:"template,omitempty,omitzero"`
}
ScalewayMachineTemplateSpec defines the desired state of ScalewayMachineTemplate
func (*ScalewayMachineTemplateSpec) DeepCopy ¶
func (in *ScalewayMachineTemplateSpec) DeepCopy() *ScalewayMachineTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalewayMachineTemplateSpec.
func (*ScalewayMachineTemplateSpec) DeepCopyInto ¶
func (in *ScalewayMachineTemplateSpec) DeepCopyInto(out *ScalewayMachineTemplateSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScalewayManagedCluster ¶
type ScalewayManagedCluster struct {
metav1.TypeMeta `json:",inline"`
// metadata is a standard object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty,omitzero"`
// spec defines the desired state of ScalewayManagedCluster
// +required
Spec ScalewayManagedClusterSpec `json:"spec,omitempty,omitzero"`
// status defines the observed state of ScalewayManagedCluster
// +optional
Status ScalewayManagedClusterStatus `json:"status,omitempty,omitzero"`
}
ScalewayManagedCluster is the Schema for the scalewaymanagedclusters 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 (*ScalewayManagedCluster) DeepCopy ¶
func (in *ScalewayManagedCluster) DeepCopy() *ScalewayManagedCluster
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalewayManagedCluster.
func (*ScalewayManagedCluster) DeepCopyInto ¶
func (in *ScalewayManagedCluster) DeepCopyInto(out *ScalewayManagedCluster)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ScalewayManagedCluster) DeepCopyObject ¶
func (in *ScalewayManagedCluster) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ScalewayManagedCluster) GetConditions ¶
func (s *ScalewayManagedCluster) GetConditions() []metav1.Condition
GetConditions returns the list of conditions for an ScalewayManagedCluster API object.
func (*ScalewayManagedCluster) Hub ¶
func (*ScalewayManagedCluster) Hub()
Hub marks this type as a conversion hub.
func (*ScalewayManagedCluster) SetConditions ¶
func (s *ScalewayManagedCluster) SetConditions(conditions []metav1.Condition)
SetConditions will set the given conditions on an ScalewayManagedCluster object.
type ScalewayManagedClusterInitializationStatus ¶
type ScalewayManagedClusterInitializationStatus struct {
// provisioned is true when the infrastructure provider reports that the Cluster's infrastructure is fully provisioned.
// NOTE: this field is part of the Cluster API contract, and it is used to orchestrate initial Cluster provisioning.
// +optional
Provisioned *bool `json:"provisioned,omitempty"`
}
ScalewayManagedClusterInitializationStatus provides observations of the ScalewayManagedCluster initialization process. +kubebuilder:validation:MinProperties=1
func (*ScalewayManagedClusterInitializationStatus) DeepCopy ¶
func (in *ScalewayManagedClusterInitializationStatus) DeepCopy() *ScalewayManagedClusterInitializationStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalewayManagedClusterInitializationStatus.
func (*ScalewayManagedClusterInitializationStatus) DeepCopyInto ¶
func (in *ScalewayManagedClusterInitializationStatus) DeepCopyInto(out *ScalewayManagedClusterInitializationStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScalewayManagedClusterList ¶
type ScalewayManagedClusterList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []ScalewayManagedCluster `json:"items"`
}
ScalewayManagedClusterList contains a list of ScalewayManagedCluster
func (*ScalewayManagedClusterList) DeepCopy ¶
func (in *ScalewayManagedClusterList) DeepCopy() *ScalewayManagedClusterList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalewayManagedClusterList.
func (*ScalewayManagedClusterList) DeepCopyInto ¶
func (in *ScalewayManagedClusterList) DeepCopyInto(out *ScalewayManagedClusterList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ScalewayManagedClusterList) DeepCopyObject ¶
func (in *ScalewayManagedClusterList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ScalewayManagedClusterNetwork ¶
type ScalewayManagedClusterNetwork struct {
// privateNetwork allows attaching machines of the cluster to a Private Network.
// +optional
PrivateNetwork PrivateNetwork `json:"privateNetwork,omitempty,omitzero"`
// publicGateways allows to manage Public Gateways that will be created and
// attached to the Private Network of the cluster.
// +optional
// +listType=atomic
// +kubebuilder:validation:MinItems=1
// +kubebuilder:validation:MaxItems=6
PublicGateways []PublicGateway `json:"publicGateways,omitempty"`
}
ScalewayManagedClusterNetwork defines the network configuration of a managed cluster. +kubebuilder:validation:MinProperties=1
func (*ScalewayManagedClusterNetwork) DeepCopy ¶
func (in *ScalewayManagedClusterNetwork) DeepCopy() *ScalewayManagedClusterNetwork
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalewayManagedClusterNetwork.
func (*ScalewayManagedClusterNetwork) DeepCopyInto ¶
func (in *ScalewayManagedClusterNetwork) DeepCopyInto(out *ScalewayManagedClusterNetwork)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScalewayManagedClusterNetworkStatus ¶
type ScalewayManagedClusterNetworkStatus struct {
// privateNetworkID is the ID of the Private Network that is attached to the cluster.
// +optional
PrivateNetworkID UUID `json:"privateNetworkID,omitempty"`
}
ScalewayManagedClusterNetworkStatus contains information about currently provisioned network resources. +kubebuilder:validation:MinProperties=1
func (*ScalewayManagedClusterNetworkStatus) DeepCopy ¶
func (in *ScalewayManagedClusterNetworkStatus) DeepCopy() *ScalewayManagedClusterNetworkStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalewayManagedClusterNetworkStatus.
func (*ScalewayManagedClusterNetworkStatus) DeepCopyInto ¶
func (in *ScalewayManagedClusterNetworkStatus) DeepCopyInto(out *ScalewayManagedClusterNetworkStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScalewayManagedClusterSpec ¶
type ScalewayManagedClusterSpec struct {
// region where the managed cluster will be created.
// +required
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
Region ScalewayRegion `json:"region,omitempty"`
// projectID in which the managed cluster will be created.
// +required
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
ProjectID UUID `json:"projectID,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.
// The following key is optional: SCW_API_URL.
// +required
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=253
ScalewaySecretName string `json:"scalewaySecretName,omitempty"`
// network defines the network configuration of the managed cluster.
// +optional
Network ScalewayManagedClusterNetwork `json:"network,omitempty,omitzero"`
// controlPlaneEndpoint represents the endpoint used to communicate with the control plane.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
ControlPlaneEndpoint clusterv1.APIEndpoint `json:"controlPlaneEndpoint,omitempty,omitzero"`
}
ScalewayManagedClusterSpec defines the desired state of ScalewayManagedCluster. +kubebuilder:validation:XValidation:rule="!has(oldSelf.controlPlaneEndpoint) || has(self.controlPlaneEndpoint)", message="controlPlaneEndpoint is required once set" +kubebuilder:validation:XValidation:rule="(has(self.network) && has(self.network.privateNetwork)) == (has(oldSelf.network) && has(oldSelf.network.privateNetwork))",message="privateNetwork cannot be added or removed"
func (*ScalewayManagedClusterSpec) DeepCopy ¶
func (in *ScalewayManagedClusterSpec) DeepCopy() *ScalewayManagedClusterSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalewayManagedClusterSpec.
func (*ScalewayManagedClusterSpec) DeepCopyInto ¶
func (in *ScalewayManagedClusterSpec) DeepCopyInto(out *ScalewayManagedClusterSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScalewayManagedClusterStatus ¶
type ScalewayManagedClusterStatus struct {
// conditions represent the current state of the ScalewayManagedCluster resource.
// Each condition has a unique type and reflects the status of a specific aspect of the resource.
//
// The status of each condition is one of True, False, or Unknown.
// +optional
// +listType=map
// +listMapKey=type
// +kubebuilder:validation:MaxItems=32
Conditions []metav1.Condition `json:"conditions,omitempty"`
// initialization provides observations of the ScalewayManagedCluster initialization process.
// NOTE: Fields in this struct are part of the Cluster API contract and are used to orchestrate initial Cluster provisioning.
// +optional
Initialization ScalewayManagedClusterInitializationStatus `json:"initialization,omitempty,omitzero"`
// network contains information about currently provisioned network resources.
// +optional
Network ScalewayManagedClusterNetworkStatus `json:"network,omitempty,omitzero"`
}
ScalewayManagedClusterStatus defines the observed state of ScalewayManagedCluster. +kubebuilder:validation:MinProperties=1
func (*ScalewayManagedClusterStatus) DeepCopy ¶
func (in *ScalewayManagedClusterStatus) DeepCopy() *ScalewayManagedClusterStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalewayManagedClusterStatus.
func (*ScalewayManagedClusterStatus) DeepCopyInto ¶
func (in *ScalewayManagedClusterStatus) DeepCopyInto(out *ScalewayManagedClusterStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScalewayManagedControlPlane ¶
type ScalewayManagedControlPlane struct {
metav1.TypeMeta `json:",inline"`
// metadata is a standard object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty,omitzero"`
// spec defines the desired state of ScalewayManagedControlPlane
// +required
Spec ScalewayManagedControlPlaneSpec `json:"spec,omitempty,omitzero"`
// status defines the observed state of ScalewayManagedControlPlane
// +optional
Status ScalewayManagedControlPlaneStatus `json:"status,omitempty,omitzero"`
}
ScalewayManagedControlPlane is the Schema for the scalewaymanagedcontrolplanes 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 (*ScalewayManagedControlPlane) DeepCopy ¶
func (in *ScalewayManagedControlPlane) DeepCopy() *ScalewayManagedControlPlane
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalewayManagedControlPlane.
func (*ScalewayManagedControlPlane) DeepCopyInto ¶
func (in *ScalewayManagedControlPlane) DeepCopyInto(out *ScalewayManagedControlPlane)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ScalewayManagedControlPlane) DeepCopyObject ¶
func (in *ScalewayManagedControlPlane) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ScalewayManagedControlPlane) GetConditions ¶
func (s *ScalewayManagedControlPlane) GetConditions() []metav1.Condition
GetConditions returns the list of conditions for an ScalewayManagedControlPlane API object.
func (*ScalewayManagedControlPlane) Hub ¶
func (*ScalewayManagedControlPlane) Hub()
Hub marks this type as a conversion hub.
func (*ScalewayManagedControlPlane) SetConditions ¶
func (s *ScalewayManagedControlPlane) SetConditions(conditions []metav1.Condition)
SetConditions will set the given conditions on an ScalewayManagedControlPlane object.
type ScalewayManagedControlPlaneInitializationStatus ¶
type ScalewayManagedControlPlaneInitializationStatus struct {
// controlPlaneInitialized is true when the control plane provider reports that the Kubernetes control plane is initialized;
// usually a control plane is considered initialized when it can accept requests, no matter if this happens before
// the control plane is fully provisioned or not.
// NOTE: this field is part of the Cluster API contract, and it is used to orchestrate initial Cluster provisioning.
// +optional
ControlPlaneInitialized *bool `json:"controlPlaneInitialized,omitempty"`
}
ScalewayManagedControlPlaneInitializationStatus provides observations of the ScalewayManagedControlPlane initialization process. +kubebuilder:validation:MinProperties=1
func (*ScalewayManagedControlPlaneInitializationStatus) DeepCopy ¶
func (in *ScalewayManagedControlPlaneInitializationStatus) DeepCopy() *ScalewayManagedControlPlaneInitializationStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalewayManagedControlPlaneInitializationStatus.
func (*ScalewayManagedControlPlaneInitializationStatus) DeepCopyInto ¶
func (in *ScalewayManagedControlPlaneInitializationStatus) DeepCopyInto(out *ScalewayManagedControlPlaneInitializationStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScalewayManagedControlPlaneList ¶
type ScalewayManagedControlPlaneList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []ScalewayManagedControlPlane `json:"items"`
}
ScalewayManagedControlPlaneList contains a list of ScalewayManagedControlPlane
func (*ScalewayManagedControlPlaneList) DeepCopy ¶
func (in *ScalewayManagedControlPlaneList) DeepCopy() *ScalewayManagedControlPlaneList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalewayManagedControlPlaneList.
func (*ScalewayManagedControlPlaneList) DeepCopyInto ¶
func (in *ScalewayManagedControlPlaneList) DeepCopyInto(out *ScalewayManagedControlPlaneList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ScalewayManagedControlPlaneList) DeepCopyObject ¶
func (in *ScalewayManagedControlPlaneList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ScalewayManagedControlPlaneSpec ¶
type ScalewayManagedControlPlaneSpec struct {
// clusterName allows you to specify the name of the Scaleway managed cluster.
// If you don't specify a name then a default name will be created
// based on the namespace and name of the managed control plane.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=100
ClusterName string `json:"clusterName,omitempty"`
// type of the cluster (e.g. kapsule, multicloud, etc.).
// +optional
// +kubebuilder:default="kapsule"
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=50
Type string `json:"type,omitempty"`
// version defines the desired Kubernetes version.
// +required
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=256
Version string `json:"version,omitempty"`
// cni plugin running in the cluster.
// +optional
// +kubebuilder:validation:Enum=cilium;cilium_native;calico;kilo;none
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
CNI string `json:"cni,omitempty"`
// additionalTags that will be added to the default tags.
// +optional
// +listType=atomic
// +kubebuilder:validation:MinItems=1
// +kubebuilder:validation:MaxItems=30
// +kubebuilder:validation:items:MinLength=1
// +kubebuilder:validation:items:MaxLength=128
AdditionalTags []string `json:"additionalTags,omitempty"`
// autoscaler configuration of the cluster.
// +optional
Autoscaler Autoscaler `json:"autoscaler,omitempty,omitzero"`
// autoUpgrade configuration of the cluster.
// +optional
AutoUpgrade AutoUpgrade `json:"autoUpgrade,omitempty,omitzero"`
// featureGates to enable.
// +optional
// +listType=set
// +kubebuilder:validation:MinItems=1
// +kubebuilder:validation:MaxItems=10
// +kubebuilder:validation:items:MinLength=1
// +kubebuilder:validation:items:MaxLength=128
FeatureGates []string `json:"featureGates,omitempty"`
// admissionPlugins to enable.
// +optional
// +listType=set
// +kubebuilder:validation:MinItems=1
// +kubebuilder:validation:MaxItems=10
// +kubebuilder:validation:items:MinLength=1
// +kubebuilder:validation:items:MaxLength=128
AdmissionPlugins []string `json:"admissionPlugins,omitempty"`
// openIDConnect defines the OpenID Connect configuration of the Kubernetes API server.
// +optional
OpenIDConnect OpenIDConnect `json:"openIDConnect,omitempty,omitzero"`
// apiServerCertSANs defines additional Subject Alternative Names for the
// Kubernetes API server certificate.
// +optional
// +listType=set
// +kubebuilder:validation:MinItems=1
// +kubebuilder:validation:MaxItems=10
// +kubebuilder:validation:items:MinLength=1
// +kubebuilder:validation:items:MaxLength=255
APIServerCertSANs []string `json:"apiServerCertSANs,omitempty"`
// onDelete configures the settings to apply when deleting the Scaleway managed cluster.
// +optional
OnDelete OnDelete `json:"onDelete,omitempty,omitzero"`
// acl configures the ACLs of the managed cluster. If not set, ACLs will be set to [0.0.0.0/0].
// +optional
ACL *ACL `json:"acl,omitempty"`
// enablePrivateEndpoint defines whether the apiserver's internal address
// is used as the cluster endpoint.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
EnablePrivateEndpoint *bool `json:"enablePrivateEndpoint,omitempty"`
// controlPlaneEndpoint represents the endpoint used to communicate with the control plane.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
ControlPlaneEndpoint clusterv1.APIEndpoint `json:"controlPlaneEndpoint,omitempty,omitzero"`
}
ScalewayManagedControlPlaneSpec defines the desired state of ScalewayManagedControlPlane. +kubebuilder:validation:XValidation:rule="!has(oldSelf.controlPlaneEndpoint) || has(self.controlPlaneEndpoint)", message="controlPlaneEndpoint is required once set" +kubebuilder:validation:XValidation:rule="!has(oldSelf.clusterName) || has(self.clusterName) == has(oldSelf.clusterName)",message="clusterName cannot be removed once set" +kubebuilder:validation:XValidation:rule="has(self.cni) == has(oldSelf.cni)",message="cni cannot be added or removed" +kubebuilder:validation:XValidation:rule="has(self.enablePrivateEndpoint) == has(oldSelf.enablePrivateEndpoint)",message="enablePrivateEndpoint cannot be added or removed"
func (*ScalewayManagedControlPlaneSpec) DeepCopy ¶
func (in *ScalewayManagedControlPlaneSpec) DeepCopy() *ScalewayManagedControlPlaneSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalewayManagedControlPlaneSpec.
func (*ScalewayManagedControlPlaneSpec) DeepCopyInto ¶
func (in *ScalewayManagedControlPlaneSpec) DeepCopyInto(out *ScalewayManagedControlPlaneSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScalewayManagedControlPlaneStatus ¶
type ScalewayManagedControlPlaneStatus struct {
// conditions represent the current state of the ScalewayManagedControlPlane resource.
// Each condition has a unique type and reflects the status of a specific aspect of the resource.
//
// The status of each condition is one of True, False, or Unknown.
// +optional
// +listType=map
// +listMapKey=type
// +kubebuilder:validation:MaxItems=32
Conditions []metav1.Condition `json:"conditions,omitempty"`
// version defines the desired Kubernetes version for the control plane.
// +optional
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=256
Version string `json:"version,omitempty"`
// externalManagedControlPlane is a bool that should be set to true if the
// Node objects do not exist in the cluster.
// +optional
// +kubebuilder:default=true
ExternalManagedControlPlane *bool `json:"externalManagedControlPlane,omitempty"`
// initialization provides observations of the ScalewayManagedControlPlane initialization process.
// NOTE: Fields in this struct are part of the Cluster API contract and are used to orchestrate initial Cluster provisioning.
// +optional
Initialization ScalewayManagedControlPlaneInitializationStatus `json:"initialization,omitempty,omitzero"`
}
ScalewayManagedControlPlaneStatus defines the observed state of ScalewayManagedControlPlane. +kubebuilder:validation:MinProperties=1
func (*ScalewayManagedControlPlaneStatus) DeepCopy ¶
func (in *ScalewayManagedControlPlaneStatus) DeepCopy() *ScalewayManagedControlPlaneStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalewayManagedControlPlaneStatus.
func (*ScalewayManagedControlPlaneStatus) DeepCopyInto ¶
func (in *ScalewayManagedControlPlaneStatus) DeepCopyInto(out *ScalewayManagedControlPlaneStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScalewayManagedMachinePool ¶
type ScalewayManagedMachinePool struct {
metav1.TypeMeta `json:",inline"`
// metadata is a standard object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty,omitzero"`
// spec defines the desired state of ScalewayManagedMachinePool
// +required
Spec ScalewayManagedMachinePoolSpec `json:"spec,omitempty,omitzero"`
// status defines the observed state of ScalewayManagedMachinePool
// +optional
Status ScalewayManagedMachinePoolStatus `json:"status,omitempty,omitzero"`
}
ScalewayManagedMachinePool is the Schema for the scalewaymanagedmachinepools 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 (*ScalewayManagedMachinePool) DeepCopy ¶
func (in *ScalewayManagedMachinePool) DeepCopy() *ScalewayManagedMachinePool
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalewayManagedMachinePool.
func (*ScalewayManagedMachinePool) DeepCopyInto ¶
func (in *ScalewayManagedMachinePool) DeepCopyInto(out *ScalewayManagedMachinePool)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ScalewayManagedMachinePool) DeepCopyObject ¶
func (in *ScalewayManagedMachinePool) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ScalewayManagedMachinePool) GetConditions ¶
func (s *ScalewayManagedMachinePool) GetConditions() []metav1.Condition
GetConditions returns the list of conditions for an ScalewayManagedMachinePool API object.
func (*ScalewayManagedMachinePool) Hub ¶
func (*ScalewayManagedMachinePool) Hub()
Hub marks this type as a conversion hub.
func (*ScalewayManagedMachinePool) SetConditions ¶
func (s *ScalewayManagedMachinePool) SetConditions(conditions []metav1.Condition)
SetConditions will set the given conditions on an ScalewayManagedMachinePool object.
type ScalewayManagedMachinePoolInitializationStatus ¶
type ScalewayManagedMachinePoolInitializationStatus struct {
// provisioned is true when the infrastructure provider reports that the MachinePool's infrastructure is fully provisioned.
// +optional
Provisioned *bool `json:"provisioned,omitempty"`
}
ScalewayManagedMachinePoolInitializationStatus provides observations of the ScalewayManagedMachinePool initialization process. +kubebuilder:validation:MinProperties=1
func (*ScalewayManagedMachinePoolInitializationStatus) DeepCopy ¶
func (in *ScalewayManagedMachinePoolInitializationStatus) DeepCopy() *ScalewayManagedMachinePoolInitializationStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalewayManagedMachinePoolInitializationStatus.
func (*ScalewayManagedMachinePoolInitializationStatus) DeepCopyInto ¶
func (in *ScalewayManagedMachinePoolInitializationStatus) DeepCopyInto(out *ScalewayManagedMachinePoolInitializationStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScalewayManagedMachinePoolList ¶
type ScalewayManagedMachinePoolList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []ScalewayManagedMachinePool `json:"items"`
}
ScalewayManagedMachinePoolList contains a list of ScalewayManagedMachinePool
func (*ScalewayManagedMachinePoolList) DeepCopy ¶
func (in *ScalewayManagedMachinePoolList) DeepCopy() *ScalewayManagedMachinePoolList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalewayManagedMachinePoolList.
func (*ScalewayManagedMachinePoolList) DeepCopyInto ¶
func (in *ScalewayManagedMachinePoolList) DeepCopyInto(out *ScalewayManagedMachinePoolList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ScalewayManagedMachinePoolList) DeepCopyObject ¶
func (in *ScalewayManagedMachinePoolList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ScalewayManagedMachinePoolSpec ¶
type ScalewayManagedMachinePoolSpec struct {
// nodeType is the type of Scaleway Instance wanted for the pool. Nodes with
// insufficient memory are not eligible (DEV1-S, PLAY2-PICO, STARDUST).
// "external" is a special node type used to provision instances from other
// cloud providers in a Kosmos Cluster.
// +required
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
// +kubebuilder:validation:MinLength=2
// +kubebuilder:validation:MaxLength=30
NodeType string `json:"nodeType,omitempty"`
// zone in which the pool's nodes will be spawned.
// +required
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
Zone ScalewayZone `json:"zone,omitempty"`
// placementGroupID in which all the nodes of the pool will be created,
// placement groups are limited to 20 instances.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
PlacementGroupID UUID `json:"placementGroupID,omitempty"`
// scaling configures the scaling of the pool.
// +optional
Scaling Scaling `json:"scaling,omitempty,omitzero"`
// autohealing defines whether the autohealing feature is enabled for the pool.
// +optional
Autohealing *bool `json:"autohealing,omitempty"`
// additionalTags that will be added to the default tags.
// +optional
// +listType=atomic
// +kubebuilder:validation:MinItems=1
// +kubebuilder:validation:MaxItems=30
// +kubebuilder:validation:items:MinLength=1
// +kubebuilder:validation:items:MaxLength=128
AdditionalTags []string `json:"additionalTags,omitempty"`
// kubeletArgs defines Kubelet arguments to be used by this pool.
// +optional
KubeletArgs map[string]string `json:"kubeletArgs,omitempty"`
// upgradePolicy defines the pool's upgrade policy.
// +optional
UpgradePolicy UpgradePolicy `json:"upgradePolicy,omitempty,omitzero"`
// rootVolumeType is the system volume disk type.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
// +kubebuilder:validation:Enum=l_ssd;sbs_5k;sbs_15k
RootVolumeType string `json:"rootVolumeType,omitempty"`
// rootVolumeSizeGB is the size of the System volume disk size, in GB.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
// +kubebuilder:validation:Minimum=20
RootVolumeSizeGB int64 `json:"rootVolumeSizeGB,omitempty"`
// publicIPDisabled defines if the public IP should be removed from Nodes.
// To use this feature, your Cluster must have an attached Private Network
// set up with a Public Gateway.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
PublicIPDisabled *bool `json:"publicIPDisabled,omitempty"`
// securityGroupID in which all the nodes of the pool will be created. If unset,
// the pool will use default Kapsule security group in current zone.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
SecurityGroupID UUID `json:"securityGroupID,omitempty"`
// providerIDList are the identification IDs of machine instances provided by the provider.
// This field must match the provider IDs as seen on the node objects corresponding to a machine pool's machine instances.
// +optional
// +listType=atomic
// +kubebuilder:validation:MaxItems=10000
// +kubebuilder:validation:items:MinLength=1
// +kubebuilder:validation:items:MaxLength=512
ProviderIDList []string `json:"providerIDList,omitempty"`
}
ScalewayManagedMachinePoolSpec defines the desired state of ScalewayManagedMachinePool. +kubebuilder:validation:XValidation:rule="has(self.placementGroupID) == has(oldSelf.placementGroupID)",message="placementGroupID cannot be added or removed" +kubebuilder:validation:XValidation:rule="has(self.rootVolumeType) == has(oldSelf.rootVolumeType)",message="rootVolumeType cannot be added or removed" +kubebuilder:validation:XValidation:rule="has(self.rootVolumeSizeGB) == has(oldSelf.rootVolumeSizeGB)",message="rootVolumeSizeGB cannot be added or removed" +kubebuilder:validation:XValidation:rule="has(self.publicIPDisabled) == has(oldSelf.publicIPDisabled)",message="publicIPDisabled cannot be added or removed" +kubebuilder:validation:XValidation:rule="has(self.securityGroupID) == has(oldSelf.securityGroupID)",message="securityGroupID cannot be added or removed"
func (*ScalewayManagedMachinePoolSpec) DeepCopy ¶
func (in *ScalewayManagedMachinePoolSpec) DeepCopy() *ScalewayManagedMachinePoolSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalewayManagedMachinePoolSpec.
func (*ScalewayManagedMachinePoolSpec) DeepCopyInto ¶
func (in *ScalewayManagedMachinePoolSpec) DeepCopyInto(out *ScalewayManagedMachinePoolSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScalewayManagedMachinePoolStatus ¶
type ScalewayManagedMachinePoolStatus struct {
// conditions represent the current state of the ScalewayManagedMachinePool resource.
// Each condition has a unique type and reflects the status of a specific aspect of the resource.
//
// The status of each condition is one of True, False, or Unknown.
// +optional
// +listType=map
// +listMapKey=type
// +kubebuilder:validation:MaxItems=32
Conditions []metav1.Condition `json:"conditions,omitempty"`
// ready is true when the provider resource is ready.
// Deprecated: this field is kept for now as CAPI v1.11.3 still needs it.
// The .initialization.provisioned field should be used instead.
// +optional
Ready *bool `json:"ready,omitempty"`
// initialization provides observations of the ScalewayManagedMachinePool initialization process.
// NOTE: Fields in this struct are part of the Cluster API contract and are used to orchestrate initial MachinePool provisioning.
// +optional
Initialization ScalewayManagedMachinePoolInitializationStatus `json:"initialization,omitempty,omitzero"`
// replicas is the most recently observed number of replicas.
// +optional
Replicas *int32 `json:"replicas,omitempty"`
}
ScalewayManagedMachinePoolStatus defines the observed state of ScalewayManagedMachinePool. +kubebuilder:validation:MinProperties=1
func (*ScalewayManagedMachinePoolStatus) DeepCopy ¶
func (in *ScalewayManagedMachinePoolStatus) DeepCopy() *ScalewayManagedMachinePoolStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalewayManagedMachinePoolStatus.
func (*ScalewayManagedMachinePoolStatus) DeepCopyInto ¶
func (in *ScalewayManagedMachinePoolStatus) DeepCopyInto(out *ScalewayManagedMachinePoolStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScalewayRegion ¶
type ScalewayRegion string
ScalewayRegion is a Scaleway region (e.g. fr-par). +kubebuilder:validation:Pattern="^[a-z]{2}-[a-z]{3}$" +kubebuilder:validation:MinLength=6 +kubebuilder:validation:MaxLength=6
type ScalewayZone ¶
type ScalewayZone string
ScalewayZone is a Scaleway zone (e.g. fr-par-1). +kubebuilder:validation:Pattern="^[a-z]{2}-[a-z]{3}-[0-9]{0,2}$" +kubebuilder:validation:MinLength=8 +kubebuilder:validation:MaxLength=9
type Scaling ¶
type Scaling struct {
// autoscaling defines whether the autoscaling feature is enabled for the pool.
// +optional
Autoscaling *bool `json:"autoscaling,omitempty"`
// minSize defines the minimum size of the pool. Note that this field is only
// used when autoscaling is enabled on the pool.
// +optional
// +kubebuilder:validation:Minimum=0
MinSize *int32 `json:"minSize,omitempty"`
// maxSize defines the maximum size of the pool. Note that this field is only
// used when autoscaling is enabled on the pool.
// +optional
// +kubebuilder:validation:Minimum=0
MaxSize *int32 `json:"maxSize,omitempty"`
}
Scaling defines the scaling parameters of the pool. +kubebuilder:validation:MinProperties=1
func (*Scaling) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scaling.
func (*Scaling) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type UUID ¶
type UUID string
UUID is a valid UUID for a Scaleway resource. +kubebuilder:validation:Pattern="^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$" +kubebuilder:validation:MinLength=36 +kubebuilder:validation:MaxLength=36
type UpgradePolicy ¶
type UpgradePolicy struct {
// +optional
// +kubebuilder:validation:Minimum=0
MaxUnavailable *int32 `json:"maxUnavailable,omitempty"`
// maxSurge is the maximum number of additional nodes that can be provisioned
// during upgrades.
// +optional
// +kubebuilder:validation:Minimum=0
MaxSurge *int32 `json:"maxSurge,omitempty"`
}
UpgradePolicy defines the pool's upgrade policy. +kubebuilder:validation:MinProperties=1
func (*UpgradePolicy) DeepCopy ¶
func (in *UpgradePolicy) DeepCopy() *UpgradePolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UpgradePolicy.
func (*UpgradePolicy) DeepCopyInto ¶
func (in *UpgradePolicy) DeepCopyInto(out *UpgradePolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
Source Files
¶
- common_types.go
- condition_consts.go
- conversion.go
- doc.go
- groupversion_info.go
- scalewaycluster_types.go
- scalewayclustertemplate_types.go
- scalewaymachine_types.go
- scalewaymachinetemplate_types.go
- scalewaymanagedcluster_types.go
- scalewaymanagedcontrolplane_types.go
- scalewaymanagedmachinepool_types.go
- zz_generated.deepcopy.go