v1alpha5

package
v0.0.0-...-4c17ca5 Latest Latest
Warning

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

Go to latest
Published: Nov 2, 2024 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Overview

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

Index

Constants

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

Conventional Kubernetes API contants

View Source
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"
)
View Source
const (
	// MinRequiredSubnets is the minimum required number of subnets
	MinRequiredSubnets = 2
	// RecommendedSubnets is the recommended number of subnets
	RecommendedSubnets = 3
	// SubnetTopologyPrivate represents privately-routed subnets
	SubnetTopologyPrivate SubnetTopology = "Private"
	// SubnetTopologyPublic represents publicly-routed subnets
	SubnetTopologyPublic SubnetTopology = "Public"
)
View Source
const (
	AnnotationEKSRoleARN = "eks.amazonaws.com/role-arn"
)

Commonly-used constants

Variables

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

Conventional Kubernetes API variables

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

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

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

	// DefaultNodeVolumeSize defines the default root volume size
	DefaultNodeVolumeSize = 0
)

Functions

func ClusterConfigTypeMeta

func ClusterConfigTypeMeta() metav1.TypeMeta

ClusterConfigTypeMeta constructs TypeMeta for ClusterConfig

func ClusterIAMServiceAccountNameStringToObjectMeta

func ClusterIAMServiceAccountNameStringToObjectMeta(name string) (*metav1.ObjectMeta, error)

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

func DefaultCIDR

func DefaultCIDR() ipnet.IPNet

DefaultCIDR returns default global CIDR for VPC

func DeprecatedVersions

func DeprecatedVersions() []string

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

func Disabled

func Disabled() *bool

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

func EKSResourceAccountID

func EKSResourceAccountID(region string) string

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

func Enabled

func Enabled() *bool

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

func HasMixedInstances

func HasMixedInstances(ng *NodeGroup) bool

HasMixedInstances checks if a nodegroup has mixed instances option declared

func IsDisabled

func IsDisabled(v *bool) bool

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

func IsEnabled

func IsEnabled(v *bool) bool

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

func IsSetAndNonEmptyString

func IsSetAndNonEmptyString(s *string) bool

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

func Kind

func Kind(kind string) schema.GroupKind

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

func Register

func Register() error

Register our API with the scheme

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

func SetNodeGroupDefaults(_ int, ng *NodeGroup)

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

func ValidateNodeGroup(i int, ng *NodeGroup) error

ValidateNodeGroup checks compatible fields of a given nodegroup

func ValidateNodeGroupLabels

func ValidateNodeGroupLabels(ng *NodeGroup) error

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

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

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

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

func (*ClusterIAMServiceAccountStatus) DeepCopyInto

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

type ClusterMeta

type ClusterMeta struct {
	Name   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"`
	// for pre-defined shared node SG
	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

func (in *Network) DeepCopy() *Network

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

func (*Network) DeepCopyInto

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

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

type NodeGroup

type NodeGroup struct {
	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

func (in *NodeGroup) DeepCopy() *NodeGroup

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

func (*NodeGroup) DeepCopyInto

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

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

func (*NodeGroup) ListOptions

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

ListOptions returns metav1.ListOptions with label selector for the nodegroup

func (*NodeGroup) NameString

func (n *NodeGroup) NameString() string

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

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

func (*NodeGroupIAMAddonPolicies) DeepCopyInto

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

type NodeGroupInstancesDistribution

type NodeGroupInstancesDistribution struct {
	//+required
	InstanceTypes []string `json:"instanceTypes,omitEmpty"`
	// +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

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

func (*NodeGroupInstancesDistribution) DeepCopyInto

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

type NodeGroupSGs

type NodeGroupSGs struct {
	// +optional
	AttachIDs []string `json:"attachIDs,omitempty"`
	// +optional
	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

Jump to

Keyboard shortcuts

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