scope

package
v2.7.1 Latest Latest
Warning

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

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

Documentation

Overview

Package scope provides a global scope for CAPA controllers.

Index

Constants

View Source
const ProviderIDPrefix = "aws://"

ProviderIDPrefix is the prefix of AWS resource IDs to form the Kubernetes Provider ID. NOTE: this format matches the 2 slashes format used in cloud-provider and cluster-autoscaler.

Variables

View Source
var (
	// DefaultClusterScopeGetter defines the default cluster scope getter.
	DefaultClusterScopeGetter ClusterScopeGetter = ClusterScopeGetterFunc(NewClusterScope)

	// DefaultMachineScopeGetter defines the default machine scope getter.
	DefaultMachineScopeGetter MachineScopeGetter = MachineScopeGetterFunc(NewMachineScope)
)
View Source
var (
	// ErrEmptyProviderID means that the provider id is empty.
	//
	// Deprecated: This var is going to be removed in a future release.
	ErrEmptyProviderID = errors.New("providerID is empty")

	// ErrInvalidProviderID means that the provider id has an invalid form.
	//
	// Deprecated: This var is going to be removed in a future release.
	ErrInvalidProviderID = errors.New("providerID must be of the form <cloudProvider>://<optional>/<segments>/<provider id>")
)

Copied from https://github.com/kubernetes-sigs/cluster-api/blob/bda002f52575eeaff68da1ba33c8ef27d5b1014c/controllers/noderefutil/providerid.go As this is removed by https://github.com/kubernetes-sigs/cluster-api/pull/9136

View Source
var (
	// ErrAZSubnetsNotFound is an error when a availability zone is specified but there are
	// no matching subnets for that availability zone (a.k.a. fault domain).
	ErrAZSubnetsNotFound = errors.New("no subnets found for supplied availability zone")
	// ErrLoggerRequired is an error if a logger isn't specified.
	ErrLoggerRequired = errors.New("logger is required")
	// ErrNotPlaced is an error if there is no placement determined.
	ErrNotPlaced = errors.New("placement not determined")
)
View Source
var SessionInterface interface {
}

SessionInterface is the interface for AWSCluster and ManagedCluster to be used to get session using identityRef.

Functions

func GenerateProviderID added in v2.4.1

func GenerateProviderID(ids ...string) string

GenerateProviderID generates a valid AWS Node/Machine ProviderID field.

By default, the last id provided is used as identifier (last part).

func NewASGClient

func NewASGClient(scopeUser cloud.ScopeUsage, session cloud.Session, logger logger.Wrapper, target runtime.Object) autoscalingiface.AutoScalingAPI

NewASGClient creates a new ASG API client for a given session.

func NewEC2Client

func NewEC2Client(scopeUser cloud.ScopeUsage, session cloud.Session, logger logger.Wrapper, target runtime.Object) ec2iface.EC2API

NewEC2Client creates a new EC2 API client for a given session.

func NewEKSClient

func NewEKSClient(scopeUser cloud.ScopeUsage, session cloud.Session, logger logger.Wrapper, target runtime.Object) eksiface.EKSAPI

NewEKSClient creates a new EKS API client for a given session.

func NewELBClient

func NewELBClient(scopeUser cloud.ScopeUsage, session cloud.Session, logger logger.Wrapper, target runtime.Object) elbiface.ELBAPI

NewELBClient creates a new ELB API client for a given session.

func NewELBv2Client

func NewELBv2Client(scopeUser cloud.ScopeUsage, session cloud.Session, logger logger.Wrapper, target runtime.Object) elbv2iface.ELBV2API

NewELBv2Client creates a new ELB v2 API client for a given session.

func NewEventBridgeClient

func NewEventBridgeClient(scopeUser cloud.ScopeUsage, session cloud.Session, target runtime.Object) eventbridgeiface.EventBridgeAPI

NewEventBridgeClient creates a new EventBridge API client for a given session.

func NewGlobalSQSClient

func NewGlobalSQSClient(scopeUser cloud.ScopeUsage, session cloud.Session) sqsiface.SQSAPI

NewGlobalSQSClient for creating a new SQS API client that isn't tied to a cluster.

func NewIAMClient

func NewIAMClient(scopeUser cloud.ScopeUsage, session cloud.Session, logger logger.Wrapper, target runtime.Object) iamiface.IAMAPI

NewIAMClient creates a new IAM API client for a given session.

func NewResourgeTaggingClient

func NewResourgeTaggingClient(scopeUser cloud.ScopeUsage, session cloud.Session, logger logger.Wrapper, target runtime.Object) resourcegroupstaggingapiiface.ResourceGroupsTaggingAPIAPI

NewResourgeTaggingClient creates a new Resource Tagging API client for a given session.

func NewS3Client

func NewS3Client(scopeUser cloud.ScopeUsage, session cloud.Session, logger logger.Wrapper, target runtime.Object) s3iface.S3API

NewS3Client creates a new S3 API client for a given session.

func NewSQSClient

func NewSQSClient(scopeUser cloud.ScopeUsage, session cloud.Session, target runtime.Object) sqsiface.SQSAPI

NewSQSClient creates a new SQS API client for a given session.

func NewSSMClient

func NewSSMClient(scopeUser cloud.ScopeUsage, session cloud.Session, logger logger.Wrapper, target runtime.Object) ssmiface.SSMAPI

NewSSMClient creates a new Secrets API client for a given session.

func NewSTSClient

func NewSTSClient(scopeUser cloud.ScopeUsage, session cloud.Session, logger logger.Wrapper, target runtime.Object) stsiface.STSAPI

NewSTSClient creates a new STS API client for a given session.

func NewSecretsManagerClient

func NewSecretsManagerClient(scopeUser cloud.ScopeUsage, session cloud.Session, logger logger.Wrapper, target runtime.Object) secretsmanageriface.SecretsManagerAPI

NewSecretsManagerClient creates a new Secrets API client for a given session..

Types

type AWSClients

AWSClients contains all the aws clients used by the scopes.

type AWSNodeScope

type AWSNodeScope interface {
	cloud.ClusterScoper

	// RemoteClient returns the Kubernetes client for connecting to the workload cluster.
	RemoteClient() (client.Client, error)
	// Subnets returns the cluster subnets.
	Subnets() infrav1.Subnets
	// SecondaryCidrBlock returns the optional secondary CIDR block to use for pod IPs
	SecondaryCidrBlock() *string
	// SecurityGroups returns the control plane security groups as a map, it creates the map if empty.
	SecurityGroups() map[infrav1.SecurityGroupRole]infrav1.SecurityGroup
	// DisableVPCCNI returns whether the AWS VPC CNI should be disabled
	DisableVPCCNI() bool
	// VpcCni specifies configuration related to the VPC CNI.
	VpcCni() ekscontrolplanev1.VpcCni
	// VPC returns the given VPC configuration.
	VPC() *infrav1.VPCSpec
}

AWSNodeScope is the interface for the scope to be used with the awsnode reconciling service.

type ClusterScope

type ClusterScope struct {
	logger.Logger

	Cluster    *clusterv1.Cluster
	AWSCluster *infrav1.AWSCluster
	// contains filtered or unexported fields
}

ClusterScope defines the basic context for an actuator to operate upon.

func NewClusterScope

func NewClusterScope(params ClusterScopeParams) (*ClusterScope, error)

NewClusterScope creates a new Scope from the supplied parameters. This is meant to be called for each reconcile iteration.

func (*ClusterScope) APIServerPort

func (s *ClusterScope) APIServerPort() int32

APIServerPort returns the APIServerPort to use when creating the load balancer.

func (*ClusterScope) AdditionalControlPlaneIngressRules added in v2.2.3

func (s *ClusterScope) AdditionalControlPlaneIngressRules() []infrav1.IngressRule

AdditionalControlPlaneIngressRules returns the additional ingress rules for control plane security group.

func (*ClusterScope) AdditionalTags

func (s *ClusterScope) AdditionalTags() infrav1.Tags

AdditionalTags returns AdditionalTags from the scope's AWSCluster. The returned value will never be nil.

func (*ClusterScope) AllSecondaryCidrBlocks added in v2.7.0

func (s *ClusterScope) AllSecondaryCidrBlocks() []infrav1.VpcCidrBlock

AllSecondaryCidrBlocks returns all secondary CIDR blocks (combining `SecondaryCidrBlock` and `SecondaryCidrBlocks`).

func (*ClusterScope) Bastion

func (s *ClusterScope) Bastion() *infrav1.Bastion

Bastion returns the bastion details.

func (*ClusterScope) Bucket

func (s *ClusterScope) Bucket() *infrav1.S3Bucket

Bucket returns the cluster bucket configuration.

func (*ClusterScope) CNIIngressRules

func (s *ClusterScope) CNIIngressRules() infrav1.CNIIngressRules

CNIIngressRules returns the CNI spec ingress rules.

func (*ClusterScope) Close

func (s *ClusterScope) Close() error

Close closes the current scope persisting the cluster configuration and status.

func (*ClusterScope) ClusterObj

func (s *ClusterScope) ClusterObj() cloud.ClusterObject

ClusterObj returns the cluster object.

func (*ClusterScope) ControlPlaneConfigMapName

func (s *ClusterScope) ControlPlaneConfigMapName() string

ControlPlaneConfigMapName returns the name of the ConfigMap used to coordinate the bootstrapping of control plane nodes.

func (*ClusterScope) ControlPlaneEndpoint

func (s *ClusterScope) ControlPlaneEndpoint() clusterv1.APIEndpoint

ControlPlaneEndpoint returns the cluster control plane endpoint.

func (*ClusterScope) ControlPlaneLoadBalancer

func (s *ClusterScope) ControlPlaneLoadBalancer() *infrav1.AWSLoadBalancerSpec

ControlPlaneLoadBalancer returns the AWSLoadBalancerSpec.

func (*ClusterScope) ControlPlaneLoadBalancerName

func (s *ClusterScope) ControlPlaneLoadBalancerName() *string

ControlPlaneLoadBalancerName returns the name of the control plane load balancer.

func (*ClusterScope) ControlPlaneLoadBalancerScheme

func (s *ClusterScope) ControlPlaneLoadBalancerScheme() infrav1.ELBScheme

ControlPlaneLoadBalancerScheme returns the Classic ELB scheme (public or internal facing). Deprecated: This method is going to be removed in a future release. Use LoadBalancer.Scheme.

func (*ClusterScope) ControlPlaneLoadBalancers added in v2.4.0

func (s *ClusterScope) ControlPlaneLoadBalancers() []*infrav1.AWSLoadBalancerSpec

ControlPlaneLoadBalancers returns load balancers configured for the control plane.

func (*ClusterScope) ControllerName

func (s *ClusterScope) ControllerName() string

ControllerName returns the name of the controller that created the ClusterScope.

func (*ClusterScope) GetNatGatewaysIPs added in v2.2.2

func (s *ClusterScope) GetNatGatewaysIPs() []string

GetNatGatewaysIPs gets the Nat Gateways Public IPs.

func (*ClusterScope) IdentityRef

func (s *ClusterScope) IdentityRef() *infrav1.AWSIdentityReference

IdentityRef returns the cluster identityRef.

func (*ClusterScope) ImageLookupBaseOS

func (s *ClusterScope) ImageLookupBaseOS() string

ImageLookupBaseOS returns the base operating system name to use when looking up AMIs.

func (*ClusterScope) ImageLookupFormat

func (s *ClusterScope) ImageLookupFormat() string

ImageLookupFormat returns the format string to use when looking up AMIs.

func (*ClusterScope) ImageLookupOrg

func (s *ClusterScope) ImageLookupOrg() string

ImageLookupOrg returns the organization name to use when looking up AMIs.

func (*ClusterScope) InfraCluster

func (s *ClusterScope) InfraCluster() cloud.ClusterObject

InfraCluster returns the AWS infrastructure cluster or control plane object.

func (*ClusterScope) InfraClusterName

func (s *ClusterScope) InfraClusterName() string

InfraClusterName returns the AWS cluster name.

func (*ClusterScope) KubernetesClusterName

func (s *ClusterScope) KubernetesClusterName() string

KubernetesClusterName is the name of the Kubernetes cluster. For the cluster scope this is the same as the CAPI cluster name.

func (*ClusterScope) ListOptionsLabelSelector

func (s *ClusterScope) ListOptionsLabelSelector() client.ListOption

ListOptionsLabelSelector returns a ListOptions with a label selector for clusterName.

func (*ClusterScope) Name

func (s *ClusterScope) Name() string

Name returns the CAPI cluster name.

func (*ClusterScope) Namespace

func (s *ClusterScope) Namespace() string

Namespace returns the cluster namespace.

func (*ClusterScope) Network

func (s *ClusterScope) Network() *infrav1.NetworkStatus

Network returns the cluster network object.

func (*ClusterScope) NodePortIngressRuleCidrBlocks added in v2.7.0

func (s *ClusterScope) NodePortIngressRuleCidrBlocks() []string

NodePortIngressRuleCidrBlocks returns the CIDR blocks for the node NodePort ingress rules.

func (*ClusterScope) Partition added in v2.1.0

func (s *ClusterScope) Partition() string

Partition returns the cluster partition.

func (*ClusterScope) PatchObject

func (s *ClusterScope) PatchObject() error

PatchObject persists the cluster configuration and status.

func (*ClusterScope) Region

func (s *ClusterScope) Region() string

Region returns the cluster region.

func (*ClusterScope) SSHKeyName

func (s *ClusterScope) SSHKeyName() *string

SSHKeyName returns the SSH key name to use for instances.

func (*ClusterScope) SecondaryCidrBlock

func (s *ClusterScope) SecondaryCidrBlock() *string

SecondaryCidrBlock is currently unimplemented for non-managed clusters.

func (*ClusterScope) SecondaryCidrBlocks added in v2.7.0

func (s *ClusterScope) SecondaryCidrBlocks() []infrav1.VpcCidrBlock

SecondaryCidrBlocks returns the additional CIDR blocks to be associated with the managed VPC.

func (*ClusterScope) SecurityGroupOverrides

func (s *ClusterScope) SecurityGroupOverrides() map[infrav1.SecurityGroupRole]string

SecurityGroupOverrides returns the cluster security group overrides.

func (*ClusterScope) SecurityGroups

SecurityGroups returns the cluster security groups as a map, it creates the map if empty.

func (*ClusterScope) ServiceLimiter

func (s *ClusterScope) ServiceLimiter(service string) *throttle.ServiceLimiter

ServiceLimiter returns the AWS SDK session. Used for creating clients.

func (*ClusterScope) Session

func (s *ClusterScope) Session() awsclient.ConfigProvider

Session returns the AWS SDK session. Used for creating clients.

func (*ClusterScope) SetBastionInstance

func (s *ClusterScope) SetBastionInstance(instance *infrav1.Instance)

SetBastionInstance sets the bastion instance in the status of the cluster.

func (*ClusterScope) SetFailureDomain

func (s *ClusterScope) SetFailureDomain(id string, spec clusterv1.FailureDomainSpec)

SetFailureDomain sets the infrastructure provider failure domain key to the spec given as input.

func (*ClusterScope) SetNatGatewaysIPs added in v2.2.2

func (s *ClusterScope) SetNatGatewaysIPs(ips []string)

SetNatGatewaysIPs sets the Nat Gateways Public IPs.

func (*ClusterScope) SetSubnets

func (s *ClusterScope) SetSubnets(subnets infrav1.Subnets)

SetSubnets updates the clusters subnets.

func (*ClusterScope) Subnets

func (s *ClusterScope) Subnets() infrav1.Subnets

Subnets returns the cluster subnets.

func (*ClusterScope) TagUnmanagedNetworkResources added in v2.2.0

func (s *ClusterScope) TagUnmanagedNetworkResources() bool

TagUnmanagedNetworkResources returns if the feature flag tag unmanaged network resources is set.

func (*ClusterScope) UnstructuredControlPlane added in v2.4.0

func (s *ClusterScope) UnstructuredControlPlane() (*unstructured.Unstructured, error)

UnstructuredControlPlane returns the unstructured object for the control plane, if any. When the reference is not set, it returns an empty object.

func (*ClusterScope) VPC

func (s *ClusterScope) VPC() *infrav1.VPCSpec

VPC returns the cluster VPC.

type ClusterScopeGetter

type ClusterScopeGetter interface {
	ClusterScope(params ClusterScopeParams) (*ClusterScope, error)
}

ClusterScopeGetter defines the cluster scope getter interface.

type ClusterScopeGetterFunc

type ClusterScopeGetterFunc func(params ClusterScopeParams) (*ClusterScope, error)

ClusterScopeGetterFunc defines handler types for cluster scope getters.

func (ClusterScopeGetterFunc) ClusterScope

func (f ClusterScopeGetterFunc) ClusterScope(params ClusterScopeParams) (*ClusterScope, error)

ClusterScope will return the cluster scope.

type ClusterScopeParams

type ClusterScopeParams struct {
	Client                       client.Client
	Logger                       *logger.Logger
	Cluster                      *clusterv1.Cluster
	AWSCluster                   *infrav1.AWSCluster
	ControllerName               string
	Endpoints                    []ServiceEndpoint
	Session                      awsclient.ConfigProvider
	TagUnmanagedNetworkResources bool
}

ClusterScopeParams defines the input parameters used to create a new Scope.

type EC2Scope

type EC2Scope interface {
	cloud.ClusterScoper

	// VPC returns the cluster VPC.
	VPC() *infrav1.VPCSpec

	// Subnets returns the cluster subnets.
	Subnets() infrav1.Subnets

	// Network returns the cluster network object.
	Network() *infrav1.NetworkStatus

	// SecurityGroups returns the cluster security groups as a map, it creates the map if empty.
	SecurityGroups() map[infrav1.SecurityGroupRole]infrav1.SecurityGroup

	// Bastion returns the bastion details for the cluster.
	Bastion() *infrav1.Bastion

	// SetBastionInstance sets the bastion instance in the status of the cluster.
	SetBastionInstance(instance *infrav1.Instance)

	// SSHKeyName returns the SSH key name to use for instances.
	SSHKeyName() *string

	// ImageLookupFormat returns the format string to use when looking up AMIs
	ImageLookupFormat() string

	// ImageLookupOrg returns the organization name to use when looking up AMIs
	ImageLookupOrg() string

	// ImageLookupBaseOS returns the base operating system name to use when looking up AMIs
	ImageLookupBaseOS() string
}

EC2Scope is the interface for the scope to be used with the ec2 service.

type ELBScope

type ELBScope interface {
	cloud.ClusterScoper

	// Network returns the cluster network object.
	Network() *infrav1.NetworkStatus

	// Subnets returns the cluster subnets.
	Subnets() infrav1.Subnets

	// SecurityGroups returns the cluster security groups as a map, it creates the map if empty.
	SecurityGroups() map[infrav1.SecurityGroupRole]infrav1.SecurityGroup

	// VPC returns the cluster VPC.
	VPC() *infrav1.VPCSpec

	// ControlPlaneLoadBalancer returns the AWSLoadBalancerSpec
	// Deprecated: Use ControlPlaneLoadBalancers()
	ControlPlaneLoadBalancer() *infrav1.AWSLoadBalancerSpec

	// ControlPlaneLoadBalancerScheme returns the Classic ELB scheme (public or internal facing)
	// Deprecated: This method is going to be removed in a future release. Use LoadBalancer.Scheme.
	ControlPlaneLoadBalancerScheme() infrav1.ELBScheme

	// ControlPlaneLoadBalancerName returns the Classic ELB name
	ControlPlaneLoadBalancerName() *string

	// ControlPlaneEndpoint returns AWSCluster control plane endpoint
	ControlPlaneEndpoint() clusterv1.APIEndpoint

	// ControlPlaneLoadBalancers returns both the ControlPlaneLoadBalancer and SecondaryControlPlaneLoadBalancer AWSLoadBalancerSpecs.
	// The control plane load balancers should always be returned in the above order.
	ControlPlaneLoadBalancers() []*infrav1.AWSLoadBalancerSpec
}

ELBScope is a scope for use with the ELB reconciling service.

type FargateProfileScope

type FargateProfileScope struct {
	logger.Logger
	Client client.Client

	Cluster        *clusterv1.Cluster
	ControlPlane   *ekscontrolplanev1.AWSManagedControlPlane
	FargateProfile *expinfrav1.AWSFargateProfile
	// contains filtered or unexported fields
}

FargateProfileScope defines the basic context for an actuator to operate upon.

func NewFargateProfileScope

func NewFargateProfileScope(params FargateProfileScopeParams) (*FargateProfileScope, error)

NewFargateProfileScope creates a new Scope from the supplied parameters. This is meant to be called for each reconcile iteration.

func (*FargateProfileScope) AdditionalTags

func (s *FargateProfileScope) AdditionalTags() infrav1.Tags

AdditionalTags returns AdditionalTags from the scope's FargateProfile The returned value will never be nil.

func (*FargateProfileScope) Close

func (s *FargateProfileScope) Close() error

Close closes the current scope persisting the control plane configuration and status.

func (*FargateProfileScope) ClusterName

func (s *FargateProfileScope) ClusterName() string

ClusterName returns the cluster name.

func (*FargateProfileScope) ClusterObj

func (s *FargateProfileScope) ClusterObj() cloud.ClusterObject

ClusterObj returns the cluster object.

func (*FargateProfileScope) ControlPlaneSubnets

func (s *FargateProfileScope) ControlPlaneSubnets() *infrav1.Subnets

ControlPlaneSubnets returns the control plane subnets.

func (*FargateProfileScope) ControllerName

func (s *FargateProfileScope) ControllerName() string

ControllerName returns the name of the controller that created the FargateProfile.

func (*FargateProfileScope) EnableIAM

func (s *FargateProfileScope) EnableIAM() bool

EnableIAM indicates that reconciliation should create IAM roles.

func (*FargateProfileScope) IAMReadyFalse

func (s *FargateProfileScope) IAMReadyFalse(reason string, err string) error

IAMReadyFalse marks the ready condition false using warning if error isn't empty.

func (*FargateProfileScope) InfraCluster

func (s *FargateProfileScope) InfraCluster() cloud.ClusterObject

InfraCluster returns the AWS infrastructure cluster or control plane object.

func (*FargateProfileScope) KubernetesClusterName

func (s *FargateProfileScope) KubernetesClusterName() string

KubernetesClusterName is the name of the EKS cluster name.

func (*FargateProfileScope) ManagedPoolName

func (s *FargateProfileScope) ManagedPoolName() string

ManagedPoolName returns the managed machine pool name.

func (*FargateProfileScope) Partition added in v2.1.0

func (s *FargateProfileScope) Partition() string

Partition returns the machine pool subnet IDs.

func (*FargateProfileScope) PatchObject

func (s *FargateProfileScope) PatchObject() error

PatchObject persists the control plane configuration and status.

func (*FargateProfileScope) RoleName

func (s *FargateProfileScope) RoleName() string

RoleName returns the node group role name.

func (*FargateProfileScope) ServiceLimiter

func (s *FargateProfileScope) ServiceLimiter(service string) *throttle.ServiceLimiter

ServiceLimiter returns the AWS SDK session. Used for creating clients.

func (*FargateProfileScope) Session

Session returns the AWS SDK session. Used for creating clients.

func (*FargateProfileScope) SubnetIDs

func (s *FargateProfileScope) SubnetIDs() []string

SubnetIDs returns the machine pool subnet IDs.

type FargateProfileScopeParams

type FargateProfileScopeParams struct {
	Client         client.Client
	Logger         *logger.Logger
	Cluster        *clusterv1.Cluster
	ControlPlane   *ekscontrolplanev1.AWSManagedControlPlane
	FargateProfile *expinfrav1.AWSFargateProfile
	ControllerName string
	Endpoints      []ServiceEndpoint
	Session        awsclient.ConfigProvider

	EnableIAM bool
}

FargateProfileScopeParams defines the input parameters used to create a new Scope.

type GlobalScope

type GlobalScope struct {
	// contains filtered or unexported fields
}

GlobalScope defines the specs for the GlobalScope.

func NewGlobalScope

func NewGlobalScope(params GlobalScopeParams) (*GlobalScope, error)

NewGlobalScope creates a new Scope from the supplied parameters.

func (*GlobalScope) ControllerName

func (s *GlobalScope) ControllerName() string

ControllerName returns the name of the controller that created the GlobalScope.

func (*GlobalScope) ServiceLimiter

func (s *GlobalScope) ServiceLimiter(service string) *throttle.ServiceLimiter

ServiceLimiter returns the AWS SDK session. Used for creating clients.

func (*GlobalScope) Session

func (s *GlobalScope) Session() awsclient.ConfigProvider

Session returns the AWS SDK session. Used for creating clients.

type GlobalScopeParams

type GlobalScopeParams struct {
	ControllerName string
	Region         string
	Endpoints      []ServiceEndpoint
}

GlobalScopeParams defines the parameters acceptable for GlobalScope.

type IAMAuthScope

type IAMAuthScope interface {
	cloud.ClusterScoper

	// RemoteClient returns the Kubernetes client for connecting to the workload cluster.
	RemoteClient() (client.Client, error)
	// IAMAuthConfig returns the IAM authenticator config
	IAMAuthConfig() *ekscontrolplanev1.IAMAuthenticatorConfig
}

IAMAuthScope is the interface for the scope to be used with iamauth reconciling service.

type KubeProxyScope

type KubeProxyScope interface {
	cloud.ClusterScoper

	// RemoteClient returns the Kubernetes client for connecting to the workload cluster.
	RemoteClient() (client.Client, error)
	// DisableKubeProxy returns whether kube-proxy daemonset is to be disabled
	DisableKubeProxy() bool
}

KubeProxyScope is the interface for the scope to be used with the kubeproxy reconciling service.

type LaunchTemplateScope

type LaunchTemplateScope interface {
	GetMachinePool() *expclusterv1.MachinePool
	GetLaunchTemplate() *expinfrav1.AWSLaunchTemplate
	LaunchTemplateName() string
	GetLaunchTemplateIDStatus() string
	SetLaunchTemplateIDStatus(id string)
	GetLaunchTemplateLatestVersionStatus() string
	SetLaunchTemplateLatestVersionStatus(version string)
	GetRawBootstrapData() ([]byte, *types.NamespacedName, error)

	IsEKSManaged() bool
	AdditionalTags() infrav1.Tags

	GetObjectMeta() *metav1.ObjectMeta
	GetSetter() conditions.Setter
	PatchObject() error
	GetEC2Scope() EC2Scope

	client.Client
	logger.Wrapper
}

LaunchTemplateScope defines a scope defined around a launch template.

type MachinePoolScope

type MachinePoolScope struct {
	logger.Logger
	client.Client

	Cluster        *clusterv1.Cluster
	MachinePool    *expclusterv1.MachinePool
	InfraCluster   EC2Scope
	AWSMachinePool *expinfrav1.AWSMachinePool
	// contains filtered or unexported fields
}

MachinePoolScope defines a scope defined around a machine and its cluster.

func NewMachinePoolScope

func NewMachinePoolScope(params MachinePoolScopeParams) (*MachinePoolScope, error)

NewMachinePoolScope creates a new MachinePoolScope from the supplied parameters. This is meant to be called for each reconcile iteration.

func (*MachinePoolScope) AdditionalTags

func (m *MachinePoolScope) AdditionalTags() infrav1.Tags

AdditionalTags merges AdditionalTags from the scope's AWSCluster and AWSMachinePool. If the same key is present in both, the value from AWSMachinePool takes precedence. The returned Tags will never be nil.

func (*MachinePoolScope) Close

func (m *MachinePoolScope) Close() error

Close the MachinePoolScope by updating the machinepool spec, machine status.

func (*MachinePoolScope) GetASGStatus

func (m *MachinePoolScope) GetASGStatus() *expinfrav1.ASGStatus

GetASGStatus returns the AWSMachinePool instance state from the status.

func (*MachinePoolScope) GetEC2Scope

func (m *MachinePoolScope) GetEC2Scope() EC2Scope

GetEC2Scope returns the EC2 scope.

func (*MachinePoolScope) GetLaunchTemplate

func (m *MachinePoolScope) GetLaunchTemplate() *expinfrav1.AWSLaunchTemplate

GetLaunchTemplate returns the launch template.

func (*MachinePoolScope) GetLaunchTemplateIDStatus

func (m *MachinePoolScope) GetLaunchTemplateIDStatus() string

GetLaunchTemplateIDStatus returns the launch template ID status.

func (*MachinePoolScope) GetLaunchTemplateLatestVersionStatus

func (m *MachinePoolScope) GetLaunchTemplateLatestVersionStatus() string

GetLaunchTemplateLatestVersionStatus returns the launch template latest version status.

func (*MachinePoolScope) GetMachinePool

func (m *MachinePoolScope) GetMachinePool() *expclusterv1.MachinePool

GetMachinePool returns the machine pool object.

func (*MachinePoolScope) GetObjectMeta

func (m *MachinePoolScope) GetObjectMeta() *metav1.ObjectMeta

GetObjectMeta returns the AWSMachinePool ObjectMeta.

func (*MachinePoolScope) GetProviderID

func (m *MachinePoolScope) GetProviderID() string

GetProviderID returns the AWSMachine providerID from the spec.

func (*MachinePoolScope) GetRawBootstrapData

func (m *MachinePoolScope) GetRawBootstrapData() ([]byte, *types.NamespacedName, error)

GetRawBootstrapData returns the bootstrap data from the secret in the Machine's bootstrap.dataSecretName, including the secret's namespaced name.

func (*MachinePoolScope) GetRuntimeObject

func (m *MachinePoolScope) GetRuntimeObject() runtime.Object

GetRuntimeObject returns the AWSMachinePool object, in runtime.Object form.

func (*MachinePoolScope) GetSetter

func (m *MachinePoolScope) GetSetter() conditions.Setter

GetSetter returns the AWSMachinePool object setter.

func (*MachinePoolScope) HasFailed

func (m *MachinePoolScope) HasFailed() bool

HasFailed returns true when the AWSMachinePool's Failure reason or Failure message is populated.

func (*MachinePoolScope) IsEKSManaged

func (m *MachinePoolScope) IsEKSManaged() bool

IsEKSManaged checks if the AWSMachinePool is EKS managed.

func (*MachinePoolScope) LaunchTemplateName

func (m *MachinePoolScope) LaunchTemplateName() string

LaunchTemplateName returns the name of the launch template.

func (*MachinePoolScope) Name

func (m *MachinePoolScope) Name() string

Name returns the AWSMachinePool name.

func (*MachinePoolScope) Namespace

func (m *MachinePoolScope) Namespace() string

Namespace returns the namespace name.

func (*MachinePoolScope) PatchCAPIMachinePoolObject

func (m *MachinePoolScope) PatchCAPIMachinePoolObject(ctx context.Context) error

PatchCAPIMachinePoolObject persists the capi machinepool configuration and status.

func (*MachinePoolScope) PatchObject

func (m *MachinePoolScope) PatchObject() error

PatchObject persists the machinepool spec and status.

func (*MachinePoolScope) SetASGStatus

func (m *MachinePoolScope) SetASGStatus(v expinfrav1.ASGStatus)

SetASGStatus sets the AWSMachinePool status instance state.

func (*MachinePoolScope) SetAnnotation

func (m *MachinePoolScope) SetAnnotation(key, value string)

SetAnnotation sets a key value annotation on the AWSMachine.

func (*MachinePoolScope) SetFailureMessage

func (m *MachinePoolScope) SetFailureMessage(v error)

SetFailureMessage sets the AWSMachine status failure message.

func (*MachinePoolScope) SetFailureReason

func (m *MachinePoolScope) SetFailureReason(v capierrors.MachineStatusError)

SetFailureReason sets the AWSMachine status failure reason.

func (*MachinePoolScope) SetLaunchTemplateIDStatus

func (m *MachinePoolScope) SetLaunchTemplateIDStatus(id string)

SetLaunchTemplateIDStatus sets the launch template ID status.

func (*MachinePoolScope) SetLaunchTemplateLatestVersionStatus

func (m *MachinePoolScope) SetLaunchTemplateLatestVersionStatus(version string)

SetLaunchTemplateLatestVersionStatus sets the launch template latest version status.

func (*MachinePoolScope) SetNotReady

func (m *MachinePoolScope) SetNotReady()

SetNotReady sets the AWSMachinePool Ready Status to false.

func (*MachinePoolScope) SubnetIDs

func (m *MachinePoolScope) SubnetIDs(subnetIDs []string) ([]string, error)

SubnetIDs returns the machine pool subnet IDs.

func (*MachinePoolScope) UpdateInstanceStatuses

func (m *MachinePoolScope) UpdateInstanceStatuses(ctx context.Context, instances []infrav1.Instance) error

UpdateInstanceStatuses ties ASG instances and Node status data together and updates AWSMachinePool This updates if ASG instances ready and kubelet version running on the node..

type MachinePoolScopeParams

type MachinePoolScopeParams struct {
	client.Client
	Logger *logger.Logger

	Cluster        *clusterv1.Cluster
	MachinePool    *expclusterv1.MachinePool
	InfraCluster   EC2Scope
	AWSMachinePool *expinfrav1.AWSMachinePool
}

MachinePoolScopeParams defines a scope defined around a machine and its cluster.

type MachineScope

type MachineScope struct {
	logger.Logger

	Cluster      *clusterv1.Cluster
	Machine      *clusterv1.Machine
	InfraCluster EC2Scope
	AWSMachine   *infrav1.AWSMachine
	// contains filtered or unexported fields
}

MachineScope defines a scope defined around a machine and its cluster.

func NewMachineScope

func NewMachineScope(params MachineScopeParams) (*MachineScope, error)

NewMachineScope creates a new MachineScope from the supplied parameters. This is meant to be called for each reconcile iteration.

func (*MachineScope) AWSMachineIsDeleted

func (m *MachineScope) AWSMachineIsDeleted() bool

AWSMachineIsDeleted checks if the AWS machine was deleted.

func (*MachineScope) AdditionalTags

func (m *MachineScope) AdditionalTags() infrav1.Tags

AdditionalTags merges AdditionalTags from the scope's AWSCluster and AWSMachine. If the same key is present in both, the value from AWSMachine takes precedence. The returned Tags will never be nil.

func (*MachineScope) Close

func (m *MachineScope) Close() error

Close the MachineScope by updating the machine spec, machine status.

func (*MachineScope) CompressUserData

func (m *MachineScope) CompressUserData(userDataFormat string) bool

CompressUserData returns the computed value of whether or not userdata should be compressed using gzip.

func (*MachineScope) DeleteSecretPrefix

func (m *MachineScope) DeleteSecretPrefix()

DeleteSecretPrefix deletes the prefix for the secret belonging to the AWSMachine in AWS Secrets Manager.

func (*MachineScope) GetBootstrapData

func (m *MachineScope) GetBootstrapData() (string, error)

GetBootstrapData returns the bootstrap data from the secret in the Machine's bootstrap.dataSecretName as base64.

func (*MachineScope) GetElasticIPPool added in v2.5.1

func (m *MachineScope) GetElasticIPPool() *infrav1.ElasticIPPool

GetElasticIPPool returns the Elastic IP Pool for an machine, when exists.

func (*MachineScope) GetInstanceID

func (m *MachineScope) GetInstanceID() *string

GetInstanceID returns the AWSMachine instance id by parsing Spec.ProviderID.

func (*MachineScope) GetInstanceState

func (m *MachineScope) GetInstanceState() *infrav1.InstanceState

GetInstanceState returns the AWSMachine instance state from the status.

func (*MachineScope) GetProviderID

func (m *MachineScope) GetProviderID() string

GetProviderID returns the AWSMachine providerID from the spec.

func (*MachineScope) GetRawBootstrapData

func (m *MachineScope) GetRawBootstrapData() ([]byte, error)

GetRawBootstrapData returns the bootstrap data from the secret in the Machine's bootstrap.dataSecretName.

func (*MachineScope) GetRawBootstrapDataWithFormat

func (m *MachineScope) GetRawBootstrapDataWithFormat() ([]byte, string, error)

GetRawBootstrapDataWithFormat returns the bootstrap data from the secret in the Machine's bootstrap.dataSecretName.

func (*MachineScope) GetSecretCount

func (m *MachineScope) GetSecretCount() int32

GetSecretCount returns the number of AWS Secret Manager entries making up the complete userdata.

func (*MachineScope) GetSecretPrefix

func (m *MachineScope) GetSecretPrefix() string

GetSecretPrefix returns the prefix for the secrets belonging to the AWSMachine in AWS Secrets Manager.

func (*MachineScope) HasFailed

func (m *MachineScope) HasFailed() bool

HasFailed returns the failure state of the machine scope.

func (*MachineScope) InstanceIsInKnownState

func (m *MachineScope) InstanceIsInKnownState() bool

InstanceIsInKnownState checks if the machine scope's instance state is known.

func (*MachineScope) InstanceIsOperational

func (m *MachineScope) InstanceIsOperational() bool

InstanceIsOperational returns the operational state of the machine scope.

func (*MachineScope) InstanceIsRunning

func (m *MachineScope) InstanceIsRunning() bool

InstanceIsRunning returns the instance state of the machine scope.

func (*MachineScope) IsControlPlane

func (m *MachineScope) IsControlPlane() bool

IsControlPlane returns true if the machine is a control plane.

func (*MachineScope) IsControlPlaneExternallyManaged added in v2.4.0

func (m *MachineScope) IsControlPlaneExternallyManaged() bool

IsControlPlaneExternallyManaged checks if the control plane is externally managed.

This is determined by the kind of the control plane object (EKS for example), or if the control plane referenced object is reporting as externally managed.

func (*MachineScope) IsEKSManaged

func (m *MachineScope) IsEKSManaged() bool

IsEKSManaged checks if the machine is EKS managed.

func (*MachineScope) IsExternallyManaged

func (m *MachineScope) IsExternallyManaged() bool

IsExternallyManaged checks if the machine is externally managed.

func (*MachineScope) MachineIsDeleted added in v2.2.5

func (m *MachineScope) MachineIsDeleted() bool

MachineIsDeleted checks if the machine was deleted.

func (*MachineScope) Name

func (m *MachineScope) Name() string

Name returns the AWSMachine name.

func (*MachineScope) Namespace

func (m *MachineScope) Namespace() string

Namespace returns the namespace name.

func (*MachineScope) PatchObject

func (m *MachineScope) PatchObject() error

PatchObject persists the machine spec and status.

func (*MachineScope) Role

func (m *MachineScope) Role() string

Role returns the machine role from the labels.

func (*MachineScope) SecureSecretsBackend

func (m *MachineScope) SecureSecretsBackend() infrav1.SecretBackend

SecureSecretsBackend returns the chosen secret backend.

func (*MachineScope) SetAddresses

func (m *MachineScope) SetAddresses(addrs []clusterv1.MachineAddress)

SetAddresses sets the AWSMachine address status.

func (*MachineScope) SetAnnotation

func (m *MachineScope) SetAnnotation(key, value string)

SetAnnotation sets a key value annotation on the AWSMachine.

func (*MachineScope) SetFailureMessage

func (m *MachineScope) SetFailureMessage(v error)

SetFailureMessage sets the AWSMachine status failure message.

func (*MachineScope) SetFailureReason

func (m *MachineScope) SetFailureReason(v capierrors.MachineStatusError)

SetFailureReason sets the AWSMachine status failure reason.

func (*MachineScope) SetInstanceID

func (m *MachineScope) SetInstanceID(instanceID string)

SetInstanceID sets the AWSMachine instanceID in spec.

func (*MachineScope) SetInstanceState

func (m *MachineScope) SetInstanceState(v infrav1.InstanceState)

SetInstanceState sets the AWSMachine status instance state.

func (*MachineScope) SetInterruptible

func (m *MachineScope) SetInterruptible()

SetInterruptible sets the AWSMachine status Interruptible.

func (*MachineScope) SetNotReady

func (m *MachineScope) SetNotReady()

SetNotReady sets the AWSMachine Ready Status to false.

func (*MachineScope) SetProviderID

func (m *MachineScope) SetProviderID(instanceID, availabilityZone string)

SetProviderID sets the AWSMachine providerID in spec.

func (*MachineScope) SetReady

func (m *MachineScope) SetReady()

SetReady sets the AWSMachine Ready Status.

func (*MachineScope) SetSecretCount

func (m *MachineScope) SetSecretCount(i int32)

SetSecretCount sets the number of AWS Secret Manager entries making up the complete userdata.

func (*MachineScope) SetSecretPrefix

func (m *MachineScope) SetSecretPrefix(value string)

SetSecretPrefix sets the prefix for the secrets belonging to the AWSMachine in AWS Secrets Manager.

func (*MachineScope) UseIgnition

func (m *MachineScope) UseIgnition(userDataFormat string) bool

UseIgnition returns true if the AWSMachine should use Ignition.

func (*MachineScope) UseSecretsManager

func (m *MachineScope) UseSecretsManager(userDataFormat string) bool

UseSecretsManager returns the computed value of whether or not userdata should be stored using AWS Secrets Manager.

type MachineScopeGetter

type MachineScopeGetter interface {
	MachineScope(params MachineScopeParams) (*MachineScope, error)
}

MachineScopeGetter defines the machine scope getter interface.

type MachineScopeGetterFunc

type MachineScopeGetterFunc func(params MachineScopeParams) (*MachineScope, error)

MachineScopeGetterFunc defines handler types for machine scope getters.

func (MachineScopeGetterFunc) MachineScope

func (f MachineScopeGetterFunc) MachineScope(params MachineScopeParams) (*MachineScope, error)

MachineScope will return the machine scope.

type MachineScopeParams

type MachineScopeParams struct {
	Client       client.Client
	Logger       *logger.Logger
	Cluster      *clusterv1.Cluster
	Machine      *clusterv1.Machine
	InfraCluster EC2Scope
	AWSMachine   *infrav1.AWSMachine
}

MachineScopeParams defines the input parameters used to create a new MachineScope.

type ManagedControlPlaneScope

type ManagedControlPlaneScope struct {
	logger.Logger
	Client client.Client

	Cluster      *clusterv1.Cluster
	ControlPlane *ekscontrolplanev1.AWSManagedControlPlane
	// contains filtered or unexported fields
}

ManagedControlPlaneScope defines the basic context for an actuator to operate upon.

func NewManagedControlPlaneScope

func NewManagedControlPlaneScope(params ManagedControlPlaneScopeParams) (*ManagedControlPlaneScope, error)

NewManagedControlPlaneScope creates a new Scope from the supplied parameters. This is meant to be called for each reconcile iteration.

func (*ManagedControlPlaneScope) APIServerPort

func (s *ManagedControlPlaneScope) APIServerPort() int32

APIServerPort returns the port to use when communicating with the API server.

func (*ManagedControlPlaneScope) AdditionalControlPlaneIngressRules added in v2.2.3

func (s *ManagedControlPlaneScope) AdditionalControlPlaneIngressRules() []infrav1.IngressRule

AdditionalControlPlaneIngressRules returns the additional ingress rules for the control plane security group.

func (*ManagedControlPlaneScope) AdditionalTags

func (s *ManagedControlPlaneScope) AdditionalTags() infrav1.Tags

AdditionalTags returns AdditionalTags from the scope's EksControlPlane. The returned value will never be nil.

func (*ManagedControlPlaneScope) Addons

Addons returns the list of addons for a EKS cluster.

func (*ManagedControlPlaneScope) AllSecondaryCidrBlocks added in v2.7.0

func (s *ManagedControlPlaneScope) AllSecondaryCidrBlocks() []infrav1.VpcCidrBlock

AllSecondaryCidrBlocks returns all secondary CIDR blocks (combining `SecondaryCidrBlock` and `SecondaryCidrBlocks`).

func (*ManagedControlPlaneScope) AllowAdditionalRoles

func (s *ManagedControlPlaneScope) AllowAdditionalRoles() bool

AllowAdditionalRoles indicates if additional roles can be added to the created IAM roles.

func (*ManagedControlPlaneScope) Bastion

Bastion returns the bastion details.

func (*ManagedControlPlaneScope) Bucket added in v2.3.0

Bucket returns the bucket details. For ManagedControlPlane this is always nil, as we don't support S3 buckets for managed clusters.

func (*ManagedControlPlaneScope) CNIIngressRules

func (s *ManagedControlPlaneScope) CNIIngressRules() infrav1.CNIIngressRules

CNIIngressRules returns the CNI spec ingress rules.

func (*ManagedControlPlaneScope) Close

func (s *ManagedControlPlaneScope) Close() error

Close closes the current scope persisting the control plane configuration and status.

func (*ManagedControlPlaneScope) ClusterObj

ClusterObj returns the cluster object.

func (*ManagedControlPlaneScope) ControlPlaneLoadBalancer added in v2.1.0

func (s *ManagedControlPlaneScope) ControlPlaneLoadBalancer() *infrav1.AWSLoadBalancerSpec

ControlPlaneLoadBalancer returns the AWSLoadBalancerSpec.

func (*ManagedControlPlaneScope) ControlPlaneLoadBalancers added in v2.4.2

func (s *ManagedControlPlaneScope) ControlPlaneLoadBalancers() []*infrav1.AWSLoadBalancerSpec

ControlPlaneLoadBalancers returns the AWSLoadBalancerSpecs.

func (*ManagedControlPlaneScope) ControllerName

func (s *ManagedControlPlaneScope) ControllerName() string

ControllerName returns the name of the controller that created the ManagedControlPlane.

func (*ManagedControlPlaneScope) DisableKubeProxy

func (s *ManagedControlPlaneScope) DisableKubeProxy() bool

DisableKubeProxy returns whether kube-proxy should be disabled.

func (*ManagedControlPlaneScope) DisableVPCCNI

func (s *ManagedControlPlaneScope) DisableVPCCNI() bool

DisableVPCCNI returns whether the AWS VPC CNI should be disabled.

func (*ManagedControlPlaneScope) EnableIAM

func (s *ManagedControlPlaneScope) EnableIAM() bool

EnableIAM indicates that reconciliation should create IAM roles.

func (*ManagedControlPlaneScope) GetNatGatewaysIPs added in v2.2.2

func (s *ManagedControlPlaneScope) GetNatGatewaysIPs() []string

GetNatGatewaysIPs gets the Nat Gateways Public IPs.

func (*ManagedControlPlaneScope) IAMAuthConfig

IAMAuthConfig returns the IAM authenticator config. The returned value will never be nil.

func (*ManagedControlPlaneScope) IdentityRef

IdentityRef returns the cluster identityRef.

func (*ManagedControlPlaneScope) ImageLookupBaseOS

func (s *ManagedControlPlaneScope) ImageLookupBaseOS() string

ImageLookupBaseOS returns the base operating system name to use when looking up AMIs.

func (*ManagedControlPlaneScope) ImageLookupFormat

func (s *ManagedControlPlaneScope) ImageLookupFormat() string

ImageLookupFormat returns the format string to use when looking up AMIs.

func (*ManagedControlPlaneScope) ImageLookupOrg

func (s *ManagedControlPlaneScope) ImageLookupOrg() string

ImageLookupOrg returns the organization name to use when looking up AMIs.

func (*ManagedControlPlaneScope) InfraCluster

func (s *ManagedControlPlaneScope) InfraCluster() cloud.ClusterObject

InfraCluster returns the AWS infrastructure cluster or control plane object.

func (*ManagedControlPlaneScope) InfraClusterName

func (s *ManagedControlPlaneScope) InfraClusterName() string

InfraClusterName returns the AWS cluster name.

func (*ManagedControlPlaneScope) KubernetesClusterName

func (s *ManagedControlPlaneScope) KubernetesClusterName() string

KubernetesClusterName is the name of the Kubernetes cluster. For the managed scope this is the different to the CAPI cluster name and is the EKS cluster name.

func (*ManagedControlPlaneScope) ListOptionsLabelSelector

func (s *ManagedControlPlaneScope) ListOptionsLabelSelector() client.ListOption

ListOptionsLabelSelector returns a ListOptions with a label selector for clusterName.

func (*ManagedControlPlaneScope) Name

func (s *ManagedControlPlaneScope) Name() string

Name returns the CAPI cluster name.

func (*ManagedControlPlaneScope) Namespace

func (s *ManagedControlPlaneScope) Namespace() string

Namespace returns the cluster namespace.

func (*ManagedControlPlaneScope) Network

Network returns the control plane network object.

func (*ManagedControlPlaneScope) NodePortIngressRuleCidrBlocks added in v2.7.0

func (s *ManagedControlPlaneScope) NodePortIngressRuleCidrBlocks() []string

NodePortIngressRuleCidrBlocks returns the CIDR blocks for the node NodePort ingress rules.

func (*ManagedControlPlaneScope) OIDCIdentityProviderConfig

OIDCIdentityProviderConfig returns the OIDC identity provider config.

func (*ManagedControlPlaneScope) Partition added in v2.1.0

func (s *ManagedControlPlaneScope) Partition() string

Partition returns the cluster partition.

func (*ManagedControlPlaneScope) PatchObject

func (s *ManagedControlPlaneScope) PatchObject() error

PatchObject persists the control plane configuration and status.

func (*ManagedControlPlaneScope) Region

func (s *ManagedControlPlaneScope) Region() string

Region returns the cluster region.

func (*ManagedControlPlaneScope) RemoteClient

func (s *ManagedControlPlaneScope) RemoteClient() (client.Client, error)

RemoteClient returns the Kubernetes client for connecting to the workload cluster.

func (*ManagedControlPlaneScope) RestrictPrivateSubnets added in v2.6.0

func (s *ManagedControlPlaneScope) RestrictPrivateSubnets() bool

RestrictPrivateSubnets returns whether Control Plane should be restricted to Private subnets.

func (*ManagedControlPlaneScope) SSHKeyName

func (s *ManagedControlPlaneScope) SSHKeyName() *string

SSHKeyName returns the SSH key name to use for instances.

func (*ManagedControlPlaneScope) SecondaryCidrBlock

func (s *ManagedControlPlaneScope) SecondaryCidrBlock() *string

SecondaryCidrBlock returns the SecondaryCidrBlock of the control plane.

func (*ManagedControlPlaneScope) SecondaryCidrBlocks added in v2.7.0

func (s *ManagedControlPlaneScope) SecondaryCidrBlocks() []infrav1.VpcCidrBlock

SecondaryCidrBlocks returns the additional CIDR blocks to be associated with the managed VPC.

func (*ManagedControlPlaneScope) SecurityGroupOverrides

func (s *ManagedControlPlaneScope) SecurityGroupOverrides() map[infrav1.SecurityGroupRole]string

SecurityGroupOverrides returns the security groups that are overrides in the ControlPlane spec.

func (*ManagedControlPlaneScope) SecurityGroups

SecurityGroups returns the control plane security groups as a map, it creates the map if empty.

func (*ManagedControlPlaneScope) ServiceCidrs

ServiceCidrs returns the CIDR blocks used for services.

func (*ManagedControlPlaneScope) ServiceLimiter

func (s *ManagedControlPlaneScope) ServiceLimiter(service string) *throttle.ServiceLimiter

ServiceLimiter returns the AWS SDK session. Used for creating clients.

func (*ManagedControlPlaneScope) Session

Session returns the AWS SDK session. Used for creating clients.

func (*ManagedControlPlaneScope) SetBastionInstance

func (s *ManagedControlPlaneScope) SetBastionInstance(instance *infrav1.Instance)

SetBastionInstance sets the bastion instance in the status of the cluster.

func (*ManagedControlPlaneScope) SetFailureDomain

func (s *ManagedControlPlaneScope) SetFailureDomain(id string, spec clusterv1.FailureDomainSpec)

SetFailureDomain sets the infrastructure provider failure domain key to the spec given as input.

func (*ManagedControlPlaneScope) SetNatGatewaysIPs added in v2.2.2

func (s *ManagedControlPlaneScope) SetNatGatewaysIPs(ips []string)

SetNatGatewaysIPs sets the Nat Gateways Public IPs.

func (*ManagedControlPlaneScope) SetSubnets

func (s *ManagedControlPlaneScope) SetSubnets(subnets infrav1.Subnets)

SetSubnets updates the control planes subnets.

func (*ManagedControlPlaneScope) Subnets

Subnets returns the control plane subnets.

func (*ManagedControlPlaneScope) TagUnmanagedNetworkResources added in v2.2.0

func (s *ManagedControlPlaneScope) TagUnmanagedNetworkResources() bool

TagUnmanagedNetworkResources returns if the feature flag tag unmanaged network resources is set.

func (*ManagedControlPlaneScope) TokenMethod

TokenMethod returns the token method to use in the kubeconfig.

func (*ManagedControlPlaneScope) UnstructuredControlPlane added in v2.4.0

func (s *ManagedControlPlaneScope) UnstructuredControlPlane() (*unstructured.Unstructured, error)

UnstructuredControlPlane returns the unstructured object for the control plane, if any. When the reference is not set, it returns an empty object.

func (*ManagedControlPlaneScope) VPC

VPC returns the control plane VPC.

func (*ManagedControlPlaneScope) VpcCni

VpcCni returns a list of environment variables to apply to the `aws-node` DaemonSet.

type ManagedControlPlaneScopeParams

type ManagedControlPlaneScopeParams struct {
	Client         client.Client
	Logger         *logger.Logger
	Cluster        *clusterv1.Cluster
	ControlPlane   *ekscontrolplanev1.AWSManagedControlPlane
	ControllerName string
	Endpoints      []ServiceEndpoint
	Session        awsclient.ConfigProvider

	EnableIAM                    bool
	AllowAdditionalRoles         bool
	TagUnmanagedNetworkResources bool
}

ManagedControlPlaneScopeParams defines the input parameters used to create a new Scope.

type ManagedMachinePoolScope

type ManagedMachinePoolScope struct {
	logger.Logger
	client.Client

	Cluster            *clusterv1.Cluster
	ControlPlane       *ekscontrolplanev1.AWSManagedControlPlane
	ManagedMachinePool *expinfrav1.AWSManagedMachinePool
	MachinePool        *expclusterv1.MachinePool
	EC2Scope           EC2Scope
	// contains filtered or unexported fields
}

ManagedMachinePoolScope defines the basic context for an actuator to operate upon.

func NewManagedMachinePoolScope

func NewManagedMachinePoolScope(params ManagedMachinePoolScopeParams) (*ManagedMachinePoolScope, error)

NewManagedMachinePoolScope creates a new Scope from the supplied parameters. This is meant to be called for each reconcile iteration.

func (*ManagedMachinePoolScope) AdditionalTags

func (s *ManagedMachinePoolScope) AdditionalTags() infrav1.Tags

AdditionalTags returns AdditionalTags from the scope's ManagedMachinePool The returned value will never be nil.

func (*ManagedMachinePoolScope) AllowAdditionalRoles

func (s *ManagedMachinePoolScope) AllowAdditionalRoles() bool

AllowAdditionalRoles indicates if additional roles can be added to the created IAM roles.

func (*ManagedMachinePoolScope) Close

func (s *ManagedMachinePoolScope) Close() error

Close closes the current scope persisting the control plane configuration and status.

func (*ManagedMachinePoolScope) ClusterName

func (s *ManagedMachinePoolScope) ClusterName() string

ClusterName returns the cluster name.

func (*ManagedMachinePoolScope) ClusterObj

ClusterObj returns the cluster object.

func (*ManagedMachinePoolScope) ControlPlaneSubnets

func (s *ManagedMachinePoolScope) ControlPlaneSubnets() infrav1.Subnets

ControlPlaneSubnets returns the control plane subnets.

func (*ManagedMachinePoolScope) ControllerName

func (s *ManagedMachinePoolScope) ControllerName() string

ControllerName returns the name of the controller that created the ManagedMachinePool.

func (*ManagedMachinePoolScope) EnableIAM

func (s *ManagedMachinePoolScope) EnableIAM() bool

EnableIAM indicates that reconciliation should create IAM roles.

func (*ManagedMachinePoolScope) GetEC2Scope

func (s *ManagedMachinePoolScope) GetEC2Scope() EC2Scope

GetEC2Scope returns the EC2Scope.

func (*ManagedMachinePoolScope) GetLaunchTemplate

func (s *ManagedMachinePoolScope) GetLaunchTemplate() *expinfrav1.AWSLaunchTemplate

GetLaunchTemplate returns the launch template.

func (*ManagedMachinePoolScope) GetLaunchTemplateIDStatus

func (s *ManagedMachinePoolScope) GetLaunchTemplateIDStatus() string

GetLaunchTemplateIDStatus returns the launch template ID status.

func (*ManagedMachinePoolScope) GetLaunchTemplateLatestVersionStatus

func (s *ManagedMachinePoolScope) GetLaunchTemplateLatestVersionStatus() string

GetLaunchTemplateLatestVersionStatus returns the launch template latest version status.

func (*ManagedMachinePoolScope) GetMachinePool

func (s *ManagedMachinePoolScope) GetMachinePool() *expclusterv1.MachinePool

GetMachinePool returns the machine pool.

func (*ManagedMachinePoolScope) GetObjectMeta

func (s *ManagedMachinePoolScope) GetObjectMeta() *metav1.ObjectMeta

GetObjectMeta returns the ObjectMeta for the AWSManagedMachinePool.

func (*ManagedMachinePoolScope) GetRawBootstrapData

func (s *ManagedMachinePoolScope) GetRawBootstrapData() ([]byte, *types.NamespacedName, error)

GetRawBootstrapData returns the raw bootstrap data from the linked Machine's bootstrap.dataSecretName.

func (*ManagedMachinePoolScope) GetRuntimeObject

func (s *ManagedMachinePoolScope) GetRuntimeObject() runtime.Object

GetRuntimeObject returns the AWSManagedMachinePool, in runtime.Object form.

func (*ManagedMachinePoolScope) GetSetter

func (s *ManagedMachinePoolScope) GetSetter() conditions.Setter

GetSetter returns the condition setter.

func (*ManagedMachinePoolScope) IAMReadyFalse

func (s *ManagedMachinePoolScope) IAMReadyFalse(reason string, err string) error

IAMReadyFalse marks the ready condition false using warning if error isn't empty.

func (*ManagedMachinePoolScope) IdentityRef

IdentityRef returns the cluster identityRef.

func (*ManagedMachinePoolScope) InfraCluster

func (s *ManagedMachinePoolScope) InfraCluster() cloud.ClusterObject

InfraCluster returns the AWS infrastructure cluster or control plane object.

func (*ManagedMachinePoolScope) IsEKSManaged

func (s *ManagedMachinePoolScope) IsEKSManaged() bool

IsEKSManaged returns true if the control plane is managed by EKS.

func (*ManagedMachinePoolScope) KubernetesClusterName

func (s *ManagedMachinePoolScope) KubernetesClusterName() string

KubernetesClusterName is the name of the EKS cluster name.

func (*ManagedMachinePoolScope) LaunchTemplateName

func (s *ManagedMachinePoolScope) LaunchTemplateName() string

LaunchTemplateName returns the launch template name.

func (*ManagedMachinePoolScope) ManagedPoolName

func (s *ManagedMachinePoolScope) ManagedPoolName() string

ManagedPoolName returns the managed machine pool name.

func (*ManagedMachinePoolScope) Name

func (s *ManagedMachinePoolScope) Name() string

Name returns the name of the AWSManagedMachinePool.

func (*ManagedMachinePoolScope) Namespace

func (s *ManagedMachinePoolScope) Namespace() string

Namespace returns the namespace of the AWSManagedMachinePool.

func (*ManagedMachinePoolScope) NodegroupName

func (s *ManagedMachinePoolScope) NodegroupName() string

NodegroupName is the name of the EKS nodegroup.

func (*ManagedMachinePoolScope) NodegroupReadyFalse

func (s *ManagedMachinePoolScope) NodegroupReadyFalse(reason string, err string) error

NodegroupReadyFalse marks the ready condition false using warning if error isn't empty.

func (*ManagedMachinePoolScope) Partition added in v2.1.0

func (s *ManagedMachinePoolScope) Partition() string

Partition returns the machine pool subnet IDs.

func (*ManagedMachinePoolScope) PatchCAPIMachinePoolObject added in v2.1.0

func (s *ManagedMachinePoolScope) PatchCAPIMachinePoolObject(ctx context.Context) error

PatchCAPIMachinePoolObject persists the capi machinepool configuration and status.

func (*ManagedMachinePoolScope) PatchObject

func (s *ManagedMachinePoolScope) PatchObject() error

PatchObject persists the control plane configuration and status.

func (*ManagedMachinePoolScope) RoleName

func (s *ManagedMachinePoolScope) RoleName() string

RoleName returns the node group role name.

func (*ManagedMachinePoolScope) ServiceLimiter

func (s *ManagedMachinePoolScope) ServiceLimiter(service string) *throttle.ServiceLimiter

ServiceLimiter returns the AWS SDK session. Used for creating clients.

func (*ManagedMachinePoolScope) Session

Session returns the AWS SDK session. Used for creating clients.

func (*ManagedMachinePoolScope) SetLaunchTemplateIDStatus

func (s *ManagedMachinePoolScope) SetLaunchTemplateIDStatus(id string)

SetLaunchTemplateIDStatus sets the launch template ID status.

func (*ManagedMachinePoolScope) SetLaunchTemplateLatestVersionStatus

func (s *ManagedMachinePoolScope) SetLaunchTemplateLatestVersionStatus(version string)

SetLaunchTemplateLatestVersionStatus sets the launch template latest version status.

func (*ManagedMachinePoolScope) SubnetIDs

func (s *ManagedMachinePoolScope) SubnetIDs() ([]string, error)

SubnetIDs returns the machine pool subnet IDs.

func (*ManagedMachinePoolScope) Version

func (s *ManagedMachinePoolScope) Version() *string

Version returns the nodegroup Kubernetes version.

type ManagedMachinePoolScopeParams

type ManagedMachinePoolScopeParams struct {
	Client             client.Client
	Logger             *logger.Logger
	Cluster            *clusterv1.Cluster
	ControlPlane       *ekscontrolplanev1.AWSManagedControlPlane
	ManagedMachinePool *expinfrav1.AWSManagedMachinePool
	MachinePool        *expclusterv1.MachinePool
	ControllerName     string
	Endpoints          []ServiceEndpoint
	Session            awsclient.ConfigProvider

	EnableIAM            bool
	AllowAdditionalRoles bool

	InfraCluster EC2Scope
}

ManagedMachinePoolScopeParams defines the input parameters used to create a new Scope.

type NetworkScope

type NetworkScope interface {
	cloud.ClusterScoper

	// Network returns the cluster network object.
	Network() *infrav1.NetworkStatus
	// VPC returns the cluster VPC.
	VPC() *infrav1.VPCSpec
	// Subnets returns the cluster subnets.
	Subnets() infrav1.Subnets
	// SetSubnets updates the clusters subnets.
	SetSubnets(subnets infrav1.Subnets)
	// CNIIngressRules returns the CNI spec ingress rules.
	CNIIngressRules() infrav1.CNIIngressRules
	// SecurityGroups returns the cluster security groups as a map, it creates the map if empty.
	SecurityGroups() map[infrav1.SecurityGroupRole]infrav1.SecurityGroup
	// SecondaryCidrBlock returns the optional secondary CIDR block to use for pod IPs. This may later be renamed since
	// it should not be confused with SecondaryCidrBlocks.
	SecondaryCidrBlock() *string
	// SecondaryCidrBlocks returns the additional CIDR blocks to be associated with the managed VPC.
	SecondaryCidrBlocks() []infrav1.VpcCidrBlock
	// AllSecondaryCidrBlocks returns a unique list of all secondary CIDR blocks (combining `SecondaryCidrBlock` and
	// `SecondaryCidrBlocks`).
	AllSecondaryCidrBlocks() []infrav1.VpcCidrBlock

	// Bastion returns the bastion details for the cluster.
	Bastion() *infrav1.Bastion

	// Bucket returns the cluster bucket.
	Bucket() *infrav1.S3Bucket

	// TagUnmanagedNetworkResources returns is tagging unmanaged network resources is set.
	TagUnmanagedNetworkResources() bool

	// SetNatGatewaysIPs sets the Nat Gateways Public IPs.
	SetNatGatewaysIPs(ips []string)
	// GetNatGatewaysIPs gets the Nat Gateways Public IPs.
	GetNatGatewaysIPs() []string
}

NetworkScope is the interface for the scope to be used with the network services.

type NodeStatus

type NodeStatus struct {
	Ready   bool
	Version string
}

NodeStatus represents the status of a Kubernetes node.

type ProviderID added in v2.4.0

type ProviderID struct {
	// contains filtered or unexported fields
}

ProviderID is a struct representation of a Kubernetes ProviderID. Format: cloudProvider://optional/segments/etc/id

func NewProviderID added in v2.4.0

func NewProviderID(id string) (*ProviderID, error)

NewProviderID parses the input string and returns a new ProviderID.

func (*ProviderID) CloudProvider deprecated added in v2.4.0

func (p *ProviderID) CloudProvider() string

CloudProvider returns the cloud provider portion of the ProviderID.

Deprecated: This method is going to be removed in a future release.

func (*ProviderID) Equals deprecated added in v2.4.0

func (p *ProviderID) Equals(o *ProviderID) bool

Equals returns true if this ProviderID string matches another ProviderID string.

Deprecated: This method is going to be removed in a future release.

func (*ProviderID) ID deprecated added in v2.4.0

func (p *ProviderID) ID() string

ID returns the identifier portion of the ProviderID.

Deprecated: This method is going to be removed in a future release.

func (*ProviderID) IndexKey deprecated added in v2.4.0

func (p *ProviderID) IndexKey() string

IndexKey returns the required level of uniqueness to represent and index machines uniquely from their node providerID.

Deprecated: This method is going to be removed in a future release.

func (ProviderID) String deprecated added in v2.4.0

func (p ProviderID) String() string

String returns the string representation of this object.

Deprecated: This method is going to be removed in a future release.

func (*ProviderID) Validate deprecated added in v2.4.0

func (p *ProviderID) Validate() bool

Validate returns true if the provider id is valid.

Deprecated: This method is going to be removed in a future release.

type ROSAControlPlaneScope added in v2.3.0

type ROSAControlPlaneScope struct {
	logger.Logger
	Client client.Client

	Cluster      *clusterv1.Cluster
	ControlPlane *rosacontrolplanev1.ROSAControlPlane

	Identity *sts.GetCallerIdentityOutput
	// contains filtered or unexported fields
}

ROSAControlPlaneScope defines the basic context for an actuator to operate upon.

func NewROSAControlPlaneScope added in v2.3.0

func NewROSAControlPlaneScope(params ROSAControlPlaneScopeParams) (*ROSAControlPlaneScope, error)

NewROSAControlPlaneScope creates a new ROSAControlPlaneScope from the supplied parameters.

func (*ROSAControlPlaneScope) Close added in v2.3.0

func (s *ROSAControlPlaneScope) Close() error

Close closes the current scope persisting the control plane configuration and status.

func (*ROSAControlPlaneScope) ClusterAdminPasswordSecret added in v2.4.0

func (s *ROSAControlPlaneScope) ClusterAdminPasswordSecret() *corev1.Secret

ClusterAdminPasswordSecret returns the corev1.Secret object for the cluster admin password.

func (*ROSAControlPlaneScope) ControllerName added in v2.4.0

func (s *ROSAControlPlaneScope) ControllerName() string

ControllerName returns the name of the controller.

func (*ROSAControlPlaneScope) CredentialsSecret added in v2.4.0

func (s *ROSAControlPlaneScope) CredentialsSecret() *corev1.Secret

CredentialsSecret returns the CredentialsSecret object.

func (*ROSAControlPlaneScope) ExternalAuthBootstrapKubeconfigSecret added in v2.5.0

func (s *ROSAControlPlaneScope) ExternalAuthBootstrapKubeconfigSecret() *corev1.Secret

ExternalAuthBootstrapKubeconfigSecret returns the corev1.Secret object for the external auth bootstrap kubeconfig. This is a temporarily admin kubeconfig generated using break-glass credentials for the user to bootstreap their environment like setting up RBAC for oidc users/groups. This Kubeonconfig will be created only once initially and be valid for only 24h. The kubeconfig secret will not be autoamticallty rotated and will be invalid after the 24h. However, users can opt to manually delete the secret to trigger the generation of a new one which will be valid for another 24h.

func (*ROSAControlPlaneScope) IdentityRef added in v2.4.0

IdentityRef returns the AWSIdentityReference object.

func (*ROSAControlPlaneScope) InfraCluster added in v2.4.0

func (s *ROSAControlPlaneScope) InfraCluster() cloud.ClusterObject

InfraCluster returns the AWSManagedControlPlane object.

func (*ROSAControlPlaneScope) InfraClusterName added in v2.3.0

func (s *ROSAControlPlaneScope) InfraClusterName() string

InfraClusterName returns the AWS cluster name.

func (*ROSAControlPlaneScope) Name added in v2.3.0

func (s *ROSAControlPlaneScope) Name() string

Name returns the CAPI cluster name.

func (*ROSAControlPlaneScope) Namespace added in v2.3.0

func (s *ROSAControlPlaneScope) Namespace() string

Namespace returns the cluster namespace.

func (*ROSAControlPlaneScope) PatchObject added in v2.3.0

func (s *ROSAControlPlaneScope) PatchObject() error

PatchObject persists the control plane configuration and status.

func (*ROSAControlPlaneScope) RosaClusterName added in v2.4.0

func (s *ROSAControlPlaneScope) RosaClusterName() string

RosaClusterName returns the ROSA cluster name.

func (*ROSAControlPlaneScope) ServiceLimiter added in v2.4.0

func (s *ROSAControlPlaneScope) ServiceLimiter(service string) *throttle.ServiceLimiter

ServiceLimiter returns the AWS SDK session. Used for creating clients.

func (*ROSAControlPlaneScope) Session added in v2.4.0

Session returns the AWS SDK session. Used for creating clients.

type ROSAControlPlaneScopeParams added in v2.3.0

type ROSAControlPlaneScopeParams struct {
	Client         client.Client
	Logger         *logger.Logger
	Cluster        *clusterv1.Cluster
	ControlPlane   *rosacontrolplanev1.ROSAControlPlane
	ControllerName string
	Endpoints      []ServiceEndpoint
}

ROSAControlPlaneScopeParams defines the input parameters used to create a new ROSAControlPlaneScope.

type ResourceService

type ResourceService interface {
	UpdateResourceTags(resourceID *string, create, remove map[string]string) error
}

ResourceService defines the interface for resources.

type ResourceServiceToUpdate

type ResourceServiceToUpdate struct {
	ResourceID      *string
	ResourceService ResourceService
}

ResourceServiceToUpdate is a struct that contains the resource ID and the resource service to update.

type RosaMachinePoolScope added in v2.4.0

type RosaMachinePoolScope struct {
	logger.Logger
	client.Client

	Cluster         *clusterv1.Cluster
	ControlPlane    *rosacontrolplanev1.ROSAControlPlane
	RosaMachinePool *expinfrav1.ROSAMachinePool
	MachinePool     *expclusterv1.MachinePool
	// contains filtered or unexported fields
}

RosaMachinePoolScope defines the basic context for an actuator to operate upon.

func NewRosaMachinePoolScope added in v2.4.0

func NewRosaMachinePoolScope(params RosaMachinePoolScopeParams) (*RosaMachinePoolScope, error)

NewRosaMachinePoolScope creates a new Scope from the supplied parameters. This is meant to be called for each reconcile iteration.

func (*RosaMachinePoolScope) Close added in v2.4.0

func (s *RosaMachinePoolScope) Close() error

Close closes the current scope persisting the control plane configuration and status.

func (*RosaMachinePoolScope) ClusterObj added in v2.4.0

func (s *RosaMachinePoolScope) ClusterObj() cloud.ClusterObject

ClusterObj returns the cluster object.

func (*RosaMachinePoolScope) ControlPlaneSubnets added in v2.4.0

func (s *RosaMachinePoolScope) ControlPlaneSubnets() []string

ControlPlaneSubnets returns the control plane subnets.

func (*RosaMachinePoolScope) ControllerName added in v2.4.0

func (s *RosaMachinePoolScope) ControllerName() string

ControllerName returns the name of the controller that created the RosaMachinePool.

func (*RosaMachinePoolScope) GetSetter added in v2.4.0

func (s *RosaMachinePoolScope) GetSetter() conditions.Setter

GetSetter returns the condition setter for the RosaMachinePool.

func (*RosaMachinePoolScope) IdentityRef added in v2.4.1

IdentityRef implements cloud.SessionMetadata.

func (*RosaMachinePoolScope) InfraCluster added in v2.4.0

func (s *RosaMachinePoolScope) InfraCluster() cloud.ClusterObject

InfraCluster returns the AWS infrastructure cluster or control plane object.

func (*RosaMachinePoolScope) InfraClusterName added in v2.4.1

func (s *RosaMachinePoolScope) InfraClusterName() string

InfraClusterName implements cloud.SessionMetadata.

func (*RosaMachinePoolScope) Namespace added in v2.4.1

func (s *RosaMachinePoolScope) Namespace() string

Namespace implements cloud.SessionMetadata.

func (*RosaMachinePoolScope) NodePoolName added in v2.4.0

func (s *RosaMachinePoolScope) NodePoolName() string

NodePoolName returns the nodePool name of this machine pool.

func (*RosaMachinePoolScope) PatchCAPIMachinePoolObject added in v2.4.0

func (s *RosaMachinePoolScope) PatchCAPIMachinePoolObject(ctx context.Context) error

PatchCAPIMachinePoolObject persists the capi machinepool configuration and status.

func (*RosaMachinePoolScope) PatchObject added in v2.4.0

func (s *RosaMachinePoolScope) PatchObject() error

PatchObject persists the control plane configuration and status.

func (*RosaMachinePoolScope) RosaClusterName added in v2.4.0

func (s *RosaMachinePoolScope) RosaClusterName() string

RosaClusterName returns the cluster name.

func (*RosaMachinePoolScope) RosaMachinePoolName added in v2.4.0

func (s *RosaMachinePoolScope) RosaMachinePoolName() string

RosaMachinePoolName returns the rosa machine pool name.

func (*RosaMachinePoolScope) RosaMchinePoolReadyFalse added in v2.4.0

func (s *RosaMachinePoolScope) RosaMchinePoolReadyFalse(reason string, err string) error

RosaMchinePoolReadyFalse marks the ready condition false using warning if error isn't empty.

func (*RosaMachinePoolScope) ServiceLimiter added in v2.4.1

func (s *RosaMachinePoolScope) ServiceLimiter(service string) *throttle.ServiceLimiter

ServiceLimiter implements cloud.Session.

func (*RosaMachinePoolScope) Session added in v2.4.1

Session implements cloud.Session.

type RosaMachinePoolScopeParams added in v2.4.0

type RosaMachinePoolScopeParams struct {
	Client          client.Client
	Logger          *logger.Logger
	Cluster         *clusterv1.Cluster
	ControlPlane    *rosacontrolplanev1.ROSAControlPlane
	RosaMachinePool *expinfrav1.ROSAMachinePool
	MachinePool     *expclusterv1.MachinePool
	ControllerName  string

	Endpoints []ServiceEndpoint
}

RosaMachinePoolScopeParams defines the input parameters used to create a new Scope.

type S3Scope

type S3Scope interface {
	cloud.ClusterScoper

	Bucket() *infrav1.S3Bucket
}

S3Scope is the interface for the scope to be used with the S3 service.

type SGScope

type SGScope interface {
	cloud.ClusterScoper

	// Network returns the cluster network object.
	Network() *infrav1.NetworkStatus

	// SecurityGroups returns the cluster security groups as a map, it creates the map if empty.
	SecurityGroups() map[infrav1.SecurityGroupRole]infrav1.SecurityGroup

	// SecurityGroupOverrides returns the security groups that are used as overrides in the cluster spec
	SecurityGroupOverrides() map[infrav1.SecurityGroupRole]string

	// VPC returns the cluster VPC.
	VPC() *infrav1.VPCSpec

	// CNIIngressRules returns the CNI spec ingress rules.
	CNIIngressRules() infrav1.CNIIngressRules

	// Bastion returns the bastion details for the cluster.
	Bastion() *infrav1.Bastion

	// ControlPlaneLoadBalancer returns the load balancer settings that are requested.
	// Deprecated: Use ControlPlaneLoadBalancers()
	ControlPlaneLoadBalancer() *infrav1.AWSLoadBalancerSpec

	// SetNatGatewaysIPs sets the Nat Gateways Public IPs.
	SetNatGatewaysIPs(ips []string)

	// GetNatGatewaysIPs gets the Nat Gateways Public IPs.
	GetNatGatewaysIPs() []string

	// AdditionalControlPlaneIngressRules returns the additional ingress rules for the control plane security group.
	AdditionalControlPlaneIngressRules() []infrav1.IngressRule

	// ControlPlaneLoadBalancers returns both the ControlPlaneLoadBalancer and SecondaryControlPlaneLoadBalancer AWSLoadBalancerSpecs.
	// The control plane load balancers should always be returned in the above order.
	ControlPlaneLoadBalancers() []*infrav1.AWSLoadBalancerSpec

	// NodePortIngressRuleCidrBlocks returns the CIDR blocks for the node NodePort ingress rules.
	NodePortIngressRuleCidrBlocks() []string
}

SGScope is the interface for the scope to be used with the sg service.

type ServiceEndpoint

type ServiceEndpoint struct {
	ServiceID     string
	URL           string
	SigningRegion string
}

ServiceEndpoint defines a tuple containing AWS Service resolution information.

Jump to

Keyboard shortcuts

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