v1alpha1

package
v0.1.4 Latest Latest
Warning

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

Go to latest
Published: Sep 23, 2025 License: MIT Imports: 5 Imported by: 1

Documentation

Overview

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

Index

Constants

View Source
const ClusterFinalizer = "scalewaycluster.infrastructure.cluster.x-k8s.io/sc-protection"
View Source
const MachineFinalizer = "scalewaycluster.infrastructure.cluster.x-k8s.io/sm-protection"
View Source
const ManagedClusterFinalizer = "scalewaycluster.infrastructure.cluster.x-k8s.io/smc-protection"
View Source
const ManagedControlPlaneFinalizer = "scalewaycluster.infrastructure.cluster.x-k8s.io/smcp-protection"
View Source
const ManagedMachinePoolFinalizer = "scalewaycluster.infrastructure.cluster.x-k8s.io/smmp-protection"

Variables

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

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

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

Functions

This section is empty.

Types

type ACLSpec added in v0.1.3

type ACLSpec struct {
	// AllowedRanges allows to set 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
	// +listType=set
	// +optional
	AllowedRanges []CIDR `json:"allowedRanges,omitempty"`
}

ACLSpec configures the ACLs of the managed cluster.

func (*ACLSpec) DeepCopy added in v0.1.3

func (in *ACLSpec) DeepCopy() *ACLSpec

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

func (*ACLSpec) DeepCopyInto added in v0.1.3

func (in *ACLSpec) DeepCopyInto(out *ACLSpec)

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

type AutoUpgradeSpec added in v0.1.3

type AutoUpgradeSpec struct {
	// Defines whether auto upgrade is enabled for the cluster.
	Enabled bool `json:"enabled"`

	// Maintenance window of the cluster auto upgrades.
	// +optional
	MaintenanceWindow *MaintenanceWindowSpec `json:"maintenanceWindow,omitempty"`
}

AutoUpgradeSpec allows to set a specific 2-hour time window in which the cluster can be automatically updated to the latest patch version.

func (*AutoUpgradeSpec) DeepCopy added in v0.1.3

func (in *AutoUpgradeSpec) DeepCopy() *AutoUpgradeSpec

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

func (*AutoUpgradeSpec) DeepCopyInto added in v0.1.3

func (in *AutoUpgradeSpec) DeepCopyInto(out *AutoUpgradeSpec)

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

type AutoscalerSpec added in v0.1.3

type AutoscalerSpec struct {
	// Disable the cluster autoscaler.
	// +optional
	ScaleDownDisabled *bool `json:"scaleDownDisabled,omitempty"`

	// How long after scale up the scale down evaluation resumes.
	// +optional
	ScaleDownDelayAfterAdd *string `json:"scaleDownDelayAfterAdd,omitempty"`

	// Type of resource estimator to be used in scale up.
	// +kubebuilder:validation:Enum=binpacking
	// +optional
	Estimator *string `json:"estimator,omitempty"`

	// Type of node group expander to be used in scale up.
	// +kubebuilder:validation:Enum=random;most_pods;least_waste;priority;price
	// +optional
	Expander *string `json:"expander,omitempty"`

	// Ignore DaemonSet pods when calculating resource utilization for scaling down.
	// +optional
	IgnoreDaemonsetsUtilization *bool `json:"ignoreDaemonsetsUtilization,omitempty"`

	// Detect similar node groups and balance the number of nodes between them.
	// +optional
	BalanceSimilarNodeGroups *bool `json:"balanceSimilarNodeGroups,omitempty"`

	// 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.
	ExpendablePodsPriorityCutoff *int32 `json:"expendablePodsPriorityCutoff,omitempty"`

	// How long a node should be unneeded before it is eligible to be scaled down.
	// +optional
	ScaleDownUnneededTime *string `json:"scaleDownUnneededTime,omitempty"`

	// Node utilization level, defined as a sum of requested resources divided
	// by capacity, below which a node can be considered for scale down.
	// +kubebuilder:validation:Format="float"
	// +optional
	ScaleDownUtilizationThreshold *string `json:"scaleDownUtilizationThreshold,omitempty"`

	// Maximum number of seconds the cluster autoscaler waits for pod termination
	// when trying to scale down a node.
	// +optional
	MaxGracefulTerminationSec *int32 `json:"maxGracefulTerminationSec,omitempty"`
}

AutoscalerSpec 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/).

func (*AutoscalerSpec) DeepCopy added in v0.1.3

func (in *AutoscalerSpec) DeepCopy() *AutoscalerSpec

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

func (*AutoscalerSpec) DeepCopyInto added in v0.1.3

func (in *AutoscalerSpec) DeepCopyInto(out *AutoscalerSpec)

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:MaxLength:=43 +kubebuilder:validation:MinLength:=1

type ControlPlaneDNSSpec

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

func (*ControlPlaneDNSSpec) DeepCopy

func (in *ControlPlaneDNSSpec) DeepCopy() *ControlPlaneDNSSpec

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

func (*ControlPlaneDNSSpec) DeepCopyInto

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

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

type ControlPlaneLoadBalancerSpec

type ControlPlaneLoadBalancerSpec struct {
	// +kubebuilder:validation:XValidation:rule="!has(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"
	LoadBalancerSpec `json:",inline"`

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

	// Private disables the creation of a public IP on the LoadBalancers when it's set to true.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	// +optional
	Private *bool `json:"private,omitempty"`
}

ControlPlaneLoadBalancerSpec defines control-plane loadbalancer settings for the cluster.

func (*ControlPlaneLoadBalancerSpec) DeepCopy

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

func (*ControlPlaneLoadBalancerSpec) DeepCopyInto

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

type ControlPlanePrivateDNSSpec added in v0.1.1

type ControlPlanePrivateDNSSpec struct {
	// Name is the DNS short name of the record (non-FQDN). The format must consist of
	// alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character.
	// +kubebuilder:validation:Pattern:=^[a-z0-9]([-a-z0-9.]*[a-z0-9])?$
	Name string `json:"name"`
}

func (*ControlPlanePrivateDNSSpec) DeepCopy added in v0.1.1

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

func (*ControlPlanePrivateDNSSpec) DeepCopyInto added in v0.1.1

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

type ImageSpec

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

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

func (*ImageSpec) DeepCopy

func (in *ImageSpec) DeepCopy() *ImageSpec

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

func (*ImageSpec) DeepCopyInto

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

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

type LoadBalancerSpec

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

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

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

	// Private IP to use when attaching a loadbalancer to a Private Network.
	// +kubebuilder:validation:Format=ipv4
	// +optional
	PrivateIP *string `json:"privateIP,omitempty"`
}

LoadBalancerSpec defines loadbalancer parameters.

func (*LoadBalancerSpec) DeepCopy

func (in *LoadBalancerSpec) DeepCopy() *LoadBalancerSpec

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

func (*LoadBalancerSpec) DeepCopyInto

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

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

type MaintenanceWindowSpec added in v0.1.3

type MaintenanceWindowSpec struct {
	// Start time of the two-hour maintenance window.
	// +optional
	StartHour *int32 `json:"startHour,omitempty"`

	// Day of the week for the maintenance window.
	// +kubebuilder:validation:Enum=any;monday;tuesday;wednesday;thursday;friday;saturday;sunday
	// +optional
	Day *string `json:"day,omitempty"`
}

MaintenanceWindowSpec defines the window of the cluster auto upgrades.

func (*MaintenanceWindowSpec) DeepCopy added in v0.1.3

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

func (*MaintenanceWindowSpec) DeepCopyInto added in v0.1.3

func (in *MaintenanceWindowSpec) DeepCopyInto(out *MaintenanceWindowSpec)

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

type ManagedNetworkSpec added in v0.1.3

type ManagedNetworkSpec struct {
	// PrivateNetwork allows attaching machines of the cluster to a Private Network.
	// +kubebuilder:validation:XValidation:rule="has(self.vpcID) == has(oldSelf.vpcID)",message="vpcID cannot be added or removed"
	// +kubebuilder:validation:XValidation:rule="has(self.id) == has(oldSelf.id)",message="id cannot be added or removed"
	// +kubebuilder:validation:XValidation:rule="has(self.subnet) == has(oldSelf.subnet)",message="subnet cannot be added or removed"
	// +kubebuilder:validation:XValidation:rule="has(self.id) && !has(self.subnet) || !has(self.id)",message="subnet cannot be set when id is set"
	// +kubebuilder:validation:XValidation:rule="has(self.id) && !has(self.vpcID) || !has(self.id)",message="vpcID cannot be set when id is set"
	// +optional
	PrivateNetwork *PrivateNetworkParams `json:"privateNetwork,omitempty"`

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

ManagedNetworkSpec defines the network configuration of a managed cluster.

func (*ManagedNetworkSpec) DeepCopy added in v0.1.3

func (in *ManagedNetworkSpec) DeepCopy() *ManagedNetworkSpec

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

func (*ManagedNetworkSpec) DeepCopyInto added in v0.1.3

func (in *ManagedNetworkSpec) DeepCopyInto(out *ManagedNetworkSpec)

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

type ManagedNetworkStatus added in v0.1.3

type ManagedNetworkStatus struct {
	// PrivateNetworkID is the ID of the Private Network that is attached to the cluster.
	// +optional
	PrivateNetworkID *string `json:"privateNetworkID,omitempty"`
}

ManagedNetworkStatus contains information about currently provisioned network resources.

func (*ManagedNetworkStatus) DeepCopy added in v0.1.3

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

func (*ManagedNetworkStatus) DeepCopyInto added in v0.1.3

func (in *ManagedNetworkStatus) DeepCopyInto(out *ManagedNetworkStatus)

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

type NetworkSpec

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

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

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

	// ControlPlanePrivateDNS allows configuring the DNS Zone of the VPC with
	// records that point to the control plane LoadBalancers. This field is only
	// available when the control plane LoadBalancers are private. Only one of
	// ControlPlaneDNS or ControlPlanePrivateDNS can be set.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	// +optional
	ControlPlanePrivateDNS *ControlPlanePrivateDNSSpec `json:"controlPlanePrivateDNS,omitempty"`

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

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

NetworkSpec defines network specific settings.

+kubebuilder:validation:XValidation:rule="!has(self.controlPlaneExtraLoadBalancers) || has(self.controlPlaneDNS) || has(self.controlPlanePrivateDNS)",message="controlPlaneDNS or controlPlanePrivateDNS 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.controlPlanePrivateDNS) || has(self.controlPlaneLoadBalancer.private) && self.controlPlaneLoadBalancer.private",message="private LoadBalancer must be enabled to set controlPlanePrivateDNS" +kubebuilder:validation:XValidation:rule="(has(self.controlPlaneDNS) ? 1 : 0) + (has(self.controlPlanePrivateDNS) ? 1 : 0) < 2",message="controlPlaneDNS and controlPlanePrivateDNS cannot be set at the same time"

func (*NetworkSpec) DeepCopy

func (in *NetworkSpec) DeepCopy() *NetworkSpec

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

func (*NetworkSpec) DeepCopyInto

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

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

type NetworkStatus

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

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

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

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

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

NetworkStatus contains information about network resources of the cluster.

func (*NetworkStatus) DeepCopy

func (in *NetworkStatus) DeepCopy() *NetworkStatus

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

func (*NetworkStatus) DeepCopyInto

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

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

type OnDeleteSpec added in v0.1.3

type OnDeleteSpec 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"`
}

OnDeleteSpec configures the settings to apply when deleting the Scaleway managed cluster.

func (*OnDeleteSpec) DeepCopy added in v0.1.3

func (in *OnDeleteSpec) DeepCopy() *OnDeleteSpec

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

func (*OnDeleteSpec) DeepCopyInto added in v0.1.3

func (in *OnDeleteSpec) DeepCopyInto(out *OnDeleteSpec)

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

type OpenIDConnectSpec added in v0.1.3

type OpenIDConnectSpec struct {
	// URL 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".
	IssuerURL string `json:"issuerURL"`

	// A client ID that all tokens must be issued for.
	ClientID string `json:"clientID"`

	// 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
	UsernameClaim *string `json:"usernameClaim,omitempty"`

	// 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
	UsernamePrefix *string `json:"usernamePrefix,omitempty"`

	// JWT claim to use as the user's group.
	// +optional
	GroupsClaim []string `json:"groupsClaim,omitempty"`

	// 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
	GroupsPrefix *string `json:"groupsPrefix,omitempty"`

	// 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
	RequiredClaim []string `json:"requiredClaim,omitempty"`
}

OpenIDConnectSpec defines the OpenID Connect configuration of the Kubernetes API server.

func (*OpenIDConnectSpec) DeepCopy added in v0.1.3

func (in *OpenIDConnectSpec) DeepCopy() *OpenIDConnectSpec

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

func (*OpenIDConnectSpec) DeepCopyInto added in v0.1.3

func (in *OpenIDConnectSpec) DeepCopyInto(out *OpenIDConnectSpec)

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

type PlacementGroupSpec added in v0.1.1

type PlacementGroupSpec struct {
	// ID of the placement group.
	// +optional
	ID *string `json:"id,omitempty"`
	// Name of the placement group.
	// +optional
	Name *string `json:"name,omitempty"`
}

PlacementGroupSpec contains an ID or Name of an existing Placement Group. +kubebuilder:validation:XValidation:rule="(has(self.id) ? 1 : 0) + (has(self.name) ? 1 : 0) == 1",message="exactly one of id or name must be set"

func (*PlacementGroupSpec) DeepCopy added in v0.1.1

func (in *PlacementGroupSpec) DeepCopy() *PlacementGroupSpec

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

func (*PlacementGroupSpec) DeepCopyInto added in v0.1.1

func (in *PlacementGroupSpec) DeepCopyInto(out *PlacementGroupSpec)

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

type PrivateNetworkParams added in v0.1.3

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

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

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

PrivateNetworkParams allows to set the params of the Private Network.

func (*PrivateNetworkParams) DeepCopy added in v0.1.3

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

func (*PrivateNetworkParams) DeepCopyInto added in v0.1.3

func (in *PrivateNetworkParams) DeepCopyInto(out *PrivateNetworkParams)

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

type PrivateNetworkSpec

type PrivateNetworkSpec struct {
	PrivateNetworkParams `json:",inline"`

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

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

func (*PrivateNetworkSpec) DeepCopy

func (in *PrivateNetworkSpec) DeepCopy() *PrivateNetworkSpec

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

func (*PrivateNetworkSpec) DeepCopyInto

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

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

type PublicGatewaySpec

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

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

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

PublicGatewaySpec defines Public Gateway settings for the cluster.

func (*PublicGatewaySpec) DeepCopy

func (in *PublicGatewaySpec) DeepCopy() *PublicGatewaySpec

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

func (*PublicGatewaySpec) DeepCopyInto

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

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

type PublicNetworkSpec

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

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

func (*PublicNetworkSpec) DeepCopy

func (in *PublicNetworkSpec) DeepCopy() *PublicNetworkSpec

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

func (*PublicNetworkSpec) DeepCopyInto

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

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

type RootVolumeSpec

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

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

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

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

func (*RootVolumeSpec) DeepCopy

func (in *RootVolumeSpec) DeepCopy() *RootVolumeSpec

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

func (*RootVolumeSpec) DeepCopyInto

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

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

type ScalewayCluster

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

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

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

func (*ScalewayCluster) DeepCopy

func (in *ScalewayCluster) DeepCopy() *ScalewayCluster

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

func (*ScalewayCluster) DeepCopyInto

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

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

func (*ScalewayCluster) DeepCopyObject

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

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

type ScalewayClusterList

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

ScalewayClusterList contains a list of ScalewayCluster.

func (*ScalewayClusterList) DeepCopy

func (in *ScalewayClusterList) DeepCopy() *ScalewayClusterList

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

func (*ScalewayClusterList) DeepCopyInto

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

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

func (*ScalewayClusterList) DeepCopyObject

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

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

type ScalewayClusterSpec

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

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

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

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

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

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

ScalewayClusterSpec defines the desired state of ScalewayCluster.

+kubebuilder:validation:XValidation:rule="!has(oldSelf.controlPlaneEndpoint) || has(self.controlPlaneEndpoint)", message="controlPlaneEndpoint is required once set"

+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.controlPlanePrivateDNS)) == (has(oldSelf.network) && has(oldSelf.network.controlPlanePrivateDNS))",message="controlPlanePrivateDNS 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 {
	// Ready denotes that the Scaleway cluster infrastructure is fully provisioned.
	// NOTE: this field is part of the Cluster API contract and it is used to orchestrate provisioning.
	// The value of this field is never updated after provisioning is completed.
	// +optional
	Ready bool `json:"ready"`

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

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

ScalewayClusterStatus defines the observed state of ScalewayCluster.

func (*ScalewayClusterStatus) DeepCopy

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

func (*ScalewayClusterStatus) DeepCopyInto

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

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

type ScalewayClusterTemplate

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

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

ScalewayClusterTemplate is the Schema for the scalewayclustertemplates API.

func (*ScalewayClusterTemplate) DeepCopy

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

func (*ScalewayClusterTemplate) DeepCopyInto

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

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

func (*ScalewayClusterTemplate) DeepCopyObject

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

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

type ScalewayClusterTemplateList

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

ScalewayClusterTemplateList contains a list of ScalewayClusterTemplate.

func (*ScalewayClusterTemplateList) DeepCopy

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

func (*ScalewayClusterTemplateList) DeepCopyInto

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

func (*ScalewayClusterTemplateList) DeepCopyObject

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

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

type ScalewayClusterTemplateResource

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

func (*ScalewayClusterTemplateResource) DeepCopy

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

func (*ScalewayClusterTemplateResource) DeepCopyInto

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

type ScalewayClusterTemplateSpec

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

ScalewayClusterTemplateSpec defines the desired state of ScalewayClusterTemplate.

func (*ScalewayClusterTemplateSpec) DeepCopy

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

func (*ScalewayClusterTemplateSpec) DeepCopyInto

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

type ScalewayMachine

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

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

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

func (*ScalewayMachine) DeepCopy

func (in *ScalewayMachine) DeepCopy() *ScalewayMachine

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

func (*ScalewayMachine) DeepCopyInto

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

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

func (*ScalewayMachine) DeepCopyObject

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

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

type ScalewayMachineList

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

ScalewayMachineList contains a list of ScalewayMachine.

func (*ScalewayMachineList) DeepCopy

func (in *ScalewayMachineList) DeepCopy() *ScalewayMachineList

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

func (*ScalewayMachineList) DeepCopyInto

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

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

func (*ScalewayMachineList) DeepCopyObject

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

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

type ScalewayMachineSpec

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

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

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

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

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

	// PlacementGroup allows attaching a Placement Group to the instance.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	// +optional
	PlacementGroup *PlacementGroupSpec `json:"placementGroup,omitempty"`

	// SecurityGroup allows attaching a Security Group to the instance.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	// +optional
	SecurityGroup *SecurityGroupSpec `json:"securityGroup,omitempty"`
}

ScalewayMachineSpec defines the desired state of ScalewayMachine. +kubebuilder:validation:XValidation:rule="has(self.rootVolume) == has(oldSelf.rootVolume)",message="rootVolume cannot be added or removed" +kubebuilder:validation:XValidation:rule="has(self.publicNetwork) == has(oldSelf.publicNetwork)",message="publicNetwork cannot be added or removed" +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 {
	// Addresses contains the associated addresses for the machine.
	// +optional
	Addresses []clusterv1.MachineAddress `json:"addresses,omitempty"`

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

ScalewayMachineStatus defines the observed state of ScalewayMachine.

func (*ScalewayMachineStatus) DeepCopy

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

func (*ScalewayMachineStatus) DeepCopyInto

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

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

type ScalewayMachineTemplate

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

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

ScalewayMachineTemplate is the Schema for the scalewaymachinetemplates API.

func (*ScalewayMachineTemplate) DeepCopy

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

func (*ScalewayMachineTemplate) DeepCopyInto

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

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

func (*ScalewayMachineTemplate) DeepCopyObject

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

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

type ScalewayMachineTemplateList

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

ScalewayMachineTemplateList contains a list of ScalewayMachineTemplate.

func (*ScalewayMachineTemplateList) DeepCopy

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

func (*ScalewayMachineTemplateList) DeepCopyInto

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

func (*ScalewayMachineTemplateList) DeepCopyObject

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

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

type ScalewayMachineTemplateResource

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

func (*ScalewayMachineTemplateResource) DeepCopy

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

func (*ScalewayMachineTemplateResource) DeepCopyInto

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

type ScalewayMachineTemplateSpec

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

ScalewayMachineTemplateSpec defines the desired state of ScalewayMachineTemplate.

func (*ScalewayMachineTemplateSpec) DeepCopy

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

func (*ScalewayMachineTemplateSpec) DeepCopyInto

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

type ScalewayManagedCluster added in v0.1.3

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"`

	// 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 added in v0.1.3

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

func (*ScalewayManagedCluster) DeepCopyInto added in v0.1.3

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 added in v0.1.3

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

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

type ScalewayManagedClusterList added in v0.1.3

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 added in v0.1.3

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

func (*ScalewayManagedClusterList) DeepCopyInto added in v0.1.3

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

func (*ScalewayManagedClusterList) DeepCopyObject added in v0.1.3

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

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

type ScalewayManagedClusterSpec added in v0.1.3

type ScalewayManagedClusterSpec struct {
	// Region where the managed cluster will be created.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	// +kubebuilder:validation:MinLength:=2
	Region string `json:"region"`

	// ProjectID in which the managed cluster will be created.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	// +kubebuilder:validation:MinLength:=2
	ProjectID string `json:"projectID"`

	// 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.
	// +kubebuilder:validation:MinLength:=1
	ScalewaySecretName string `json:"scalewaySecretName"`

	// Network defines the network configuration of the managed cluster.
	// +optional
	Network *ManagedNetworkSpec `json:"network,omitempty"`

	// ControlPlaneEndpoint represents the endpoint used to communicate with the control plane.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	// +optional
	ControlPlaneEndpoint clusterv1.APIEndpoint `json:"controlPlaneEndpoint,omitempty,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 added in v0.1.3

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

func (*ScalewayManagedClusterSpec) DeepCopyInto added in v0.1.3

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

type ScalewayManagedClusterStatus added in v0.1.3

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

	// Network contains information about currently provisioned network resources.
	// +optional
	Network *ManagedNetworkStatus `json:"network,omitempty"`
}

ScalewayManagedClusterStatus defines the observed state of ScalewayManagedCluster.

func (*ScalewayManagedClusterStatus) DeepCopy added in v0.1.3

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

func (*ScalewayManagedClusterStatus) DeepCopyInto added in v0.1.3

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

type ScalewayManagedControlPlane added in v0.1.3

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"`

	// 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 added in v0.1.3

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

func (*ScalewayManagedControlPlane) DeepCopyInto added in v0.1.3

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

func (*ScalewayManagedControlPlane) DeepCopyObject added in v0.1.3

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

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

type ScalewayManagedControlPlaneList added in v0.1.3

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 added in v0.1.3

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

func (*ScalewayManagedControlPlaneList) DeepCopyInto added in v0.1.3

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

func (*ScalewayManagedControlPlaneList) DeepCopyObject added in v0.1.3

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

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

type ScalewayManagedControlPlaneSpec added in v0.1.3

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.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	// +kubebuilder:validation:MaxLength:=100
	// +optional
	ClusterName *string `json:"clusterName,omitempty"`

	// Type of the cluster (e.g. kapsule, multicloud, etc.).
	// +kubebuilder:default="kapsule"
	Type string `json:"type"`

	// Version defines the desired Kubernetes version.
	// +kubebuilder:validation:MinLength:=2
	Version string `json:"version"`

	// CNI plugin running in the cluster.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	// +kubebuilder:validation:Enum=cilium;calico;kilo;none
	// +optional
	CNI *string `json:"cni,omitempty"`

	// AdditionalTags that will be added to the default tags.
	// +optional
	AdditionalTags []string `json:"additionalTags,omitempty"`

	// Autoscaler configuration of the cluster.
	// +optional
	Autoscaler *AutoscalerSpec `json:"autoscaler,omitempty"`

	// AutoUpgrade configuration of the cluster.
	// +optional
	AutoUpgrade *AutoUpgradeSpec `json:"autoUpgrade,omitempty"`

	// Feature gates to enable.
	// +optional
	FeatureGates []string `json:"featureGates,omitempty"`

	// Admission plugins to enable.
	// +optional
	AdmissionPlugins []string `json:"admissionPlugins,omitempty"`

	// OpenIDConnect defines the OpenID Connect configuration of the Kubernetes API server.
	OpenIDConnect *OpenIDConnectSpec `json:"openIDConnect,omitempty"`

	// APIServerCertSANs defines additional Subject Alternative Names for the
	// Kubernetes API server certificate.
	// +optional
	APIServerCertSANs []string `json:"apiServerCertSANs,omitempty"`

	// OnDelete configures the settings to apply when deleting the Scaleway managed cluster.
	// +optional
	OnDelete *OnDeleteSpec `json:"onDelete,omitempty"`

	// ACLSpec configures the ACLs of the managed cluster. If not set, ACLs
	// will be set to 0.0.0.0/0.
	// +optional
	ACL *ACLSpec `json:"acl,omitempty"`

	// EnablePrivateEndpoint defines whether the apiserver's internal address
	// is used as the cluster endpoint.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	// +optional
	EnablePrivateEndpoint *bool `json:"enablePrivateEndpoint,omitempty"`

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

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 added in v0.1.3

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

func (*ScalewayManagedControlPlaneSpec) DeepCopyInto added in v0.1.3

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

type ScalewayManagedControlPlaneStatus added in v0.1.3

type ScalewayManagedControlPlaneStatus struct {
	// Ready is true when the provider resource is ready.
	// +optional
	Ready bool `json:"ready,omitempty"`

	// Initialized is true when the control plane is available for initial contact.
	// This may occur before the control plane is fully ready.
	// In the AzureManagedControlPlane implementation, these are identical.
	// +optional
	Initialized bool `json:"initialized,omitempty"`

	// ExternalManagedControlPlane is a bool that should be set to true if the
	// Node objects do not exist in the cluster.
	// +kubebuilder:default=true
	// +optional
	ExternalManagedControlPlane bool `json:"externalManagedControlPlane,omitempty"`

	// Version represents the version of the Scaleway managed control plane.
	// +optional
	Version *string `json:"version,omitempty"`
}

ScalewayManagedControlPlaneStatus defines the observed state of ScalewayManagedControlPlane.

func (*ScalewayManagedControlPlaneStatus) DeepCopy added in v0.1.3

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

func (*ScalewayManagedControlPlaneStatus) DeepCopyInto added in v0.1.3

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

type ScalewayManagedMachinePool added in v0.1.3

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"`

	// 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 added in v0.1.3

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

func (*ScalewayManagedMachinePool) DeepCopyInto added in v0.1.3

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

func (*ScalewayManagedMachinePool) DeepCopyObject added in v0.1.3

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

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

type ScalewayManagedMachinePoolList added in v0.1.3

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 added in v0.1.3

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

func (*ScalewayManagedMachinePoolList) DeepCopyInto added in v0.1.3

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

func (*ScalewayManagedMachinePoolList) DeepCopyObject added in v0.1.3

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

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

type ScalewayManagedMachinePoolSpec added in v0.1.3

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.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	// +kubebuilder:validation:MinLength:=2
	NodeType string `json:"nodeType"`

	// Zone in which the pool's nodes will be spawned.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	// +kubebuilder:validation:MinLength:=2
	Zone string `json:"zone"`

	// PlacementGroupID in which all the nodes of the pool will be created,
	// placement groups are limited to 20 instances.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	// +optional
	PlacementGroupID *string `json:"placementGroupID,omitempty"`

	// Scaling configures the scaling of the pool.
	// +optional
	Scaling *ScalingSpec `json:"scaling,omitempty"`

	// 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
	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 *UpgradePolicySpec `json:"upgradePolicy,omitempty"`

	// RootVolumeType is the system volume disk type.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	// +kubebuilder:validation:Enum=l_ssd;sbs_5k;sbs_15k
	// +optional
	RootVolumeType *string `json:"rootVolumeType,omitempty"`

	// RootVolumeSizeGB is the size of the System volume disk size, in GB.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	// +optional
	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.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	// +optional
	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.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	// +optional
	SecurityGroupID *string `json:"securityGroupID,omitempty"`

	// ProviderIDList are the provider IDs of instances in the
	// managed instance group corresponding to the nodegroup represented by this
	// machine pool
	// +optional
	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 added in v0.1.3

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

func (*ScalewayManagedMachinePoolSpec) DeepCopyInto added in v0.1.3

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

type ScalewayManagedMachinePoolStatus added in v0.1.3

type ScalewayManagedMachinePoolStatus struct {
	// Ready denotes that the ScalewayManagedMachinePool has joined the cluster
	// +kubebuilder:default=false
	Ready bool `json:"ready"`
	// Replicas is the most recently observed number of replicas.
	// +optional
	Replicas int32 `json:"replicas"`
}

ScalewayManagedMachinePoolStatus defines the observed state of ScalewayManagedMachinePool.

func (*ScalewayManagedMachinePoolStatus) DeepCopy added in v0.1.3

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

func (*ScalewayManagedMachinePoolStatus) DeepCopyInto added in v0.1.3

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

type ScalingSpec added in v0.1.3

type ScalingSpec 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
	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
	MaxSize *int32 `json:"maxSize,omitempty"`
}

ScalingSpec defines the scaling parameters of the pool.

func (*ScalingSpec) DeepCopy added in v0.1.3

func (in *ScalingSpec) DeepCopy() *ScalingSpec

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

func (*ScalingSpec) DeepCopyInto added in v0.1.3

func (in *ScalingSpec) DeepCopyInto(out *ScalingSpec)

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

type SecurityGroupSpec added in v0.1.1

type SecurityGroupSpec struct {
	// ID of the security group.
	// +optional
	ID *string `json:"id,omitempty"`
	// +optional
	// Name of the security group.
	Name *string `json:"name,omitempty"`
}

SecurityGroupSpec contains an ID or Name of an existing Security Group. +kubebuilder:validation:XValidation:rule="(has(self.id) ? 1 : 0) + (has(self.name) ? 1 : 0) == 1",message="exactly one of id or name must be set"

func (*SecurityGroupSpec) DeepCopy added in v0.1.1

func (in *SecurityGroupSpec) DeepCopy() *SecurityGroupSpec

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

func (*SecurityGroupSpec) DeepCopyInto added in v0.1.1

func (in *SecurityGroupSpec) DeepCopyInto(out *SecurityGroupSpec)

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

type UpgradePolicySpec added in v0.1.3

type UpgradePolicySpec struct {
	// MaxUnavailable is the maximum number of available nodes during upgrades.
	// +kubebuilder:validation:Minimum=0
	// +optional
	MaxUnavailable *int32 `json:"maxUnavailable,omitempty"`

	// MaxSurge is the maximum number of additional nodes that can be provisioned
	// during upgrades.
	// +kubebuilder:validation:Minimum=0
	// +optional
	MaxSurge *int32 `json:"maxSurge,omitempty"`
}

UpgradePolicySpec defines the pool's upgrade policy.

func (*UpgradePolicySpec) DeepCopy added in v0.1.3

func (in *UpgradePolicySpec) DeepCopy() *UpgradePolicySpec

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

func (*UpgradePolicySpec) DeepCopyInto added in v0.1.3

func (in *UpgradePolicySpec) DeepCopyInto(out *UpgradePolicySpec)

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