v1alpha2

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Nov 19, 2025 License: MIT Imports: 5 Imported by: 0

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

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

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

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

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

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

View Source
const ScalewayClusterFinalizer = "scalewaycluster.infrastructure.cluster.x-k8s.io/sc-protection"

ScalewayClusterFinalizer is the finalizer that prevents deletion of a ScalewayCluster.

View Source
const ScalewayClusterReadyCondition = clusterv1.ReadyCondition

ScalewayClusterReadyCondition reports if the ScalewayCluster is ready.

View Source
const ScalewayMachineFinalizer = "scalewaymachine.infrastructure.cluster.x-k8s.io/sm-protection"

ScalewayMachineFinalizer is the finalizer that prevents deletion of a ScalewayMachine.

View Source
const ScalewayMachineReadyCondition = clusterv1.ReadyCondition

ScalewayMachineReadyCondition reports if the ScalewayMachine is ready.

View Source
const ScalewayManagedClusterFinalizer = "scalewaymanagedcluster.infrastructure.cluster.x-k8s.io/smc-protection"

ScalewayManagedClusterFinalizer is the finalizer that prevents deletion of a ScalewayManagedCluster.

View Source
const ScalewayManagedClusterReadyCondition = clusterv1.ReadyCondition

ScalewayManagedClusterReadyCondition reports if the ScalewayManagedCluster is ready.

View Source
const ScalewayManagedControlPlaneFinalizer = "scalewaymanagedcontrolplane.infrastructure.cluster.x-k8s.io/smcp-protection"

ScalewayManagedControlPlaneFinalizer is the finalizer that prevents deletion of a ScalewayManagedControlPlane.

View Source
const ScalewayManagedControlPlaneReadyCondition = clusterv1.ReadyCondition

ScalewayManagedControlPlaneReadyCondition reports if the ScalewayManagedControlPlane is ready.

View Source
const ScalewayManagedMachinePoolFinalizer = "scalewaymanagedmachinepool.infrastructure.cluster.x-k8s.io/smmp-protection"

ScalewayManagedMachinePoolFinalizer is the finalizer that prevents deletion of a ScalewayManagedMachinePool.

View Source
const ScalewayManagedMachinePoolReadyCondition = clusterv1.ReadyCondition

ScalewayManagedMachinePoolReadyCondition reports if the ScalewayManagedMachinePool is ready.

Variables

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

func (in *ACL) DeepCopy() *ACL

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

func (*ACL) DeepCopyInto

func (in *ACL) DeepCopyInto(out *ACL)

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

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

func (in *IDOrName) DeepCopy() *IDOrName

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

func (*IDOrName) DeepCopyInto

func (in *IDOrName) DeepCopyInto(out *IDOrName)

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

func (in *Image) DeepCopy() *Image

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

func (*Image) DeepCopyInto

func (in *Image) DeepCopyInto(out *Image)

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

func (in *OnDelete) DeepCopy() *OnDelete

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

func (*OnDelete) DeepCopyInto

func (in *OnDelete) DeepCopyInto(out *OnDelete)

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

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

func (*ScalewayClusterInitializationStatus) DeepCopyInto

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

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

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

func (*ScalewayClusterNetworkStatus) DeepCopyInto

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

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

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

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

func (*ScalewayClusterTemplateList) DeepCopyInto

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

func (*ScalewayClusterTemplateList) DeepCopyObject

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

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

type ScalewayClusterTemplateResource

type ScalewayClusterTemplateResource struct {
	// 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

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

func (*ScalewayClusterTemplateResource) DeepCopyInto

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

type ScalewayClusterTemplateSpec

type ScalewayClusterTemplateSpec struct {
	// template is a ScalewayCluster template resource.
	// +required
	Template ScalewayClusterTemplateResource `json:"template,omitempty,omitzero"`
}

ScalewayClusterTemplateSpec defines the desired state of ScalewayClusterTemplate

func (*ScalewayClusterTemplateSpec) DeepCopy

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

func (*ScalewayClusterTemplateSpec) DeepCopyInto

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

type ScalewayMachine

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

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

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

func (*ScalewayMachineInitializationStatus) DeepCopyInto

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

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

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

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

func (*ScalewayMachineTemplateList) DeepCopyInto

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

func (*ScalewayMachineTemplateList) DeepCopyObject

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

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

type ScalewayMachineTemplateResource

type ScalewayMachineTemplateResource struct {
	// 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

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

func (*ScalewayMachineTemplateResource) DeepCopyInto

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

type ScalewayMachineTemplateSpec

type ScalewayMachineTemplateSpec struct {
	// template is a ScalewayMachine template resource.
	// +required
	Template ScalewayMachineTemplateResource `json:"template,omitempty,omitzero"`
}

ScalewayMachineTemplateSpec defines the desired state of ScalewayMachineTemplate

func (*ScalewayMachineTemplateSpec) DeepCopy

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

func (*ScalewayMachineTemplateSpec) DeepCopyInto

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

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

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

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

func (*ScalewayManagedClusterInitializationStatus) DeepCopyInto

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

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

func (*ScalewayManagedClusterList) DeepCopyInto

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

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

func (*ScalewayManagedClusterNetwork) DeepCopyInto

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

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

func (*ScalewayManagedClusterNetworkStatus) DeepCopyInto

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

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

func (*ScalewayManagedClusterSpec) DeepCopyInto

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

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

func (*ScalewayManagedClusterStatus) DeepCopyInto

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

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

func (*ScalewayManagedControlPlane) DeepCopyInto

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

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

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

func (*ScalewayManagedControlPlaneInitializationStatus) DeepCopyInto

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

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

func (*ScalewayManagedControlPlaneList) DeepCopyInto

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

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

func (*ScalewayManagedControlPlaneSpec) DeepCopyInto

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

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

func (*ScalewayManagedControlPlaneStatus) DeepCopyInto

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

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

func (*ScalewayManagedMachinePool) DeepCopyInto

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

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

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

func (*ScalewayManagedMachinePoolInitializationStatus) DeepCopyInto

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

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

func (*ScalewayManagedMachinePoolList) DeepCopyInto

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

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

func (*ScalewayManagedMachinePoolSpec) DeepCopyInto

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

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

func (*ScalewayManagedMachinePoolStatus) DeepCopyInto

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

func (in *Scaling) DeepCopy() *Scaling

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

func (*Scaling) DeepCopyInto

func (in *Scaling) DeepCopyInto(out *Scaling)

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 {
	// maxUnavailable is the maximum number of available nodes during upgrades.
	// +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.

Jump to

Keyboard shortcuts

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