v1beta2

package
v2.9.2 Latest Latest
Warning

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

Go to latest
Published: Oct 9, 2025 License: Apache-2.0 Imports: 26 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"

	// AWSMachineCreationFailed reports if creating AWSMachines to represent ASG (machine pool) machines failed.
	AWSMachineCreationFailed = "AWSMachineCreationFailed"
	// AWSMachineDeletionFailed reports if deleting AWSMachines failed.
	AWSMachineDeletionFailed = "AWSMachineDeletionFailed"
	// LifecycleHookReadyCondition reports on the status of the lifecycle hook.
	LifecycleHookReadyCondition clusterv1.ConditionType = "LifecycleHookReady"
	// LifecycleHookCreationFailedReason used for failures during lifecycle hook creation.
	LifecycleHookCreationFailedReason = "LifecycleHookCreationFailed"
	// LifecycleHookUpdateFailedReason used for failures during lifecycle hook update.
	LifecycleHookUpdateFailedReason = "LifecycleHookUpdateFailed"
	// LifecycleHookDeletionFailedReason used for failures during lifecycle hook deletion.
	LifecycleHookDeletionFailedReason = "LifecycleHookDeletionFailed"
)
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 = "RosaMachinePoolReady"
	// RosaMachinePoolUpgradingCondition condition reports whether ROSAMachinePool is upgrading or not.
	RosaMachinePoolUpgradingCondition clusterv1.ConditionType = "RosaMachinePoolUpgrading"

	// 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 (
	// ROSANetworkReadyCondition condition reports on the successful reconciliation of ROSANetwork.
	ROSANetworkReadyCondition clusterv1.ConditionType = "ROSANetworkReady"

	// ROSANetworkCreatingReason used when ROSANetwork is being created.
	ROSANetworkCreatingReason = "Creating"

	// ROSANetworkCreatedReason used when ROSANetwork is created.
	ROSANetworkCreatedReason = "Created"

	// ROSANetworkFailedReason used when rosaNetwork creation failed.
	ROSANetworkFailedReason = "Failed"

	// ROSANetworkDeletingReason used when ROSANetwork is being deleted.
	ROSANetworkDeletingReason = "Deleting"

	// ROSANetworkDeletionFailedReason used to report failures while deleting ROSANetwork.
	ROSANetworkDeletionFailedReason = "DeletionFailed"
)
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"

	// RosaRoleConfigFinalizer allows the controller to clean up resources on delete.
	RosaRoleConfigFinalizer = "rosaroleconfigs.infrastructure.cluster.x-k8s.io"
)
View Source
const (
	// IngressOperatorARNSuffix is the suffix for the ingress operator role.
	IngressOperatorARNSuffix = "-openshift-ingress-operator-cloud-credentials"

	// ImageRegistryARNSuffix is the suffix for the image registry operator role.
	ImageRegistryARNSuffix = "-openshift-image-registry-installer-cloud-credentials"

	// StorageARNSuffix is the suffix for the storage operator role.
	StorageARNSuffix = "-openshift-cluster-csi-drivers-ebs-cloud-credentials"

	// NetworkARNSuffix is the suffix for the network operator role.
	NetworkARNSuffix = "-openshift-cloud-network-config-controller-cloud-credentials"

	// KubeCloudControllerARNSuffix is the suffix for the kube cloud controller role.
	KubeCloudControllerARNSuffix = "-kube-system-kube-controller-manager"

	// NodePoolManagementARNSuffix is the suffix for the node pool management role.
	NodePoolManagementARNSuffix = "-kube-system-capa-controller-manager"

	// ControlPlaneOperatorARNSuffix is the suffix for the control plane operator role.
	ControlPlaneOperatorARNSuffix = "-kube-system-control-plane-operator"

	// KMSProviderARNSuffix is the suffix for the kms provider role.
	KMSProviderARNSuffix = "-kube-system-kms-provider"
)

Operator Role const

View Source
const (
	// HCPROSAInstallerRole is the suffix for installer account role
	HCPROSAInstallerRole = "-HCP-ROSA-Installer-Role"

	// HCPROSASupportRole is the suffix for support account role
	HCPROSASupportRole = "-HCP-ROSA-Support-Role"

	// HCPROSAWorkerRole is the suffix for worker account role
	HCPROSAWorkerRole = "-HCP-ROSA-Worker-Role"
)

Account Role const

View Source
const (
	// RosaRoleConfigReadyCondition condition reports on the successful reconciliation of RosaRoleConfig.
	RosaRoleConfigReadyCondition = "RosaRoleConfigReady"

	// RosaRoleConfigDeletionFailedReason used to report failures while deleting RosaRoleConfig.
	RosaRoleConfigDeletionFailedReason = "DeletionFailed"

	// RosaRoleConfigReconciliationFailedReason used to report reconciliation failures.
	RosaRoleConfigReconciliationFailedReason = "ReconciliationFailed"

	// RosaRoleConfigDeletionStarted used to indicate that the deletion of RosaRoleConfig has started.
	RosaRoleConfigDeletionStarted = "DeletionStarted"

	// RosaRoleConfigCreatedReason used to indicate that the RosaRoleConfig has been created.
	RosaRoleConfigCreatedReason = "Created"
)
View Source
const (
	// KindMachinePool is a MachinePool resource Kind
	KindMachinePool string = "MachinePool"
)
View Source
const (
	// LaunchTemplateLatestVersion defines the launching of the latest version of the template.
	LaunchTemplateLatestVersion = "$Latest"
)

Constants block.

View Source
const ROSANetworkFinalizer = "rosanetwork.infrastructure.cluster.x-k8s.io"

ROSANetworkFinalizer allows the controller to clean up resources on delete.

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

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

	// CapacityReservationID specifies the target Capacity Reservation into which the instance should be launched.
	// +optional
	CapacityReservationID *string `json:"capacityReservationId,omitempty"`

	// MarketType specifies the type of market for the EC2 instance. Valid values include:
	// "OnDemand" (default): The instance runs as a standard OnDemand instance.
	// "Spot": The instance runs as a Spot instance. When SpotMarketOptions is provided, the marketType defaults to "Spot".
	// "CapacityBlock": The instance utilizes pre-purchased compute capacity (capacity blocks) with AWS Capacity Reservations.
	//  If this value is selected, CapacityReservationID must be specified to identify the target reservation.
	// If marketType is not specified and spotMarketOptions is provided, the marketType defaults to "Spot".
	// +optional
	MarketType infrav1.MarketType `json:"marketType,omitempty"`

	// CapacityReservationPreference specifies the preference for use of Capacity Reservations by the instance. Valid values include:
	// "Open": The instance may make use of open Capacity Reservations that match its AZ and InstanceType
	// "None": The instance may not make use of any Capacity Reservations. This is to conserve open reservations for desired workloads
	// "CapacityReservationsOnly": The instance will only run if matched or targeted to a Capacity Reservation
	// +kubebuilder:validation:Enum="";None;CapacityReservationsOnly;Open
	// +optional
	CapacityReservationPreference infrav1.CapacityReservationPreference `json:"capacityReservationPreference,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 AWSLifecycleHook added in v2.9.0

type AWSLifecycleHook struct {
	// The name of the lifecycle hook.
	Name string `json:"name"`

	// The ARN of the notification target that Amazon EC2 Auto Scaling uses to
	// notify you when an instance is in the transition state for the lifecycle hook.
	// +optional
	NotificationTargetARN *string `json:"notificationTargetARN,omitempty"`

	// The ARN of the IAM role that allows the Auto Scaling group to publish to the
	// specified notification target.
	// +optional
	RoleARN *string `json:"roleARN,omitempty"`

	// The state of the EC2 instance to which to attach the lifecycle hook.
	// +kubebuilder:validation:Enum="autoscaling:EC2_INSTANCE_LAUNCHING";"autoscaling:EC2_INSTANCE_TERMINATING"
	LifecycleTransition LifecycleTransition `json:"lifecycleTransition"`

	// The maximum time, in seconds, that an instance can remain in a Pending:Wait or
	// Terminating:Wait state. The maximum is 172800 seconds (48 hours) or 100 times
	// HeartbeatTimeout, whichever is smaller.
	// +optional
	// +kubebuilder:validation:Format=duration
	HeartbeatTimeout *metav1.Duration `json:"heartbeatTimeout,omitempty"`

	// The default result for the lifecycle hook. The possible values are CONTINUE and ABANDON.
	// +optional
	// +kubebuilder:validation:Enum=CONTINUE;ABANDON
	// +kubebuilder:validation:default:=none
	DefaultResult *LifecycleHookDefaultResult `json:"defaultResult,omitempty"`

	// Contains additional metadata that will be passed to the notification target.
	// +optional
	NotificationMetadata *string `json:"notificationMetadata,omitempty"`
}

AWSLifecycleHook describes an AWS lifecycle hook

func (*AWSLifecycleHook) DeepCopy added in v2.9.0

func (in *AWSLifecycleHook) DeepCopy() *AWSLifecycleHook

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

func (*AWSLifecycleHook) DeepCopyInto added in v2.9.0

func (in *AWSLifecycleHook) DeepCopyInto(out *AWSLifecycleHook)

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

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

	// Ignition defined options related to the bootstrapping systems where Ignition is used.
	// +optional
	Ignition *infrav1.Ignition `json:"ignition,omitempty"`

	// AWSLifecycleHooks specifies lifecycle hooks for the autoscaling group.
	// +optional
	AWSLifecycleHooks []AWSLifecycleHook `json:"lifecycleHooks,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"`

	// InfrastructureMachineKind is the kind of the infrastructure resources behind MachinePool Machines.
	// +optional
	InfrastructureMachineKind string `json:"infrastructureMachineKind,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 *string `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 AWSMachinePoolWebhook added in v2.9.0

type AWSMachinePoolWebhook struct{}

AWSMachinePoolWebhook implements a custom validation webhook for AWSMachinePool.

func (*AWSMachinePoolWebhook) DeepCopy added in v2.9.0

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

func (*AWSMachinePoolWebhook) DeepCopyInto added in v2.9.0

func (in *AWSMachinePoolWebhook) DeepCopyInto(out *AWSMachinePoolWebhook)

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

func (*AWSMachinePoolWebhook) Default added in v2.9.0

Default will set default values for the AWSMachinePool.

func (*AWSMachinePoolWebhook) ValidateCreate added in v2.9.0

ValidateCreate will do any extra validation when creating a AWSMachinePool.

func (*AWSMachinePoolWebhook) ValidateDelete added in v2.9.0

ValidateDelete allows you to add any extra validation when deleting.

func (*AWSMachinePoolWebhook) ValidateUpdate added in v2.9.0

func (*AWSMachinePoolWebhook) ValidateUpdate(_ context.Context, oldObj, newObj runtime.Object) (admission.Warnings, error)

ValidateUpdate will do any extra validation when updating a AWSMachinePool.

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

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

	// RolePath sets the path to the role. For more information about paths, see IAM Identifiers
	// (https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
	// in the IAM User Guide.
	//
	// This parameter is optional. If it is not included, it defaults to a slash
	// (/).
	RolePath string `json:"rolePath,omitempty"`

	// RolePermissionsBoundary sets the ARN of the managed policy that is used
	// to set the permissions boundary for the role.
	//
	// A permissions boundary policy defines the maximum permissions that identity-based
	// policies can grant to an entity, but does not grant permissions. Permissions
	// boundaries do not define the maximum permissions that a resource-based policy
	// can grant to an entity. To learn more, see Permissions boundaries for IAM
	// entities (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)
	// in the IAM User Guide.
	//
	// For more information about policy types, see Policy types (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policy-types)
	// in the IAM User Guide.
	RolePermissionsBoundary string `json:"rolePermissionsBoundary,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;CUSTOM;BOTTLEROCKET_ARM_64;BOTTLEROCKET_x86_64;BOTTLEROCKET_ARM_64_FIPS;BOTTLEROCKET_x86_64_FIPS;BOTTLEROCKET_ARM_64_NVIDIA;BOTTLEROCKET_x86_64_NVIDIA;WINDOWS_CORE_2019_x86_64;WINDOWS_FULL_2019_x86_64;WINDOWS_CORE_2022_x86_64;WINDOWS_FULL_2022_x86_64;AL2023_x86_64_STANDARD;AL2023_ARM_64_STANDARD;AL2023_x86_64_NEURON;AL2023_x86_64_NVIDIA;AL2023_ARM_64_NVIDIA
	// +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"`

	// AWSLifecycleHooks specifies lifecycle hooks for the managed node group.
	// +optional
	AWSLifecycleHooks []AWSLifecycleHook `json:"lifecycleHooks,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 *string `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 AccountRoleConfig added in v2.9.2

type AccountRoleConfig struct {
	// User-defined prefix for all generated AWS account role
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MaxLength:=4
	// +kubebuilder:validation:Pattern:=`^[a-z]([-a-z0-9]*[a-z0-9])?$`
	// +kubebuilder:validation:XValidation:rule="self == oldSelf", message="prefix is immutable"
	Prefix string `json:"prefix"`

	// The ARN of the policy that is used to set the permissions boundary for the account roles.
	// +optional
	PermissionsBoundaryARN string `json:"permissionsBoundaryARN,omitempty"`

	// The arn path for the account/operator roles as well as their policies.
	// +optional
	Path string `json:"path,omitempty"`

	// Version of OpenShift that will be used to the roles tag in formate of x.y.z example; "4.19.0"
	// Setting the role OpenShift version tag does not affect the associated ROSAControlplane version.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf", message="version is immutable"
	Version string `json:"version"`

	// SharedVPCConfig is used to set up shared VPC.
	// +optional
	SharedVPCConfig SharedVPCConfig `json:"sharedVPCConfig,omitempty"`
}

AccountRoleConfig defines account IAM roles before creating your ROSA cluster.

func (*AccountRoleConfig) DeepCopy added in v2.9.2

func (in *AccountRoleConfig) DeepCopy() *AccountRoleConfig

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

func (*AccountRoleConfig) DeepCopyInto added in v2.9.2

func (in *AccountRoleConfig) DeepCopyInto(out *AccountRoleConfig)

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

type AccountRolesRef added in v2.9.2

type AccountRolesRef struct {
	// InstallerRoleARN is an AWS IAM role that OpenShift Cluster Manager will assume to create the cluster..
	InstallerRoleARN string `json:"installerRoleARN,omitempty"`

	// SupportRoleARN is an AWS IAM role used by Red Hat SREs to enable
	// access to the cluster account in order to provide support.
	SupportRoleARN string `json:"supportRoleARN,omitempty"`

	// WorkerRoleARN is an AWS IAM role that will be attached to worker instances.
	WorkerRoleARN string `json:"workerRoleARN,omitempty"`
}

AccountRolesRef defscribes ARNs used as Account roles.

func (*AccountRolesRef) DeepCopy added in v2.9.2

func (in *AccountRolesRef) DeepCopy() *AccountRolesRef

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

func (*AccountRolesRef) DeepCopyInto added in v2.9.2

func (in *AccountRolesRef) DeepCopyInto(out *AccountRolesRef)

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

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 CFResource added in v2.9.2

type CFResource struct {
	// Type of the created resource: AWS::EC2::VPC, AWS::EC2::Subnet, ...
	ResourceType string `json:"resource"`

	// LogicalResourceID of the created resource.
	LogicalID string `json:"logicalId"`

	// PhysicalResourceID of the created resource.
	PhysicalID string `json:"physicalId"`

	// Status of the resource: CREATE_IN_PROGRESS, CREATE_COMPLETE, ...
	Status string `json:"status"`

	// Message pertaining to the status of the resource
	Reason string `json:"reason"`
}

CFResource groups information pertaining to a resource created as a part of a cloudformation stack

func (*CFResource) DeepCopy added in v2.9.2

func (in *CFResource) DeepCopy() *CFResource

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

func (*CFResource) DeepCopyInto added in v2.9.2

func (in *CFResource) DeepCopyInto(out *CFResource)

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

	// RolePath sets the path to the role. For more information about paths, see IAM Identifiers
	// (https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
	// in the IAM User Guide.
	//
	// This parameter is optional. If it is not included, it defaults to a slash
	// (/).
	// +optional
	RolePath string `json:"rolePath,omitempty"`

	// RolePermissionsBoundary sets the ARN of the managed policy that is used
	// to set the permissions boundary for the role.
	//
	// A permissions boundary policy defines the maximum permissions that identity-based
	// policies can grant to an entity, but does not grant permissions. Permissions
	// boundaries do not define the maximum permissions that a resource-based policy
	// can grant to an entity. To learn more, see Permissions boundaries for IAM
	// entities (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)
	// in the IAM User Guide.
	//
	// For more information about policy types, see Policy types (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policy-types)
	// in the IAM User Guide.
	// +optional
	RolePermissionsBoundary string `json:"rolePermissionsBoundary,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 *string `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 LifecycleHookDefaultResult added in v2.9.0

type LifecycleHookDefaultResult string

LifecycleHookDefaultResult is the default result for the lifecycle hook.

const (
	// LifecycleHookDefaultResultContinue is the default result for the lifecycle hook to continue.
	LifecycleHookDefaultResultContinue LifecycleHookDefaultResult = "CONTINUE"
	// LifecycleHookDefaultResultAbandon is the default result for the lifecycle hook to abandon.
	LifecycleHookDefaultResultAbandon LifecycleHookDefaultResult = "ABANDON"
)

func (LifecycleHookDefaultResult) String added in v2.9.0

type LifecycleTransition added in v2.9.0

type LifecycleTransition string

LifecycleTransition is the state of the EC2 instance to which to attach the lifecycle hook.

const (
	// LifecycleHookTransitionInstanceLaunching is the launching state of the EC2 instance.
	LifecycleHookTransitionInstanceLaunching LifecycleTransition = "autoscaling:EC2_INSTANCE_LAUNCHING"
	// LifecycleHookTransitionInstanceTerminating is the terminating state of the EC2 instance.
	LifecycleHookTransitionInstanceTerminating LifecycleTransition = "autoscaling:EC2_INSTANCE_TERMINATING"
)

func (LifecycleTransition) String added in v2.9.0

func (l LifecycleTransition) String() string

type ManagedMachineAMIType

type ManagedMachineAMIType string

ManagedMachineAMIType specifies which AWS AMI to use for a managed MachinePool. Source of truth can be found using the link below: https://docs.aws.amazon.com/eks/latest/APIReference/API_CreateNodegroup.html#AmazonEKS-CreateNodegroup-request-amiType

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"
	// Custom is the custom AMI type.
	Custom ManagedMachineAMIType = "CUSTOM"
	// BottleRocketArm64 is the Arm AMI type.
	BottleRocketArm64 ManagedMachineAMIType = "BOTTLEROCKET_ARM_64"
	// BottleRocketx86_64 is the BottleRocket x86-64 AMI type.
	BottleRocketx86_64 ManagedMachineAMIType = "BOTTLEROCKET_x86_64"
	// BottleRocketArm64Fips is the BottleRocket Arm Fips AMI type.
	BottleRocketArm64Fips ManagedMachineAMIType = "BOTTLEROCKET_ARM_64_FIPS"
	// BottleRocketx86_64Fips is the BottleRocket x86-64 Fips AMI type.
	BottleRocketx86_64Fips ManagedMachineAMIType = "BOTTLEROCKET_x86_64_FIPS"
	// BottleRocketArm64Nvidia is the BottleRocket Arm Nvidia AMI type.
	BottleRocketArm64Nvidia ManagedMachineAMIType = "BOTTLEROCKET_ARM_64_NVIDIA"
	// BottleRocketx86_64Nvidia is the BottleRocket x86-64 Nvidia AMI type.
	BottleRocketx86_64Nvidia ManagedMachineAMIType = "BOTTLEROCKET_x86_64_NVIDIA"
	// WindowsCore2019x86_64 is the Windows Core 2019 x86-64 AMI type.
	WindowsCore2019x86_64 ManagedMachineAMIType = "WINDOWS_CORE_2019_x86_64"
	// WindowsFull2019x86_64 is the Windows Full 2019 x86-64 AMI type.
	WindowsFull2019x86_64 ManagedMachineAMIType = "WINDOWS_FULL_2019_x86_64"
	// WindowsCore2022x86_64 is the Windows Core 2022 x86-64 AMI type.
	WindowsCore2022x86_64 ManagedMachineAMIType = "WINDOWS_CORE_2022_x86_64"
	// WindowsFull2022x86_64 is the Windows Full 2022 x86-64 AMI type.
	WindowsFull2022x86_64 ManagedMachineAMIType = "WINDOWS_FULL_2022_x86_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"
	// Al2023x86_64Neuron is the AL2023 x86-64 Neuron AMI type.
	Al2023x86_64Neuron ManagedMachineAMIType = "AL2023_x86_64_NEURON"
	// Al2023x86_64Nvidia is the AL2023 x86-64 Nvidia AMI type.
	Al2023x86_64Nvidia ManagedMachineAMIType = "AL2023_x86_64_NVIDIA"
	// Al2023Arm64Nvidia is the AL2023 Arm Nvidia AMI type.
	Al2023Arm64Nvidia ManagedMachineAMIType = "AL2023_ARM_64_NVIDIA"
)

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 OidcProviderType added in v2.9.2

type OidcProviderType string

OidcProviderType set to Managed or UnManaged

const (
	// Managed OIDC Provider type
	Managed OidcProviderType = "Managed"

	// Unmanaged OIDC Provider type
	Unmanaged OidcProviderType = "Unmanaged"
)

type OnDemandAllocationStrategy

type OnDemandAllocationStrategy string

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

type OperatorRoleConfig added in v2.9.2

type OperatorRoleConfig struct {
	//  User-defined prefix for generated AWS operator roles.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MaxLength:=4
	// +kubebuilder:validation:Pattern:=`^[a-z]([-a-z0-9]*[a-z0-9])?$`
	// +kubebuilder:validation:XValidation:rule="self == oldSelf", message="prefix is immutable"
	Prefix string `json:"prefix"`

	// The ARN of the policy that is used to set the permissions boundary for the operator roles.
	// +optional
	PermissionsBoundaryARN string `json:"permissionsBoundaryARN,omitempty"`

	// SharedVPCConfig is used to set up shared VPC.
	// +optional
	SharedVPCConfig SharedVPCConfig `json:"sharedVPCConfig,omitempty"`

	// OIDCID is the ID of the OIDC config that will be used to create the operator roles.
	// Cannot be set when OidcProviderType set to Managed
	// +optional
	// +kubebuilder:validation:XValidation:rule="self == oldSelf", message="oidcID is immutable"
	OIDCID string `json:"oidcID,omitempty"`
}

OperatorRoleConfig defines cluster-specific operator IAM roles based on your cluster configuration.

func (*OperatorRoleConfig) DeepCopy added in v2.9.2

func (in *OperatorRoleConfig) DeepCopy() *OperatorRoleConfig

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

func (*OperatorRoleConfig) DeepCopyInto added in v2.9.2

func (in *OperatorRoleConfig) DeepCopyInto(out *OperatorRoleConfig)

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

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.

func (*ROSACluster) GetConditions added in v2.8.0

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

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

func (*ROSACluster) SetConditions added in v2.8.0

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

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

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

	// Conditions defines current service state of the ROSACluster.
	// +optional
	Conditions clusterv1.Conditions `json:"conditions,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 satisfies the defaulting webhook interface.

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.

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 ROSANetwork added in v2.9.2

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

	Spec   ROSANetworkSpec   `json:"spec,omitempty"`
	Status ROSANetworkStatus `json:"status,omitempty"`
}

ROSANetwork is the schema for the rosanetworks API

func (*ROSANetwork) DeepCopy added in v2.9.2

func (in *ROSANetwork) DeepCopy() *ROSANetwork

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

func (*ROSANetwork) DeepCopyInto added in v2.9.2

func (in *ROSANetwork) DeepCopyInto(out *ROSANetwork)

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

func (*ROSANetwork) DeepCopyObject added in v2.9.2

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

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

func (*ROSANetwork) GetConditions added in v2.9.2

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

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

func (*ROSANetwork) SetConditions added in v2.9.2

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

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

type ROSANetworkList added in v2.9.2

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

ROSANetworkList contains a list of ROSANetwork

func (*ROSANetworkList) DeepCopy added in v2.9.2

func (in *ROSANetworkList) DeepCopy() *ROSANetworkList

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

func (*ROSANetworkList) DeepCopyInto added in v2.9.2

func (in *ROSANetworkList) DeepCopyInto(out *ROSANetworkList)

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

func (*ROSANetworkList) DeepCopyObject added in v2.9.2

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

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

type ROSANetworkSpec added in v2.9.2

type ROSANetworkSpec struct {
	// The name of the cloudformation stack under which the network infrastructure would be created
	// +immutable
	StackName string `json:"stackName"`

	// The AWS region in which the components of ROSA network infrastruture are to be crated
	// +immutable
	Region string `json:"region"`

	// The number of availability zones to be used for creation of the network infrastructure.
	// You can specify anything between one and four, depending on the chosen AWS region.
	// +kubebuilder:default=1
	// +optional
	// +immutable
	AvailabilityZoneCount int `json:"availabilityZoneCount"`

	// The list of availability zones to be used for creation of the network infrastructure.
	// You can specify anything between one and four valid availability zones from a given region.
	// Should you specify both the availabilityZoneCount and availabilityZones, the list of availability zones takes preference.
	// +optional
	// +immutable
	AvailabilityZones []string `json:"availabilityZones"`

	// CIDR block to be used for the VPC
	// +kubebuilder:validation:Format=cidr
	// +immutable
	CIDRBlock string `json:"cidrBlock"`

	// IdentityRef is a reference to an identity to be used when reconciling rosa network.
	// If no identity is specified, the default identity for this controller will be used.
	//
	// +optional
	IdentityRef *infrav1.AWSIdentityReference `json:"identityRef,omitempty"`

	// StackTags is an optional set of tags to add to the created cloudformation stack.
	// The stack tags will then be automatically applied to the supported AWS resources (VPC, subnets, ...).
	//
	// +optional
	StackTags Tags `json:"stackTags,omitempty"`
}

ROSANetworkSpec defines the desired state of ROSANetwork

func (*ROSANetworkSpec) DeepCopy added in v2.9.2

func (in *ROSANetworkSpec) DeepCopy() *ROSANetworkSpec

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

func (*ROSANetworkSpec) DeepCopyInto added in v2.9.2

func (in *ROSANetworkSpec) DeepCopyInto(out *ROSANetworkSpec)

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

type ROSANetworkStatus added in v2.9.2

type ROSANetworkStatus struct {
	// Array of created private, public subnets and availability zones, grouped by availability zones
	Subnets []ROSANetworkSubnet `json:"subnets,omitempty"`

	// Resources created in the cloudformation stack
	Resources []CFResource `json:"resources,omitempty"`

	// Conditions specifies the conditions for ROSANetwork
	Conditions clusterv1.Conditions `json:"conditions,omitempty"`
}

ROSANetworkStatus defines the observed state of ROSANetwork

func (*ROSANetworkStatus) DeepCopy added in v2.9.2

func (in *ROSANetworkStatus) DeepCopy() *ROSANetworkStatus

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

func (*ROSANetworkStatus) DeepCopyInto added in v2.9.2

func (in *ROSANetworkStatus) DeepCopyInto(out *ROSANetworkStatus)

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

type ROSANetworkSubnet added in v2.9.2

type ROSANetworkSubnet struct {
	// Availability zone of the subnet pair, for example us-west-2a
	AvailabilityZone string `json:"availabilityZone"`

	// ID of the public subnet, for example subnet-0f7e49a3ce68ff338
	PublicSubnet string `json:"publicSubnet"`

	// ID of the private subnet, for example subnet-07a20d6c41af2b725
	PrivateSubnet string `json:"privateSubnet"`
}

ROSANetworkSubnet groups public and private subnet and the availability zone in which the two subnets got created

func (*ROSANetworkSubnet) DeepCopy added in v2.9.2

func (in *ROSANetworkSubnet) DeepCopy() *ROSANetworkSubnet

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

func (*ROSANetworkSubnet) DeepCopyInto added in v2.9.2

func (in *ROSANetworkSubnet) DeepCopyInto(out *ROSANetworkSubnet)

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

type ROSARoleConfig added in v2.9.2

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

	Spec   ROSARoleConfigSpec   `json:"spec,omitempty"`
	Status ROSARoleConfigStatus `json:"status,omitempty"`
}

ROSARoleConfig is the Schema for the rosaroleconfigs API +kubebuilder:object:root=true +kubebuilder:resource:path=rosaroleconfigs,scope=Namespaced,categories=cluster-api,shortName=rosarole +kubebuilder:storageversion +kubebuilder:subresource:status

func (*ROSARoleConfig) DeepCopy added in v2.9.2

func (in *ROSARoleConfig) DeepCopy() *ROSARoleConfig

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

func (*ROSARoleConfig) DeepCopyInto added in v2.9.2

func (in *ROSARoleConfig) DeepCopyInto(out *ROSARoleConfig)

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

func (*ROSARoleConfig) DeepCopyObject added in v2.9.2

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

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

func (*ROSARoleConfig) GetConditions added in v2.9.2

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

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

func (*ROSARoleConfig) SetConditions added in v2.9.2

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

SetConditions sets the conditions of the ROSARoleConfig.

func (*ROSARoleConfig) SetupWebhookWithManager added in v2.9.2

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

SetupWebhookWithManager will setup the webhooks for the ROSARoleConfig.

type ROSARoleConfigList added in v2.9.2

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

ROSARoleConfigList contains a list of ROSARoleConfig +kubebuilder:object:root=true

func (*ROSARoleConfigList) DeepCopy added in v2.9.2

func (in *ROSARoleConfigList) DeepCopy() *ROSARoleConfigList

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

func (*ROSARoleConfigList) DeepCopyInto added in v2.9.2

func (in *ROSARoleConfigList) DeepCopyInto(out *ROSARoleConfigList)

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

func (*ROSARoleConfigList) DeepCopyObject added in v2.9.2

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

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

type ROSARoleConfigSpec added in v2.9.2

type ROSARoleConfigSpec struct {
	// AccountRoleConfig defines account-wide IAM roles before creating your ROSA cluster.
	AccountRoleConfig AccountRoleConfig `json:"accountRoleConfig"`

	// OperatorRoleConfig defines cluster-specific operator IAM roles based on your cluster configuration.
	OperatorRoleConfig OperatorRoleConfig `json:"operatorRoleConfig"`

	// IdentityRef is a reference to an identity to be used when reconciling the ROSA Role Config.
	// If no identity is specified, the default identity for this controller will be used.
	// +optional
	IdentityRef *infrav1.AWSIdentityReference `json:"identityRef,omitempty"`

	// CredentialsSecretRef references a secret with necessary credentials to connect to the OCM API.
	// +optional
	CredentialsSecretRef *corev1.LocalObjectReference `json:"credentialsSecretRef,omitempty"`

	// OIDC provider type values are Managed or UnManaged. When set to Unmanged OperatorRoleConfig OIDCID field must be provided.
	// +kubebuilder:validation:Enum=Managed;Unmanaged
	// +kubebuilder:default=Managed
	OidcProviderType OidcProviderType `json:"oidcProviderType"`
}

ROSARoleConfigSpec defines the desired state of ROSARoleConfig

func (*ROSARoleConfigSpec) DeepCopy added in v2.9.2

func (in *ROSARoleConfigSpec) DeepCopy() *ROSARoleConfigSpec

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

func (*ROSARoleConfigSpec) DeepCopyInto added in v2.9.2

func (in *ROSARoleConfigSpec) DeepCopyInto(out *ROSARoleConfigSpec)

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

type ROSARoleConfigStatus added in v2.9.2

type ROSARoleConfigStatus struct {
	// ID of created OIDC config
	OIDCID string `json:"oidcID,omitempty"`

	// Create OIDC provider for operators to authenticate against in an STS cluster.
	OIDCProviderARN string `json:"oidcProviderARN,omitempty"`

	// Created Account roles that can be used to
	AccountRolesRef AccountRolesRef `json:"accountRolesRef,omitempty"`

	// AWS IAM roles used to perform credential requests by the openshift operators.
	OperatorRolesRef rosacontrolplanev1.AWSRolesRef `json:"operatorRolesRef,omitempty"`

	// Conditions specifies the ROSARoleConfig conditions
	Conditions clusterv1.Conditions `json:"conditions,omitempty"`
}

ROSARoleConfigStatus defines the observed state of ROSARoleConfig

func (*ROSARoleConfigStatus) DeepCopy added in v2.9.2

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

func (*ROSARoleConfigStatus) DeepCopyInto added in v2.9.2

func (in *ROSARoleConfigStatus) DeepCopyInto(out *ROSARoleConfigStatus)

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

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 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 *rosacontrolplanev1.AutoScaling `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"`

	// VolumeSize set the disk volume size for the machine pool, in Gib. The default is 300 GiB.
	// +kubebuilder:validation:Minimum=75
	// +kubebuilder:validation:Maximum=16384
	// +immutable
	// +optional
	VolumeSize int `json:"volumeSize,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"`

	// CapacityReservationID specifies the ID of an AWS On-Demand Capacity Reservation and Capacity Blocks for ML.
	// The CapacityReservationID must be pre-created in advance, before creating a NodePool.
	//
	// +optional
	CapacityReservationID string `json:"capacityReservationID,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"`

	// Available upgrades for the ROSA MachinePool.
	AvailableUpgrades []string `json:"availableUpgrades,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 SharedVPCConfig added in v2.9.2

type SharedVPCConfig struct {
	// Role ARN associated with the private hosted zone used for Hosted Control Plane cluster shared VPC, this role contains policies to be used with Route 53
	RouteRoleARN string `json:"routeRoleARN,omitempty"`

	// Role ARN associated with the shared VPC used for Hosted Control Plane clusters, this role contains policies to be used with the VPC endpoint
	VPCEndpointRoleARN string `json:"vpcEndpointRoleArn,omitempty"`
}

SharedVPCConfig is used to set up shared VPC.

func (*SharedVPCConfig) DeepCopy added in v2.9.2

func (in *SharedVPCConfig) DeepCopy() *SharedVPCConfig

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

func (*SharedVPCConfig) DeepCopyInto added in v2.9.2

func (in *SharedVPCConfig) DeepCopyInto(out *SharedVPCConfig)

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

func (SharedVPCConfig) IsSharedVPC added in v2.9.2

func (s SharedVPCConfig) IsSharedVPC() bool

IsSharedVPC checks if the shared VPC config is set.

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