Documentation ¶
Index ¶
- func ClusterSupportsFargate(cluster *awseks.Cluster) (bool, error)
- func ClusterSupportsManagedNodes(cluster *awseks.Cluster) (bool, error)
- func DoCreateFargateProfiles(config *api.ClusterConfig, fargateClient FargateClient) error
- func LoadConfigFromFile(configFile string) (*api.ClusterConfig, error)
- func LogWindowsCompatibility(nodeGroups []KubeNodeGroup, clusterMeta *api.ClusterMeta)
- func ParseConfig(data []byte) (*api.ClusterConfig, error)
- func PlatformVersion(platformVersion string) (int, error)
- func ResolveAMI(provider api.ClusterProvider, version string, np api.NodePool) error
- func ScheduleCoreDNSOnFargateIfRelevant(config *api.ClusterConfig, ctl *ClusterProvider, ...) error
- func SupportsWindowsWorkloads(nodeGroups []KubeNodeGroup) bool
- func ValidateBottlerocketSupport(controlPlaneVersion string, kubeNodeGroups []KubeNodeGroup) error
- func ValidateFeatureCompatibility(clusterConfig *api.ClusterConfig, kubeNodeGroups []KubeNodeGroup) error
- func ValidateKMSSupport(clusterConfig *api.ClusterConfig, eksVersion string) error
- func ValidateManagedNodesSupport(clusterConfig *api.ClusterConfig) error
- func ValidateWindowsCompatibility(kubeNodeGroups []KubeNodeGroup, controlPlaneVersion string) error
- func VersionSupportsManagedNodes(controlPlaneVersion string) (bool, error)
- type Client
- type ClusterInfo
- type ClusterProvider
- func (c *ClusterProvider) CanDelete(spec *api.ClusterConfig) (bool, error)
- func (c *ClusterProvider) CanOperate(spec *api.ClusterConfig) (bool, error)
- func (c *ClusterProvider) CanUpdate(spec *api.ClusterConfig) (bool, error)
- func (c *ClusterProvider) ClusterTasksForNodeGroups(cfg *api.ClusterConfig, ...) *tasks.TaskTree
- func (c *ClusterProvider) ControlPlaneVPCInfo() awseks.VpcConfigResponse
- func (c *ClusterProvider) ControlPlaneVersion() string
- func (c *ClusterProvider) CreateExtraClusterConfigTasks(cfg *api.ClusterConfig, installVPCController bool) *tasks.TaskTree
- func (c *ClusterProvider) DescribeControlPlane(meta *api.ClusterMeta) (*awseks.Cluster, error)
- func (c *ClusterProvider) EnableKMSEncryption(ctx context.Context, clusterConfig *api.ClusterConfig) error
- func (c *ClusterProvider) GetCluster(clusterName string) (*awseks.Cluster, error)
- func (c *ClusterProvider) GetCredentialsEnv() ([]string, error)
- func (c *ClusterProvider) GetCurrentClusterConfigForLogging(spec *api.ClusterConfig) (sets.String, sets.String, error)
- func (c *ClusterProvider) GetCurrentClusterVPCConfig(spec *api.ClusterConfig) (*ClusterVPCConfig, error)
- func (c *ClusterProvider) GetNodeGroupIAM(stackManager manager.StackManager, ng *api.NodeGroup) error
- func (c *ClusterProvider) GetUsername() string
- func (c *ClusterProvider) IsSupportedRegion() bool
- func (c *ClusterProvider) ListClusters(chunkSize int, listAllRegions bool) ([]*api.ClusterConfig, error)
- func (c *ClusterProvider) LoadClusterIntoSpecFromStack(spec *api.ClusterConfig, stackManager manager.StackManager) error
- func (c *ClusterProvider) LoadClusterVPC(spec *api.ClusterConfig, stackManager manager.StackManager) error
- func (c *ClusterProvider) NewClient(spec *api.ClusterConfig) (*Client, error)
- func (c *ClusterProvider) NewOpenIDConnectManager(spec *api.ClusterConfig) (*iamoidc.OpenIDConnectManager, error)
- func (c *ClusterProvider) NewRawClient(spec *api.ClusterConfig) (*kubewrapper.RawClient, error)
- func (c *ClusterProvider) NewStackManager(spec *api.ClusterConfig) manager.StackManager
- func (c *ClusterProvider) NewStdClientSet(spec *api.ClusterConfig) (*kubernetes.Clientset, error)
- func (c *ClusterProvider) RefreshClusterStatus(spec *api.ClusterConfig) error
- func (c *ClusterProvider) ServerVersion(rawClient *kubewrapper.RawClient) (string, error)
- func (c *ClusterProvider) SetAvailabilityZones(spec *api.ClusterConfig, given []string) error
- func (c *ClusterProvider) SupportsFargate(clusterConfig *api.ClusterConfig) (bool, error)
- func (c *ClusterProvider) SupportsManagedNodes(clusterConfig *api.ClusterConfig) (bool, error)
- func (c *ClusterProvider) UpdateAuthConfigMap(nodeGroups []*api.NodeGroup, clientSet kubernetes.Interface) error
- func (c *ClusterProvider) UpdateClusterConfigForEndpoints(cfg *api.ClusterConfig) error
- func (c *ClusterProvider) UpdateClusterConfigForLogging(cfg *api.ClusterConfig) error
- func (c *ClusterProvider) UpdateClusterTags(cfg *api.ClusterConfig) error
- func (c *ClusterProvider) UpdateClusterVersion(cfg *api.ClusterConfig) (*eks.Update, error)
- func (c *ClusterProvider) UpdateClusterVersionBlocking(cfg *api.ClusterConfig) error
- func (c *ClusterProvider) UpdatePublicAccessCIDRs(clusterConfig *api.ClusterConfig) error
- func (c *ClusterProvider) ValidateClusterForCompatibility(cfg *api.ClusterConfig, stackManager manager.StackManager) error
- func (c *ClusterProvider) WaitForControlPlane(meta *api.ClusterMeta, clientSet *kubernetes.Clientset) error
- func (c *ClusterProvider) WaitForNodes(clientSet kubernetes.Interface, ng KubeNodeGroup) error
- type ClusterVPCConfig
- type FargateClient
- type InstanceSelector
- type KubeNodeGroup
- type KubeProvider
- type LoggingRetryer
- type NodeGroupInitialiser
- type NodeGroupService
- func (m *NodeGroupService) DoAllNodegroupStackTasks(taskTree *tasks.TaskTree, region, name string) error
- func (n *NodeGroupService) DoesAWSNodeUseIRSA(provider api.ClusterProvider, clientSet kubernetes.Interface) (bool, error)
- func (m *NodeGroupService) ExpandInstanceSelectorOptions(nodePools []api.NodePool, clusterAZs []string) error
- func (m *NodeGroupService) NewAWSSelectorSession(provider api.ClusterProvider)
- func (m *NodeGroupService) Normalize(nodePools []api.NodePool, clusterMeta *api.ClusterMeta) error
- func (m *NodeGroupService) ValidateExistingNodeGroupsForCompatibility(cfg *api.ClusterConfig, stackManager manager.StackManager) error
- func (m *NodeGroupService) ValidateLegacySubnetsForNodeGroups(spec *api.ClusterConfig, provider api.ClusterProvider) error
- type ProviderServices
- func (p ProviderServices) ASG() autoscalingiface.AutoScalingAPI
- func (p ProviderServices) CloudFormation() cloudformationiface.CloudFormationAPI
- func (p ProviderServices) CloudFormationDisableRollback() bool
- func (p ProviderServices) CloudFormationRoleARN() string
- func (p ProviderServices) CloudTrail() cloudtrailiface.CloudTrailAPI
- func (p ProviderServices) ConfigProvider() client.ConfigProvider
- func (p ProviderServices) EC2() ec2iface.EC2API
- func (p ProviderServices) EKS() eksiface.EKSAPI
- func (p ProviderServices) ELB() elbiface.ELBAPI
- func (p ProviderServices) ELBV2() elbv2iface.ELBV2API
- func (p ProviderServices) IAM() iamiface.IAMAPI
- func (p ProviderServices) Profile() string
- func (p ProviderServices) Region() string
- func (p ProviderServices) SSM() ssmiface.SSMAPI
- func (p ProviderServices) STS() stsiface.STSAPI
- func (p ProviderServices) Session() *session.Session
- func (p ProviderServices) WaitTimeout() time.Duration
- type ProviderStatus
- type UnsupportedOIDCError
- type VPCControllerTask
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ClusterSupportsFargate ¶
ClusterSupportsFargate reports whether an existing cluster supports Fargate.
func ClusterSupportsManagedNodes ¶
ClusterSupportsManagedNodes reports whether the EKS cluster supports managed nodes
func DoCreateFargateProfiles ¶
func DoCreateFargateProfiles(config *api.ClusterConfig, fargateClient FargateClient) error
DoCreateFargateProfiles creates fargate profiles as specified in the config
func LoadConfigFromFile ¶
func LoadConfigFromFile(configFile string) (*api.ClusterConfig, error)
LoadConfigFromFile loads ClusterConfig from configFile
func LogWindowsCompatibility ¶
func LogWindowsCompatibility(nodeGroups []KubeNodeGroup, clusterMeta *api.ClusterMeta)
LogWindowsCompatibility logs Windows compatibility messages
func ParseConfig ¶ added in v0.44.0
func ParseConfig(data []byte) (*api.ClusterConfig, error)
ParseConfig parses data into a ClusterConfig
func PlatformVersion ¶
PlatformVersion extracts the digit X in the provided platform version eks.X
func ResolveAMI ¶
ResolveAMI ensures that the node AMI is set and is available
func ScheduleCoreDNSOnFargateIfRelevant ¶
func ScheduleCoreDNSOnFargateIfRelevant(config *api.ClusterConfig, ctl *ClusterProvider, clientSet kubernetes.Interface) error
func SupportsWindowsWorkloads ¶
func SupportsWindowsWorkloads(nodeGroups []KubeNodeGroup) bool
SupportsWindowsWorkloads reports whether nodeGroups can support running Windows workloads
func ValidateBottlerocketSupport ¶
func ValidateBottlerocketSupport(controlPlaneVersion string, kubeNodeGroups []KubeNodeGroup) error
ValidateBottlerocketSupport validates support for Bottlerocket nodegroups
func ValidateFeatureCompatibility ¶
func ValidateFeatureCompatibility(clusterConfig *api.ClusterConfig, kubeNodeGroups []KubeNodeGroup) error
ValidateFeatureCompatibility validates whether the cluster version supports the features specified in the ClusterConfig. Support for Managed Nodegroups or Windows requires the EKS cluster version to be 1.14 and above. Bottlerocket nodegroups are only supported on EKS version 1.15 and above If the version requirement isn't met, an error is returned
func ValidateKMSSupport ¶ added in v0.39.0
func ValidateKMSSupport(clusterConfig *api.ClusterConfig, eksVersion string) error
ValidateKMSSupport validates support for KMS encryption
func ValidateManagedNodesSupport ¶
func ValidateManagedNodesSupport(clusterConfig *api.ClusterConfig) error
ValidateManagedNodesSupport validates support for Managed Nodegroups
func ValidateWindowsCompatibility ¶
func ValidateWindowsCompatibility(kubeNodeGroups []KubeNodeGroup, controlPlaneVersion string) error
ValidateWindowsCompatibility validates Windows compatibility
func VersionSupportsManagedNodes ¶
VersionSupportsManagedNodes reports whether the control plane version can support Managed Nodes
Types ¶
type Client ¶
type Client struct { Config *clientcmdapi.Config // contains filtered or unexported fields }
Client stores information about the client config
func (*Client) NewClientSet ¶
func (c *Client) NewClientSet() (*kubernetes.Clientset, error)
NewClientSet creates a new API client
type ClusterInfo ¶
type ClusterProvider ¶
type ClusterProvider struct { // core fields used for config and AWS APIs Provider api.ClusterProvider // informative fields, i.e. used as outputs Status *ProviderStatus }
ClusterProvider stores information about the cluster
func New ¶
func New(spec *api.ProviderConfig, clusterSpec *api.ClusterConfig) (*ClusterProvider, error)
New creates a new setup of the used AWS APIs
func (*ClusterProvider) CanDelete ¶
func (c *ClusterProvider) CanDelete(spec *api.ClusterConfig) (bool, error)
CanDelete return true when a cluster can be deleted, otherwise it returns false along with an error explaining the reason
func (*ClusterProvider) CanOperate ¶
func (c *ClusterProvider) CanOperate(spec *api.ClusterConfig) (bool, error)
CanOperate returns true when a cluster can be operated, otherwise it returns false along with an error explaining the reason
func (*ClusterProvider) CanUpdate ¶
func (c *ClusterProvider) CanUpdate(spec *api.ClusterConfig) (bool, error)
CanUpdate return true when a cluster or add-ons can be updated, otherwise it returns false along with an error explaining the reason
func (*ClusterProvider) ClusterTasksForNodeGroups ¶
func (c *ClusterProvider) ClusterTasksForNodeGroups(cfg *api.ClusterConfig, installNeuronDevicePluginParam, installNvidiaDevicePluginParam bool) *tasks.TaskTree
ClusterTasksForNodeGroups returns all tasks dependent on node groups
func (*ClusterProvider) ControlPlaneVPCInfo ¶ added in v0.40.0
func (c *ClusterProvider) ControlPlaneVPCInfo() awseks.VpcConfigResponse
ControlPlaneVPCInfo returns cached version (EKS API)
func (*ClusterProvider) ControlPlaneVersion ¶
func (c *ClusterProvider) ControlPlaneVersion() string
ControlPlaneVersion returns cached version (EKS API)
func (*ClusterProvider) CreateExtraClusterConfigTasks ¶
func (c *ClusterProvider) CreateExtraClusterConfigTasks(cfg *api.ClusterConfig, installVPCController bool) *tasks.TaskTree
CreateExtraClusterConfigTasks returns all tasks for updating cluster configuration not depending on the control plane availability
func (*ClusterProvider) DescribeControlPlane ¶
func (c *ClusterProvider) DescribeControlPlane(meta *api.ClusterMeta) (*awseks.Cluster, error)
DescribeControlPlane describes the cluster control plane
func (*ClusterProvider) EnableKMSEncryption ¶ added in v0.39.0
func (c *ClusterProvider) EnableKMSEncryption(ctx context.Context, clusterConfig *api.ClusterConfig) error
EnableKMSEncryption enables KMS encryption for the specified cluster
func (*ClusterProvider) GetCluster ¶
func (c *ClusterProvider) GetCluster(clusterName string) (*awseks.Cluster, error)
GetCluster display details of an EKS cluster in your account
func (*ClusterProvider) GetCredentialsEnv ¶
func (c *ClusterProvider) GetCredentialsEnv() ([]string, error)
GetCredentialsEnv returns the AWS credentials for env usage
func (*ClusterProvider) GetCurrentClusterConfigForLogging ¶
func (c *ClusterProvider) GetCurrentClusterConfigForLogging(spec *api.ClusterConfig) (sets.String, sets.String, error)
GetCurrentClusterConfigForLogging fetches current cluster logging configuration as two sets - enabled and disabled types
func (*ClusterProvider) GetCurrentClusterVPCConfig ¶
func (c *ClusterProvider) GetCurrentClusterVPCConfig(spec *api.ClusterConfig) (*ClusterVPCConfig, error)
GetCurrentClusterVPCConfig fetches current cluster endpoint configuration for public and private access types
func (*ClusterProvider) GetNodeGroupIAM ¶
func (c *ClusterProvider) GetNodeGroupIAM(stackManager manager.StackManager, ng *api.NodeGroup) error
GetNodeGroupIAM retrieves the IAM configuration of the given nodegroup
func (*ClusterProvider) GetUsername ¶
func (c *ClusterProvider) GetUsername() string
GetUsername extracts the username part from the IAM role ARN
func (*ClusterProvider) IsSupportedRegion ¶
func (c *ClusterProvider) IsSupportedRegion() bool
IsSupportedRegion check if given region is supported
func (*ClusterProvider) ListClusters ¶
func (c *ClusterProvider) ListClusters(chunkSize int, listAllRegions bool) ([]*api.ClusterConfig, error)
ListClusters returns a list of the EKS cluster in your account
func (*ClusterProvider) LoadClusterIntoSpecFromStack ¶ added in v0.40.0
func (c *ClusterProvider) LoadClusterIntoSpecFromStack(spec *api.ClusterConfig, stackManager manager.StackManager) error
LoadClusterIntoSpecFromStack uses stack information to load the cluster configuration into the spec At the moment VPC and KubernetesNetworkConfig are respected
func (*ClusterProvider) LoadClusterVPC ¶
func (c *ClusterProvider) LoadClusterVPC(spec *api.ClusterConfig, stackManager manager.StackManager) error
LoadClusterVPC loads the VPC configuration
func (*ClusterProvider) NewClient ¶
func (c *ClusterProvider) NewClient(spec *api.ClusterConfig) (*Client, error)
NewClient creates a new client config by embedding the STS token
func (*ClusterProvider) NewOpenIDConnectManager ¶
func (c *ClusterProvider) NewOpenIDConnectManager(spec *api.ClusterConfig) (*iamoidc.OpenIDConnectManager, error)
NewOpenIDConnectManager returns OpenIDConnectManager
func (*ClusterProvider) NewRawClient ¶
func (c *ClusterProvider) NewRawClient(spec *api.ClusterConfig) (*kubewrapper.RawClient, error)
NewRawClient creates a new raw REST client in one go with an embedded STS token
func (*ClusterProvider) NewStackManager ¶
func (c *ClusterProvider) NewStackManager(spec *api.ClusterConfig) manager.StackManager
NewStackManager returns a new stack manager
func (*ClusterProvider) NewStdClientSet ¶
func (c *ClusterProvider) NewStdClientSet(spec *api.ClusterConfig) (*kubernetes.Clientset, error)
NewStdClientSet creates a new API client in one go with an embedded STS token, this is most commonly used option
func (*ClusterProvider) RefreshClusterStatus ¶
func (c *ClusterProvider) RefreshClusterStatus(spec *api.ClusterConfig) error
RefreshClusterStatus calls c.DescribeControlPlane and caches the results; it parses the credentials (endpoint, CA certificate) and stores them in ClusterConfig.Status, so that a Kubernetes client can be constructed; additionally it caches Kubernetes version (use ctl.ControlPlaneVersion to retrieve it) and other properties in c.Status.cachedClusterInfo
func (*ClusterProvider) ServerVersion ¶ added in v0.53.0
func (c *ClusterProvider) ServerVersion(rawClient *kubewrapper.RawClient) (string, error)
ServerVersion will use discovery API to fetch version of Kubernetes control plane
func (*ClusterProvider) SetAvailabilityZones ¶
func (c *ClusterProvider) SetAvailabilityZones(spec *api.ClusterConfig, given []string) error
SetAvailabilityZones sets the given (or chooses) the availability zones
func (*ClusterProvider) SupportsFargate ¶
func (c *ClusterProvider) SupportsFargate(clusterConfig *api.ClusterConfig) (bool, error)
SupportsFargate reports whether an existing cluster supports Fargate.
func (*ClusterProvider) SupportsManagedNodes ¶
func (c *ClusterProvider) SupportsManagedNodes(clusterConfig *api.ClusterConfig) (bool, error)
SupportsManagedNodes reports whether an existing cluster supports Managed Nodes The minimum required control plane version and platform version are 1.14 and eks.3 respectively
func (*ClusterProvider) UpdateAuthConfigMap ¶ added in v0.53.0
func (c *ClusterProvider) UpdateAuthConfigMap(nodeGroups []*api.NodeGroup, clientSet kubernetes.Interface) error
UpdateAuthConfigMap creates or adds a nodegroup IAM role in the auth ConfigMap for the given nodegroup.
func (*ClusterProvider) UpdateClusterConfigForEndpoints ¶
func (c *ClusterProvider) UpdateClusterConfigForEndpoints(cfg *api.ClusterConfig) error
UpdateClusterConfigForEndpoints calls eks.UpdateClusterConfig and updates access to API endpoints
func (*ClusterProvider) UpdateClusterConfigForLogging ¶
func (c *ClusterProvider) UpdateClusterConfigForLogging(cfg *api.ClusterConfig) error
UpdateClusterConfigForLogging calls UpdateClusterConfig to enable logging
func (*ClusterProvider) UpdateClusterTags ¶
func (c *ClusterProvider) UpdateClusterTags(cfg *api.ClusterConfig) error
UpdateClusterTags calls eks.TagResource and tags the cluster
func (*ClusterProvider) UpdateClusterVersion ¶
func (c *ClusterProvider) UpdateClusterVersion(cfg *api.ClusterConfig) (*eks.Update, error)
UpdateClusterVersion calls eks.UpdateClusterVersion and updates to cfg.Metadata.Version, it will return update ID along with an error (if it occurs)
func (*ClusterProvider) UpdateClusterVersionBlocking ¶
func (c *ClusterProvider) UpdateClusterVersionBlocking(cfg *api.ClusterConfig) error
UpdateClusterVersionBlocking calls UpdateClusterVersion and blocks until update operation is successful
func (*ClusterProvider) UpdatePublicAccessCIDRs ¶
func (c *ClusterProvider) UpdatePublicAccessCIDRs(clusterConfig *api.ClusterConfig) error
UpdatePublicAccessCIDRs calls eks.UpdateClusterConfig and updates the CIDRs for public access
func (*ClusterProvider) ValidateClusterForCompatibility ¶
func (c *ClusterProvider) ValidateClusterForCompatibility(cfg *api.ClusterConfig, stackManager manager.StackManager) error
ValidateClusterForCompatibility looks at the cluster stack and check if it's compatible with current nodegroup configuration, if it find issues it returns an error
func (*ClusterProvider) WaitForControlPlane ¶
func (c *ClusterProvider) WaitForControlPlane(meta *api.ClusterMeta, clientSet *kubernetes.Clientset) error
WaitForControlPlane waits till the control plane is ready
func (*ClusterProvider) WaitForNodes ¶
func (c *ClusterProvider) WaitForNodes(clientSet kubernetes.Interface, ng KubeNodeGroup) error
WaitForNodes waits till the nodes are ready
type ClusterVPCConfig ¶
type ClusterVPCConfig struct { ClusterEndpoints *api.ClusterEndpoints PublicAccessCIDRs []string }
ClusterVPCConfig represents a cluster's VPC configuration
type FargateClient ¶
type FargateClient interface {
CreateProfile(profile *api.FargateProfile, waitForCreation bool) error
}
type InstanceSelector ¶ added in v0.45.0
type InstanceSelector interface { // Filter returns a set of instance types matching the specified instance selector filters Filter(selector.Filters) ([]string, error) }
InstanceSelector selects a set of instance types matching the specified instance selector criteria
type KubeNodeGroup ¶
type KubeNodeGroup interface { // NameString returns the name NameString() string // Size returns the number of the nodes (desired capacity) Size() int // ListOptions returns the selector for listing nodes in this nodegroup ListOptions() metav1.ListOptions // GetAMIFamily returns the AMI family GetAMIFamily() string }
KubeNodeGroup defines a set of Kubernetes Nodes
type KubeProvider ¶ added in v0.53.0
type KubeProvider interface { NewRawClient(spec *api.ClusterConfig) (*kubewrapper.RawClient, error) ServerVersion(rawClient *kubernetes.RawClient) (string, error) LoadClusterIntoSpecFromStack(spec *api.ClusterConfig, stackManager manager.StackManager) error SupportsManagedNodes(clusterConfig *api.ClusterConfig) (bool, error) ValidateClusterForCompatibility(cfg *api.ClusterConfig, stackManager manager.StackManager) error UpdateAuthConfigMap(nodeGroups []*api.NodeGroup, clientSet kubernetes.Interface) error WaitForNodes(clientSet kubernetes.Interface, ng KubeNodeGroup) error }
KubeProvider is an interface with helper funcs for k8s and EKS that are part of ClusterProvider
type LoggingRetryer ¶
type LoggingRetryer struct { client.DefaultRetryer // contains filtered or unexported fields }
LoggingRetryer adds some logging when we are retrying, so we have some idea what is happening Right now it is very basic - e.g. it only logs when we retry (so doesn't log when we fail due to too many retries) It was copied from k8s.io/kops/upup/pkg/fi/cloudup/awsup/logging_retryer.go; the original version used glog, and didn't export the constructor
func (LoggingRetryer) RetryRules ¶
func (l LoggingRetryer) RetryRules(r *request.Request) time.Duration
RetryRules extends on DefaultRetryer.RetryRules
func (LoggingRetryer) ShouldRetry ¶ added in v0.39.0
func (l LoggingRetryer) ShouldRetry(r *request.Request) bool
ShouldRetry uses DefaultRetryer.ShouldRetry but also checks for non-retryable EC2MetadataError (see #2564)
type NodeGroupInitialiser ¶ added in v0.53.0
type NodeGroupInitialiser interface { Normalize(nodePools []api.NodePool, clusterMeta *api.ClusterMeta) error ExpandInstanceSelectorOptions(nodePools []api.NodePool, clusterAZs []string) error NewAWSSelectorSession(provider api.ClusterProvider) ValidateLegacySubnetsForNodeGroups(spec *api.ClusterConfig, provider api.ClusterProvider) error DoesAWSNodeUseIRSA(provider api.ClusterProvider, clientSet kubernetes.Interface) (bool, error) DoAllNodegroupStackTasks(taskTree *tasks.TaskTree, region, name string) error ValidateExistingNodeGroupsForCompatibility(cfg *api.ClusterConfig, stackManager manager.StackManager) error }
NodeGroupInitialiser is an interface that provides helpers for nodegroup creation.
type NodeGroupService ¶
type NodeGroupService struct { Provider api.ClusterProvider // contains filtered or unexported fields }
A NodeGroupService provides helpers for nodegroup creation
func NewNodeGroupService ¶
func NewNodeGroupService(provider api.ClusterProvider, instanceSelector InstanceSelector) *NodeGroupService
NewNodeGroupService creates a new NodeGroupService
func (*NodeGroupService) DoAllNodegroupStackTasks ¶ added in v0.53.0
func (m *NodeGroupService) DoAllNodegroupStackTasks(taskTree *tasks.TaskTree, region, name string) error
DoAllNodegroupStackTasks iterates over nodegroup tasks and returns any errors.
func (*NodeGroupService) DoesAWSNodeUseIRSA ¶ added in v0.53.0
func (n *NodeGroupService) DoesAWSNodeUseIRSA(provider api.ClusterProvider, clientSet kubernetes.Interface) (bool, error)
DoesAWSNodeUseIRSA evaluates whether an aws-node uses IRSA
func (*NodeGroupService) ExpandInstanceSelectorOptions ¶ added in v0.44.0
func (m *NodeGroupService) ExpandInstanceSelectorOptions(nodePools []api.NodePool, clusterAZs []string) error
ExpandInstanceSelectorOptions sets instance types to instances matched by the instance selector criteria
func (*NodeGroupService) NewAWSSelectorSession ¶ added in v0.53.0
func (m *NodeGroupService) NewAWSSelectorSession(provider api.ClusterProvider)
NewAWSSelectorSession returns a new instance of Selector provided an aws session
func (*NodeGroupService) Normalize ¶
func (m *NodeGroupService) Normalize(nodePools []api.NodePool, clusterMeta *api.ClusterMeta) error
Normalize normalizes nodegroups
func (*NodeGroupService) ValidateExistingNodeGroupsForCompatibility ¶ added in v0.53.0
func (m *NodeGroupService) ValidateExistingNodeGroupsForCompatibility(cfg *api.ClusterConfig, stackManager manager.StackManager) error
ValidateExistingNodeGroupsForCompatibility looks at each of the existing nodegroups and validates configuration, if it find issues it logs messages
func (*NodeGroupService) ValidateLegacySubnetsForNodeGroups ¶ added in v0.53.0
func (m *NodeGroupService) ValidateLegacySubnetsForNodeGroups(spec *api.ClusterConfig, provider api.ClusterProvider) error
type ProviderServices ¶
type ProviderServices struct {
// contains filtered or unexported fields
}
ProviderServices stores the used APIs
func (ProviderServices) ASG ¶ added in v0.39.0
func (p ProviderServices) ASG() autoscalingiface.AutoScalingAPI
ASG returns a representation of the AutoScaling API
func (ProviderServices) CloudFormation ¶
func (p ProviderServices) CloudFormation() cloudformationiface.CloudFormationAPI
CloudFormation returns a representation of the CloudFormation API
func (ProviderServices) CloudFormationDisableRollback ¶
func (p ProviderServices) CloudFormationDisableRollback() bool
CloudFormationDisableRollback returns whether stacks should not rollback on failure
func (ProviderServices) CloudFormationRoleARN ¶
func (p ProviderServices) CloudFormationRoleARN() string
CloudFormationRoleARN returns, if any, a service role used by CloudFormation to call AWS API on your behalf
func (ProviderServices) CloudTrail ¶
func (p ProviderServices) CloudTrail() cloudtrailiface.CloudTrailAPI
CloudTrail returns a representation of the CloudTrail API
func (ProviderServices) ConfigProvider ¶ added in v0.39.0
func (p ProviderServices) ConfigProvider() client.ConfigProvider
func (ProviderServices) EC2 ¶
func (p ProviderServices) EC2() ec2iface.EC2API
EC2 returns a representation of the EC2 API
func (ProviderServices) EKS ¶
func (p ProviderServices) EKS() eksiface.EKSAPI
EKS returns a representation of the EKS API
func (ProviderServices) ELB ¶
func (p ProviderServices) ELB() elbiface.ELBAPI
ELB returns a representation of the ELB API
func (ProviderServices) ELBV2 ¶
func (p ProviderServices) ELBV2() elbv2iface.ELBV2API
ELBV2 returns a representation of the ELBV2 API
func (ProviderServices) IAM ¶
func (p ProviderServices) IAM() iamiface.IAMAPI
IAM returns a representation of the IAM API
func (ProviderServices) Profile ¶
func (p ProviderServices) Profile() string
Profile returns provider-level profile name
func (ProviderServices) Region ¶
func (p ProviderServices) Region() string
Region returns provider-level region setting
func (ProviderServices) SSM ¶
func (p ProviderServices) SSM() ssmiface.SSMAPI
SSM returns a representation of the STS API
func (ProviderServices) STS ¶
func (p ProviderServices) STS() stsiface.STSAPI
STS returns a representation of the STS API
func (ProviderServices) Session ¶ added in v0.45.0
func (p ProviderServices) Session() *session.Session
func (ProviderServices) WaitTimeout ¶
func (p ProviderServices) WaitTimeout() time.Duration
WaitTimeout returns provider-level duration after which any wait operation has to timeout
type ProviderStatus ¶
type ProviderStatus struct { ClusterInfo *ClusterInfo // contains filtered or unexported fields }
ProviderStatus stores information about the used IAM role and the resulting session
type UnsupportedOIDCError ¶
type UnsupportedOIDCError struct {
// contains filtered or unexported fields
}
UnsupportedOIDCError represents an unsupported OIDC error
func (*UnsupportedOIDCError) Error ¶
func (u *UnsupportedOIDCError) Error() string
type VPCControllerTask ¶
type VPCControllerTask struct { Info string ClusterProvider *ClusterProvider ClusterConfig *api.ClusterConfig PlanMode bool }
VPCControllerTask represents a task to install the VPC controller
func (*VPCControllerTask) Describe ¶
func (v *VPCControllerTask) Describe() string
Describe implements Task
func (*VPCControllerTask) Do ¶
func (v *VPCControllerTask) Do(errCh chan error) error
Do implements Task