Documentation
¶
Index ¶
- Variables
- type AL2
- func (a AL2) DefaultBlockDeviceMappings() []*v1alpha1.BlockDeviceMapping
- func (a AL2) EphemeralBlockDevice() *string
- func (a AL2) SSMAlias(version string, instanceType *cloudprovider.InstanceType) string
- func (a AL2) UserData(kubeletConfig *v1alpha5.KubeletConfiguration, taints []v1.Taint, ...) bootstrap.Bootstrapper
- type AMI
- type AMIFamily
- type Bottlerocket
- func (b Bottlerocket) DefaultBlockDeviceMappings() []*v1alpha1.BlockDeviceMapping
- func (b Bottlerocket) EphemeralBlockDevice() *string
- func (b Bottlerocket) FeatureFlags() FeatureFlags
- func (b Bottlerocket) SSMAlias(version string, instanceType *cloudprovider.InstanceType) string
- func (b Bottlerocket) UserData(kubeletConfig *v1alpha5.KubeletConfiguration, taints []v1.Taint, ...) bootstrap.Bootstrapper
- type Custom
- func (c Custom) DefaultBlockDeviceMappings() []*v1alpha1.BlockDeviceMapping
- func (c Custom) EphemeralBlockDevice() *string
- func (c Custom) SSMAlias(_ string, _ *cloudprovider.InstanceType) string
- func (c Custom) UserData(_ *v1alpha5.KubeletConfiguration, _ []v1.Taint, _ map[string]string, _ *string, ...) bootstrap.Bootstrapper
- type DefaultFamily
- type FeatureFlags
- type LaunchTemplate
- type Options
- type Provider
- type Resolver
- type Ubuntu
- func (u Ubuntu) DefaultBlockDeviceMappings() []*v1alpha1.BlockDeviceMapping
- func (u Ubuntu) EphemeralBlockDevice() *string
- func (u Ubuntu) SSMAlias(version string, instanceType *cloudprovider.InstanceType) string
- func (u Ubuntu) UserData(kubeletConfig *v1alpha5.KubeletConfiguration, taints []v1.Taint, ...) bootstrap.Bootstrapper
Constants ¶
This section is empty.
Variables ¶
var DefaultEBS = v1alpha1.BlockDevice{ Encrypted: aws.Bool(true), VolumeType: aws.String(ec2.VolumeTypeGp3), VolumeSize: lo.ToPtr(resource.MustParse("20Gi")), }
Functions ¶
This section is empty.
Types ¶
type AL2 ¶
type AL2 struct { DefaultFamily *Options }
func (AL2) DefaultBlockDeviceMappings ¶
func (a AL2) DefaultBlockDeviceMappings() []*v1alpha1.BlockDeviceMapping
DefaultBlockDeviceMappings returns the default block device mappings for the AMI Family
func (AL2) EphemeralBlockDevice ¶
func (AL2) SSMAlias ¶
func (a AL2) SSMAlias(version string, instanceType *cloudprovider.InstanceType) string
SSMAlias returns the AMI Alias to query SSM
func (AL2) UserData ¶
func (a AL2) UserData(kubeletConfig *v1alpha5.KubeletConfiguration, taints []v1.Taint, labels map[string]string, caBundle *string, instanceTypes []*cloudprovider.InstanceType, customUserData *string) bootstrap.Bootstrapper
UserData returns the exact same string for equivalent input, even if elements of those inputs are in differing orders, guaranteeing it won't cause spurious hash differences. AL2 userdata also works on Ubuntu
type AMIFamily ¶
type AMIFamily interface { SSMAlias(version string, instanceType *cloudprovider.InstanceType) string UserData(kubeletConfig *v1alpha5.KubeletConfiguration, taints []core.Taint, labels map[string]string, caBundle *string, instanceTypes []*cloudprovider.InstanceType, customUserData *string) bootstrap.Bootstrapper DefaultBlockDeviceMappings() []*v1alpha1.BlockDeviceMapping DefaultMetadataOptions() *v1alpha1.MetadataOptions EphemeralBlockDevice() *string FeatureFlags() FeatureFlags }
AMIFamily can be implemented to override the default logic for generating dynamic launch template parameters
func GetAMIFamily ¶
type Bottlerocket ¶
type Bottlerocket struct { DefaultFamily *Options }
func (Bottlerocket) DefaultBlockDeviceMappings ¶
func (b Bottlerocket) DefaultBlockDeviceMappings() []*v1alpha1.BlockDeviceMapping
DefaultBlockDeviceMappings returns the default block device mappings for the AMI Family
func (Bottlerocket) EphemeralBlockDevice ¶
func (b Bottlerocket) EphemeralBlockDevice() *string
func (Bottlerocket) FeatureFlags ¶
func (b Bottlerocket) FeatureFlags() FeatureFlags
func (Bottlerocket) SSMAlias ¶
func (b Bottlerocket) SSMAlias(version string, instanceType *cloudprovider.InstanceType) string
SSMAlias returns the AMI Alias to query SSM
func (Bottlerocket) UserData ¶
func (b Bottlerocket) UserData(kubeletConfig *v1alpha5.KubeletConfiguration, taints []v1.Taint, labels map[string]string, caBundle *string, _ []*cloudprovider.InstanceType, customUserData *string) bootstrap.Bootstrapper
UserData returns the default userdata script for the AMI Family
type Custom ¶
type Custom struct { DefaultFamily *Options }
func (Custom) DefaultBlockDeviceMappings ¶
func (c Custom) DefaultBlockDeviceMappings() []*v1alpha1.BlockDeviceMapping
func (Custom) EphemeralBlockDevice ¶
EphemeralBlockDevice is the block device that the pods on the node will use. For an AMI of a custom family, this is unknown to us.
func (Custom) SSMAlias ¶
func (c Custom) SSMAlias(_ string, _ *cloudprovider.InstanceType) string
func (Custom) UserData ¶
func (c Custom) UserData(_ *v1alpha5.KubeletConfiguration, _ []v1.Taint, _ map[string]string, _ *string, _ []*cloudprovider.InstanceType, customUserData *string) bootstrap.Bootstrapper
UserData returns the default userdata script for the AMI Family
type DefaultFamily ¶
type DefaultFamily struct{}
DefaultFamily provides default values for AMIFamilies that compose it
func (DefaultFamily) FeatureFlags ¶
func (d DefaultFamily) FeatureFlags() FeatureFlags
type FeatureFlags ¶
type FeatureFlags struct { UsesENILimitedMemoryOverhead bool PodsPerCoreEnabled bool EvictionSoftEnabled bool }
FeatureFlags describes whether the features below are enabled for a given AMIFamily
type LaunchTemplate ¶
type LaunchTemplate struct { *Options UserData bootstrap.Bootstrapper BlockDeviceMappings []*v1alpha1.BlockDeviceMapping MetadataOptions *v1alpha1.MetadataOptions AMIID string InstanceTypes []*cloudprovider.InstanceType `hash:"ignore"` DetailedMonitoring bool }
LaunchTemplate holds the dynamically generated launch template parameters
type Options ¶
type Options struct { ClusterName string ClusterEndpoint string AWSENILimitedPodDensity bool InstanceProfile string CABundle *string `hash:"ignore"` // Level-triggered fields that may change out of sync. SecurityGroupsIDs []string Tags map[string]string Labels map[string]string `hash:"ignore"` KubeDNSIP net.IP }
Options define the static launch template parameters
func (Options) DefaultMetadataOptions ¶
func (o Options) DefaultMetadataOptions() *v1alpha1.MetadataOptions
type Provider ¶
type Provider struct {
// contains filtered or unexported fields
}
func NewProvider ¶
func (*Provider) Get ¶
func (p *Provider) Get(ctx context.Context, nodeTemplate *v1alpha1.AWSNodeTemplate, instanceTypes []*cloudprovider.InstanceType, amiFamily AMIFamily) (map[string][]*cloudprovider.InstanceType, error)
Get returns a set of AMIIDs and corresponding instance types. AMI may vary due to architecture, accelerator, etc If AMI overrides are specified in the AWSNodeTemplate, then only those AMIs will be chosen.
type Resolver ¶
type Resolver struct {
// contains filtered or unexported fields
}
Resolver is able to fill-in dynamic launch template parameters
func (Resolver) Resolve ¶
func (r Resolver) Resolve(ctx context.Context, nodeTemplate *v1alpha1.AWSNodeTemplate, machine *v1alpha5.Machine, instanceTypes []*cloudprovider.InstanceType, options *Options) ([]*LaunchTemplate, error)
Resolve generates launch templates using the static options and dynamically generates launch template parameters. Multiple ResolvedTemplates are returned based on the instanceTypes passed in to support special AMIs for certain instance types like GPUs.
type Ubuntu ¶
type Ubuntu struct { DefaultFamily *Options }
func (Ubuntu) DefaultBlockDeviceMappings ¶
func (u Ubuntu) DefaultBlockDeviceMappings() []*v1alpha1.BlockDeviceMapping
DefaultBlockDeviceMappings returns the default block device mappings for the AMI Family
func (Ubuntu) EphemeralBlockDevice ¶
func (Ubuntu) SSMAlias ¶
func (u Ubuntu) SSMAlias(version string, instanceType *cloudprovider.InstanceType) string
SSMAlias returns the AMI Alias to query SSM
func (Ubuntu) UserData ¶
func (u Ubuntu) UserData(kubeletConfig *v1alpha5.KubeletConfiguration, taints []v1.Taint, labels map[string]string, caBundle *string, _ []*cloudprovider.InstanceType, customUserData *string) bootstrap.Bootstrapper
UserData returns the default userdata script for the AMI Family