Documentation ¶
Overview ¶
Package v1alpha5 is the v1alpha5 version of the API. +groupName=eksctl.io
Index ¶
- Constants
- Variables
- func Asset(name string) ([]byte, error)
- func AssetDigest(name string) ([sha256.Size]byte, error)
- func AssetDir(name string) ([]string, error)
- func AssetInfo(name string) (os.FileInfo, error)
- func AssetNames() []string
- func AssetString(name string) (string, error)
- func ClusterConfigTypeMeta() metav1.TypeMeta
- func ClusterHasInstanceType(cfg *ClusterConfig, hasType func(string) bool) bool
- func DefaultCIDR() ipnet.IPNet
- func DeprecatedVersions() []string
- func Digests() (map[string][sha256.Size]byte, error)
- func Disabled() *bool
- func EKSResourceAccountID(region string) string
- func Enabled() *bool
- func EndpointsEqual(a, b ClusterEndpoints) bool
- func HasInstanceType(nodeGroup *NodeGroup, hasType func(string) bool) bool
- func HasInstanceTypeManaged(nodeGroup *ManagedNodeGroup, hasType func(string) bool) bool
- func HasMixedInstances(ng *NodeGroup) bool
- func IsAMI(amiFlag string) bool
- func IsDeprecatedVersion(version string) bool
- func IsDisabled(v *bool) bool
- func IsEnabled(v *bool) bool
- func IsSetAndNonEmptyString(s *string) bool
- func IsSupportedVersion(version string) bool
- func IsWindowsImage(imageFamily string) bool
- func Kind(kind string) schema.GroupKind
- func MustAsset(name string) []byte
- func MustAssetString(name string) string
- func Partition(region string) string
- func PrivateOnly(ces *ClusterEndpoints) bool
- func Register() error
- func RequiredEndpointServices() []string
- func Resource(resource string) schema.GroupResource
- func RestoreAsset(dir, name string) error
- func RestoreAssets(dir, name string) error
- func SetClusterConfigDefaults(cfg *ClusterConfig)
- func SetClusterEndpointAccessDefaults(vpc *ClusterVPC)
- func SetDefaultGitOpsSettings(c *ClusterConfig)
- func SetDefaultGitSettings(c *ClusterConfig)
- func SetManagedNodeGroupDefaults(ng *ManagedNodeGroup, meta *ClusterMeta)
- func SetNodeGroupDefaults(ng *NodeGroup, meta *ClusterMeta)
- func SupportedCloudWatchClusterLogTypes() []string
- func SupportedNodeVolumeTypes() []string
- func SupportedRegions() []string
- func SupportedVersions() []string
- func ValidateAdditionalEndpointServices(services []string) error
- func ValidateClusterConfig(cfg *ClusterConfig) error
- func ValidateManagedNodeGroup(ng *ManagedNodeGroup, index int) error
- func ValidateNodeGroup(i int, ng *NodeGroup) error
- type AZSubnetMapping
- func (in AZSubnetMapping) DeepCopy() AZSubnetMapping
- func (in AZSubnetMapping) DeepCopyInto(out *AZSubnetMapping)
- func (m *AZSubnetMapping) Set(name string, spec AZSubnetSpec)
- func (m *AZSubnetMapping) SetAZ(az string, spec Network)
- func (m *AZSubnetMapping) UnmarshalJSON(b []byte) error
- func (m *AZSubnetMapping) WithAZs() []string
- func (m *AZSubnetMapping) WithCIDRs() []string
- func (m *AZSubnetMapping) WithIDs() []string
- type AZSubnetSpec
- type Addon
- type ClusterCloudWatch
- type ClusterCloudWatchLogging
- type ClusterConfig
- func (c *ClusterConfig) AllNodeGroups() []*NodeGroupBase
- func (c *ClusterConfig) AppendAvailabilityZone(newAZ string)
- func (c *ClusterConfig) AppendClusterCloudWatchLogTypes(types ...string)
- func (c *ClusterConfig) CanUseForPrivateNodeGroups() error
- func (c *ClusterConfig) CustomEndpointsMsg() string
- func (in *ClusterConfig) DeepCopy() *ClusterConfig
- func (in *ClusterConfig) DeepCopyInto(out *ClusterConfig)
- func (in *ClusterConfig) DeepCopyObject() runtime.Object
- func (c *ClusterConfig) DefaultEndpointsMsg() string
- func (c *ClusterConfig) FindNodegroup(name string) *NodeGroup
- func (c *ClusterConfig) GetAllNodeGroupNames() []string
- func (c *ClusterConfig) HasAnySubnets() bool
- func (c *ClusterConfig) HasBootstrapProfile() bool
- func (c *ClusterConfig) HasClusterCloudWatchLogging() bool
- func (c *ClusterConfig) HasClusterEndpointAccess() bool
- func (c *ClusterConfig) HasGitOpsFluxConfigured() bool
- func (c *ClusterConfig) HasGitopsRepoConfigured() bool
- func (c *ClusterConfig) HasPrivateEndpointAccess() bool
- func (c *ClusterConfig) HasSufficientPrivateSubnets() bool
- func (c *ClusterConfig) HasSufficientSubnets() error
- func (c *ClusterConfig) ImportSubnet(topology SubnetTopology, az, subnetID, cidr string) error
- func (c ClusterConfig) IsFargateEnabled() bool
- func (c ClusterConfig) LogString() string
- func (c *ClusterConfig) NewNodeGroup() *NodeGroup
- func (c *ClusterConfig) SetDefaultFargateProfile()
- func (c *ClusterConfig) SubnetInfo() string
- func (c *ClusterConfig) UpdateEndpointsMsg() string
- func (c *ClusterConfig) ValidateClusterEndpointConfig() error
- func (c *ClusterConfig) ValidatePrivateCluster() error
- type ClusterConfigList
- type ClusterEndpoints
- type ClusterIAM
- type ClusterIAMMeta
- type ClusterIAMServiceAccount
- type ClusterIAMServiceAccountStatus
- type ClusterMeta
- type ClusterNAT
- type ClusterProvider
- type ClusterStatus
- type ClusterSubnets
- type ClusterVPC
- type EKSCTLCreated
- type FargateProfile
- type FargateProfileSelector
- type Flux
- type Git
- type GitOps
- type IdentityProvider
- type IdentityProviderInterface
- type IdentityProviderType
- type InlineDocument
- type KubernetesNetworkConfig
- type LaunchTemplate
- type ManagedNodeGroup
- type MetricsCollection
- type Network
- type NodeGroup
- type NodeGroupBase
- type NodeGroupBottlerocket
- type NodeGroupIAM
- type NodeGroupIAMAddonPolicies
- type NodeGroupInstancesDistribution
- type NodeGroupSGs
- type NodeGroupSSH
- type NodeGroupType
- type NodePool
- type OIDCIdentityProvider
- type Operator
- type Placement
- type PrivateCluster
- type Profile
- type ProviderConfig
- type Repo
- type ScalingConfig
- type SecretsEncryption
- type SubnetTopology
- type UnsupportedFeatureError
- type WellKnownPolicies
Constants ¶
const ( APILogging = "api" AuditLogging = "audit" AuthenticatorLogging = "authenticator" ControllerManagerLogging = "controllerManager" SchedulerLogging = "scheduler" )
Values for `CloudWatchLogging`
const ( // Endpoint services that are required and cannot be disabled EndpointServiceEC2 = "ec2" EndpointServiceECRAPI = "ecr.api" EndpointServiceECRDKR = "ecr.dkr" EndpointServiceS3 = "s3" EndpointServiceSTS = "sts" )
const ( EndpointServiceCloudFormation = "cloudformation" EndpointServiceAutoscaling = "autoscaling" EndpointServiceCloudWatch = "logs" )
Values for `AdditionalEndpointServices` Additional endpoint services
const ( CurrentGroupVersion = "v1alpha5" ClusterConfigKind = "ClusterConfig" )
Conventional Kubernetes API contants
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
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
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
const ( PartitionAWS = "aws" PartitionChina = "aws-cn" PartitionUSGov = "aws-us-gov" )
Partitions
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
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" )
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`
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 )
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`
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" )
const (
// AWSDebugLevel defines the LogLevel for AWS produced logs
AWSDebugLevel = 5
)
const (
AnnotationEKSRoleARN = "eks.amazonaws.com/role-arn"
)
Commonly-used constants
const AssetDebug = false
AssetDebug is true if the assets were built with the debug flag enabled.
const (
IAMPolicyAmazonEKSCNIPolicy = "AmazonEKS_CNI_Policy"
)
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.
const (
// Version1_20 represents Kubernetes version 1.20.x
Version1_20 = "1.20"
)
Not yet supported versions
Variables ¶
var ( SchemeGroupVersion = schema.GroupVersion{Group: api.GroupName, Version: CurrentGroupVersion} SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) AddToScheme = SchemeBuilder.AddToScheme )
Conventional Kubernetes API variables
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 )
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") )
var (
AWSNodeMeta = ClusterIAMMeta{
Name: "aws-node",
Namespace: "kube-system",
}
)
Functions ¶
func Asset ¶
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 ¶
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 ¶
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 ¶
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 AssetString ¶
AssetString returns the asset contents as a string (instead of a []byte).
func ClusterConfigTypeMeta ¶
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 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 Disabled ¶
func Disabled() *bool
Disabled return pointer to false value for use in defaulters of *bool fields
func EKSResourceAccountID ¶
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 ¶
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 ¶
HasMixedInstances checks if a nodegroup has mixed instances option declared
func IsDeprecatedVersion ¶
IsDeprecatedVersion returns true if the given Kubernetes version has been deprecated in EKS
func IsDisabled ¶
IsDisabled will only return true if v is not nil and false
func IsSetAndNonEmptyString ¶
IsSetAndNonEmptyString will only return true if s is not nil and not empty
func IsSupportedVersion ¶
IsSupportedVersion returns true if the given version is a Kubernetes supported by eksctl and EKS
func IsWindowsImage ¶
IsWindowsImage reports whether the AMI family is for Windows
func MustAsset ¶
MustAsset is like Asset but panics when Asset would return an error. It simplifies safe initialization of global variables.
func MustAssetString ¶
MustAssetString is like AssetString but panics when Asset would return an error. It simplifies safe initialization of global variables.
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 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 ¶
RestoreAsset restores an asset under the given directory.
func RestoreAssets ¶
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 ¶
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 ¶
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 (*Addon) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Addon.
func (*Addon) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
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 ¶
func (in *ClusterCloudWatchLogging) DeepCopy() *ClusterCloudWatchLogging
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 ¶
func (in *ClusterIAMServiceAccount) DeepCopy() *ClusterIAMServiceAccount
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 ¶
func (in *ClusterIAMServiceAccountStatus) DeepCopy() *ClusterIAMServiceAccountStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterIAMServiceAccountStatus.
func (*ClusterIAMServiceAccountStatus) DeepCopyInto ¶
func (in *ClusterIAMServiceAccountStatus) DeepCopyInto(out *ClusterIAMServiceAccountStatus)
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"` 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 ¶
func (in *FargateProfileSelector) DeepCopy() *FargateProfileSelector
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
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Flux.
func (*Flux) DeepCopyInto ¶ added in v0.39.0
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Git.
func (*Git) DeepCopyInto ¶
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
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitOps.
func (*GitOps) DeepCopyInto ¶ added in v0.39.0
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 ¶
func (in *KubernetesNetworkConfig) DeepCopy() *KubernetesNetworkConfig
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Network.
func (*Network) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeGroup.
func (*NodeGroup) DeepCopyInto ¶
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
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 ¶
func (in *NodeGroupBottlerocket) DeepCopy() *NodeGroupBottlerocket
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 ¶
func (in *NodeGroupIAMAddonPolicies) DeepCopy() *NodeGroupIAMAddonPolicies
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeGroupIAMAddonPolicies.
func (*NodeGroupIAMAddonPolicies) DeepCopyInto ¶
func (in *NodeGroupIAMAddonPolicies) DeepCopyInto(out *NodeGroupIAMAddonPolicies)
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 ¶
func (in *NodeGroupInstancesDistribution) DeepCopy() *NodeGroupInstancesDistribution
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeGroupInstancesDistribution.
func (*NodeGroupInstancesDistribution) DeepCopyInto ¶
func (in *NodeGroupInstancesDistribution) DeepCopyInto(out *NodeGroupInstancesDistribution)
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"` // 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 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
func (in *OIDCIdentityProvider) DeepCopy() *OIDCIdentityProvider
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
func (p *OIDCIdentityProvider) Type() IdentityProviderType
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Operator.
func (*Operator) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Placement.
func (*Placement) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Profile.
func (*Profile) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Repo.
func (*Repo) DeepCopyInto ¶
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
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