v1beta2

package
v2.7.1 Latest Latest
Warning

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

Go to latest
Published: Oct 28, 2024 License: Apache-2.0 Imports: 24 Imported by: 17

Documentation

Overview

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

Index

Constants

View Source
const (
	// ASGReadyCondition reports on current status of the autoscaling group. Ready indicates the group is provisioned.
	ASGReadyCondition clusterv1.ConditionType = "ASGReady"
	// ASGNotFoundReason used when the autoscaling group couldn't be retrieved.
	ASGNotFoundReason = "ASGNotFound"
	// ASGProvisionFailedReason used for failures during autoscaling group provisioning.
	ASGProvisionFailedReason = "ASGProvisionFailed"
	// ASGDeletionInProgress ASG is in a deletion in progress state.
	ASGDeletionInProgress = "ASGDeletionInProgress"

	// LaunchTemplateReadyCondition represents the status of an AWSMachinePool's associated Launch Template.
	LaunchTemplateReadyCondition clusterv1.ConditionType = "LaunchTemplateReady"
	// LaunchTemplateNotFoundReason is used when an associated Launch Template can't be found.
	LaunchTemplateNotFoundReason = "LaunchTemplateNotFound"
	// LaunchTemplateCreateFailedReason used for failures during Launch Template creation.
	LaunchTemplateCreateFailedReason = "LaunchTemplateCreateFailed"
	// LaunchTemplateReconcileFailedReason used for failures during Launch Template reconciliation.
	LaunchTemplateReconcileFailedReason = "LaunchTemplateReconcileFailed"

	// PreLaunchTemplateUpdateCheckCondition reports if all prerequisite are met for launch template update.
	PreLaunchTemplateUpdateCheckCondition clusterv1.ConditionType = "PreLaunchTemplateUpdateCheckSuccess"
	// PostLaunchTemplateUpdateOperationCondition reports on successfully completes post launch template update operation.
	PostLaunchTemplateUpdateOperationCondition clusterv1.ConditionType = "PostLaunchTemplateUpdateOperationSuccess"

	// PreLaunchTemplateUpdateCheckFailedReason used to report when not all prerequisite are met for launch template update.
	PreLaunchTemplateUpdateCheckFailedReason = "PreLaunchTemplateUpdateCheckFailed"
	// PostLaunchTemplateUpdateOperationFailedReason used to report when post launch template update operation failed.
	PostLaunchTemplateUpdateOperationFailedReason = "PostLaunchTemplateUpdateOperationFailed"

	// InstanceRefreshStartedCondition reports on successfully starting instance refresh.
	InstanceRefreshStartedCondition clusterv1.ConditionType = "InstanceRefreshStarted"
	// InstanceRefreshNotReadyReason used to report instance refresh is not initiated.
	// If there are instance refreshes that are in progress, then a new instance refresh request will fail.
	InstanceRefreshNotReadyReason = "InstanceRefreshNotReady"
	// InstanceRefreshFailedReason used to report when there instance refresh is not initiated.
	InstanceRefreshFailedReason = "InstanceRefreshFailed"
)
View Source
const (
	// EKSNodegroupReadyCondition condition reports on the successful reconciliation of eks control plane.
	EKSNodegroupReadyCondition clusterv1.ConditionType = "EKSNodegroupReady"
	// EKSNodegroupReconciliationFailedReason used to report failures while reconciling EKS control plane.
	EKSNodegroupReconciliationFailedReason = "EKSNodegroupReconciliationFailed"
	// WaitingForEKSControlPlaneReason used when the machine pool is waiting for
	// EKS control plane infrastructure to be ready before proceeding.
	WaitingForEKSControlPlaneReason = "WaitingForEKSControlPlane"
)
View Source
const (
	// EKSFargateProfileReadyCondition condition reports on the successful reconciliation of eks control plane.
	EKSFargateProfileReadyCondition clusterv1.ConditionType = "EKSFargateProfileReady"
	// EKSFargateCreatingCondition condition reports on whether the fargate
	// profile is creating.
	EKSFargateCreatingCondition clusterv1.ConditionType = "EKSFargateCreating"
	// EKSFargateDeletingCondition used to report that the profile is deleting.
	EKSFargateDeletingCondition = "EKSFargateDeleting"
	// EKSFargateReconciliationFailedReason used to report failures while reconciling EKS control plane.
	EKSFargateReconciliationFailedReason = "EKSFargateReconciliationFailed"
	// EKSFargateDeletingReason used when the profile is deleting.
	EKSFargateDeletingReason = "Deleting"
	// EKSFargateCreatingReason used when the profile is creating.
	EKSFargateCreatingReason = "Creating"
	// EKSFargateCreatedReason used when the profile is created.
	EKSFargateCreatedReason = "Created"
	// EKSFargateDeletedReason used when the profile is deleted.
	EKSFargateDeletedReason = "Deleted"
	// EKSFargateFailedReason used when the profile failed.
	EKSFargateFailedReason = "Failed"
)
View Source
const (
	// IAMNodegroupRolesReadyCondition condition reports on the successful
	// reconciliation of EKS nodegroup iam roles.
	IAMNodegroupRolesReadyCondition clusterv1.ConditionType = "IAMNodegroupRolesReady"
	// IAMNodegroupRolesReconciliationFailedReason used to report failures while
	// reconciling EKS nodegroup iam roles.
	IAMNodegroupRolesReconciliationFailedReason = "IAMNodegroupRolesReconciliationFailed"
	// IAMFargateRolesReadyCondition condition reports on the successful
	// reconciliation of EKS nodegroup iam roles.
	IAMFargateRolesReadyCondition clusterv1.ConditionType = "IAMFargateRolesReady"
	// IAMFargateRolesReconciliationFailedReason used to report failures while
	// reconciling EKS nodegroup iam roles.
	IAMFargateRolesReconciliationFailedReason = "IAMFargateRolesReconciliationFailed"
)
View Source
const (
	// RosaMachinePoolReadyCondition condition reports on the successful reconciliation of rosa machinepool.
	RosaMachinePoolReadyCondition clusterv1.ConditionType = "RosaMchinePoolReady"
	// RosaMachinePoolUpgradingCondition condition reports whether ROSAMachinePool is upgrading or not.
	RosaMachinePoolUpgradingCondition clusterv1.ConditionType = "RosaMchinePoolUpgrading"

	// WaitingForRosaControlPlaneReason used when the machine pool is waiting for
	// ROSA control plane infrastructure to be ready before proceeding.
	WaitingForRosaControlPlaneReason = "WaitingForRosaControlPlane"

	// RosaMachinePoolReconciliationFailedReason used to report failures while reconciling ROSAMachinePool.
	RosaMachinePoolReconciliationFailedReason = "ReconciliationFailed"
)
View Source
const (
	// FargateProfileFinalizer allows the controller to clean up resources on delete.
	FargateProfileFinalizer = "awsfargateprofile.infrastructure.cluster.x-k8s.io"

	// MachinePoolFinalizer is the finalizer for the machine pool.
	MachinePoolFinalizer = "awsmachinepool.infrastructure.cluster.x-k8s.io"

	// ManagedMachinePoolFinalizer allows the controller to clean up resources on delete.
	ManagedMachinePoolFinalizer = "awsmanagedmachinepools.infrastructure.cluster.x-k8s.io"

	// RosaMachinePoolFinalizer allows the controller to clean up resources on delete.
	RosaMachinePoolFinalizer = "rosamachinepools.infrastructure.cluster.x-k8s.io"
)
View Source
const (
	// LaunchTemplateLatestVersion defines the launching of the latest version of the template.
	LaunchTemplateLatestVersion = "$Latest"
)

Constants block.

Variables

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

	// 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
)
View Source
var (
	// OnDemandAllocationStrategyPrioritized uses the order of instance type overrides
	// for the LaunchTemplate to define the launch priority of each instance type.
	OnDemandAllocationStrategyPrioritized = OnDemandAllocationStrategy("prioritized")

	// OnDemandAllocationStrategyLowestPrice will make the Auto Scaling group launch
	// instances using the On-Demand pools with the lowest price, and evenly allocates
	// your instances across the On-Demand pools that you specify.
	OnDemandAllocationStrategyLowestPrice = OnDemandAllocationStrategy("lowest-price")
)
View Source
var (
	// SpotAllocationStrategyLowestPrice will make the Auto Scaling group launch
	// instances using the Spot pools with the lowest price, and evenly allocates
	// your instances across the number of Spot pools that you specify.
	SpotAllocationStrategyLowestPrice = SpotAllocationStrategy("lowest-price")

	// SpotAllocationStrategyCapacityOptimized will make the Auto Scaling group launch
	// instances using Spot pools that are optimally chosen based on the available Spot capacity.
	SpotAllocationStrategyCapacityOptimized = SpotAllocationStrategy("capacity-optimized")

	// SpotAllocationStrategyCapacityOptimizedPrioritized will make the Auto Scaling group launch
	// instances using Spot pools that are optimally chosen based on the available Spot capacity
	// while also taking into account the priority order specified by the user for Instance Types.
	SpotAllocationStrategyCapacityOptimizedPrioritized = SpotAllocationStrategy("capacity-optimized-prioritized")

	// SpotAllocationStrategyPriceCapacityOptimized will make the Auto Scaling group launch
	// instances using Spot pools that consider both price and available Spot capacity to
	// provide a balance between cost savings and allocation reliability.
	SpotAllocationStrategyPriceCapacityOptimized = SpotAllocationStrategy("price-capacity-optimized")
)
View Source
var (
	// TaintEffectNoSchedule is a taint that indicates that a pod shouldn't be scheduled on a node
	// unless it can tolerate the taint.
	TaintEffectNoSchedule = TaintEffect("no-schedule")
	// TaintEffectNoExecute is a taint that indicates that a pod shouldn't be schedule on a node
	// unless it can tolerate it. And if its already running on the node it will be evicted.
	TaintEffectNoExecute = TaintEffect("no-execute")
	// TaintEffectPreferNoSchedule is a taint that indicates that there is a "preference" that pods shouldn't
	// be scheduled on a node unless it can tolerate the taint. the scheduler will try to avoid placing the pod
	// but it may still run on the node if there is no other option.
	TaintEffectPreferNoSchedule = TaintEffect("prefer-no-schedule")
)
View Source
var ASGStatusDeleteInProgress = ASGStatus("Delete in progress")

ASGStatusDeleteInProgress is the string representing an ASG that is currently deleting.

View Source
var (
	// DefaultEKSFargateRole is the name of the default IAM role to use for fargate
	// profiles if no other role is supplied in the spec and if iam role creation
	// is not enabled. The default can be created using clusterawsadm or created manually.
	DefaultEKSFargateRole = fmt.Sprintf("eks-fargate%s", iamv1.DefaultNameSuffix)
)
View Source
var (
	// DefaultEKSNodegroupRole is the name of the default IAM role to use for EKS nodegroups
	// if no other role is supplied in the spec and if iam role creation is not enabled. The default
	// can be created using clusterawsadm or created manually.
	DefaultEKSNodegroupRole = fmt.Sprintf("eks-nodegroup%s", iamv1.DefaultNameSuffix)
)

Functions

func RegisterDefaults

func RegisterDefaults(scheme *runtime.Scheme) error

RegisterDefaults adds defaulters functions to the given scheme. Public to allow building arbitrary schemes. All generated defaulters are covering - they call all nested defaulters.

Types

type ASGStatus

type ASGStatus string

ASGStatus is a status string returned by the autoscaling API.

type AWSFargateProfile

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

	Spec   FargateProfileSpec   `json:"spec,omitempty"`
	Status FargateProfileStatus `json:"status,omitempty"`
}

AWSFargateProfile is the Schema for the awsfargateprofiles API.

func (*AWSFargateProfile) DeepCopy

func (in *AWSFargateProfile) DeepCopy() *AWSFargateProfile

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

func (*AWSFargateProfile) DeepCopyInto

func (in *AWSFargateProfile) DeepCopyInto(out *AWSFargateProfile)

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

func (*AWSFargateProfile) DeepCopyObject

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

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

func (*AWSFargateProfile) Default

func (r *AWSFargateProfile) Default()

Default will set default values for the AWSFargateProfile.

func (*AWSFargateProfile) GetConditions

func (r *AWSFargateProfile) GetConditions() clusterv1.Conditions

GetConditions returns the observations of the operational state of the AWSFargateProfile resource.

func (*AWSFargateProfile) Hub

func (*AWSFargateProfile) Hub()

Hub marks AWSFargateProfile as a conversion hub.

func (*AWSFargateProfile) SetConditions

func (r *AWSFargateProfile) SetConditions(conditions clusterv1.Conditions)

SetConditions sets the underlying service state of the AWSFargateProfile to the predescribed clusterv1.Conditions.

func (*AWSFargateProfile) SetupWebhookWithManager

func (r *AWSFargateProfile) SetupWebhookWithManager(mgr ctrl.Manager) error

SetupWebhookWithManager will setup the webhooks for the AWSFargateProfile.

func (*AWSFargateProfile) ValidateCreate

func (r *AWSFargateProfile) ValidateCreate() (admission.Warnings, error)

ValidateCreate implements webhook.Validator so a webhook will be registered for the type.

func (*AWSFargateProfile) ValidateDelete

func (r *AWSFargateProfile) ValidateDelete() (admission.Warnings, error)

ValidateDelete implements webhook.Validator so a webhook will be registered for the type.

func (*AWSFargateProfile) ValidateUpdate

func (r *AWSFargateProfile) ValidateUpdate(oldObj runtime.Object) (admission.Warnings, error)

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type.

type AWSFargateProfileList

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

AWSFargateProfileList contains a list of FargateProfiles.

func (*AWSFargateProfileList) DeepCopy

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

func (*AWSFargateProfileList) DeepCopyInto

func (in *AWSFargateProfileList) DeepCopyInto(out *AWSFargateProfileList)

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

func (*AWSFargateProfileList) DeepCopyObject

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

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

func (*AWSFargateProfileList) Hub

func (*AWSFargateProfileList) Hub()

Hub marks AWSFargateProfileList as a conversion hub.

type AWSLaunchTemplate

type AWSLaunchTemplate struct {
	// The name of the launch template.
	Name string `json:"name,omitempty"`

	// The name or the Amazon Resource Name (ARN) of the instance profile associated
	// with the IAM role for the instance. The instance profile contains the IAM
	// role.
	IamInstanceProfile string `json:"iamInstanceProfile,omitempty"`

	// AMI is the reference to the AMI from which to create the machine instance.
	// +optional
	AMI infrav1.AMIReference `json:"ami,omitempty"`

	// ImageLookupFormat is the AMI naming format to look up the image for this
	// machine It will be ignored if an explicit AMI is set. Supports
	// substitutions for {{.BaseOS}} and {{.K8sVersion}} with the base OS and
	// kubernetes version, respectively. The BaseOS will be the value in
	// ImageLookupBaseOS or ubuntu (the default), and the kubernetes version as
	// defined by the packages produced by kubernetes/release without v as a
	// prefix: 1.13.0, 1.12.5-mybuild.1, or 1.17.3. For example, the default
	// image format of capa-ami-{{.BaseOS}}-?{{.K8sVersion}}-* will end up
	// searching for AMIs that match the pattern capa-ami-ubuntu-?1.18.0-* for a
	// Machine that is targeting kubernetes v1.18.0 and the ubuntu base OS. See
	// also: https://golang.org/pkg/text/template/
	// +optional
	ImageLookupFormat string `json:"imageLookupFormat,omitempty"`

	// ImageLookupOrg is the AWS Organization ID to use for image lookup if AMI is not set.
	ImageLookupOrg string `json:"imageLookupOrg,omitempty"`

	// ImageLookupBaseOS is the name of the base operating system to use for
	// image lookup the AMI is not set.
	ImageLookupBaseOS string `json:"imageLookupBaseOS,omitempty"`

	// InstanceType is the type of instance to create. Example: m4.xlarge
	InstanceType string `json:"instanceType,omitempty"`

	// RootVolume encapsulates the configuration options for the root volume
	// +optional
	RootVolume *infrav1.Volume `json:"rootVolume,omitempty"`

	// Configuration options for the non root storage volumes.
	// +optional
	NonRootVolumes []infrav1.Volume `json:"nonRootVolumes,omitempty"`

	// SSHKeyName is the name of the ssh key to attach to the instance. Valid values are empty string
	// (do not use SSH keys), a valid SSH key name, or omitted (use the default SSH key name)
	// +optional
	SSHKeyName *string `json:"sshKeyName,omitempty"`

	// VersionNumber is the version of the launch template that is applied.
	// Typically a new version is created when at least one of the following happens:
	// 1) A new launch template spec is applied.
	// 2) One or more parameters in an existing template is changed.
	// 3) A new AMI is discovered.
	VersionNumber *int64 `json:"versionNumber,omitempty"`

	// AdditionalSecurityGroups is an array of references to security groups that should be applied to the
	// instances. These security groups would be set in addition to any security groups defined
	// at the cluster level or in the actuator.
	// +optional
	AdditionalSecurityGroups []infrav1.AWSResourceReference `json:"additionalSecurityGroups,omitempty"`

	// SpotMarketOptions are options for configuring AWSMachinePool instances to be run using AWS Spot instances.
	SpotMarketOptions *infrav1.SpotMarketOptions `json:"spotMarketOptions,omitempty"`

	// InstanceMetadataOptions defines the behavior for applying metadata to instances.
	// +optional
	InstanceMetadataOptions *infrav1.InstanceMetadataOptions `json:"instanceMetadataOptions,omitempty"`

	// PrivateDNSName is the options for the instance hostname.
	// +optional
	PrivateDNSName *infrav1.PrivateDNSName `json:"privateDnsName,omitempty"`
}

AWSLaunchTemplate defines the desired state of AWSLaunchTemplate.

func (*AWSLaunchTemplate) DeepCopy

func (in *AWSLaunchTemplate) DeepCopy() *AWSLaunchTemplate

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

func (*AWSLaunchTemplate) DeepCopyInto

func (in *AWSLaunchTemplate) DeepCopyInto(out *AWSLaunchTemplate)

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

type AWSMachinePool

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

	Spec   AWSMachinePoolSpec   `json:"spec,omitempty"`
	Status AWSMachinePoolStatus `json:"status,omitempty"`
}

AWSMachinePool is the Schema for the awsmachinepools API.

func (*AWSMachinePool) DeepCopy

func (in *AWSMachinePool) DeepCopy() *AWSMachinePool

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

func (*AWSMachinePool) DeepCopyInto

func (in *AWSMachinePool) DeepCopyInto(out *AWSMachinePool)

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

func (*AWSMachinePool) DeepCopyObject

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

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

func (*AWSMachinePool) Default

func (r *AWSMachinePool) Default()

Default will set default values for the AWSMachinePool.

func (*AWSMachinePool) GetConditions

func (r *AWSMachinePool) GetConditions() clusterv1.Conditions

GetConditions returns the observations of the operational state of the AWSMachinePool resource.

func (*AWSMachinePool) GetObjectKind

func (r *AWSMachinePool) GetObjectKind() schema.ObjectKind

GetObjectKind will return the ObjectKind of an AWSMachinePool.

func (*AWSMachinePool) Hub

func (*AWSMachinePool) Hub()

Hub marks AWSMachinePool as a conversion hub.

func (*AWSMachinePool) SetConditions

func (r *AWSMachinePool) SetConditions(conditions clusterv1.Conditions)

SetConditions sets the underlying service state of the AWSMachinePool to the predescribed clusterv1.Conditions.

func (*AWSMachinePool) SetupWebhookWithManager

func (r *AWSMachinePool) SetupWebhookWithManager(mgr ctrl.Manager) error

SetupWebhookWithManager will setup the webhooks for the AWSMachinePool.

func (*AWSMachinePool) ValidateCreate

func (r *AWSMachinePool) ValidateCreate() (admission.Warnings, error)

ValidateCreate will do any extra validation when creating a AWSMachinePool.

func (*AWSMachinePool) ValidateDelete

func (r *AWSMachinePool) ValidateDelete() (admission.Warnings, error)

ValidateDelete allows you to add any extra validation when deleting.

func (*AWSMachinePool) ValidateUpdate

func (r *AWSMachinePool) ValidateUpdate(_ runtime.Object) (admission.Warnings, error)

ValidateUpdate will do any extra validation when updating a AWSMachinePool.

type AWSMachinePoolInstanceStatus

type AWSMachinePoolInstanceStatus struct {
	// InstanceID is the identification of the Machine Instance within ASG
	// +optional
	InstanceID string `json:"instanceID,omitempty"`

	// Version defines the Kubernetes version for the Machine Instance
	// +optional
	Version *string `json:"version,omitempty"`
}

AWSMachinePoolInstanceStatus defines the status of the AWSMachinePoolInstance.

func (*AWSMachinePoolInstanceStatus) DeepCopy

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

func (*AWSMachinePoolInstanceStatus) DeepCopyInto

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

type AWSMachinePoolList

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

AWSMachinePoolList contains a list of AWSMachinePool.

func (*AWSMachinePoolList) DeepCopy

func (in *AWSMachinePoolList) DeepCopy() *AWSMachinePoolList

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

func (*AWSMachinePoolList) DeepCopyInto

func (in *AWSMachinePoolList) DeepCopyInto(out *AWSMachinePoolList)

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

func (*AWSMachinePoolList) DeepCopyObject

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

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

func (*AWSMachinePoolList) GetObjectKind

func (r *AWSMachinePoolList) GetObjectKind() schema.ObjectKind

GetObjectKind will return the ObjectKind of an AWSMachinePoolList.

func (*AWSMachinePoolList) Hub

func (*AWSMachinePoolList) Hub()

Hub marks AWSMachinePoolList as a conversion hub.

type AWSMachinePoolSpec

type AWSMachinePoolSpec struct {
	// ProviderID is the ARN of the associated ASG
	// +optional
	ProviderID string `json:"providerID,omitempty"`

	// MinSize defines the minimum size of the group.
	// +kubebuilder:default=1
	// +kubebuilder:validation:Minimum=0
	MinSize int32 `json:"minSize"`

	// MaxSize defines the maximum size of the group.
	// +kubebuilder:default=1
	// +kubebuilder:validation:Minimum=1
	MaxSize int32 `json:"maxSize"`

	// AvailabilityZones is an array of availability zones instances can run in
	AvailabilityZones []string `json:"availabilityZones,omitempty"`

	// AvailabilityZoneSubnetType specifies which type of subnets to use when an availability zone is specified.
	// +kubebuilder:validation:Enum:=public;private;all
	// +optional
	AvailabilityZoneSubnetType *AZSubnetType `json:"availabilityZoneSubnetType,omitempty"`

	// Subnets is an array of subnet configurations
	// +optional
	Subnets []infrav1.AWSResourceReference `json:"subnets,omitempty"`

	// AdditionalTags is an optional set of tags to add to an instance, in addition to the ones added by default by the
	// AWS provider.
	// +optional
	AdditionalTags infrav1.Tags `json:"additionalTags,omitempty"`

	// AWSLaunchTemplate specifies the launch template and version to use when an instance is launched.
	// +kubebuilder:validation:Required
	AWSLaunchTemplate AWSLaunchTemplate `json:"awsLaunchTemplate"`

	// MixedInstancesPolicy describes how multiple instance types will be used by the ASG.
	MixedInstancesPolicy *MixedInstancesPolicy `json:"mixedInstancesPolicy,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
	ProviderIDList []string `json:"providerIDList,omitempty"`

	// The amount of time, in seconds, after a scaling activity completes before another scaling activity can start.
	// If no value is supplied by user a default value of 300 seconds is set
	// +optional
	DefaultCoolDown metav1.Duration `json:"defaultCoolDown,omitempty"`

	// The amount of time, in seconds, until a new instance is considered to
	// have finished initializing and resource consumption to become stable
	// after it enters the InService state.
	// If no value is supplied by user a default value of 300 seconds is set
	// +optional
	DefaultInstanceWarmup metav1.Duration `json:"defaultInstanceWarmup,omitempty"`

	// RefreshPreferences describes set of preferences associated with the instance refresh request.
	// +optional
	RefreshPreferences *RefreshPreferences `json:"refreshPreferences,omitempty"`

	// Enable or disable the capacity rebalance autoscaling group feature
	// +optional
	CapacityRebalance bool `json:"capacityRebalance,omitempty"`

	// SuspendProcesses defines a list of processes to suspend for the given ASG. This is constantly reconciled.
	// If a process is removed from this list it will automatically be resumed.
	SuspendProcesses *SuspendProcessesTypes `json:"suspendProcesses,omitempty"`
}

AWSMachinePoolSpec defines the desired state of AWSMachinePool.

func (*AWSMachinePoolSpec) DeepCopy

func (in *AWSMachinePoolSpec) DeepCopy() *AWSMachinePoolSpec

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

func (*AWSMachinePoolSpec) DeepCopyInto

func (in *AWSMachinePoolSpec) DeepCopyInto(out *AWSMachinePoolSpec)

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

type AWSMachinePoolStatus

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

	// Replicas is the most recently observed number of replicas
	// +optional
	Replicas int32 `json:"replicas"`

	// Conditions defines current service state of the AWSMachinePool.
	// +optional
	Conditions clusterv1.Conditions `json:"conditions,omitempty"`

	// Instances contains the status for each instance in the pool
	// +optional
	Instances []AWSMachinePoolInstanceStatus `json:"instances,omitempty"`

	// The ID of the launch template
	LaunchTemplateID string `json:"launchTemplateID,omitempty"`

	// The version of the launch template
	// +optional
	LaunchTemplateVersion *string `json:"launchTemplateVersion,omitempty"`

	// FailureReason will be set in the event that there is a terminal problem
	// reconciling the Machine and will contain a succinct value suitable
	// for machine interpretation.
	//
	// This field should not be set for transitive errors that a controller
	// faces that are expected to be fixed automatically over
	// time (like service outages), but instead indicate that something is
	// fundamentally wrong with the Machine's spec or the configuration of
	// the controller, and that manual intervention is required. Examples
	// of terminal errors would be invalid combinations of settings in the
	// spec, values that are unsupported by the controller, or the
	// responsible controller itself being critically misconfigured.
	//
	// Any transient errors that occur during the reconciliation of Machines
	// can be added as events to the Machine object and/or logged in the
	// controller's output.
	// +optional
	FailureReason *errors.MachineStatusError `json:"failureReason,omitempty"`

	// FailureMessage will be set in the event that there is a terminal problem
	// reconciling the Machine and will contain a more verbose string suitable
	// for logging and human consumption.
	//
	// This field should not be set for transitive errors that a controller
	// faces that are expected to be fixed automatically over
	// time (like service outages), but instead indicate that something is
	// fundamentally wrong with the Machine's spec or the configuration of
	// the controller, and that manual intervention is required. Examples
	// of terminal errors would be invalid combinations of settings in the
	// spec, values that are unsupported by the controller, or the
	// responsible controller itself being critically misconfigured.
	//
	// Any transient errors that occur during the reconciliation of Machines
	// can be added as events to the Machine object and/or logged in the
	// controller's output.
	// +optional
	FailureMessage *string `json:"failureMessage,omitempty"`

	ASGStatus *ASGStatus `json:"asgStatus,omitempty"`
}

AWSMachinePoolStatus defines the observed state of AWSMachinePool.

func (*AWSMachinePoolStatus) DeepCopy

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

func (*AWSMachinePoolStatus) DeepCopyInto

func (in *AWSMachinePoolStatus) DeepCopyInto(out *AWSMachinePoolStatus)

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

type AWSManagedMachinePool

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

	Spec   AWSManagedMachinePoolSpec   `json:"spec,omitempty"`
	Status AWSManagedMachinePoolStatus `json:"status,omitempty"`
}

AWSManagedMachinePool is the Schema for the awsmanagedmachinepools API.

func (*AWSManagedMachinePool) DeepCopy

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

func (*AWSManagedMachinePool) DeepCopyInto

func (in *AWSManagedMachinePool) DeepCopyInto(out *AWSManagedMachinePool)

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

func (*AWSManagedMachinePool) DeepCopyObject

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

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

func (*AWSManagedMachinePool) Default

func (r *AWSManagedMachinePool) Default()

Default will set default values for the AWSManagedMachinePool.

func (*AWSManagedMachinePool) GetConditions

func (r *AWSManagedMachinePool) GetConditions() clusterv1.Conditions

GetConditions returns the observations of the operational state of the AWSManagedMachinePool resource.

func (*AWSManagedMachinePool) Hub

func (*AWSManagedMachinePool) Hub()

Hub marks AWSManagedMachinePool as a conversion hub.

func (*AWSManagedMachinePool) SetConditions

func (r *AWSManagedMachinePool) SetConditions(conditions clusterv1.Conditions)

SetConditions sets the underlying service state of the AWSManagedMachinePool to the predescribed clusterv1.Conditions.

func (*AWSManagedMachinePool) SetupWebhookWithManager

func (r *AWSManagedMachinePool) SetupWebhookWithManager(mgr ctrl.Manager) error

SetupWebhookWithManager will setup the webhooks for the AWSManagedMachinePool.

func (*AWSManagedMachinePool) ValidateCreate

func (r *AWSManagedMachinePool) ValidateCreate() (admission.Warnings, error)

ValidateCreate will do any extra validation when creating a AWSManagedMachinePool.

func (*AWSManagedMachinePool) ValidateDelete

func (r *AWSManagedMachinePool) ValidateDelete() (admission.Warnings, error)

ValidateDelete allows you to add any extra validation when deleting.

func (*AWSManagedMachinePool) ValidateUpdate

func (r *AWSManagedMachinePool) ValidateUpdate(old runtime.Object) (admission.Warnings, error)

ValidateUpdate will do any extra validation when updating a AWSManagedMachinePool.

type AWSManagedMachinePoolList

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

AWSManagedMachinePoolList contains a list of AWSManagedMachinePools.

func (*AWSManagedMachinePoolList) DeepCopy

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

func (*AWSManagedMachinePoolList) DeepCopyInto

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

func (*AWSManagedMachinePoolList) DeepCopyObject

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

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

func (*AWSManagedMachinePoolList) Hub

Hub marks AWSManagedMachinePoolList as a conversion hub.

type AWSManagedMachinePoolSpec

type AWSManagedMachinePoolSpec struct {
	// EKSNodegroupName specifies the name of the nodegroup in AWS
	// corresponding to this MachinePool. If you don't specify a name
	// then a default name will be created based on the namespace and
	// name of the managed machine pool.
	// +optional
	EKSNodegroupName string `json:"eksNodegroupName,omitempty"`

	// AvailabilityZones is an array of availability zones instances can run in
	AvailabilityZones []string `json:"availabilityZones,omitempty"`

	// AvailabilityZoneSubnetType specifies which type of subnets to use when an availability zone is specified.
	// +kubebuilder:validation:Enum:=public;private;all
	// +optional
	AvailabilityZoneSubnetType *AZSubnetType `json:"availabilityZoneSubnetType,omitempty"`

	// SubnetIDs specifies which subnets are used for the
	// auto scaling group of this nodegroup
	// +optional
	SubnetIDs []string `json:"subnetIDs,omitempty"`

	// AdditionalTags is an optional set of tags to add to AWS resources managed by the AWS provider, in addition to the
	// ones added by default.
	// +optional
	AdditionalTags infrav1.Tags `json:"additionalTags,omitempty"`

	// RoleAdditionalPolicies allows you to attach additional polices to
	// the node group role. You must enable the EKSAllowAddRoles
	// feature flag to incorporate these into the created role.
	// +optional
	RoleAdditionalPolicies []string `json:"roleAdditionalPolicies,omitempty"`

	// RoleName specifies the name of IAM role for the node group.
	// If the role is pre-existing we will treat it as unmanaged
	// and not delete it on deletion. If the EKSEnableIAM feature
	// flag is true and no name is supplied then a role is created.
	// +optional
	RoleName string `json:"roleName,omitempty"`

	// AMIVersion defines the desired AMI release version. If no version number
	// is supplied then the latest version for the Kubernetes version
	// will be used
	// +kubebuilder:validation:MinLength:=2
	// +optional
	AMIVersion *string `json:"amiVersion,omitempty"`

	// AMIType defines the AMI type
	// +kubebuilder:validation:Enum:=AL2_x86_64;AL2_x86_64_GPU;AL2_ARM_64;AL2023_x86_64_STANDARD;AL2023_ARM_64_STANDARD;CUSTOM
	// +kubebuilder:default:=AL2_x86_64
	// +optional
	AMIType *ManagedMachineAMIType `json:"amiType,omitempty"`

	// Labels specifies labels for the Kubernetes node objects
	// +optional
	Labels map[string]string `json:"labels,omitempty"`

	// Taints specifies the taints to apply to the nodes of the machine pool
	// +optional
	Taints Taints `json:"taints,omitempty"`

	// DiskSize specifies the root disk size
	// +optional
	DiskSize *int32 `json:"diskSize,omitempty"`

	// InstanceType specifies the AWS instance type
	// +optional
	InstanceType *string `json:"instanceType,omitempty"`

	// Scaling specifies scaling for the ASG behind this pool
	// +optional
	Scaling *ManagedMachinePoolScaling `json:"scaling,omitempty"`

	// RemoteAccess specifies how machines can be accessed remotely
	// +optional
	RemoteAccess *ManagedRemoteAccess `json:"remoteAccess,omitempty"`

	// ProviderIDList are the provider IDs of instances in the
	// autoscaling group corresponding to the nodegroup represented by this
	// machine pool
	// +optional
	ProviderIDList []string `json:"providerIDList,omitempty"`

	// CapacityType specifies the capacity type for the ASG behind this pool
	// +kubebuilder:validation:Enum:=onDemand;spot
	// +kubebuilder:default:=onDemand
	// +optional
	CapacityType *ManagedMachinePoolCapacityType `json:"capacityType,omitempty"`

	// UpdateConfig holds the optional config to control the behaviour of the update
	// to the nodegroup.
	// +optional
	UpdateConfig *UpdateConfig `json:"updateConfig,omitempty"`

	// AWSLaunchTemplate specifies the launch template to use to create the managed node group.
	// If AWSLaunchTemplate is specified, certain node group configuraions outside of launch template
	// are prohibited (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html).
	// +optional
	AWSLaunchTemplate *AWSLaunchTemplate `json:"awsLaunchTemplate,omitempty"`
}

AWSManagedMachinePoolSpec defines the desired state of AWSManagedMachinePool.

func (*AWSManagedMachinePoolSpec) DeepCopy

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

func (*AWSManagedMachinePoolSpec) DeepCopyInto

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

type AWSManagedMachinePoolStatus

type AWSManagedMachinePoolStatus struct {
	// Ready denotes that the AWSManagedMachinePool nodegroup 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"`

	// The ID of the launch template
	// +optional
	LaunchTemplateID *string `json:"launchTemplateID,omitempty"`

	// The version of the launch template
	// +optional
	LaunchTemplateVersion *string `json:"launchTemplateVersion,omitempty"`

	// FailureReason will be set in the event that there is a terminal problem
	// reconciling the MachinePool and will contain a succinct value suitable
	// for machine interpretation.
	//
	// This field should not be set for transitive errors that a controller
	// faces that are expected to be fixed automatically over
	// time (like service outages), but instead indicate that something is
	// fundamentally wrong with the Machine's spec or the configuration of
	// the controller, and that manual intervention is required. Examples
	// of terminal errors would be invalid combinations of settings in the
	// spec, values that are unsupported by the controller, or the
	// responsible controller itself being critically misconfigured.
	//
	// Any transient errors that occur during the reconciliation of MachinePools
	// can be added as events to the MachinePool object and/or logged in the
	// controller's output.
	// +optional
	FailureReason *errors.MachineStatusError `json:"failureReason,omitempty"`

	// FailureMessage will be set in the event that there is a terminal problem
	// reconciling the MachinePool and will contain a more verbose string suitable
	// for logging and human consumption.
	//
	// This field should not be set for transitive errors that a controller
	// faces that are expected to be fixed automatically over
	// time (like service outages), but instead indicate that something is
	// fundamentally wrong with the MachinePool's spec or the configuration of
	// the controller, and that manual intervention is required. Examples
	// of terminal errors would be invalid combinations of settings in the
	// spec, values that are unsupported by the controller, or the
	// responsible controller itself being critically misconfigured.
	//
	// Any transient errors that occur during the reconciliation of MachinePools
	// can be added as events to the MachinePool object and/or logged in the
	// controller's output.
	// +optional
	FailureMessage *string `json:"failureMessage,omitempty"`

	// Conditions defines current service state of the managed machine pool
	// +optional
	Conditions clusterv1.Conditions `json:"conditions,omitempty"`
}

AWSManagedMachinePoolStatus defines the observed state of AWSManagedMachinePool.

func (*AWSManagedMachinePoolStatus) DeepCopy

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

func (*AWSManagedMachinePoolStatus) DeepCopyInto

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

type AZSubnetType added in v2.3.0

type AZSubnetType string

AZSubnetType is the type of subnet to use when an availability zone is specified.

const (
	// AZSubnetTypePublic is a public subnet.
	AZSubnetTypePublic AZSubnetType = "public"
	// AZSubnetTypePrivate is a private subnet.
	AZSubnetTypePrivate AZSubnetType = "private"
	// AZSubnetTypeAll is all subnets in an availability zone.
	AZSubnetTypeAll AZSubnetType = "all"
)

func NewAZSubnetType added in v2.3.0

func NewAZSubnetType(t AZSubnetType) *AZSubnetType

NewAZSubnetType returns a pointer to an AZSubnetType.

type AutoScalingGroup

type AutoScalingGroup struct {
	// The tags associated with the instance.
	ID                    string          `json:"id,omitempty"`
	Tags                  infrav1.Tags    `json:"tags,omitempty"`
	Name                  string          `json:"name,omitempty"`
	DesiredCapacity       *int32          `json:"desiredCapacity,omitempty"`
	MaxSize               int32           `json:"maxSize,omitempty"`
	MinSize               int32           `json:"minSize,omitempty"`
	PlacementGroup        string          `json:"placementGroup,omitempty"`
	Subnets               []string        `json:"subnets,omitempty"`
	DefaultCoolDown       metav1.Duration `json:"defaultCoolDown,omitempty"`
	DefaultInstanceWarmup metav1.Duration `json:"defaultInstanceWarmup,omitempty"`
	CapacityRebalance     bool            `json:"capacityRebalance,omitempty"`

	MixedInstancesPolicy      *MixedInstancesPolicy `json:"mixedInstancesPolicy,omitempty"`
	Status                    ASGStatus
	Instances                 []infrav1.Instance `json:"instances,omitempty"`
	CurrentlySuspendProcesses []string           `json:"currentlySuspendProcesses,omitempty"`
}

AutoScalingGroup describes an AWS autoscaling group.

func (*AutoScalingGroup) DeepCopy

func (in *AutoScalingGroup) DeepCopy() *AutoScalingGroup

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

func (*AutoScalingGroup) DeepCopyInto

func (in *AutoScalingGroup) DeepCopyInto(out *AutoScalingGroup)

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

type BlockDeviceMapping

type BlockDeviceMapping struct {
	// The device name exposed to the EC2 instance (for example, /dev/sdh or xvdh).
	// +kubebuilder:validation:Required
	DeviceName string `json:"deviceName,omitempty"`

	// You can specify either VirtualName or Ebs, but not both.
	// +optional
	Ebs EBS `json:"ebs,omitempty"`
}

BlockDeviceMapping specifies the block devices for the instance. You can specify virtual devices and EBS volumes.

func (*BlockDeviceMapping) DeepCopy

func (in *BlockDeviceMapping) DeepCopy() *BlockDeviceMapping

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

func (*BlockDeviceMapping) DeepCopyInto

func (in *BlockDeviceMapping) DeepCopyInto(out *BlockDeviceMapping)

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

type EBS

type EBS struct {
	// Encrypted is whether the volume should be encrypted or not.
	// +optional
	Encrypted bool `json:"encrypted,omitempty"`

	// The size of the volume, in GiB.
	// This can be a number from 1-1,024 for standard, 4-16,384 for io1, 1-16,384
	// for gp2, and 500-16,384 for st1 and sc1. If you specify a snapshot, the volume
	// size must be equal to or larger than the snapshot size.
	// +optional
	VolumeSize int64 `json:"volumeSize,omitempty"`

	// The volume type
	// For more information, see Amazon EBS Volume Types (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html)
	// +kubebuilder:validation:Enum=standard;io1;gp2;st1;sc1;io2
	// +optional
	VolumeType string `json:"volumeType,omitempty"`
}

EBS can be used to automatically set up EBS volumes when an instance is launched.

func (*EBS) DeepCopy

func (in *EBS) DeepCopy() *EBS

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

func (*EBS) DeepCopyInto

func (in *EBS) DeepCopyInto(out *EBS)

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

type FargateProfileSpec

type FargateProfileSpec struct {
	// ClusterName is the name of the Cluster this object belongs to.
	// +kubebuilder:validation:MinLength=1
	ClusterName string `json:"clusterName"`

	// ProfileName specifies the profile name.
	ProfileName string `json:"profileName,omitempty"`

	// SubnetIDs specifies which subnets are used for the
	// auto scaling group of this nodegroup.
	// +optional
	SubnetIDs []string `json:"subnetIDs,omitempty"`

	// AdditionalTags is an optional set of tags to add to AWS resources managed by the AWS provider, in addition to the
	// ones added by default.
	// +optional
	AdditionalTags infrav1.Tags `json:"additionalTags,omitempty"`

	// RoleName specifies the name of IAM role for this fargate pool
	// If the role is pre-existing we will treat it as unmanaged
	// and not delete it on deletion. If the EKSEnableIAM feature
	// flag is true and no name is supplied then a role is created.
	// +optional
	RoleName string `json:"roleName,omitempty"`

	// Selectors specify fargate pod selectors.
	Selectors []FargateSelector `json:"selectors,omitempty"`
}

FargateProfileSpec defines the desired state of FargateProfile.

func (*FargateProfileSpec) DeepCopy

func (in *FargateProfileSpec) DeepCopy() *FargateProfileSpec

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

func (*FargateProfileSpec) DeepCopyInto

func (in *FargateProfileSpec) DeepCopyInto(out *FargateProfileSpec)

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

type FargateProfileStatus

type FargateProfileStatus struct {
	// Ready denotes that the FargateProfile is available.
	// +kubebuilder:default=false
	Ready bool `json:"ready"`

	// FailureReason will be set in the event that there is a terminal problem
	// reconciling the FargateProfile and will contain a succinct value suitable
	// for machine interpretation.
	//
	// This field should not be set for transitive errors that a controller
	// faces that are expected to be fixed automatically over
	// time (like service outages), but instead indicate that something is
	// fundamentally wrong with the FargateProfile's spec or the configuration of
	// the controller, and that manual intervention is required. Examples
	// of terminal errors would be invalid combinations of settings in the
	// spec, values that are unsupported by the controller, or the
	// responsible controller itself being critically misconfigured.
	//
	// Any transient errors that occur during the reconciliation of
	// FargateProfiles can be added as events to the FargateProfile object
	// and/or logged in the controller's output.
	// +optional
	FailureReason *errors.MachineStatusError `json:"failureReason,omitempty"`

	// FailureMessage will be set in the event that there is a terminal problem
	// reconciling the FargateProfile and will contain a more verbose string suitable
	// for logging and human consumption.
	//
	// This field should not be set for transitive errors that a controller
	// faces that are expected to be fixed automatically over
	// time (like service outages), but instead indicate that something is
	// fundamentally wrong with the FargateProfile's spec or the configuration of
	// the controller, and that manual intervention is required. Examples
	// of terminal errors would be invalid combinations of settings in the
	// spec, values that are unsupported by the controller, or the
	// responsible controller itself being critically misconfigured.
	//
	// Any transient errors that occur during the reconciliation of
	// FargateProfiles can be added as events to the FargateProfile
	// object and/or logged in the controller's output.
	// +optional
	FailureMessage *string `json:"failureMessage,omitempty"`

	// Conditions defines current state of the Fargate profile.
	// +optional
	Conditions clusterv1.Conditions `json:"conditions,omitempty"`
}

FargateProfileStatus defines the observed state of FargateProfile.

func (*FargateProfileStatus) DeepCopy

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

func (*FargateProfileStatus) DeepCopyInto

func (in *FargateProfileStatus) DeepCopyInto(out *FargateProfileStatus)

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

type FargateSelector

type FargateSelector struct {
	// Labels specifies which pod labels this selector should match.
	Labels map[string]string `json:"labels,omitempty"`

	// Namespace specifies which namespace this selector should match.
	Namespace string `json:"namespace,omitempty"`
}

FargateSelector specifies a selector for pods that should run on this fargate pool.

func (*FargateSelector) DeepCopy

func (in *FargateSelector) DeepCopy() *FargateSelector

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

func (*FargateSelector) DeepCopyInto

func (in *FargateSelector) DeepCopyInto(out *FargateSelector)

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

type InstancesDistribution

type InstancesDistribution struct {
	// +kubebuilder:validation:Enum=prioritized;lowest-price
	// +kubebuilder:default=prioritized
	OnDemandAllocationStrategy OnDemandAllocationStrategy `json:"onDemandAllocationStrategy,omitempty"`

	// +kubebuilder:validation:Enum=lowest-price;capacity-optimized;capacity-optimized-prioritized;price-capacity-optimized
	// +kubebuilder:default=lowest-price
	SpotAllocationStrategy SpotAllocationStrategy `json:"spotAllocationStrategy,omitempty"`

	// +kubebuilder:default=0
	OnDemandBaseCapacity *int64 `json:"onDemandBaseCapacity,omitempty"`

	// +kubebuilder:default=100
	OnDemandPercentageAboveBaseCapacity *int64 `json:"onDemandPercentageAboveBaseCapacity,omitempty"`
}

InstancesDistribution to configure distribution of On-Demand Instances and Spot Instances.

func (*InstancesDistribution) DeepCopy

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

func (*InstancesDistribution) DeepCopyInto

func (in *InstancesDistribution) DeepCopyInto(out *InstancesDistribution)

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

type ManagedMachineAMIType

type ManagedMachineAMIType string

ManagedMachineAMIType specifies which AWS AMI to use for a managed MachinePool.

const (
	// Al2x86_64 is the default AMI type.
	Al2x86_64 ManagedMachineAMIType = "AL2_x86_64"
	// Al2x86_64GPU is the x86-64 GPU AMI type.
	Al2x86_64GPU ManagedMachineAMIType = "AL2_x86_64_GPU"
	// Al2Arm64 is the Arm AMI type.
	Al2Arm64 ManagedMachineAMIType = "AL2_ARM_64"
	// Al2023x86_64 is the AL2023 x86-64 AMI type.
	Al2023x86_64 ManagedMachineAMIType = "AL2023_x86_64_STANDARD"
	// Al2023Arm64 is the AL2023 Arm AMI type.
	Al2023Arm64 ManagedMachineAMIType = "AL2023_ARM_64_STANDARD"
)

type ManagedMachinePoolCapacityType

type ManagedMachinePoolCapacityType string

ManagedMachinePoolCapacityType specifies the capacity type to be used for the managed MachinePool.

const (
	// ManagedMachinePoolCapacityTypeOnDemand is the default capacity type, to launch on-demand instances.
	ManagedMachinePoolCapacityTypeOnDemand ManagedMachinePoolCapacityType = "onDemand"
	// ManagedMachinePoolCapacityTypeSpot is the spot instance capacity type to launch spot instances.
	ManagedMachinePoolCapacityTypeSpot ManagedMachinePoolCapacityType = "spot"
)

type ManagedMachinePoolScaling

type ManagedMachinePoolScaling struct {
	MinSize *int32 `json:"minSize,omitempty"`
	MaxSize *int32 `json:"maxSize,omitempty"`
}

ManagedMachinePoolScaling specifies scaling options.

func (*ManagedMachinePoolScaling) DeepCopy

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

func (*ManagedMachinePoolScaling) DeepCopyInto

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

type ManagedRemoteAccess

type ManagedRemoteAccess struct {
	// SSHKeyName specifies which EC2 SSH key can be used to access machines.
	// If left empty, the key from the control plane is used.
	SSHKeyName *string `json:"sshKeyName,omitempty"`

	// SourceSecurityGroups specifies which security groups are allowed access
	SourceSecurityGroups []string `json:"sourceSecurityGroups,omitempty"`

	// Public specifies whether to open port 22 to the public internet
	Public bool `json:"public,omitempty"`
}

ManagedRemoteAccess specifies remote access settings for EC2 instances.

func (*ManagedRemoteAccess) DeepCopy

func (in *ManagedRemoteAccess) DeepCopy() *ManagedRemoteAccess

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

func (*ManagedRemoteAccess) DeepCopyInto

func (in *ManagedRemoteAccess) DeepCopyInto(out *ManagedRemoteAccess)

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

type MixedInstancesPolicy

type MixedInstancesPolicy struct {
	InstancesDistribution *InstancesDistribution `json:"instancesDistribution,omitempty"`
	Overrides             []Overrides            `json:"overrides,omitempty"`
}

MixedInstancesPolicy for an Auto Scaling group.

func (*MixedInstancesPolicy) DeepCopy

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

func (*MixedInstancesPolicy) DeepCopyInto

func (in *MixedInstancesPolicy) DeepCopyInto(out *MixedInstancesPolicy)

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

type OnDemandAllocationStrategy

type OnDemandAllocationStrategy string

OnDemandAllocationStrategy indicates how to allocate instance types to fulfill On-Demand capacity.

type Overrides

type Overrides struct {
	InstanceType string `json:"instanceType"`
}

Overrides are used to override the instance type specified by the launch template with multiple instance types that can be used to launch On-Demand Instances and Spot Instances.

func (*Overrides) DeepCopy

func (in *Overrides) DeepCopy() *Overrides

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

func (*Overrides) DeepCopyInto

func (in *Overrides) DeepCopyInto(out *Overrides)

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

type Processes

type Processes struct {
	Launch            *bool `json:"launch,omitempty"`
	Terminate         *bool `json:"terminate,omitempty"`
	AddToLoadBalancer *bool `json:"addToLoadBalancer,omitempty"`
	AlarmNotification *bool `json:"alarmNotification,omitempty"`
	AZRebalance       *bool `json:"azRebalance,omitempty"`
	HealthCheck       *bool `json:"healthCheck,omitempty"`
	InstanceRefresh   *bool `json:"instanceRefresh,omitempty"`
	ReplaceUnhealthy  *bool `json:"replaceUnhealthy,omitempty"`
	ScheduledActions  *bool `json:"scheduledActions,omitempty"`
}

Processes defines the processes which can be enabled or disabled individually.

func (*Processes) DeepCopy

func (in *Processes) DeepCopy() *Processes

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

func (*Processes) DeepCopyInto

func (in *Processes) DeepCopyInto(out *Processes)

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

type ROSACluster added in v2.3.0

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

	Spec   ROSAClusterSpec   `json:"spec,omitempty"`
	Status ROSAClusterStatus `json:"status,omitempty"`
}

ROSACluster is the Schema for the ROSAClusters API.

func (*ROSACluster) DeepCopy added in v2.3.0

func (in *ROSACluster) DeepCopy() *ROSACluster

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

func (*ROSACluster) DeepCopyInto added in v2.3.0

func (in *ROSACluster) DeepCopyInto(out *ROSACluster)

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

func (*ROSACluster) DeepCopyObject added in v2.3.0

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

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

type ROSAClusterList added in v2.3.0

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

ROSAClusterList contains a list of ROSACluster.

func (*ROSAClusterList) DeepCopy added in v2.3.0

func (in *ROSAClusterList) DeepCopy() *ROSAClusterList

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

func (*ROSAClusterList) DeepCopyInto added in v2.3.0

func (in *ROSAClusterList) DeepCopyInto(out *ROSAClusterList)

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

func (*ROSAClusterList) DeepCopyObject added in v2.3.0

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

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

type ROSAClusterSpec added in v2.3.0

type ROSAClusterSpec struct {
	// ControlPlaneEndpoint represents the endpoint used to communicate with the control plane.
	// +optional
	ControlPlaneEndpoint clusterv1.APIEndpoint `json:"controlPlaneEndpoint"`
}

ROSAClusterSpec defines the desired state of ROSACluster.

func (*ROSAClusterSpec) DeepCopy added in v2.3.0

func (in *ROSAClusterSpec) DeepCopy() *ROSAClusterSpec

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

func (*ROSAClusterSpec) DeepCopyInto added in v2.3.0

func (in *ROSAClusterSpec) DeepCopyInto(out *ROSAClusterSpec)

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

type ROSAClusterStatus added in v2.3.0

type ROSAClusterStatus struct {
	// Ready is when the ROSAControlPlane has a API server URL.
	// +optional
	Ready bool `json:"ready,omitempty"`

	// FailureDomains specifies a list fo available availability zones that can be used
	// +optional
	FailureDomains clusterv1.FailureDomains `json:"failureDomains,omitempty"`
}

ROSAClusterStatus defines the observed state of ROSACluster.

func (*ROSAClusterStatus) DeepCopy added in v2.3.0

func (in *ROSAClusterStatus) DeepCopy() *ROSAClusterStatus

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

func (*ROSAClusterStatus) DeepCopyInto added in v2.3.0

func (in *ROSAClusterStatus) DeepCopyInto(out *ROSAClusterStatus)

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

type ROSAMachinePool added in v2.4.0

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

	Spec   RosaMachinePoolSpec   `json:"spec,omitempty"`
	Status RosaMachinePoolStatus `json:"status,omitempty"`
}

ROSAMachinePool is the Schema for the rosamachinepools API.

func (*ROSAMachinePool) DeepCopy added in v2.4.0

func (in *ROSAMachinePool) DeepCopy() *ROSAMachinePool

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

func (*ROSAMachinePool) DeepCopyInto added in v2.4.0

func (in *ROSAMachinePool) DeepCopyInto(out *ROSAMachinePool)

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

func (*ROSAMachinePool) DeepCopyObject added in v2.4.0

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

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

func (*ROSAMachinePool) Default added in v2.4.1

func (r *ROSAMachinePool) Default()

Default implements admission.Defaulter.

func (*ROSAMachinePool) GetConditions added in v2.4.0

func (r *ROSAMachinePool) GetConditions() clusterv1.Conditions

GetConditions returns the observations of the operational state of the RosaMachinePool resource.

func (*ROSAMachinePool) SetConditions added in v2.4.0

func (r *ROSAMachinePool) SetConditions(conditions clusterv1.Conditions)

SetConditions sets the underlying service state of the RosaMachinePool to the predescribed clusterv1.Conditions.

func (*ROSAMachinePool) SetupWebhookWithManager added in v2.4.1

func (r *ROSAMachinePool) SetupWebhookWithManager(mgr ctrl.Manager) error

SetupWebhookWithManager will setup the webhooks for the ROSAMachinePool.

func (*ROSAMachinePool) ValidateCreate added in v2.4.1

func (r *ROSAMachinePool) ValidateCreate() (warnings admission.Warnings, err error)

ValidateCreate implements admission.Validator.

func (*ROSAMachinePool) ValidateDelete added in v2.4.1

func (r *ROSAMachinePool) ValidateDelete() (warnings admission.Warnings, err error)

ValidateDelete implements admission.Validator.

func (*ROSAMachinePool) ValidateUpdate added in v2.4.1

func (r *ROSAMachinePool) ValidateUpdate(old runtime.Object) (warnings admission.Warnings, err error)

ValidateUpdate implements admission.Validator.

type ROSAMachinePoolList added in v2.4.0

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

ROSAMachinePoolList contains a list of RosaMachinePools.

func (*ROSAMachinePoolList) DeepCopy added in v2.4.0

func (in *ROSAMachinePoolList) DeepCopy() *ROSAMachinePoolList

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

func (*ROSAMachinePoolList) DeepCopyInto added in v2.4.0

func (in *ROSAMachinePoolList) DeepCopyInto(out *ROSAMachinePoolList)

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

func (*ROSAMachinePoolList) DeepCopyObject added in v2.4.0

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

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

type RefreshPreferences

type RefreshPreferences struct {
	// Disable, if true, disables instance refresh from triggering when new launch templates are detected.
	// This is useful in scenarios where ASG nodes are externally managed.
	// +optional
	Disable bool `json:"disable,omitempty"`

	// The strategy to use for the instance refresh. The only valid value is Rolling.
	// A rolling update is an update that is applied to all instances in an Auto
	// Scaling group until all instances have been updated.
	// +optional
	Strategy *string `json:"strategy,omitempty"`

	// The number of seconds until a newly launched instance is configured and ready
	// to use. During this time, the next replacement will not be initiated.
	// The default is to use the value for the health check grace period defined for the group.
	// +optional
	InstanceWarmup *int64 `json:"instanceWarmup,omitempty"`

	// The amount of capacity as a percentage in ASG that must remain healthy
	// during an instance refresh. The default is 90.
	// +optional
	MinHealthyPercentage *int64 `json:"minHealthyPercentage,omitempty"`

	// The amount of capacity as a percentage in ASG that can be in service and healthy, or pending,
	// to support your workload when replacing instances.
	// The value is expressed as a percentage of the desired capacity of the ASG. Value range is 100 to 200.
	// If you specify MaxHealthyPercentage , you must also specify MinHealthyPercentage , and the difference between
	// them cannot be greater than 100.
	// A larger range increases the number of instances that can be replaced at the same time.
	// +optional
	// +kubebuilder:validation:Minimum=100
	// +kubebuilder:validation:Maximum=200
	MaxHealthyPercentage *int64 `json:"maxHealthyPercentage,omitempty"`
}

RefreshPreferences defines the specs for instance refreshing.

func (*RefreshPreferences) DeepCopy

func (in *RefreshPreferences) DeepCopy() *RefreshPreferences

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

func (*RefreshPreferences) DeepCopyInto

func (in *RefreshPreferences) DeepCopyInto(out *RefreshPreferences)

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

type RollingUpdate added in v2.5.1

type RollingUpdate struct {
	// MaxUnavailable is the maximum number of nodes that can be unavailable during the update.
	// Value can be an absolute number (ex: 5) or a percentage of desired nodes (ex: 10%).
	// Absolute number is calculated from percentage by rounding down.
	//
	// MaxUnavailable can not be 0 if MaxSurge is 0, default is 0.
	// Both MaxUnavailable & MaxSurge must use the same units (absolute value or percentage).
	//
	// Example: when MaxUnavailable is set to 30%, old nodes can be deleted down to 70% of
	// desired nodes immediately when the rolling update starts. Once new nodes
	// are ready, more old nodes be deleted, followed by provisioning new nodes,
	// ensuring that the total number of nodes available at all times during the
	// update is at least 70% of desired nodes.
	//
	// +kubebuilder:validation:Pattern="^((100|[0-9]{1,2})%|[0-9]+)$"
	// +kubebuilder:validation:XIntOrString
	// +kubebuilder:default=0
	// +optional
	MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"`

	// MaxSurge is the maximum number of nodes that can be provisioned above the desired number of nodes.
	// Value can be an absolute number (ex: 5) or a percentage of desired nodes (ex: 10%).
	// Absolute number is calculated from percentage by rounding up.
	//
	// MaxSurge can not be 0 if MaxUnavailable is 0, default is 1.
	// Both MaxSurge & MaxUnavailable must use the same units (absolute value or percentage).
	//
	// Example: when MaxSurge is set to 30%, new nodes can be provisioned immediately
	// when the rolling update starts, such that the total number of old and new
	// nodes do not exceed 130% of desired nodes. Once old nodes have been
	// deleted, new nodes can be provisioned, ensuring that total number of nodes
	// running at any time during the update is at most 130% of desired nodes.
	//
	// +kubebuilder:validation:Pattern="^((100|[0-9]{1,2})%|[0-9]+)$"
	// +kubebuilder:validation:XIntOrString
	// +kubebuilder:default=1
	// +optional
	MaxSurge *intstr.IntOrString `json:"maxSurge,omitempty"`
}

RollingUpdate specifies MaxUnavailable & MaxSurge number of nodes during update.

func (*RollingUpdate) DeepCopy added in v2.5.1

func (in *RollingUpdate) DeepCopy() *RollingUpdate

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

func (*RollingUpdate) DeepCopyInto added in v2.5.1

func (in *RollingUpdate) DeepCopyInto(out *RollingUpdate)

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

type RosaMachinePoolAutoScaling added in v2.4.0

type RosaMachinePoolAutoScaling struct {
	// +kubebuilder:validation:Minimum=1
	MinReplicas int `json:"minReplicas,omitempty"`
	// +kubebuilder:validation:Minimum=1
	MaxReplicas int `json:"maxReplicas,omitempty"`
}

RosaMachinePoolAutoScaling specifies scaling options.

func (*RosaMachinePoolAutoScaling) DeepCopy added in v2.4.0

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

func (*RosaMachinePoolAutoScaling) DeepCopyInto added in v2.4.0

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

type RosaMachinePoolSpec added in v2.4.0

type RosaMachinePoolSpec struct {
	// NodePoolName specifies the name of the nodepool in Rosa
	// must be a valid DNS-1035 label, so it must consist of lower case alphanumeric and have a max length of 15 characters.
	//
	// +immutable
	// +kubebuilder:validation:XValidation:rule="self == oldSelf", message="nodepoolName is immutable"
	// +kubebuilder:validation:MaxLength:=15
	// +kubebuilder:validation:Pattern:=`^[a-z]([-a-z0-9]*[a-z0-9])?$`
	NodePoolName string `json:"nodePoolName"`

	// Version specifies the OpenShift version of the nodes associated with this machinepool.
	// ROSAControlPlane version is used if not set.
	//
	// +optional
	Version string `json:"version,omitempty"`

	// AvailabilityZone is an optinal field specifying the availability zone where instances of this machine pool should run
	// For Multi-AZ clusters, you can create a machine pool in a Single-AZ of your choice.
	// +optional
	AvailabilityZone string `json:"availabilityZone,omitempty"`

	// +kubebuilder:validation:XValidation:rule="self == oldSelf", message="subnet is immutable"
	// +immutable
	// +optional
	Subnet string `json:"subnet,omitempty"`

	// Labels specifies labels for the Kubernetes node objects
	// +optional
	Labels map[string]string `json:"labels,omitempty"`

	// Taints specifies the taints to apply to the nodes of the machine pool
	// +optional
	Taints []RosaTaint `json:"taints,omitempty"`

	// AdditionalTags are user-defined tags to be added on the underlying EC2 instances associated with this machine pool.
	// +immutable
	// +optional
	AdditionalTags infrav1.Tags `json:"additionalTags,omitempty"`

	// AutoRepair specifies whether health checks should be enabled for machines
	// in the NodePool. The default is true.
	// +kubebuilder:default=true
	// +optional
	AutoRepair bool `json:"autoRepair,omitempty"`

	// InstanceType specifies the AWS instance type
	//
	// +kubebuilder:validation:Required
	InstanceType string `json:"instanceType"`

	// Autoscaling specifies auto scaling behaviour for this MachinePool.
	// required if Replicas is not configured
	// +optional
	Autoscaling *RosaMachinePoolAutoScaling `json:"autoscaling,omitempty"`

	// TuningConfigs specifies the names of the tuning configs to be applied to this MachinePool.
	// Tuning configs must already exist.
	// +optional
	TuningConfigs []string `json:"tuningConfigs,omitempty"`

	// AdditionalSecurityGroups is an optional set of security groups to associate
	// with all node instances of the machine pool.
	//
	// +immutable
	// +optional
	AdditionalSecurityGroups []string `json:"additionalSecurityGroups,omitempty"`

	// ProviderIDList contain a ProviderID for each machine instance that's currently managed by this machine pool.
	// +optional
	ProviderIDList []string `json:"providerIDList,omitempty"`

	// NodeDrainGracePeriod is grace period for how long Pod Disruption Budget-protected workloads will be
	// respected during upgrades. After this grace period, any workloads protected by Pod Disruption
	// Budgets that have not been successfully drained from a node will be forcibly evicted.
	//
	// Valid values are from 0 to 1 week(10080m|168h) .
	// 0 or empty value means that the MachinePool can be drained without any time limitation.
	//
	// +optional
	NodeDrainGracePeriod *metav1.Duration `json:"nodeDrainGracePeriod,omitempty"`

	// UpdateConfig specifies update configurations.
	//
	// +optional
	UpdateConfig *RosaUpdateConfig `json:"updateConfig,omitempty"`
}

RosaMachinePoolSpec defines the desired state of RosaMachinePool.

func (*RosaMachinePoolSpec) DeepCopy added in v2.4.0

func (in *RosaMachinePoolSpec) DeepCopy() *RosaMachinePoolSpec

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

func (*RosaMachinePoolSpec) DeepCopyInto added in v2.4.0

func (in *RosaMachinePoolSpec) DeepCopyInto(out *RosaMachinePoolSpec)

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

type RosaMachinePoolStatus added in v2.4.0

type RosaMachinePoolStatus struct {
	// Ready denotes that the RosaMachinePool nodepool 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"`
	// Conditions defines current service state of the managed machine pool
	// +optional
	Conditions clusterv1.Conditions `json:"conditions,omitempty"`
	// FailureMessage will be set in the event that there is a terminal problem
	// reconciling the state and will be set to a descriptive error message.
	//
	// This field should not be set for transitive errors that a controller
	// faces that are expected to be fixed automatically over
	// time (like service outages), but instead indicate that something is
	// fundamentally wrong with the spec or the configuration of
	// the controller, and that manual intervention is required.
	//
	// +optional
	FailureMessage *string `json:"failureMessage,omitempty"`

	// ID is the ID given by ROSA.
	ID string `json:"id,omitempty"`
}

RosaMachinePoolStatus defines the observed state of RosaMachinePool.

func (*RosaMachinePoolStatus) DeepCopy added in v2.4.0

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

func (*RosaMachinePoolStatus) DeepCopyInto added in v2.4.0

func (in *RosaMachinePoolStatus) DeepCopyInto(out *RosaMachinePoolStatus)

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

type RosaTaint added in v2.4.1

type RosaTaint struct {
	// The taint key to be applied to a node.
	//
	// +kubebuilder:validation:Required
	Key string `json:"key"`
	// The taint value corresponding to the taint key.
	//
	// +kubebuilder:validation:Pattern:=`^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$`
	// +optional
	Value string `json:"value,omitempty"`
	// The effect of the taint on pods that do not tolerate the taint.
	// Valid effects are NoSchedule, PreferNoSchedule and NoExecute.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=NoSchedule;PreferNoSchedule;NoExecute
	Effect corev1.TaintEffect `json:"effect"`
}

RosaTaint represents a taint to be applied to a node.

func (*RosaTaint) DeepCopy added in v2.4.1

func (in *RosaTaint) DeepCopy() *RosaTaint

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

func (*RosaTaint) DeepCopyInto added in v2.4.1

func (in *RosaTaint) DeepCopyInto(out *RosaTaint)

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

type RosaUpdateConfig added in v2.5.1

type RosaUpdateConfig struct {
	// RollingUpdate specifies MaxUnavailable & MaxSurge number of nodes during update.
	//
	// +optional
	RollingUpdate *RollingUpdate `json:"rollingUpdate,omitempty"`
}

RosaUpdateConfig specifies update configuration

func (*RosaUpdateConfig) DeepCopy added in v2.5.1

func (in *RosaUpdateConfig) DeepCopy() *RosaUpdateConfig

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

func (*RosaUpdateConfig) DeepCopyInto added in v2.5.1

func (in *RosaUpdateConfig) DeepCopyInto(out *RosaUpdateConfig)

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

type SpotAllocationStrategy

type SpotAllocationStrategy string

SpotAllocationStrategy indicates how to allocate instances across Spot Instance pools.

type SuspendProcessesTypes

type SuspendProcessesTypes struct {
	All       bool       `json:"all,omitempty"`
	Processes *Processes `json:"processes,omitempty"`
}

SuspendProcessesTypes contains user friendly auto-completable values for suspended process names.

func (*SuspendProcessesTypes) ConvertSetValuesToStringSlice

func (s *SuspendProcessesTypes) ConvertSetValuesToStringSlice() []string

ConvertSetValuesToStringSlice converts all the values that are set into a string slice for further processing.

func (*SuspendProcessesTypes) DeepCopy

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

func (*SuspendProcessesTypes) DeepCopyInto

func (in *SuspendProcessesTypes) DeepCopyInto(out *SuspendProcessesTypes)

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

type Tags

type Tags map[string]string

Tags is a mapping for tags.

func (Tags) DeepCopy

func (in Tags) DeepCopy() Tags

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

func (Tags) DeepCopyInto

func (in Tags) DeepCopyInto(out *Tags)

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

type Taint

type Taint struct {
	// Effect specifies the effect for the taint
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=no-schedule;no-execute;prefer-no-schedule
	Effect TaintEffect `json:"effect"`
	// Key is the key of the taint
	// +kubebuilder:validation:Required
	Key string `json:"key"`
	// Value is the value of the taint
	// +kubebuilder:validation:Required
	Value string `json:"value"`
}

Taint defines the specs for a Kubernetes taint.

func (*Taint) DeepCopy

func (in *Taint) DeepCopy() *Taint

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

func (*Taint) DeepCopyInto

func (in *Taint) DeepCopyInto(out *Taint)

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

func (*Taint) Equals

func (t *Taint) Equals(other *Taint) bool

Equals is used to test if 2 taints are equal.

type TaintEffect

type TaintEffect string

TaintEffect is the effect for a Kubernetes taint.

type Taints

type Taints []Taint

Taints is an array of Taints.

func (*Taints) Contains

func (t *Taints) Contains(taint *Taint) bool

Contains checks for existence of a matching taint.

func (Taints) DeepCopy

func (in Taints) DeepCopy() Taints

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

func (Taints) DeepCopyInto

func (in Taints) DeepCopyInto(out *Taints)

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

type UpdateConfig

type UpdateConfig struct {
	// MaxUnavailable is the maximum number of nodes unavailable at once during a version update.
	// Nodes will be updated in parallel. The maximum number is 100.
	// +optional
	// +kubebuilder:validation:Maximum=100
	// +kubebuilder:validation:Minimum=1
	MaxUnavailable *int `json:"maxUnavailable,omitempty"`

	// MaxUnavailablePercentage is the maximum percentage of nodes unavailable during a version update. This
	// percentage of nodes will be updated in parallel, up to 100 nodes at once.
	// +optional
	// +kubebuilder:validation:Maximum=100
	// +kubebuilder:validation:Minimum=1
	MaxUnavailablePercentage *int `json:"maxUnavailablePercentage,omitempty"`
}

UpdateConfig is the configuration options for updating a nodegroup. Only one of MaxUnavailable and MaxUnavailablePercentage should be specified.

func (*UpdateConfig) DeepCopy

func (in *UpdateConfig) DeepCopy() *UpdateConfig

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

func (*UpdateConfig) DeepCopyInto

func (in *UpdateConfig) DeepCopyInto(out *UpdateConfig)

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