Documentation
¶
Overview ¶
Package v1alpha5 is the v1alpha5 version of the API. +groupName=eksctl.io
Index ¶
- Constants
- Variables
- func ClusterConfigTypeMeta() metav1.TypeMeta
- func ClusterIAMServiceAccountNameStringToObjectMeta(name string) (*metav1.ObjectMeta, error)
- func DefaultCIDR() ipnet.IPNet
- func DeprecatedVersions() []string
- func Disabled() *bool
- func EKSResourceAccountID(region string) string
- func Enabled() *bool
- func HasMixedInstances(ng *NodeGroup) bool
- func IsDisabled(v *bool) bool
- func IsEnabled(v *bool) bool
- func IsSetAndNonEmptyString(s *string) bool
- func Kind(kind string) schema.GroupKind
- func Register() error
- func Resource(resource string) schema.GroupResource
- func SetClusterConfigDefaults(cfg *ClusterConfig)
- func SetNodeGroupDefaults(_ int, ng *NodeGroup)
- func SupportedCloudWatchClusterLogTypes() []string
- func SupportedNodeVolumeTypes() []string
- func SupportedRegions() []string
- func SupportedVersions() []string
- func ValidateClusterConfig(cfg *ClusterConfig) error
- func ValidateNodeGroup(i int, ng *NodeGroup) error
- func ValidateNodeGroupLabels(ng *NodeGroup) error
- type ClusterCloudWatch
- type ClusterCloudWatchLogging
- type ClusterConfig
- func (c *ClusterConfig) AppendAvailabilityZone(newAZ string)
- func (c *ClusterConfig) AppendClusterCloudWatchLogTypes(types ...string)
- func (in *ClusterConfig) DeepCopy() *ClusterConfig
- func (in *ClusterConfig) DeepCopyInto(out *ClusterConfig)
- func (in *ClusterConfig) DeepCopyObject() runtime.Object
- func (c *ClusterConfig) HasAnySubnets() bool
- func (c *ClusterConfig) HasClusterCloudWatchLogging() bool
- func (c *ClusterConfig) HasSufficientPrivateSubnets() bool
- func (c *ClusterConfig) HasSufficientPublicSubnets() bool
- func (c *ClusterConfig) HasSufficientSubnets() error
- func (c *ClusterConfig) ImportSubnet(topology SubnetTopology, az, subnetID, cidr string) error
- func (c *ClusterConfig) NewNodeGroup() *NodeGroup
- func (c *ClusterConfig) PrivateSubnetIDs() []string
- func (c *ClusterConfig) PublicSubnetIDs() []string
- type ClusterConfigList
- type ClusterIAM
- type ClusterIAMServiceAccount
- type ClusterIAMServiceAccountStatus
- type ClusterMeta
- type ClusterNAT
- type ClusterProvider
- type ClusterStatus
- type ClusterSubnets
- type ClusterVPC
- type InlineDocument
- type Network
- type NodeGroup
- type NodeGroupIAM
- type NodeGroupIAMAddonPolicies
- type NodeGroupInstancesDistribution
- type NodeGroupSGs
- type NodeGroupSSH
- type ProviderConfig
- type SubnetTopology
Constants ¶
const ( CurrentGroupVersion = "v1alpha5" ClusterConfigKind = "ClusterConfig" )
Conventional Kubernetes API contants
const ( // AWSDebugLevel defines the LogLevel for AWS produced logs AWSDebugLevel = 5 // 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" // 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" // 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" // DefaultRegion defines the default region, where to deploy the EKS cluster DefaultRegion = RegionUSWest2 // 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" // Version1_14 represents Kubernetes version 1.14.x Version1_14 = "1.14" // DefaultVersion represents default Kubernetes version supported by EKS DefaultVersion = Version1_13 // LatestVersion represents latest Kubernetes version supported by EKS LatestVersion = Version1_14 // 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 // NodeVolumeTypeGP2 is General Purpose SSD NodeVolumeTypeGP2 = "gp2" // NodeVolumeTypeIO1 is Provisioned IOPS SSD NodeVolumeTypeIO1 = "io1" // NodeVolumeTypeSC1 is Throughput Optimized HDD NodeVolumeTypeSC1 = "sc1" // NodeVolumeTypeST1 is Cold HDD NodeVolumeTypeST1 = "st1" // DefaultNodeImageFamily defines the default image family for the worker nodes DefaultNodeImageFamily = NodeImageFamilyAmazonLinux2 // NodeImageFamilyAmazonLinux2 represents Amazon Linux 2 family NodeImageFamilyAmazonLinux2 = "AmazonLinux2" // NodeImageFamilyUbuntu1804 represents Ubuntu 18.04 family NodeImageFamilyUbuntu1804 = "Ubuntu1804" // NodeImageResolverStatic represents static AMI resolver (see ami package) NodeImageResolverStatic = "static" // NodeImageResolverAuto represents auto AMI resolver (see ami package) NodeImageResolverAuto = "auto" // 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" // 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 iamserviceaccount name IAMServiceAccountNameTag = "alpha.eksctl.io/iamserviceaccount-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" // ClusterHighlyAvailableNAT defines the highly available NAT configuration option ClusterHighlyAvailableNAT = "HighlyAvailable" // ClusterSingleNAT defines the single NAT configuration option ClusterSingleNAT = "Single" // ClusterDisableNAT defines the disabled NAT configuration option ClusterDisableNAT = "Disable" )
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 (
AnnotationEKSRoleARN = "eks.amazonaws.com/role-arn"
)
Commonly-used constants
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 = NodeVolumeTypeGP2 // DefaultNodeVolumeSize defines the default root volume size DefaultNodeVolumeSize = 0 )
Functions ¶
func ClusterConfigTypeMeta ¶
ClusterConfigTypeMeta constructs TypeMeta for ClusterConfig
func ClusterIAMServiceAccountNameStringToObjectMeta ¶
func ClusterIAMServiceAccountNameStringToObjectMeta(name string) (*metav1.ObjectMeta, error)
ClusterIAMServiceAccountNameStringToObjectMeta constructs metav1.ObjectMeta from <ns>/<name> string
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 HasMixedInstances ¶
HasMixedInstances checks if a nodegroup has mixed instances option declared
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 Resource ¶
func Resource(resource string) schema.GroupResource
Resource takes an unqualified resource and returns a Group qualified GroupResource
func SetClusterConfigDefaults ¶
func SetClusterConfigDefaults(cfg *ClusterConfig)
SetClusterConfigDefaults will set defaults for a given cluster
func SetNodeGroupDefaults ¶
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 ValidateClusterConfig ¶
func ValidateClusterConfig(cfg *ClusterConfig) error
ValidateClusterConfig checks compatible fields of a given ClusterConfig
func ValidateNodeGroup ¶
ValidateNodeGroup checks compatible fields of a given nodegroup
func ValidateNodeGroupLabels ¶
ValidateNodeGroupLabels uses proper Kubernetes label validation, it's designed to make sure users don't pass weird labels to the nodes, which would prevent kubelets to startup properly
Types ¶
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 { //+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 `json:",inline"` Metadata *ClusterMeta `json:"metadata"` // +optional IAM *ClusterIAM `json:"iam,omitempty"` // +optional VPC *ClusterVPC `json:"vpc,omitempty"` // +optional NodeGroups []*NodeGroup `json:"nodeGroups,omitempty"` // +optional AvailabilityZones []string `json:"availabilityZones,omitempty"` // +optional CloudWatch *ClusterCloudWatch `json:"cloudWatch,omitempty"` Status *ClusterStatus `json:"status,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) 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) 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) HasAnySubnets ¶
func (c *ClusterConfig) HasAnySubnets() bool
HasAnySubnets checks if any subnets were set
func (*ClusterConfig) HasClusterCloudWatchLogging ¶
func (c *ClusterConfig) HasClusterCloudWatchLogging() bool
HasClusterCloudWatchLogging determines if cluster logging was enabled or not
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) HasSufficientPublicSubnets ¶
func (c *ClusterConfig) HasSufficientPublicSubnets() bool
HasSufficientPublicSubnets validates if there is a sufficient number of public 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) NewNodeGroup ¶
func (c *ClusterConfig) NewNodeGroup() *NodeGroup
NewNodeGroup creates new nodegroup inside cluster config, it returns pointer to the nodegroup for convenience
func (*ClusterConfig) PrivateSubnetIDs ¶
func (c *ClusterConfig) PrivateSubnetIDs() []string
PrivateSubnetIDs returns list of subnets
func (*ClusterConfig) PublicSubnetIDs ¶
func (c *ClusterConfig) PublicSubnetIDs() []string
PublicSubnetIDs returns list of subnets
type ClusterConfigList ¶
type ClusterConfigList struct { metav1.TypeMeta `json:",inline"` 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 ClusterIAM ¶
type ClusterIAM struct { // +optional ServiceRoleARN *string `json:"serviceRoleARN,omitempty"` // +optional WithOIDC *bool `json:"withOIDC,omitempty"` // +optional ServiceAccounts []*ClusterIAMServiceAccount `json:"serviceAccounts,omitempty"` }
ClusterIAM holds all IAM attributes of 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 ClusterIAMServiceAccount ¶
type ClusterIAMServiceAccount struct { metav1.ObjectMeta `json:"metadata,omitempty"` // +optional AttachPolicyARNs []string `json:"attachPolicyARNs,omitempty"` // +optional AttachPolicy InlineDocument `json:"attachPolicy,omitempty"` // +optional Status *ClusterIAMServiceAccountStatus `json:"status,omitempty"` }
ClusterIAMServiceAccount holds an iamserviceaccount metadata and configuration
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 iamserviceaccount
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 string `json:"name"` Region string `json:"region"` // +optional Version string `json:"version,omitempty"` // +optional Tags map[string]string `json:"tags,omitempty"` }
ClusterMeta is what identifies a cluster
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 {
Gateway *string `json:"gateway,omitempty"`
}
ClusterNAT holds NAT gateway configuration options
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 EKS() eksiface.EKSAPI EC2() ec2iface.EC2API ELB() elbiface.ELBAPI ELBV2() elbv2iface.ELBV2API STS() stsiface.STSAPI IAM() iamiface.IAMAPI CloudTrail() cloudtrailiface.CloudTrailAPI Region() string Profile() string WaitTimeout() time.Duration }
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"` }
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 map[string]Network `json:"private,omitempty"` Public map[string]Network `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 { // +optional Network `json:",inline"` // global CIDR and VPC ID // +optional SecurityGroup string `json:"securityGroup,omitempty"` // cluster SG // subnets are either public or private for use with separate nodegroups // these are keyed by AZ for convenience // +optional Subnets *ClusterSubnets `json:"subnets,omitempty"` // for additional CIDR associations, e.g. to use with separate CIDR for // private subnets or any ad-hoc subnets // +optional ExtraCIDRs []*ipnet.IPNet `json:"extraCIDRs,omitempty"` SharedNodeSecurityGroup string `json:"sharedNodeSecurityGroup,omitempty"` // +optional AutoAllocateIPv6 *bool `json:"autoAllocateIPv6,omitempty"` // +optional NAT *ClusterNAT `json:"nat,omitempty"` }
ClusterVPC holds global subnet and all child public/private subnet
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 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 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 { Name string `json:"name"` // +optional AMI string `json:"ami,omitempty"` // +optional AMIFamily string `json:"amiFamily,omitempty"` // +optional InstanceType string `json:"instanceType,omitempty"` //+optional InstancesDistribution *NodeGroupInstancesDistribution `json:"instancesDistribution,omitempty"` // +optional AvailabilityZones []string `json:"availabilityZones,omitempty"` // +optional Tags map[string]string `json:"tags,omitempty"` // +optional PrivateNetworking bool `json:"privateNetworking"` // +optional SecurityGroups *NodeGroupSGs `json:"securityGroups,omitempty"` // +optional DesiredCapacity *int `json:"desiredCapacity,omitempty"` // +optional MinSize *int `json:"minSize,omitempty"` // +optional MaxSize *int `json:"maxSize,omitempty"` // +optional EBSOptimized *bool `json:"ebsOptimized,omitempty"` // +optional VolumeSize *int `json:"volumeSize"` // +optional VolumeType *string `json:"volumeType"` // +optional VolumeName *string `json:"volumeName,omitempty"` // +optional VolumeEncrypted *bool `json:"volumeEncrypted,omitempty"` // +optional VolumeKmsKeyID *string `json:"volumeKmsKeyID,omitempty"` // +optional VolumeIOPS *int `json:"volumeIOPS"` // +optional MaxPodsPerNode int `json:"maxPodsPerNode,omitempty"` // +optional Labels map[string]string `json:"labels,omitempty"` // +optional Taints map[string]string `json:"taints,omitempty"` // +optional TargetGroupARNs []string `json:"targetGroupARNs,omitempty"` SSH *NodeGroupSSH `json:"ssh"` // +optional IAM *NodeGroupIAM `json:"iam"` // +optional PreBootstrapCommands []string `json:"preBootstrapCommands,omitempty"` // +optional OverrideBootstrapCommand *string `json:"overrideBootstrapCommand,omitempty"` // +optional ClusterDNS string `json:"clusterDNS,omitempty"` // +optional KubeletExtraConfig *InlineDocument `json:"kubeletExtraConfig,omitempty"` }
NodeGroup holds all configuration attributes that are specific to a nodegroup
func NewNodeGroup ¶
func NewNodeGroup() *NodeGroup
NewNodeGroup creates new nodegroup, and returns pointer to it
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) ListOptions ¶
func (n *NodeGroup) ListOptions() metav1.ListOptions
ListOptions returns metav1.ListOptions with label selector for the nodegroup
func (*NodeGroup) NameString ¶
NameString returns common name string
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 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 *bool `json:"imageBuilder"` // +optional AutoScaler *bool `json:"autoScaler"` // +optional ExternalDNS *bool `json:"externalDNS"` // +optional CertManager *bool `json:"certManager"` // +optional AppMesh *bool `json:"appMesh"` // +optional EBS *bool `json:"ebs"` // +optional FSX *bool `json:"fsx"` // +optional EFS *bool `json:"efs"` // +optional ALBIngress *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"` // +optional MaxPrice *float64 `json:"maxPrice,omitempty"` //+optional OnDemandBaseCapacity *int `json:"onDemandBaseCapacity,omitEmpty"` //+optional OnDemandPercentageAboveBaseCapacity *int `json:"onDemandPercentageAboveBaseCapacity,omitEmpty"` //+optional SpotInstancePools *int `json:"spotInstancePools,omitEmpty"` }
NodeGroupInstancesDistribution holds the configuration for 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 { // +optional AttachIDs []string `json:"attachIDs,omitempty"` WithShared *bool `json:"withShared"` // +optional WithLocal *bool `json:"withLocal"` }
NodeGroupSGs holds all SG attributes of a 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 Allow *bool `json:"allow"` // +optional PublicKeyPath *string `json:"publicKeyPath,omitempty"` // +optional PublicKey *string `json:"publicKey,omitempty"` // +optional PublicKeyName *string `json:"publicKeyName,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 ProviderConfig ¶
type ProviderConfig struct { CloudFormationRoleARN string 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 SubnetTopology ¶
type SubnetTopology string
SubnetTopology can be SubnetTopologyPrivate or SubnetTopologyPublic
func SubnetTopologies ¶
func SubnetTopologies() []SubnetTopology
SubnetTopologies returns a list of topologies