v1alpha5

package
v0.41.0-rc.0 Latest Latest
Warning

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

Go to latest
Published: Mar 12, 2021 License: Apache-2.0 Imports: 36 Imported by: 129

Documentation

Overview

Package v1alpha5 is the v1alpha5 version of the API. +groupName=eksctl.io

Index

Constants

View Source
const (
	APILogging               = "api"
	AuditLogging             = "audit"
	AuthenticatorLogging     = "authenticator"
	ControllerManagerLogging = "controllerManager"
	SchedulerLogging         = "scheduler"
)

Values for `CloudWatchLogging`

View Source
const (
	// Endpoint services that are required and cannot be disabled
	EndpointServiceEC2    = "ec2"
	EndpointServiceECRAPI = "ecr.api"
	EndpointServiceECRDKR = "ecr.dkr"
	EndpointServiceS3     = "s3"
	EndpointServiceSTS    = "sts"
)
View Source
const (
	EndpointServiceCloudFormation = "cloudformation"
	EndpointServiceAutoscaling    = "autoscaling"
	EndpointServiceCloudWatch     = "logs"
)

Values for `AdditionalEndpointServices` Additional endpoint services

View Source
const (
	CurrentGroupVersion = "v1alpha5"
	ClusterConfigKind   = "ClusterConfig"
)

Conventional Kubernetes API contants

View Source
const (
	Version1_14 = "1.14"

	Version1_15 = "1.15"

	Version1_16 = "1.16"

	Version1_17 = "1.17"

	Version1_18 = "1.18"

	Version1_19 = "1.19"

	// DefaultVersion (default)
	DefaultVersion = Version1_18

	LatestVersion = Version1_19
)

Values for `KubernetesVersion` All valid values should go in this block

View Source
const (
	// Version1_10 represents Kubernetes version 1.10.x
	Version1_10 = "1.10"

	// Version1_11 represents Kubernetes version 1.11.x
	Version1_11 = "1.11"

	// Version1_12 represents Kubernetes version 1.12.x
	Version1_12 = "1.12"

	// Version1_13 represents Kubernetes version 1.13.x
	Version1_13 = "1.13"
)

No longer supported versions

View Source
const (
	// RegionUSWest1 represents the US West Region North California
	RegionUSWest1 = "us-west-1"

	// RegionUSWest2 represents the US West Region Oregon
	RegionUSWest2 = "us-west-2"

	// RegionUSEast1 represents the US East Region North Virginia
	RegionUSEast1 = "us-east-1"

	// RegionUSEast2 represents the US East Region Ohio
	RegionUSEast2 = "us-east-2"

	// RegionCACentral1 represents the Canada Central Region
	RegionCACentral1 = "ca-central-1"

	// RegionEUWest1 represents the EU West Region Ireland
	RegionEUWest1 = "eu-west-1"

	// RegionEUWest2 represents the EU West Region London
	RegionEUWest2 = "eu-west-2"

	// RegionEUWest3 represents the EU West Region Paris
	RegionEUWest3 = "eu-west-3"

	// RegionEUNorth1 represents the EU North Region Stockholm
	RegionEUNorth1 = "eu-north-1"

	// RegionEUCentral1 represents the EU Central Region Frankfurt
	RegionEUCentral1 = "eu-central-1"

	// RegionEUSouth1 represents te Eu South Region Milan
	RegionEUSouth1 = "eu-south-1"

	// RegionAPNorthEast1 represents the Asia-Pacific North East Region Tokyo
	RegionAPNorthEast1 = "ap-northeast-1"

	// RegionAPNorthEast2 represents the Asia-Pacific North East Region Seoul
	RegionAPNorthEast2 = "ap-northeast-2"

	// RegionAPNorthEast3 represents the Asia-Pacific North East region Osaka
	RegionAPNorthEast3 = "ap-northeast-3"

	// RegionAPSouthEast1 represents the Asia-Pacific South East Region Singapore
	RegionAPSouthEast1 = "ap-southeast-1"

	// RegionAPSouthEast2 represents the Asia-Pacific South East Region Sydney
	RegionAPSouthEast2 = "ap-southeast-2"

	// RegionAPSouth1 represents the Asia-Pacific South Region Mumbai
	RegionAPSouth1 = "ap-south-1"

	// RegionAPEast1 represents the Asia Pacific Region Hong Kong
	RegionAPEast1 = "ap-east-1"

	// RegionMESouth1 represents the Middle East Region Bahrain
	RegionMESouth1 = "me-south-1"

	// RegionSAEast1 represents the South America Region Sao Paulo
	RegionSAEast1 = "sa-east-1"

	// RegionAFSouth1 represents the Africa Region Cape Town
	RegionAFSouth1 = "af-south-1"

	// RegionCNNorthwest1 represents the China region Ningxia
	RegionCNNorthwest1 = "cn-northwest-1"

	// RegionCNNorth1 represents the China region Beijing
	RegionCNNorth1 = "cn-north-1"

	// RegionUSGovWest1 represents the region GovCloud (US-West)
	RegionUSGovWest1 = "us-gov-west-1"

	// RegionUSGovEast1 represents the region GovCloud (US-East)
	RegionUSGovEast1 = "us-gov-east-1"

	// DefaultRegion defines the default region, where to deploy the EKS cluster
	DefaultRegion = RegionUSWest2
)

Regions

View Source
const (
	PartitionAWS   = "aws"
	PartitionChina = "aws-cn"
	PartitionUSGov = "aws-us-gov"
)

Partitions

View Source
const (
	// DefaultNodeImageFamily (default)
	DefaultNodeImageFamily      = NodeImageFamilyAmazonLinux2
	NodeImageFamilyAmazonLinux2 = "AmazonLinux2"
	NodeImageFamilyUbuntu2004   = "Ubuntu2004"
	NodeImageFamilyUbuntu1804   = "Ubuntu1804"
	NodeImageFamilyBottlerocket = "Bottlerocket"

	NodeImageFamilyWindowsServer2019CoreContainer = "WindowsServer2019CoreContainer"
	NodeImageFamilyWindowsServer2019FullContainer = "WindowsServer2019FullContainer"
	NodeImageFamilyWindowsServer1909CoreContainer = "WindowsServer1909CoreContainer"
	NodeImageFamilyWindowsServer2004CoreContainer = "WindowsServer2004CoreContainer"
)

Values for `NodeAMIFamily` All valid values should go in this block

View Source
const (
	// DefaultNodeType is the default instance type to use for nodes
	DefaultNodeType = "m5.large"

	// DefaultNodeCount defines the default number of nodes to be created
	DefaultNodeCount = 2

	// NodeImageResolverAuto represents auto AMI resolver (see ami package)
	NodeImageResolverAuto = "auto"
	// NodeImageResolverAutoSSM is used to indicate that the latest EKS AMIs should be used for the nodes. The AMI is selected
	// using an SSM GetParameter query
	NodeImageResolverAutoSSM = "auto-ssm"

	// EksctlVersionTag defines the version of eksctl which is used to provision or update EKS cluster
	EksctlVersionTag = "alpha.eksctl.io/eksctl-version"

	// ClusterNameTag defines the tag of the cluster name
	ClusterNameTag = "alpha.eksctl.io/cluster-name"

	// OldClusterNameTag defines the tag of the cluster name
	OldClusterNameTag = "eksctl.cluster.k8s.io/v1alpha1/cluster-name"

	// NodeGroupNameTag defines the tag of the nodegroup name
	NodeGroupNameTag = "alpha.eksctl.io/nodegroup-name"

	// NodeGroupTypeTag defines the nodegroup type as managed or unmanaged
	NodeGroupTypeTag = "alpha.eksctl.io/nodegroup-type"

	// OldNodeGroupNameTag defines the tag of the nodegroup name
	OldNodeGroupNameTag = "eksctl.io/v1alpha2/nodegroup-name"

	// OldNodeGroupIDTag defines the old version of tag of the nodegroup name
	OldNodeGroupIDTag = "eksctl.cluster.k8s.io/v1alpha1/nodegroup-id"

	// IAMServiceAccountNameTag defines the tag of the IAM service account name
	IAMServiceAccountNameTag = "alpha.eksctl.io/iamserviceaccount-name"

	// AddonNameTag defines the tag of the IAM service account name
	AddonNameTag = "alpha.eksctl.io/addon-name"

	// ClusterNameLabel defines the tag of the cluster name
	ClusterNameLabel = "alpha.eksctl.io/cluster-name"

	// NodeGroupNameLabel defines the label of the nodegroup name
	NodeGroupNameLabel = "alpha.eksctl.io/nodegroup-name"

	EKSNodeGroupNameLabel = "eks.amazonaws.com/nodegroup"

	// SpotAllocationStrategyLowestPrice defines the ASG spot allocation strategy of lowest-price
	SpotAllocationStrategyLowestPrice = "lowest-price"

	// SpotAllocationStrategyCapacityOptimized defines the ASG spot allocation strategy of capacity-optimized
	SpotAllocationStrategyCapacityOptimized = "capacity-optimized"
)
View Source
const (
	// NodeVolumeTypeGP2 is General Purpose SSD
	NodeVolumeTypeGP2 = "gp2"
	// NodeVolumeTypeGP3 is General Purpose SSD which can be optimised for high throughput (default)
	NodeVolumeTypeGP3 = "gp3"
	// NodeVolumeTypeIO1 is Provisioned IOPS SSD
	NodeVolumeTypeIO1 = "io1"
	// NodeVolumeTypeSC1 is Cold HDD
	NodeVolumeTypeSC1 = "sc1"
	// NodeVolumeTypeST1 is Throughput Optimized HDD
	NodeVolumeTypeST1 = "st1"
)

Values for `VolumeType`

View Source
const (
	// NodeGroupTypeManaged defines a managed nodegroup
	NodeGroupTypeManaged NodeGroupType = "managed"
	// NodeGroupTypeUnmanaged defines an unmanaged nodegroup
	NodeGroupTypeUnmanaged NodeGroupType = "unmanaged"
	// NodeGroupTypeUnowned defines an unowned managed nodegroup
	NodeGroupTypeUnowned NodeGroupType = "unowned"
	// DefaultNodeVolumeThroughput defines the default throughput for gp3 volumes, set to the min value
	DefaultNodeVolumeThroughput = 125
	// DefaultNodeVolumeIO1IOPS defines the default throughput for io1 volumes, set to the min value
	DefaultNodeVolumeIO1IOPS = 100
	// DefaultNodeVolumeGP3IOPS defines the default throughput for gp3, set to the min value
	DefaultNodeVolumeGP3IOPS = 3000
)
View Source
const (
	// ClusterHighlyAvailableNAT configures a highly available NAT gateway
	ClusterHighlyAvailableNAT = "HighlyAvailable"

	// ClusterSingleNAT configures a single NAT gateway
	ClusterSingleNAT = "Single"

	// ClusterDisableNAT disables NAT
	ClusterDisableNAT = "Disable"

	// (default)
	ClusterNATDefault = ClusterSingleNAT
)

Values for `ClusterNAT`

View Source
const (
	// MinRequiredSubnets is the minimum required number of subnets
	MinRequiredSubnets = 2
	// RecommendedSubnets is the recommended number of subnets
	RecommendedSubnets = 3
	// SubnetTopologyPrivate represents privately-routed subnets
	SubnetTopologyPrivate SubnetTopology = "Private"
	// SubnetTopologyPublic represents publicly-routed subnets
	SubnetTopologyPublic SubnetTopology = "Public"
)
View Source
const (
	// AWSDebugLevel defines the LogLevel for AWS produced logs
	AWSDebugLevel = 5
)
View Source
const (
	AnnotationEKSRoleARN = "eks.amazonaws.com/role-arn"
)

Commonly-used constants

View Source
const AssetDebug = false

AssetDebug is true if the assets were built with the debug flag enabled.

View Source
const (
	IAMPolicyAmazonEKSCNIPolicy = "AmazonEKS_CNI_Policy"
)
View Source
const ReservedProfileNamePrefix = "eks-"

ReservedProfileNamePrefix defines the Fargate profile name prefix reserved for AWS, and which therefore, cannot be used by users. AWS' API should reject the creation of profiles starting with this prefix, but we eagerly validate this client-side.

View Source
const (
	// Version1_20 represents Kubernetes version 1.20.x
	Version1_20 = "1.20"
)

Not yet supported versions

Variables

View Source
var (
	SchemeGroupVersion = schema.GroupVersion{Group: api.GroupName, Version: CurrentGroupVersion}
	SchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)
	AddToScheme        = SchemeBuilder.AddToScheme
)

Conventional Kubernetes API variables

View Source
var (
	// DefaultWaitTimeout defines the default wait timeout
	DefaultWaitTimeout = 25 * time.Minute

	// DefaultNodeSSHPublicKeyPath is the default path to SSH public key
	DefaultNodeSSHPublicKeyPath = "~/.ssh/id_rsa.pub"

	// DefaultNodeVolumeType defines the default root volume type to use
	DefaultNodeVolumeType = NodeVolumeTypeGP3

	// DefaultNodeVolumeSize defines the default root volume size
	DefaultNodeVolumeSize = 80
)
View Source
var (
	// ErrClusterEndpointNoAccess indicates the config prevents API access
	ErrClusterEndpointNoAccess = errors.New("Kubernetes API access must have one of public or private clusterEndpoints enabled")

	// ErrClusterEndpointPrivateOnly warns private-only access requires changes
	// to AWS resource configuration in order to effectively use clients in the VPC
	ErrClusterEndpointPrivateOnly = errors.New("warning, having public access disallowed will subsequently interfere with some " +
		"features of eksctl. This will require running subsequent eksctl (and Kubernetes) " +
		"commands/API calls from within the VPC.  Running these in the VPC requires making " +
		"updates to some AWS resources.  See: " +
		"https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html#private-access " +
		"for more details")
)
View Source
var (
	AWSNodeMeta = ClusterIAMMeta{
		Name:      "aws-node",
		Namespace: "kube-system",
	}
)

Functions

func Asset

func Asset(name string) ([]byte, error)

Asset loads and returns the asset for the given name. It returns an error if the asset could not be found or could not be loaded.

func AssetDigest

func AssetDigest(name string) ([sha256.Size]byte, error)

AssetDigest returns the digest of the file with the given name. It returns an error if the asset could not be found or the digest could not be loaded.

func AssetDir

func AssetDir(name string) ([]string, error)

AssetDir returns the file names below a certain directory embedded in the file by go-bindata. For example if you run go-bindata on data/... and data contains the following hierarchy:

data/
  foo.txt
  img/
    a.png
    b.png

then AssetDir("data") would return []string{"foo.txt", "img"}, AssetDir("data/img") would return []string{"a.png", "b.png"}, AssetDir("foo.txt") and AssetDir("notexist") would return an error, and AssetDir("") will return []string{"data"}.

func AssetInfo

func AssetInfo(name string) (os.FileInfo, error)

AssetInfo loads and returns the asset info for the given name. It returns an error if the asset could not be found or could not be loaded.

func AssetNames

func AssetNames() []string

AssetNames returns the names of the assets.

func AssetString

func AssetString(name string) (string, error)

AssetString returns the asset contents as a string (instead of a []byte).

func ClusterConfigTypeMeta

func ClusterConfigTypeMeta() metav1.TypeMeta

ClusterConfigTypeMeta constructs TypeMeta for ClusterConfig

func ClusterHasInstanceType

func ClusterHasInstanceType(cfg *ClusterConfig, hasType func(string) bool) bool

ClusterHasInstanceType checks all nodegroups and managed nodegroups for a specific instance type

func DefaultCIDR

func DefaultCIDR() ipnet.IPNet

DefaultCIDR returns default global CIDR for VPC

func DeprecatedVersions

func DeprecatedVersions() []string

DeprecatedVersions are the versions of Kubernetes that EKS used to support but no longer does. See also: https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html

func Digests

func Digests() (map[string][sha256.Size]byte, error)

Digests returns a map of all known files and their checksums.

func Disabled

func Disabled() *bool

Disabled return pointer to false value for use in defaulters of *bool fields

func EKSResourceAccountID

func EKSResourceAccountID(region string) string

EKSResourceAccountID provides worker node resources(ami/ecr image) in different aws account for different aws partitions & opt-in regions.

func Enabled

func Enabled() *bool

Enabled return pointer to true value for use in defaulters of *bool fields

func EndpointsEqual

func EndpointsEqual(a, b ClusterEndpoints) bool

EndpointsEqual returns true of two endpoints have same values after dereferencing any pointers

func HasInstanceType

func HasInstanceType(nodeGroup *NodeGroup, hasType func(string) bool) bool

HasInstanceType returns whether some node in the group fulfils the type check

func HasInstanceTypeManaged added in v0.40.0

func HasInstanceTypeManaged(nodeGroup *ManagedNodeGroup, hasType func(string) bool) bool

HasInstanceTypeManaged returns whether some node in the managed group fulfils the type check

func HasMixedInstances

func HasMixedInstances(ng *NodeGroup) bool

HasMixedInstances checks if a nodegroup has mixed instances option declared

func IsAMI

func IsAMI(amiFlag string) bool

IsAMI returns true if the argument is an AMI ID

func IsDeprecatedVersion

func IsDeprecatedVersion(version string) bool

IsDeprecatedVersion returns true if the given Kubernetes version has been deprecated in EKS

func IsDisabled

func IsDisabled(v *bool) bool

IsDisabled will only return true if v is not nil and false

func IsEnabled

func IsEnabled(v *bool) bool

IsEnabled will only return true if v is not nil and true

func IsSetAndNonEmptyString

func IsSetAndNonEmptyString(s *string) bool

IsSetAndNonEmptyString will only return true if s is not nil and not empty

func IsSupportedVersion

func IsSupportedVersion(version string) bool

IsSupportedVersion returns true if the given version is a Kubernetes supported by eksctl and EKS

func IsWindowsImage

func IsWindowsImage(imageFamily string) bool

IsWindowsImage reports whether the AMI family is for Windows

func Kind

func Kind(kind string) schema.GroupKind

Kind takes an unqualified kind and returns back a Group qualified GroupKind

func MustAsset

func MustAsset(name string) []byte

MustAsset is like Asset but panics when Asset would return an error. It simplifies safe initialization of global variables.

func MustAssetString

func MustAssetString(name string) string

MustAssetString is like AssetString but panics when Asset would return an error. It simplifies safe initialization of global variables.

func Partition

func Partition(region string) string

Partition gives the partition a region belongs to

func PrivateOnly

func PrivateOnly(ces *ClusterEndpoints) bool

PrivateOnly returns true if public cluster endpoint access is disabled and private cluster endpoint access is enabled, and false otherwise

func Register

func Register() error

Register our API with the scheme

func RequiredEndpointServices

func RequiredEndpointServices() []string

RequiredEndpointServices returns a list of endpoint services that are required for a fully-private cluster

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

func RestoreAsset

func RestoreAsset(dir, name string) error

RestoreAsset restores an asset under the given directory.

func RestoreAssets

func RestoreAssets(dir, name string) error

RestoreAssets restores an asset under the given directory recursively.

func SetClusterConfigDefaults

func SetClusterConfigDefaults(cfg *ClusterConfig)

SetClusterConfigDefaults will set defaults for a given cluster

func SetClusterEndpointAccessDefaults

func SetClusterEndpointAccessDefaults(vpc *ClusterVPC)

SetClusterEndpointAccessDefaults sets the default values for cluster endpoint access

func SetDefaultGitOpsSettings added in v0.39.0

func SetDefaultGitOpsSettings(c *ClusterConfig)

SetDefaultGitOpsSettings sets the default values for the gitops repo and operator settings

func SetDefaultGitSettings

func SetDefaultGitSettings(c *ClusterConfig)

SetDefaultGitSettings sets the default values for the gitops repo and operator settings

func SetManagedNodeGroupDefaults

func SetManagedNodeGroupDefaults(ng *ManagedNodeGroup, meta *ClusterMeta)

SetManagedNodeGroupDefaults sets default values for a ManagedNodeGroup

func SetNodeGroupDefaults

func SetNodeGroupDefaults(ng *NodeGroup, meta *ClusterMeta)

SetNodeGroupDefaults will set defaults for a given nodegroup

func SupportedCloudWatchClusterLogTypes

func SupportedCloudWatchClusterLogTypes() []string

SupportedCloudWatchClusterLogTypes retuls all supported logging facilities

func SupportedNodeVolumeTypes

func SupportedNodeVolumeTypes() []string

SupportedNodeVolumeTypes are the volume types that can be used for a node root volume

func SupportedRegions

func SupportedRegions() []string

SupportedRegions are the regions where EKS is available

func SupportedVersions

func SupportedVersions() []string

SupportedVersions are the versions of Kubernetes that EKS supports

func ValidateAdditionalEndpointServices

func ValidateAdditionalEndpointServices(services []string) error

ValidateAdditionalEndpointServices validates support for the specified additional endpoint services

func ValidateClusterConfig

func ValidateClusterConfig(cfg *ClusterConfig) error

ValidateClusterConfig checks compatible fields of a given ClusterConfig

func ValidateManagedNodeGroup

func ValidateManagedNodeGroup(ng *ManagedNodeGroup, index int) error

ValidateManagedNodeGroup validates a ManagedNodeGroup and sets some defaults

func ValidateNodeGroup

func ValidateNodeGroup(i int, ng *NodeGroup) error

ValidateNodeGroup checks compatible fields of a given nodegroup

Types

type AZSubnetMapping

type AZSubnetMapping map[string]AZSubnetSpec

AZSubnetMapping holds subnet to AZ mappings. If the key is an AZ, that also becomes the name of the subnet otherwise use the key to refer to this subnet. Schema type is `map[string]AZSubnetSpec`

func AZSubnetMappingFromMap

func AZSubnetMappingFromMap(m map[string]AZSubnetSpec) AZSubnetMapping

func NewAZSubnetMapping

func NewAZSubnetMapping() AZSubnetMapping

func (AZSubnetMapping) DeepCopy

func (in AZSubnetMapping) DeepCopy() AZSubnetMapping

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

func (AZSubnetMapping) DeepCopyInto

func (in AZSubnetMapping) DeepCopyInto(out *AZSubnetMapping)

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

func (*AZSubnetMapping) Set

func (m *AZSubnetMapping) Set(name string, spec AZSubnetSpec)

func (*AZSubnetMapping) SetAZ

func (m *AZSubnetMapping) SetAZ(az string, spec Network)

func (*AZSubnetMapping) UnmarshalJSON

func (m *AZSubnetMapping) UnmarshalJSON(b []byte) error

UnmarshalJSON parses JSON data into a value

func (*AZSubnetMapping) WithAZs added in v0.39.0

func (m *AZSubnetMapping) WithAZs() []string

WithAZs returns list of subnet AZs

func (*AZSubnetMapping) WithCIDRs added in v0.39.0

func (m *AZSubnetMapping) WithCIDRs() []string

WithCIDRs returns list of subnet CIDRs

func (*AZSubnetMapping) WithIDs added in v0.39.0

func (m *AZSubnetMapping) WithIDs() []string

WithIDs returns list of subnet ids

type AZSubnetSpec

type AZSubnetSpec struct {
	// +optional
	ID string `json:"id,omitempty"`
	// AZ can be omitted if the key is an AZ
	// +optional
	AZ string `json:"az,omitempty"`
	// +optional
	CIDR *ipnet.IPNet `json:"cidr,omitempty"`
}

func (*AZSubnetSpec) DeepCopy

func (in *AZSubnetSpec) DeepCopy() *AZSubnetSpec

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

func (*AZSubnetSpec) DeepCopyInto

func (in *AZSubnetSpec) DeepCopyInto(out *AZSubnetSpec)

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

type Addon

type Addon struct {
	// +required
	Name string `json:"name,omitempty"`
	// +optional
	Version string `json:"version,omitempty"`
	// +optional
	ServiceAccountRoleARN string `json:"serviceAccountRoleARN,omitempty"`
	// list of ARNs of the IAM policies to attach
	// +optional
	AttachPolicyARNs []string `json:"attachPolicyARNs,omitempty"`
	// AttachPolicy holds a policy document to attach
	// +optional
	AttachPolicy InlineDocument `json:"attachPolicy,omitempty"`
	// ARN of the permissions boundary to associate
	// +optional
	PermissionsBoundary string `json:"permissionsBoundary,omitempty"`
	// The metadata to apply to the cluster to assist with categorization and organization.
	// Each tag consists of a key and an optional value, both of which you define.
	// +optional
	Tags map[string]string `json:"tags,omitempty"`
	// Force applies the add-on to overwrite an existing add-on
	Force bool
}

Addon holds the EKS addon configuration

func (Addon) CanonicalName

func (a Addon) CanonicalName() string

func (*Addon) DeepCopy

func (in *Addon) DeepCopy() *Addon

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

func (*Addon) DeepCopyInto

func (in *Addon) DeepCopyInto(out *Addon)

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

func (Addon) Validate

func (a Addon) Validate() error

type ClusterCloudWatch

type ClusterCloudWatch struct {
	//+optional
	ClusterLogging *ClusterCloudWatchLogging `json:"clusterLogging,omitempty"`
}

ClusterCloudWatch contains config parameters related to CloudWatch

func (*ClusterCloudWatch) DeepCopy

func (in *ClusterCloudWatch) DeepCopy() *ClusterCloudWatch

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

func (*ClusterCloudWatch) DeepCopyInto

func (in *ClusterCloudWatch) DeepCopyInto(out *ClusterCloudWatch)

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

type ClusterCloudWatchLogging

type ClusterCloudWatchLogging struct {

	// Types of logging to enable (see [CloudWatch docs](/usage/cloudwatch-cluster-logging/#clusterconfig-examples)).
	// Valid entries are `CloudWatchLogging` constants
	//+optional
	EnableTypes []string `json:"enableTypes,omitempty"`
}

ClusterCloudWatchLogging container config parameters related to cluster logging

func (*ClusterCloudWatchLogging) DeepCopy

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

func (*ClusterCloudWatchLogging) DeepCopyInto

func (in *ClusterCloudWatchLogging) DeepCopyInto(out *ClusterCloudWatchLogging)

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

type ClusterConfig

type ClusterConfig struct {
	metav1.TypeMeta

	// +required
	Metadata *ClusterMeta `json:"metadata"`

	// +optional
	KubernetesNetworkConfig *KubernetesNetworkConfig `json:"kubernetesNetworkConfig,omitempty"`

	// +optional
	IAM *ClusterIAM `json:"iam,omitempty"`

	// +optional
	IdentityProviders []IdentityProvider `json:"identityProviders,omitempty"`

	// +optional
	VPC *ClusterVPC `json:"vpc,omitempty"`

	// +optional
	Addons []*Addon `json:"addons,omitempty"`

	// PrivateCluster allows configuring a fully-private cluster
	// in which no node has outbound internet access, and private access
	// to AWS services is enabled via VPC endpoints
	// +optional
	PrivateCluster *PrivateCluster `json:"privateCluster,omitempty"`

	// NodeGroups For information and examples see [nodegroups](/usage/managing-nodegroups)
	// +optional
	NodeGroups []*NodeGroup `json:"nodeGroups,omitempty"`

	// ManagedNodeGroups See [Nodegroups usage](/usage/managing-nodegroups)
	// and [managed nodegroups](/usage/eks-managed-nodes/)
	// +optional
	ManagedNodeGroups []*ManagedNodeGroup `json:"managedNodeGroups,omitempty"`

	// +optional
	FargateProfiles []*FargateProfile `json:"fargateProfiles,omitempty"`

	// +optional
	AvailabilityZones []string `json:"availabilityZones,omitempty"`

	// See [CloudWatch support](/usage/cloudwatch-cluster-logging/)
	// +optional
	CloudWatch *ClusterCloudWatch `json:"cloudWatch,omitempty"`

	// +optional
	SecretsEncryption *SecretsEncryption `json:"secretsEncryption,omitempty"`

	Status *ClusterStatus `json:"status,omitempty"`

	// FLUX V1 DEPRECATION NOTICE. https://github.com/weaveworks/eksctl/issues/2963
	// Git exposes configuration for Flux v1 and an earlier iteration of gitops
	// +optional
	Git *Git `json:"git,omitempty"`

	// GitOps exposes configuration for Flux v2 and will continue to be used in
	// future gitops plans, replacing the Git configuration above
	// +optional
	GitOps *GitOps `json:"gitops,omitempty"`
}

ClusterConfig is a simple config, to be replaced with Cluster API

func NewClusterConfig

func NewClusterConfig() *ClusterConfig

NewClusterConfig creates new config for a cluster; it doesn't include initial nodegroup, so user must call NewNodeGroup to create one

func (*ClusterConfig) AllNodeGroups

func (c *ClusterConfig) AllNodeGroups() []*NodeGroupBase

AllNodeGroups combines managed and self-managed nodegroups and returns a slice of *api.NodeGroupBase containing both types of nodegroups

func (*ClusterConfig) AppendAvailabilityZone

func (c *ClusterConfig) AppendAvailabilityZone(newAZ string)

AppendAvailabilityZone appends a new AZ to the set

func (*ClusterConfig) AppendClusterCloudWatchLogTypes

func (c *ClusterConfig) AppendClusterCloudWatchLogTypes(types ...string)

AppendClusterCloudWatchLogTypes will append given log types to the config structure

func (*ClusterConfig) CanUseForPrivateNodeGroups added in v0.40.0

func (c *ClusterConfig) CanUseForPrivateNodeGroups() error

CanUseForPrivateNodeGroups checks whether specified NodeGroups have enough private subnets when private networking is enabled

func (*ClusterConfig) CustomEndpointsMsg

func (c *ClusterConfig) CustomEndpointsMsg() string

CustomEndpointsMsg returns a message indicating the EndpointAccess given by the user

func (*ClusterConfig) DeepCopy

func (in *ClusterConfig) DeepCopy() *ClusterConfig

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

func (*ClusterConfig) DeepCopyInto

func (in *ClusterConfig) DeepCopyInto(out *ClusterConfig)

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

func (*ClusterConfig) DeepCopyObject

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

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

func (*ClusterConfig) DefaultEndpointsMsg

func (c *ClusterConfig) DefaultEndpointsMsg() string

DefaultEndpointsMsg returns a message that the EndpointAccess is the same as the default

func (*ClusterConfig) FindNodegroup

func (c *ClusterConfig) FindNodegroup(name string) *NodeGroup

HasNodegroup returns true if this clusterConfig contains a managed or un-managed nodegroup with the given name

func (*ClusterConfig) GetAllNodeGroupNames

func (c *ClusterConfig) GetAllNodeGroupNames() []string

GetAllNodeGroupNames collects and returns names for both managed and unmanaged nodegroups

func (*ClusterConfig) HasAnySubnets

func (c *ClusterConfig) HasAnySubnets() bool

HasAnySubnets checks if any subnets were set

func (*ClusterConfig) HasBootstrapProfile

func (c *ClusterConfig) HasBootstrapProfile() bool

FLUX V1 DEPRECATION NOTICE. https://github.com/weaveworks/eksctl/issues/2963 HasBootstrapProfile returns true if there is a profile with a source specified

func (*ClusterConfig) HasClusterCloudWatchLogging

func (c *ClusterConfig) HasClusterCloudWatchLogging() bool

HasClusterCloudWatchLogging determines if cluster logging was enabled or not

func (*ClusterConfig) HasClusterEndpointAccess

func (c *ClusterConfig) HasClusterEndpointAccess() bool

HasClusterEndpointAccess determines if endpoint access was configured in config file or not

func (*ClusterConfig) HasGitOpsFluxConfigured added in v0.39.0

func (c *ClusterConfig) HasGitOpsFluxConfigured() bool

HasGitOpsFluxConfigured returns true if gitops.flux configuration is not nil

func (*ClusterConfig) HasGitopsRepoConfigured

func (c *ClusterConfig) HasGitopsRepoConfigured() bool

FLUX V1 DEPRECATION NOTICE. https://github.com/weaveworks/eksctl/issues/2963 HasGitopsRepoConfigured returns true if git.repo and git.repo.url are not nil

func (*ClusterConfig) HasPrivateEndpointAccess

func (c *ClusterConfig) HasPrivateEndpointAccess() bool

func (*ClusterConfig) HasSufficientPrivateSubnets

func (c *ClusterConfig) HasSufficientPrivateSubnets() bool

HasSufficientPrivateSubnets validates if there is a sufficient number of private subnets available to create a cluster

func (*ClusterConfig) HasSufficientSubnets

func (c *ClusterConfig) HasSufficientSubnets() error

HasSufficientSubnets validates if there is a sufficient number of either private and/or public subnets available to create a cluster, i.e. either non-zero of public or private, and not less then MinRequiredSubnets of each, but allowing to have public-only or private-only

func (*ClusterConfig) ImportSubnet

func (c *ClusterConfig) ImportSubnet(topology SubnetTopology, az, subnetID, cidr string) error

ImportSubnet loads a given subnet into cluster config

func (ClusterConfig) IsFargateEnabled

func (c ClusterConfig) IsFargateEnabled() bool

IsFargateEnabled returns true if Fargate is enabled in this ClusterConfig, or false otherwise.

func (ClusterConfig) LogString

func (c ClusterConfig) LogString() string

LogString returns representation of ClusterConfig for logs

func (*ClusterConfig) NewNodeGroup

func (c *ClusterConfig) NewNodeGroup() *NodeGroup

NewNodeGroup creates new nodegroup inside cluster config, it returns pointer to the nodegroup for convenience

func (*ClusterConfig) SetDefaultFargateProfile

func (c *ClusterConfig) SetDefaultFargateProfile()

SetDefaultFargateProfile configures this ClusterConfig to have a single Fargate profile called "default", with two selectors matching respectively the "default" and "kube-system" Kubernetes namespaces.

func (*ClusterConfig) SubnetInfo added in v0.40.0

func (c *ClusterConfig) SubnetInfo() string

SubnetInfo returns a string containing VPC subnet information Useful for error messages and logs

func (*ClusterConfig) UpdateEndpointsMsg

func (c *ClusterConfig) UpdateEndpointsMsg() string

UpdateEndpointsMsg gives message indicating that they need to use eksctl utils to make this config

func (*ClusterConfig) ValidateClusterEndpointConfig

func (c *ClusterConfig) ValidateClusterEndpointConfig() error

ValidateClusterEndpointConfig checks the endpoint configuration for potential issues

func (*ClusterConfig) ValidatePrivateCluster

func (c *ClusterConfig) ValidatePrivateCluster() error

ValidatePrivateCluster validates the private cluster config

type ClusterConfigList

type ClusterConfigList struct {
	metav1.TypeMeta
	metav1.ListMeta `json:"metadata"`

	Items []ClusterConfig `json:"items"`
}

ClusterConfigList is a list of ClusterConfigs

func (*ClusterConfigList) DeepCopy

func (in *ClusterConfigList) DeepCopy() *ClusterConfigList

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

func (*ClusterConfigList) DeepCopyInto

func (in *ClusterConfigList) DeepCopyInto(out *ClusterConfigList)

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

func (*ClusterConfigList) DeepCopyObject

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

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

type ClusterEndpoints

type ClusterEndpoints struct {
	PrivateAccess *bool `json:"privateAccess,omitempty"`
	PublicAccess  *bool `json:"publicAccess,omitempty"`
}

ClusterEndpoints holds cluster api server endpoint access information

func ClusterEndpointAccessDefaults

func ClusterEndpointAccessDefaults() *ClusterEndpoints

ClusterEndpointAccessDefaults returns a ClusterEndpoints pointer with default values set.

func (*ClusterEndpoints) DeepCopy

func (in *ClusterEndpoints) DeepCopy() *ClusterEndpoints

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

func (*ClusterEndpoints) DeepCopyInto

func (in *ClusterEndpoints) DeepCopyInto(out *ClusterEndpoints)

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

type ClusterIAM

type ClusterIAM struct {
	// +optional
	ServiceRoleARN *string `json:"serviceRoleARN,omitempty"`

	// permissions boundary for all identity-based entities created by eksctl.
	// See [AWS Permission Boundary](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)
	// +optional
	ServiceRolePermissionsBoundary *string `json:"serviceRolePermissionsBoundary,omitempty"`

	// role used by pods to access AWS APIs. This role is added to the Kubernetes RBAC for authorization.
	// See [Pod Execution Role](https://docs.aws.amazon.com/eks/latest/userguide/pod-execution-role.html)
	// +optional
	FargatePodExecutionRoleARN *string `json:"fargatePodExecutionRoleARN,omitempty"`

	// permissions boundary for the fargate pod execution role`. See [EKS Fargate Support](/usage/fargate-support/)
	// +optional
	FargatePodExecutionRolePermissionsBoundary *string `json:"fargatePodExecutionRolePermissionsBoundary,omitempty"`

	// enables the IAM OIDC provider as well as IRSA for the Amazon CNI plugin
	// +optional
	WithOIDC *bool `json:"withOIDC,omitempty"`

	// service accounts to create in the cluster.
	// See [IAM Service Accounts](/iamserviceaccounts/#usage-with-config-files)
	// +optional
	ServiceAccounts []*ClusterIAMServiceAccount `json:"serviceAccounts,omitempty"`

	// VPCResourceControllerPolicy attaches the IAM policy
	// necessary to run the VPC controller in the control plane
	// Defaults to `true`
	VPCResourceControllerPolicy *bool `json:"vpcResourceControllerPolicy,omitempty"`
}

ClusterIAM holds all IAM attributes of a cluster

func NewClusterIAM

func NewClusterIAM() *ClusterIAM

NewClusterIAM creates a new ClusterIAM for a cluster

func (*ClusterIAM) DeepCopy

func (in *ClusterIAM) DeepCopy() *ClusterIAM

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

func (*ClusterIAM) DeepCopyInto

func (in *ClusterIAM) DeepCopyInto(out *ClusterIAM)

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

type ClusterIAMMeta

type ClusterIAMMeta struct {
	// +optional
	Name string `json:"name,omitempty"`

	// +optional
	Namespace string `json:"namespace,omitempty"`

	// +optional
	Labels map[string]string `json:"labels,omitempty"`

	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`
}

ClusterIAMMeta holds information we can use to create ObjectMeta for service accounts

func ClusterIAMServiceAccountNameStringToClusterIAMMeta

func ClusterIAMServiceAccountNameStringToClusterIAMMeta(name string) (*ClusterIAMMeta, error)

ClusterIAMServiceAccountNameStringToClusterIAMMeta constructs metav1.ObjectMeta from <ns>/<name> string

func (*ClusterIAMMeta) AsObjectMeta

func (iamMeta *ClusterIAMMeta) AsObjectMeta() metav1.ObjectMeta

AsObjectMeta gives us the k8s ObjectMeta needed to create the service account

func (*ClusterIAMMeta) DeepCopy

func (in *ClusterIAMMeta) DeepCopy() *ClusterIAMMeta

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

func (*ClusterIAMMeta) DeepCopyInto

func (in *ClusterIAMMeta) DeepCopyInto(out *ClusterIAMMeta)

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

type ClusterIAMServiceAccount

type ClusterIAMServiceAccount struct {
	ClusterIAMMeta `json:"metadata,omitempty"`

	// list of ARNs of the IAM policies to attach
	// +optional
	AttachPolicyARNs []string `json:"attachPolicyARNs,omitempty"`

	WellKnownPolicies WellKnownPolicies `json:"wellKnownPolicies,omitempty"`

	// AttachPolicy holds a policy document to attach to this service account
	// +optional
	AttachPolicy InlineDocument `json:"attachPolicy,omitempty"`

	// ARN of the role to attach to the service account
	AttachRoleARN string `json:"attachRoleARN,omitempty"`

	// ARN of the permissions boundary to associate with the service account
	// +optional
	PermissionsBoundary string `json:"permissionsBoundary,omitempty"`

	// +optional
	Status *ClusterIAMServiceAccountStatus `json:"status,omitempty"`

	// Specific role name instead of the Cloudformation-generated role name
	// +optional
	RoleName string `json:"roleName,omitempty"`

	// Specify if only the IAM Service Account role should be created without creating/annotating the service account
	// +optional
	RoleOnly *bool `json:"roleOnly,omitempty"`

	// AWS tags for the service account
	// +optional
	Tags map[string]string `json:"tags,omitempty"`
}

ClusterIAMServiceAccount holds an IAM service account metadata and configuration

func IAMServiceAccountsWithImplicitServiceAccounts added in v0.39.0

func IAMServiceAccountsWithImplicitServiceAccounts(cfg *ClusterConfig) []*ClusterIAMServiceAccount

IAMServiceAccountsWithImplicitServiceAccounts adds implicitly created IAM SAs that need to be explicitly deleted.

func (*ClusterIAMServiceAccount) DeepCopy

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

func (*ClusterIAMServiceAccount) DeepCopyInto

func (in *ClusterIAMServiceAccount) DeepCopyInto(out *ClusterIAMServiceAccount)

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

func (*ClusterIAMServiceAccount) NameString

func (sa *ClusterIAMServiceAccount) NameString() string

NameString returns common name string

func (*ClusterIAMServiceAccount) SetAnnotations

func (sa *ClusterIAMServiceAccount) SetAnnotations()

SetAnnotations sets eks.amazonaws.com/role-arn annotation according to IAM role used

type ClusterIAMServiceAccountStatus

type ClusterIAMServiceAccountStatus struct {
	// +optional
	RoleARN *string `json:"roleARN,omitempty"`
}

ClusterIAMServiceAccountStatus holds status of the IAM service account

func (*ClusterIAMServiceAccountStatus) DeepCopy

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

func (*ClusterIAMServiceAccountStatus) DeepCopyInto

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

type ClusterMeta

type ClusterMeta struct {
	// Name of the cluster
	// +required
	Name string `json:"name"`
	// the AWS region hosting this cluster
	// +required
	Region string `json:"region"`
	// Valid variants are `KubernetesVersion` constants
	// +optional
	Version string `json:"version,omitempty"`
	// Tags are used to tag AWS resources created by eksctl
	// +optional
	Tags map[string]string `json:"tags,omitempty"`
	// Annotations are arbitrary metadata ignored by `eksctl`.
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`
}

ClusterMeta contains general cluster information

func (*ClusterMeta) DeepCopy

func (in *ClusterMeta) DeepCopy() *ClusterMeta

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

func (*ClusterMeta) DeepCopyInto

func (in *ClusterMeta) DeepCopyInto(out *ClusterMeta)

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

func (*ClusterMeta) LogString

func (c *ClusterMeta) LogString() string

LogString returns representation of ClusterMeta for logs

func (*ClusterMeta) String

func (c *ClusterMeta) String() string

String returns canonical representation of ClusterMeta

type ClusterNAT

type ClusterNAT struct {
	// Valid variants are `ClusterNAT` constants
	Gateway *string `json:"gateway,omitempty"`
}

ClusterNAT NAT config

func DefaultClusterNAT

func DefaultClusterNAT() *ClusterNAT

DefaultClusterNAT will set the default value for Cluster NAT mode

func (*ClusterNAT) DeepCopy

func (in *ClusterNAT) DeepCopy() *ClusterNAT

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

func (*ClusterNAT) DeepCopyInto

func (in *ClusterNAT) DeepCopyInto(out *ClusterNAT)

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

type ClusterProvider

type ClusterProvider interface {
	CloudFormation() cloudformationiface.CloudFormationAPI
	CloudFormationRoleARN() string
	CloudFormationDisableRollback() bool
	ASG() autoscalingiface.AutoScalingAPI
	EKS() eksiface.EKSAPI
	EC2() ec2iface.EC2API
	ELB() elbiface.ELBAPI
	ELBV2() elbv2iface.ELBV2API
	STS() stsiface.STSAPI
	SSM() ssmiface.SSMAPI
	IAM() iamiface.IAMAPI
	CloudTrail() cloudtrailiface.CloudTrailAPI
	Region() string
	Profile() string
	WaitTimeout() time.Duration
	ConfigProvider() client.ConfigProvider
}

ClusterProvider is the interface to AWS APIs

type ClusterStatus

type ClusterStatus struct {
	Endpoint                 string        `json:"endpoint,omitempty"`
	CertificateAuthorityData []byte        `json:"certificateAuthorityData,omitempty"`
	ARN                      string        `json:"arn,omitempty"`
	StackName                string        `json:"stackName,omitempty"`
	EKSCTLCreated            EKSCTLCreated `json:"eksctlCreated,omitempty"`
}

ClusterStatus hold read-only attributes of a cluster

func (*ClusterStatus) DeepCopy

func (in *ClusterStatus) DeepCopy() *ClusterStatus

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

func (*ClusterStatus) DeepCopyInto

func (in *ClusterStatus) DeepCopyInto(out *ClusterStatus)

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

type ClusterSubnets

type ClusterSubnets struct {
	Private AZSubnetMapping `json:"private,omitempty"`
	Public  AZSubnetMapping `json:"public,omitempty"`
}

ClusterSubnets holds private and public subnets

func (*ClusterSubnets) DeepCopy

func (in *ClusterSubnets) DeepCopy() *ClusterSubnets

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

func (*ClusterSubnets) DeepCopyInto

func (in *ClusterSubnets) DeepCopyInto(out *ClusterSubnets)

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

type ClusterVPC

type ClusterVPC struct {
	// global CIDR and VPC ID
	// +optional
	Network
	// SecurityGroup (aka the ControlPlaneSecurityGroup) for communication between control plane and nodes
	// +optional
	SecurityGroup string `json:"securityGroup,omitempty"`
	// Subnets are keyed by AZ for convenience.
	// See [this example](/examples/reusing-iam-and-vpc/)
	// as well as [using existing
	// VPCs](/usage/vpc-networking/#use-existing-vpc-other-custom-configuration).
	// +optional
	Subnets *ClusterSubnets `json:"subnets,omitempty"`
	// for additional CIDR associations, e.g. a CIDR for
	// private subnets or any ad-hoc subnets
	// +optional
	ExtraCIDRs []*ipnet.IPNet `json:"extraCIDRs,omitempty"`
	// for pre-defined shared node SG
	SharedNodeSecurityGroup string `json:"sharedNodeSecurityGroup,omitempty"`
	// AutoAllocateIPV6 requests an IPv6 CIDR block with /56 prefix for the VPC
	// +optional
	AutoAllocateIPv6 *bool `json:"autoAllocateIPv6,omitempty"`
	// +optional
	NAT *ClusterNAT `json:"nat,omitempty"`
	// See [managing access to API](/usage/vpc-networking/#managing-access-to-the-kubernetes-api-server-endpoints)
	// +optional
	ClusterEndpoints *ClusterEndpoints `json:"clusterEndpoints,omitempty"`
	// PublicAccessCIDRs are which CIDR blocks to allow access to public
	// k8s API endpoint
	// +optional
	PublicAccessCIDRs []string `json:"publicAccessCIDRs,omitempty"`
}

ClusterVPC holds global subnet and all child subnets

func NewClusterVPC

func NewClusterVPC() *ClusterVPC

NewClusterVPC creates new VPC config for a cluster

func (*ClusterVPC) DeepCopy

func (in *ClusterVPC) DeepCopy() *ClusterVPC

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

func (*ClusterVPC) DeepCopyInto

func (in *ClusterVPC) DeepCopyInto(out *ClusterVPC)

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

type EKSCTLCreated

type EKSCTLCreated string

type FargateProfile

type FargateProfile struct {

	// Name of the Fargate profile.
	// +required
	Name string `json:"name"`

	// PodExecutionRoleARN is the IAM role's ARN to use to run pods onto Fargate.
	PodExecutionRoleARN string `json:"podExecutionRoleARN,omitempty"`

	// Selectors define the rules to select workload to schedule onto Fargate.
	Selectors []FargateProfileSelector `json:"selectors"`

	// Subnets which Fargate should use to do network placement of the selected workload.
	// If none provided, all subnets for the cluster will be used.
	// +optional
	Subnets []string `json:"subnets,omitempty"`

	// Used to tag the AWS resources
	// +optional
	Tags map[string]string `json:"tags,omitempty"`

	// The current status of the Fargate profile.
	Status string `json:"status"`
}

FargateProfile defines the settings used to schedule workload onto Fargate.

func (*FargateProfile) DeepCopy

func (in *FargateProfile) DeepCopy() *FargateProfile

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

func (*FargateProfile) DeepCopyInto

func (in *FargateProfile) DeepCopyInto(out *FargateProfile)

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

func (FargateProfile) Validate

func (fp FargateProfile) Validate() error

Validate validates this FargateProfile object.

type FargateProfileSelector

type FargateProfileSelector struct {

	// Namespace is the Kubernetes namespace from which to select workload.
	// +required
	Namespace string `json:"namespace"`

	// Labels are the Kubernetes label selectors to use to select workload.
	// +optional
	Labels map[string]string `json:"labels,omitempty"`
}

FargateProfileSelector defines rules to select workload to schedule onto Fargate.

func (*FargateProfileSelector) DeepCopy

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

func (*FargateProfileSelector) DeepCopyInto

func (in *FargateProfileSelector) DeepCopyInto(out *FargateProfileSelector)

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

func (FargateProfileSelector) Validate

func (fps FargateProfileSelector) Validate() error

Validate validates this FargateProfileSelector object.

type Flux added in v0.39.0

type Flux struct {
	// The repository hosting service. Can be either Github or Gitlab.
	GitProvider string `json:"gitProvider,omitempty"`

	// The Username or Org name under which Flux v2 will create a repo
	Owner string `json:"owner,omitempty"`

	// The name of the repository which Flux v2 will create to store gitops configuration
	Repository string `json:"repository,omitempty"`

	// The kubernetes namespace into which Flux v2 components will be deployed
	// +optional
	Namespace string `json:"namespace,omitempty"`

	// Path to the kubernetes config for the cluster. Defaults to $HOME/.kube/config
	// +optional
	Kubeconfig string `json:"kubeconfig,omitempty"`

	// The name of the branch which Flux will commit to
	// +optional
	Branch string `json:"branch,omitempty"`

	// A relative path within the repository. Gitops sync will be scoped to files
	// under this path
	// +optional
	Path string `json:"path,omitempty"`

	// If true, Flux will create the Gitops repo in a personal account.
	// If false, Flux will create the Gitops repo in an org.
	// +optional
	Personal bool `json:"personal,omitempty"`

	// Path to a file containing a Personal Access Token with repo permissions
	// Not required if GITHUB_TOKEN or GITLAB_TOKEN set on the environment
	// +optional
	AuthTokenPath string `json:"authTokenPath,omitempty"`
}

Flux groups all configuration options related to a Git repository used for GitOps Toolkit (Flux v2).

func (*Flux) DeepCopy added in v0.39.0

func (in *Flux) DeepCopy() *Flux

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

func (*Flux) DeepCopyInto added in v0.39.0

func (in *Flux) DeepCopyInto(out *Flux)

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

type Git

type Git struct {
	// [Enable Repo](/usage/gitops/#installing-flux-v1)
	Repo *Repo `json:"repo,omitempty"`

	// [Enable Repo](/usage/gitops/#installing-flux-v1)
	// +optional
	Operator Operator `json:"operator,omitempty"`

	// [Installing a Quickstart profile](/usage/gitops/#installing-a-quickstart-profile-in-your-cluster)
	// +optional
	BootstrapProfile *Profile `json:"bootstrapProfile,omitempty"` // one or many profiles to enable on this cluster once it is created
}

Git groups all configuration options related to enabling GitOps on a cluster and linking it to a Git repository. [Gitops Guide](/gitops-quickstart/)

func NewGit

func NewGit() *Git

FLUX V1 DEPRECATION NOTICE. https://github.com/weaveworks/eksctl/issues/2963 NewGit returns a new empty Git configuration

func (*Git) DeepCopy

func (in *Git) DeepCopy() *Git

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

func (*Git) DeepCopyInto

func (in *Git) DeepCopyInto(out *Git)

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

type GitOps added in v0.39.0

type GitOps struct {
	// [Enable Toolkit](/usage/gitops/#experimental-installing-gitops-toolkit-flux-v2)
	Flux *Flux `json:"flux,omitempty"`
}

GitOps groups all configuration options related to enabling GitOps Toolkit on a cluster and linking it to a Git repository. Note: this will replace the older Git types

func (*GitOps) DeepCopy added in v0.39.0

func (in *GitOps) DeepCopy() *GitOps

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

func (*GitOps) DeepCopyInto added in v0.39.0

func (in *GitOps) DeepCopyInto(out *GitOps)

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

type IdentityProvider added in v0.39.0

type IdentityProvider struct {
	Inner IdentityProviderInterface
	// contains filtered or unexported fields
}

IdentityProvider holds an identity provider configuration. See [the example eksctl config](https://github.com/weaveworks/eksctl/blob/main/examples/27-oidc-provider.yaml). Schema type is one of `OIDCIdentityProvider`

func FromIdentityProvider added in v0.39.0

func FromIdentityProvider(idp IdentityProviderInterface) IdentityProvider

func (*IdentityProvider) DeepCopy added in v0.39.0

func (in *IdentityProvider) DeepCopy() *IdentityProvider

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

func (*IdentityProvider) DeepCopyInto added in v0.39.0

func (in *IdentityProvider) DeepCopyInto(out *IdentityProvider)

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

func (*IdentityProvider) UnmarshalJSON added in v0.39.0

func (ip *IdentityProvider) UnmarshalJSON(data []byte) error

type IdentityProviderInterface added in v0.39.0

type IdentityProviderInterface interface {
	DeepCopyIdentityProviderInterface() IdentityProviderInterface
	Type() IdentityProviderType
}

IdentityProviderInterface is a dummy interface to give some extra type safety

type IdentityProviderType added in v0.39.0

type IdentityProviderType string
const (
	OIDCIdentityProviderType IdentityProviderType = "oidc"
)

type InlineDocument

type InlineDocument map[string]interface{}

InlineDocument holds any arbitrary JSON/YAML documents, such as extra config parameters or IAM policies

func (*InlineDocument) DeepCopy

func (in *InlineDocument) DeepCopy() *InlineDocument

DeepCopy is needed to generate kubernetes types for InlineDocument

func (InlineDocument) DeepCopyInto

func (in InlineDocument) DeepCopyInto(out *InlineDocument)

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

type KubernetesNetworkConfig

type KubernetesNetworkConfig struct {
	// ServiceIPv4CIDR is the CIDR range from where `ClusterIP`s are assigned
	ServiceIPv4CIDR string `json:"serviceIPv4CIDR,omitempty"`
}

KubernetesNetworkConfig contains cluster networking options

func (*KubernetesNetworkConfig) DeepCopy

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

func (*KubernetesNetworkConfig) DeepCopyInto

func (in *KubernetesNetworkConfig) DeepCopyInto(out *KubernetesNetworkConfig)

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

type LaunchTemplate

type LaunchTemplate struct {
	// Launch template ID
	// +required
	ID string `json:"id,omitempty"`
	// Launch template version
	// Defaults to the default launch template version
	// TODO support $Default, $Latest
	Version *string `json:"version,omitempty"`
}

func (*LaunchTemplate) DeepCopy

func (in *LaunchTemplate) DeepCopy() *LaunchTemplate

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

func (*LaunchTemplate) DeepCopyInto

func (in *LaunchTemplate) DeepCopyInto(out *LaunchTemplate)

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

type ManagedNodeGroup

type ManagedNodeGroup struct {
	*NodeGroupBase

	// InstanceTypes specifies a list of instance types
	InstanceTypes []string `json:"instanceTypes,omitempty"`

	// Spot creates a spot nodegroup
	Spot bool `json:"spot,omitempty"`

	// LaunchTemplate specifies an existing launch template to use
	// for the nodegroup
	LaunchTemplate *LaunchTemplate `json:"launchTemplate,omitempty"`

	Unowned bool
}

ManagedNodeGroup represents an EKS-managed nodegroup TODO Validate for unmapped fields and throw an error

func NewManagedNodeGroup

func NewManagedNodeGroup() *ManagedNodeGroup

NewManagedNodeGroup creates a new ManagedNodeGroup

func (*ManagedNodeGroup) BaseNodeGroup

func (m *ManagedNodeGroup) BaseNodeGroup() *NodeGroupBase

BaseNodeGroup implements NodePool

func (*ManagedNodeGroup) DeepCopy

func (in *ManagedNodeGroup) DeepCopy() *ManagedNodeGroup

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

func (*ManagedNodeGroup) DeepCopyInto

func (in *ManagedNodeGroup) DeepCopyInto(out *ManagedNodeGroup)

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

func (*ManagedNodeGroup) InstanceTypeList added in v0.40.0

func (m *ManagedNodeGroup) InstanceTypeList() []string

func (*ManagedNodeGroup) ListOptions

func (m *ManagedNodeGroup) ListOptions() metav1.ListOptions

type MetricsCollection

type MetricsCollection struct {
	// +required
	Granularity string `json:"granularity"`
	// +optional
	Metrics []string `json:"metrics,omitempty"`
}

MetricsCollection used by the scaling config, see [cloudformation docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-metricscollection.html)

func (*MetricsCollection) DeepCopy

func (in *MetricsCollection) DeepCopy() *MetricsCollection

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

func (*MetricsCollection) DeepCopyInto

func (in *MetricsCollection) DeepCopyInto(out *MetricsCollection)

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

type Network

type Network struct {
	// +optional
	ID string `json:"id,omitempty"`
	// +optional
	CIDR *ipnet.IPNet `json:"cidr,omitempty"`
}

Network holds ID and CIDR

func (*Network) DeepCopy

func (in *Network) DeepCopy() *Network

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

func (*Network) DeepCopyInto

func (in *Network) DeepCopyInto(out *Network)

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

type NodeGroup

type NodeGroup struct {
	*NodeGroupBase

	//+optional
	InstancesDistribution *NodeGroupInstancesDistribution `json:"instancesDistribution,omitempty"`

	// +optional
	ASGMetricsCollection []MetricsCollection `json:"asgMetricsCollection,omitempty"`

	// CPUCredits configures [T3 Unlimited](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances-unlimited-mode.html), valid only for T-type instances
	// +optional
	CPUCredits *string `json:"cpuCredits,omitempty"`

	// +optional
	Taints map[string]string `json:"taints,omitempty"`

	// Associate load balancers with auto scaling group
	// +optional
	ClassicLoadBalancerNames []string `json:"classicLoadBalancerNames,omitempty"`

	// Associate target group with auto scaling group
	// +optional
	TargetGroupARNs []string `json:"targetGroupARNs,omitempty"`

	// +optional
	Bottlerocket *NodeGroupBottlerocket `json:"bottlerocket,omitempty"`

	// [Custom
	// address](/usage/vpc-networking/#custom-cluster-dns-address) used for DNS
	// lookups
	// +optional
	ClusterDNS string `json:"clusterDNS,omitempty"`

	// [Customize `kubelet` config](/usage/customizing-the-kubelet/)
	// +optional
	KubeletExtraConfig *InlineDocument `json:"kubeletExtraConfig,omitempty"`
}

NodeGroup holds configuration attributes that are specific to a nodegroup

func NewNodeGroup

func NewNodeGroup() *NodeGroup

NewNodeGroup creates a new NodeGroup, and returns a pointer to it

func (*NodeGroup) BaseNodeGroup

func (n *NodeGroup) BaseNodeGroup() *NodeGroupBase

BaseNodeGroup implements NodePool

func (*NodeGroup) DeepCopy

func (in *NodeGroup) DeepCopy() *NodeGroup

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

func (*NodeGroup) DeepCopyInto

func (in *NodeGroup) DeepCopyInto(out *NodeGroup)

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

func (*NodeGroup) InstanceTypeList added in v0.40.0

func (n *NodeGroup) InstanceTypeList() []string

type NodeGroupBase

type NodeGroupBase struct {
	// +required
	Name string `json:"name"`

	// Valid variants are `NodeAMIFamily` constants
	// +optional
	AMIFamily string `json:"amiFamily,omitempty"`
	// +optional
	InstanceType string `json:"instanceType,omitempty"`
	// Limit [nodes to specific
	// AZs](/usage/autoscaling/#zone-aware-auto-scaling)
	// +optional
	AvailabilityZones []string `json:"availabilityZones,omitempty"`
	// Limit nodes to specific subnets
	// +optional
	Subnets []string `json:"subnets,omitempty"`

	// +optional
	InstancePrefix string `json:"instancePrefix,omitempty"`
	// +optional
	InstanceName string `json:"instanceName,omitempty"`

	// +optional
	*ScalingConfig

	// +optional
	// VolumeSize gigabytes
	// Defaults to `80`
	VolumeSize *int `json:"volumeSize,omitempty"`
	// +optional
	// SSH configures ssh access for this nodegroup
	SSH *NodeGroupSSH `json:"ssh,omitempty"`
	// +optional
	Labels map[string]string `json:"labels,omitempty"`
	// Enable [private
	// networking](/usage/vpc-networking/#use-private-subnets-for-initial-nodegroup)
	// for nodegroup
	// +optional
	PrivateNetworking bool `json:"privateNetworking"`
	// Applied to the Autoscaling Group and to the EC2 instances (unmanaged),
	// Applied to the EKS Nodegroup resource and to the EC2 instances (managed)
	// +optional
	Tags map[string]string `json:"tags,omitempty"`
	// +optional
	IAM *NodeGroupIAM `json:"iam,omitempty"`

	// Specify [custom AMIs](/usage/custom-ami-support/), `auto-ssm`, `auto`, or `static`
	// +optional
	AMI string `json:"ami,omitempty"`

	// +optional
	SecurityGroups *NodeGroupSGs `json:"securityGroups,omitempty"`

	// +optional
	MaxPodsPerNode int `json:"maxPodsPerNode,omitempty"`

	// See [relevant AWS
	// docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html#cfn-attributes-updatepolicy-rollingupdate-suspendprocesses)
	// +optional
	ASGSuspendProcesses []string `json:"asgSuspendProcesses,omitempty"`

	// EBSOptimized enables [EBS
	// optimization](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html)
	// +optional
	EBSOptimized *bool `json:"ebsOptimized,omitempty"`

	// Valid variants are `VolumeType` constants
	// +optional
	VolumeType *string `json:"volumeType,omitempty"`
	// +optional
	VolumeName *string `json:"volumeName,omitempty"`
	// +optional
	VolumeEncrypted *bool `json:"volumeEncrypted,omitempty"`
	// +optional
	VolumeKmsKeyID *string `json:"volumeKmsKeyID,omitempty"`
	// +optional
	VolumeIOPS *int `json:"volumeIOPS,omitempty"`
	// +optional
	VolumeThroughput *int `json:"volumeThroughput,omitempty"`

	// PreBootstrapCommands are executed before bootstrapping instances to the
	// cluster
	// +optional
	PreBootstrapCommands []string `json:"preBootstrapCommands,omitempty"`

	// Override `eksctl`'s bootstrapping script
	// +optional
	OverrideBootstrapCommand *string `json:"overrideBootstrapCommand,omitempty"`

	// DisableIMDSv1 requires requests to the metadata service to use IMDSv2 tokens
	// Defaults to `false`
	// +optional
	DisableIMDSv1 *bool `json:"disableIMDSv1,omitempty"`

	// DisablePodIMDS blocks all IMDS requests from non host networking pods
	// Defaults to `false`
	// +optional
	DisablePodIMDS *bool `json:"disablePodIMDS,omitempty"`

	// Placement specifies the placement group in which nodes should
	// be spawned
	// +optional
	Placement *Placement `json:"placement,omitempty"`

	// EFAEnabled creates the maximum allowed number of EFA-enabled network
	// cards on nodes in this group.
	// +optional
	EFAEnabled *bool `json:"efaEnabled,omitempty"`

	// Internal fields
	// Some AMIs (bottlerocket) have a separate volume for the OS
	AdditionalEncryptedVolume string `json:"-"`
}

NodeGroupBase represents the base nodegroup config for self-managed and managed nodegroups

func (*NodeGroupBase) DeepCopy

func (in *NodeGroupBase) DeepCopy() *NodeGroupBase

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

func (*NodeGroupBase) DeepCopyInto

func (in *NodeGroupBase) DeepCopyInto(out *NodeGroupBase)

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

func (*NodeGroupBase) GetAMIFamily

func (n *NodeGroupBase) GetAMIFamily() string

GetAMIFamily returns the AMI family

func (*NodeGroupBase) ListOptions

func (n *NodeGroupBase) ListOptions() metav1.ListOptions

ListOptions returns metav1.ListOptions with label selector for the nodegroup

func (*NodeGroupBase) NameString

func (n *NodeGroupBase) NameString() string

NameString returns the nodegroup name

func (*NodeGroupBase) Size

func (n *NodeGroupBase) Size() int

Size returns the minimum nodegroup size

type NodeGroupBottlerocket

type NodeGroupBottlerocket struct {
	// +optional
	EnableAdminContainer *bool `json:"enableAdminContainer,omitempty"`
	// Settings contains any [bottlerocket
	// settings](https://github.com/bottlerocket-os/bottlerocket/#description-of-settings)
	// +optional
	Settings *InlineDocument `json:"settings,omitempty"`
}

NodeGroupBottlerocket holds the configuration for Bottlerocket based NodeGroups.

func (*NodeGroupBottlerocket) DeepCopy

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

func (*NodeGroupBottlerocket) DeepCopyInto

func (in *NodeGroupBottlerocket) DeepCopyInto(out *NodeGroupBottlerocket)

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

type NodeGroupIAM

type NodeGroupIAM struct {
	// +optional
	AttachPolicyARNs []string `json:"attachPolicyARNs,omitempty"`
	// +optional
	InstanceProfileARN string `json:"instanceProfileARN,omitempty"`
	// +optional
	InstanceRoleARN string `json:"instanceRoleARN,omitempty"`
	// +optional
	InstanceRoleName string `json:"instanceRoleName,omitempty"`
	// +optional
	InstanceRolePermissionsBoundary string `json:"instanceRolePermissionsBoundary,omitempty"`
	// +optional
	WithAddonPolicies NodeGroupIAMAddonPolicies `json:"withAddonPolicies,omitempty"`
}

NodeGroupIAM holds all IAM attributes of a NodeGroup

func (*NodeGroupIAM) DeepCopy

func (in *NodeGroupIAM) DeepCopy() *NodeGroupIAM

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

func (*NodeGroupIAM) DeepCopyInto

func (in *NodeGroupIAM) DeepCopyInto(out *NodeGroupIAM)

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

type NodeGroupIAMAddonPolicies

type NodeGroupIAMAddonPolicies struct {
	// +optional
	// ImageBuilder allows for full ECR (Elastic Container Registry) access. This is useful for building, for
	// example, a CI server that needs to push images to ECR
	ImageBuilder *bool `json:"imageBuilder"`
	// +optional
	// AutoScaler enables IAM policy for cluster-autoscaler
	AutoScaler *bool `json:"autoScaler"`
	// +optional
	// ExternalDNS adds the external-dns project policies for Amazon Route 53
	ExternalDNS *bool `json:"externalDNS"`
	// +optional
	// CertManager enables the ability to add records to Route 53 in order to solve the DNS01 challenge. More information can be found
	// [here](https://cert-manager.io/docs/configuration/acme/dns01/route53/#set-up-a-iam-role)
	CertManager *bool `json:"certManager"`
	// +optional
	// AppMesh enables full access to AppMesh
	AppMesh *bool `json:"appMesh"`
	// +optional
	// AppMeshPreview enables full access to AppMesh Preview
	AppMeshPreview *bool `json:"appMeshPreview"`
	// +optional
	// EBS enables the new EBS CSI (Elastic Block Store Container Storage Interface) driver
	EBS *bool `json:"ebs"`
	// +optional
	FSX *bool `json:"fsx"`
	// +optional
	EFS *bool `json:"efs"`
	// +optional
	AWSLoadBalancerController *bool `json:"albIngress"`
	// +optional
	XRay *bool `json:"xRay"`
	// +optional
	CloudWatch *bool `json:"cloudWatch"`
}

NodeGroupIAMAddonPolicies holds all IAM addon policies

func (*NodeGroupIAMAddonPolicies) DeepCopy

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

func (*NodeGroupIAMAddonPolicies) DeepCopyInto

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

type NodeGroupInstancesDistribution

type NodeGroupInstancesDistribution struct {
	// +required
	InstanceTypes []string `json:"instanceTypes,omitempty"`
	// Defaults to `on demand price`
	// +optional
	MaxPrice *float64 `json:"maxPrice,omitempty"`
	// Defaults to `0`
	// +optional
	OnDemandBaseCapacity *int `json:"onDemandBaseCapacity,omitempty"`
	// Range [0-100]
	// Defaults to `100`
	// +optional
	OnDemandPercentageAboveBaseCapacity *int `json:"onDemandPercentageAboveBaseCapacity,omitempty"`
	// Range [1-20]
	// Defaults to `2`
	// +optional
	SpotInstancePools *int `json:"spotInstancePools,omitempty"`
	// +optional
	SpotAllocationStrategy *string `json:"spotAllocationStrategy,omitempty"`
	// Enable [capacity
	// rebalancing](https://docs.aws.amazon.com/autoscaling/ec2/userguide/capacity-rebalance.html)
	// for spot instances
	// +optional
	CapacityRebalance bool `json:"capacityRebalance"`
}

NodeGroupInstancesDistribution holds the configuration for [spot instances](/usage/spot-instances/)

func (*NodeGroupInstancesDistribution) DeepCopy

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

func (*NodeGroupInstancesDistribution) DeepCopyInto

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

type NodeGroupSGs

type NodeGroupSGs struct {
	// AttachIDs attaches additional security groups to the nodegroup
	// +optional
	AttachIDs []string `json:"attachIDs,omitempty"`
	// WithShared attach the security group
	// shared among all nodegroups in the cluster
	// Defaults to `true`
	// +optional
	WithShared *bool `json:"withShared"`
	// WithLocal attach a security group
	// local to this nodegroup
	// Not supported for managed nodegroups
	// Defaults to `true`
	// +optional
	WithLocal *bool `json:"withLocal"`
}

NodeGroupSGs controls security groups for this nodegroup

func (*NodeGroupSGs) DeepCopy

func (in *NodeGroupSGs) DeepCopy() *NodeGroupSGs

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

func (*NodeGroupSGs) DeepCopyInto

func (in *NodeGroupSGs) DeepCopyInto(out *NodeGroupSGs)

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

type NodeGroupSSH

type NodeGroupSSH struct {
	// +optional If Allow is true the SSH configuration provided is used, otherwise it is ignored. Only one of
	// PublicKeyPath, PublicKey and PublicKeyName can be configured
	Allow *bool `json:"allow"`
	// +optional The path to the SSH public key to be added to the nodes SSH keychain. If Allow is true this value
	// defaults to "~/.ssh/id_rsa.pub", otherwise the value is ignored.
	PublicKeyPath *string `json:"publicKeyPath,omitempty"`
	// +optional Public key to be added to the nodes SSH keychain. If Allow is false this value is ignored.
	PublicKey *string `json:"publicKey,omitempty"`
	// +optional Public key name in EC2 to be added to the nodes SSH keychain. If Allow is false this value
	// is ignored.
	PublicKeyName *string `json:"publicKeyName,omitempty"`
	// +optional
	SourceSecurityGroupIDs []string `json:"sourceSecurityGroupIds,omitempty"`
	// Enables the ability to [SSH onto nodes using SSM](/introduction#ssh-access)
	// +optional
	EnableSSM *bool `json:"enableSsm,omitempty"`
}

NodeGroupSSH holds all the ssh access configuration to a NodeGroup

func (*NodeGroupSSH) DeepCopy

func (in *NodeGroupSSH) DeepCopy() *NodeGroupSSH

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

func (*NodeGroupSSH) DeepCopyInto

func (in *NodeGroupSSH) DeepCopyInto(out *NodeGroupSSH)

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

type NodeGroupType

type NodeGroupType string

NodeGroupType defines the nodegroup type

type NodePool

type NodePool interface {
	// BaseNodeGroup returns the base nodegroup
	BaseNodeGroup() *NodeGroupBase
}

NodePool represents a group of nodes that share the same configuration Ideally the NodeGroup type should be renamed to UnmanagedNodeGroup or SelfManagedNodeGroup and this interface should be called NodeGroup

type OIDCIdentityProvider added in v0.39.0

type OIDCIdentityProvider struct {
	// +required
	Name string `json:"name,omitempty"`
	// +required
	IssuerURL string `json:"issuerURL,omitempty"`
	// +required
	ClientID       string            `json:"clientID,omitempty"`
	UsernameClaim  string            `json:"usernameClaim,omitempty"`
	UsernamePrefix string            `json:"usernamePrefix,omitempty"`
	GroupsClaim    string            `json:"groupsClaim,omitempty"`
	GroupsPrefix   string            `json:"groupsPrefix,omitempty"`
	RequiredClaims map[string]string `json:"requiredClaims,omitempty"`
	Tags           map[string]string `json:"tags,omitempty"`
}

OIDCIdentityProvider holds the spec of an OIDC provider to use for EKS authzn

func (*OIDCIdentityProvider) DeepCopy added in v0.39.0

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

func (*OIDCIdentityProvider) DeepCopyIdentityProviderInterface added in v0.39.0

func (p *OIDCIdentityProvider) DeepCopyIdentityProviderInterface() IdentityProviderInterface

func (*OIDCIdentityProvider) DeepCopyInto added in v0.39.0

func (in *OIDCIdentityProvider) DeepCopyInto(out *OIDCIdentityProvider)

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

func (*OIDCIdentityProvider) Type added in v0.39.0

type Operator

type Operator struct {

	// Commit and push Flux manifests to the Git Repo on install
	// +optional
	CommitOperatorManifests *bool `json:"commitOperatorManifests,omitempty"`

	// Git label to keep track of Flux's sync progress; this is equivalent to overriding --git-sync-tag and --git-notes-ref in Flux
	// +optional
	Label string `json:"label,omitempty"`

	// Cluster namespace where to install Flux and the Helm Operator e.g. flux
	// +optional
	Namespace string `json:"namespace,omitempty"`

	// Install the Helm Operator
	// +optional
	WithHelm *bool `json:"withHelm,omitempty"`

	// Instruct Flux to read-only mode and create the deploy key as read-only
	// +optional
	ReadOnly bool `json:"readOnly,omitempty"`

	// Additional command line arguments for the Flux daemon
	// +optional
	AdditionalFluxArgs []string `json:"additionalFluxArgs,omitempty"`

	// Additional command line arguments for the Helm Operator
	// +optional
	AdditionalHelmOperatorArgs []string `json:"additionalHelmOperatorArgs,omitempty"`
}

Operator groups all configuration options related to the operator used to keep the cluster and the Git repository in sync.

func (*Operator) DeepCopy

func (in *Operator) DeepCopy() *Operator

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

func (*Operator) DeepCopyInto

func (in *Operator) DeepCopyInto(out *Operator)

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

type Placement

type Placement struct {
	GroupName string `json:"groupName,omitempty"`
}

Placement specifies placement group information

func (*Placement) DeepCopy

func (in *Placement) DeepCopy() *Placement

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

func (*Placement) DeepCopyInto

func (in *Placement) DeepCopyInto(out *Placement)

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

type PrivateCluster

type PrivateCluster struct {

	// Enabled enables creation of a fully-private cluster
	Enabled bool `json:"enabled"`

	// AdditionalEndpointServices specifies additional endpoint services that
	// must be enabled for private access.
	// Valid entries are `AdditionalEndpointServices` constants
	AdditionalEndpointServices []string `json:"additionalEndpointServices,omitempty"`
}

PrivateCluster defines the configuration for a fully-private cluster

func (*PrivateCluster) DeepCopy

func (in *PrivateCluster) DeepCopy() *PrivateCluster

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

func (*PrivateCluster) DeepCopyInto

func (in *PrivateCluster) DeepCopyInto(out *PrivateCluster)

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

type Profile

type Profile struct {

	// Name or URL of the Quick Start profile
	// For example: `app-dev`
	Source string `json:"source,omitempty"`

	// Revision of the Quick Start profile. Can be a branch, tag or commit hash
	// +optional
	Revision string `json:"revision,omitempty"`

	// Output directory for the processed profile templates (generate profile command)
	// Defaults to `./<quickstart-repo-name>`
	// +optional
	OutputPath string `json:"outputPath,omitempty"`
}

Profile groups all details on a quickstart profile to enable on the cluster and add to the Git repository.

func (*Profile) DeepCopy

func (in *Profile) DeepCopy() *Profile

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

func (*Profile) DeepCopyInto

func (in *Profile) DeepCopyInto(out *Profile)

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

type ProviderConfig

type ProviderConfig struct {
	CloudFormationRoleARN         string
	CloudFormationDisableRollback bool

	Region      string
	Profile     string
	WaitTimeout time.Duration
}

ProviderConfig holds global parameters for all interactions with AWS APIs

func (*ProviderConfig) DeepCopy

func (in *ProviderConfig) DeepCopy() *ProviderConfig

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

func (*ProviderConfig) DeepCopyInto

func (in *ProviderConfig) DeepCopyInto(out *ProviderConfig)

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

type Repo

type Repo struct {
	// The Git SSH URL to the repository which will contain the cluster configuration
	// For example: `git@github.com:org/repo`
	URL string `json:"url,omitempty"`

	// The git branch under which cluster configuration files will be committed & pushed, e.g. master
	// +optional
	Branch string `json:"branch,omitempty"`

	// Relative paths within the Git repository which the GitOps operator will monitor to find Kubernetes manifests to apply, e.g. ["kube-system", "base"]
	//+optional
	Paths []string `json:"paths,omitempty"`

	// The directory under which Flux configuration files will be written, e.g. flux/
	// +optional
	FluxPath string `json:"fluxPath,omitempty"`

	// Git user which will be used to commit changes
	// +optional
	User string `json:"user,omitempty"`

	// Git email which will be used to commit changes
	Email string `json:"email,omitempty"`

	// Path to the private SSH key to use to authenticate
	// +optional
	PrivateSSHKeyPath string `json:"privateSSHKeyPath,omitempty"`
}

Repo groups all configuration options related to a Git repository used for GitOps.

func (*Repo) DeepCopy

func (in *Repo) DeepCopy() *Repo

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

func (*Repo) DeepCopyInto

func (in *Repo) DeepCopyInto(out *Repo)

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

type ScalingConfig

type ScalingConfig struct {
	// +optional
	DesiredCapacity *int `json:"desiredCapacity,omitempty"`
	// +optional
	MinSize *int `json:"minSize,omitempty"`
	// +optional
	MaxSize *int `json:"maxSize,omitempty"`
}

ScalingConfig defines the scaling config

func (*ScalingConfig) DeepCopy

func (in *ScalingConfig) DeepCopy() *ScalingConfig

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

func (*ScalingConfig) DeepCopyInto

func (in *ScalingConfig) DeepCopyInto(out *ScalingConfig)

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

type SecretsEncryption

type SecretsEncryption struct {
	// +required
	KeyARN string `json:"keyARN,omitempty"`
}

SecretsEncryption defines the configuration for KMS encryption provider

func (*SecretsEncryption) DeepCopy

func (in *SecretsEncryption) DeepCopy() *SecretsEncryption

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

func (*SecretsEncryption) DeepCopyInto

func (in *SecretsEncryption) DeepCopyInto(out *SecretsEncryption)

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

type SubnetTopology

type SubnetTopology string

SubnetTopology can be SubnetTopologyPrivate or SubnetTopologyPublic

func SubnetTopologies

func SubnetTopologies() []SubnetTopology

SubnetTopologies returns a list of topologies

type UnsupportedFeatureError added in v0.39.0

type UnsupportedFeatureError struct {
	Message string
	Err     error
}

UnsupportedFeatureError is an error that represents an unsupported feature +k8s:deepcopy-gen=false

func (*UnsupportedFeatureError) Error added in v0.39.0

func (u *UnsupportedFeatureError) Error() string

type WellKnownPolicies added in v0.39.0

type WellKnownPolicies struct {
	// ImageBuilder allows for full ECR (Elastic Container Registry) access.
	ImageBuilder bool `json:"imageBuilder,inline"`
	// AutoScaler adds policies for cluster-autoscaler. See [autoscaler AWS
	// docs](https://docs.aws.amazon.com/eks/latest/userguide/cluster-autoscaler.html).
	AutoScaler bool `json:"autoScaler,inline"`
	// AWSLoadBalancerController adds policies for using the
	// aws-load-balancer-controller. See [Load Balancer
	// docs](https://docs.aws.amazon.com/eks/latest/userguide/aws-load-balancer-controller.html).
	AWSLoadBalancerController bool `json:"awsLoadBalancerController,inline"`
	// ExternalDNS adds external-dns policies for Amazon Route 53.
	// See [external-dns
	// docs](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/aws.md).
	ExternalDNS bool `json:"externalDNS,inline"`
	// CertManager adds cert-manager policies. See [cert-manager
	// docs](https://cert-manager.io/docs/configuration/acme/dns01/route53).
	CertManager bool `json:"certManager,inline"`
}

WellKnownPolicies for attaching common IAM policies

func (*WellKnownPolicies) DeepCopy added in v0.39.0

func (in *WellKnownPolicies) DeepCopy() *WellKnownPolicies

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

func (*WellKnownPolicies) DeepCopyInto added in v0.39.0

func (in *WellKnownPolicies) DeepCopyInto(out *WellKnownPolicies)

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

func (*WellKnownPolicies) HasPolicy added in v0.39.0

func (p *WellKnownPolicies) HasPolicy() bool

Jump to

Keyboard shortcuts

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