Documentation
¶
Index ¶
- Constants
- func BuildImageIDCIG(publicGalleryURL, communityImageName, imageVersion string) string
- func BuildImageIDSIG(...) string
- func FilteredNodeImages(nodeImageVersions []*armcontainerservice.NodeImageVersion) []*armcontainerservice.NodeImageVersion
- func NewDefaultResolver(_ client.Client, imageProvider *provider, ...) *defaultResolver
- func NewProvider(versionsClient types.CommunityGalleryImageVersionsAPI, ...) *provider
- func ResolvesToUbuntu2004(familyName *string, fipsMode *v1beta1.FIPSMode, trustedLaunch bool, ...) bool
- func UseAzureLinux3(kubernetesVersion string) bool
- func UseUbuntu2204FIPS(kubernetesVersion string, trustedLaunch bool) bool
- func UseUbuntu2404(kubernetesVersion string) bool
- type AzureLinux
- func (u AzureLinux) CustomScriptsNodeBootstrapping(kubeletConfig *bootstrap.KubeletConfiguration, taints []v1.Taint, ...) customscriptsbootstrap.Bootstrapper
- func (u AzureLinux) DefaultImages(useSIG bool, fipsMode *v1beta1.FIPSMode, trustedLaunch bool, kataEnabled bool) []types.DefaultImageOutput
- func (u AzureLinux) Name() string
- func (u AzureLinux) ScriptlessCustomData(kubeletConfig *bootstrap.KubeletConfiguration, taints []v1.Taint, ...) bootstrap.Bootstrapper
- type AzureLinux3
- func (u AzureLinux3) CustomScriptsNodeBootstrapping(kubeletConfig *bootstrap.KubeletConfiguration, taints []v1.Taint, ...) customscriptsbootstrap.Bootstrapper
- func (u AzureLinux3) DefaultImages(useSIG bool, fipsMode *v1beta1.FIPSMode, trustedLaunch bool, kataEnabled bool) []types.DefaultImageOutput
- func (u AzureLinux3) Name() string
- func (u AzureLinux3) ScriptlessCustomData(kubeletConfig *bootstrap.KubeletConfiguration, taints []v1.Taint, ...) bootstrap.Bootstrapper
- type ImageFamily
- type NodeBootstrappingClient
- type NodeImage
- type NodeImageProvider
- type NodeImageVersionsClient
- type Resolver
- type Ubuntu2004
- func (u Ubuntu2004) CustomScriptsNodeBootstrapping(kubeletConfig *bootstrap.KubeletConfiguration, taints []v1.Taint, ...) customscriptsbootstrap.Bootstrapper
- func (u Ubuntu2004) DefaultImages(useSIG bool, fipsMode *v1beta1.FIPSMode, trustedLaunch bool, kataEnabled bool) []types.DefaultImageOutput
- func (u Ubuntu2004) Name() string
- func (u Ubuntu2004) ScriptlessCustomData(kubeletConfig *bootstrap.KubeletConfiguration, taints []v1.Taint, ...) bootstrap.Bootstrapper
- type Ubuntu2204
- func (u Ubuntu2204) CustomScriptsNodeBootstrapping(kubeletConfig *bootstrap.KubeletConfiguration, taints []v1.Taint, ...) customscriptsbootstrap.Bootstrapper
- func (u Ubuntu2204) DefaultImages(useSIG bool, fipsMode *v1beta1.FIPSMode, trustedLaunch bool, kataEnabled bool) []types.DefaultImageOutput
- func (u Ubuntu2204) Name() string
- func (u Ubuntu2204) ScriptlessCustomData(kubeletConfig *bootstrap.KubeletConfiguration, taints []v1.Taint, ...) bootstrap.Bootstrapper
- type Ubuntu2404
- func (u Ubuntu2404) CustomScriptsNodeBootstrapping(kubeletConfig *bootstrap.KubeletConfiguration, taints []v1.Taint, ...) customscriptsbootstrap.Bootstrapper
- func (u Ubuntu2404) DefaultImages(useSIG bool, fipsMode *v1beta1.FIPSMode, trustedLaunch bool, kataEnabled bool) []types.DefaultImageOutput
- func (u Ubuntu2404) Name() string
- func (u Ubuntu2404) ScriptlessCustomData(kubeletConfig *bootstrap.KubeletConfiguration, taints []v1.Taint, ...) bootstrap.Bootstrapper
Constants ¶
const ( AzureLinuxGen2ImageDefinition = "V2gen2" AzureLinuxGen1ImageDefinition = "V2" AzureLinuxGen2ArmImageDefinition = "V2gen2arm64" AzureLinux2Gen2FIPSImageDefinition = "V2gen2fips" AzureLinux2Gen1FIPSImageDefinition = "V2fips" AzureLinux2Gen2TrustedLaunchImageDefinition = "V2gen2TL" )
const ( AzureLinux3Gen2ImageDefinition = "V3gen2" AzureLinux3Gen1ImageDefinition = "V3" AzureLinux3Gen2ArmImageDefinition = "V3gen2arm64" AzureLinux3Gen2FIPSImageDefinition = "V3gen2fips" AzureLinux3Gen1FIPSImageDefinition = "V3fips" AzureLinux3Gen2Arm64FIPSImageDefinition = "V3gen2arm64fips" AzureLinux3Gen2TrustedLaunchImageDefinition = "V3gen2TL" // AzureLinux3Gen2KataImageDefinition is the AKS Pod Sandboxing (Kata) image variant. // The Kata host stack (kata-containers RPM -> /usr/local/bin/containerd-shim-kata-v2) // ships only in this image; the standard V3gen2 image carries the containerd Kata // runtime config but not the shim binary, so a Kata node must boot this variant. // Pod Sandboxing is amd64 + gen2 (nested-virtualization) only. AzureLinux3Gen2KataImageDefinition = "V3katagen2" )
const ( AKSUbuntuPublicGalleryURL = "AKSUbuntu-38d80f77-467a-481f-a8d4-09b6d4220bd2" AKSAzureLinuxPublicGalleryURL = "AKSAzureLinux-f7c7cda5-1c9a-4bdc-a222-9614c968580b" AKSUbuntuResourceGroup = "AKS-Ubuntu" AKSAzureLinuxResourceGroup = "AKS-AzureLinux" AKSUbuntuGalleryName = "AKSUbuntu" AKSAzureLinuxGalleryName = "AKSAzureLinux" )
const ( ImageExpirationInterval = time.Hour * 24 * 3 ImageCacheCleaningInterval = time.Hour * 1 )
const ( Ubuntu2004Gen2FIPSImageDefinition = "2004gen2fipscontainerd" Ubuntu2004Gen1FIPSImageDefinition = "2004fipscontainerd" )
const ( Ubuntu2204Gen2ImageDefinition = "2204gen2containerd" Ubuntu2204Gen1ImageDefinition = "2204containerd" Ubuntu2204Gen2ArmImageDefinition = "2204gen2arm64containerd" Ubuntu2204Gen2TrustedLaunchImageDefinition = "2204gen2TLcontainerd" Ubuntu2204Gen2FIPSTLImageDefinition = "2204gen2fipsTLcontainerd" Ubuntu2204Gen2FIPSImageDefinition = "2204gen2fipscontainerd" Ubuntu2204Gen1FIPSImageDefinition = "2204fipscontainerd" )
const ( Ubuntu2404Gen2ImageDefinition = "2404gen2containerd" Ubuntu2404Gen1ImageDefinition = "2404containerd" Ubuntu2404Gen2ArmImageDefinition = "2404gen2arm64containerd" Ubuntu2404Gen2TrustedLaunchImageDefinition = "2404gen2TLcontainerd" )
Variables ¶
This section is empty.
Functions ¶
func BuildImageIDCIG ¶ added in v0.7.1
BuildImageIDCIG builds a Community Image Gallery image ID
func BuildImageIDSIG ¶ added in v1.6.3
func BuildImageIDSIG(subscriptionID, resourceGroup, galleryName, imageDefinition, imageVersion string) string
BuildImageIDSIG builds a Shared Image Gallery image ID
func FilteredNodeImages ¶ added in v0.7.1
func FilteredNodeImages(nodeImageVersions []*armcontainerservice.NodeImageVersion) []*armcontainerservice.NodeImageVersion
FilteredNodeImages filters on two conditions 1. The image is the latest version for the given OS and SKU 2. the image belongs to a supported gallery(AKS Ubuntu or Azure Linux)
func NewDefaultResolver ¶ added in v0.7.5
func NewDefaultResolver(_ client.Client, imageProvider *provider, instanceTypeProvider instancetype.Provider, nodeBootstrappingClient types.NodeBootstrappingAPI) *defaultResolver
NewDefaultResolver constructs a new launch template Resolver
func NewProvider ¶
func NewProvider(versionsClient types.CommunityGalleryImageVersionsAPI, location, subscription string, nodeImageVersionsClient types.NodeImageVersionsAPI, nodeImagesCache *cache.Cache) *provider
func ResolvesToUbuntu2004 ¶ added in v1.12.1
func ResolvesToUbuntu2004(familyName *string, fipsMode *v1beta1.FIPSMode, trustedLaunch bool, kubernetesVersion string) bool
ResolvesToUbuntu2004 returns true if the inputs resolve to Ubuntu2004.
func UseAzureLinux3 ¶ added in v1.5.0
UseAzureLinux3 checks if the Kubernetes version is 1.32.0 or higher, which is when Azure Linux 3 support starts
func UseUbuntu2204FIPS ¶ added in v1.14.3
UseUbuntu2204FIPS returns true when generic Ubuntu + FIPS should resolve to Ubuntu 22.04 for the given Kubernetes version / Trusted Launch setting.
func UseUbuntu2404 ¶ added in v1.6.3
UseUbuntu2404 is when AKS starts defaulting support for Ubuntu2404
Types ¶
type AzureLinux ¶
type AzureLinux struct {
Options *parameters.StaticParameters
}
func (AzureLinux) CustomScriptsNodeBootstrapping ¶ added in v0.6.1
func (u AzureLinux) CustomScriptsNodeBootstrapping( kubeletConfig *bootstrap.KubeletConfiguration, taints []v1.Taint, startupTaints []v1.Taint, labels map[string]string, instanceType *cloudprovider.InstanceType, imageDistro string, storageProfile string, nodeBootstrappingClient types.NodeBootstrappingAPI, fipsMode *v1beta1.FIPSMode, workloadRuntime *v1beta1.WorkloadRuntime, localDNS *v1beta1.LocalDNS, artifactStreaming *v1beta1.ArtifactStreaming, linuxOSConfig *v1beta1.LinuxOSConfiguration, vtpmEnabled *bool, secureBootEnabled *bool, ) customscriptsbootstrap.Bootstrapper
UserData returns the default userdata script for the image Family
func (AzureLinux) DefaultImages ¶
func (u AzureLinux) DefaultImages(useSIG bool, fipsMode *v1beta1.FIPSMode, trustedLaunch bool, kataEnabled bool) []types.DefaultImageOutput
func (AzureLinux) Name ¶
func (u AzureLinux) Name() string
func (AzureLinux) ScriptlessCustomData ¶ added in v0.6.1
func (u AzureLinux) ScriptlessCustomData( kubeletConfig *bootstrap.KubeletConfiguration, taints []v1.Taint, labels map[string]string, caBundle *string, _ *cloudprovider.InstanceType, ) bootstrap.Bootstrapper
UserData returns the default userdata script for the image Family
type AzureLinux3 ¶ added in v1.5.0
type AzureLinux3 struct {
Options *parameters.StaticParameters
}
func (AzureLinux3) CustomScriptsNodeBootstrapping ¶ added in v1.5.0
func (u AzureLinux3) CustomScriptsNodeBootstrapping( kubeletConfig *bootstrap.KubeletConfiguration, taints []v1.Taint, startupTaints []v1.Taint, labels map[string]string, instanceType *cloudprovider.InstanceType, imageDistro string, storageProfile string, nodeBootstrappingClient types.NodeBootstrappingAPI, fipsMode *v1beta1.FIPSMode, workloadRuntime *v1beta1.WorkloadRuntime, localDNS *v1beta1.LocalDNS, artifactStreaming *v1beta1.ArtifactStreaming, linuxOSConfig *v1beta1.LinuxOSConfiguration, vtpmEnabled *bool, secureBootEnabled *bool, ) customscriptsbootstrap.Bootstrapper
UserData returns the default userdata script for the image Family
func (AzureLinux3) DefaultImages ¶ added in v1.5.0
func (u AzureLinux3) DefaultImages(useSIG bool, fipsMode *v1beta1.FIPSMode, trustedLaunch bool, kataEnabled bool) []types.DefaultImageOutput
func (AzureLinux3) Name ¶ added in v1.5.0
func (u AzureLinux3) Name() string
func (AzureLinux3) ScriptlessCustomData ¶ added in v1.5.0
func (u AzureLinux3) ScriptlessCustomData( kubeletConfig *bootstrap.KubeletConfiguration, taints []v1.Taint, labels map[string]string, caBundle *string, _ *cloudprovider.InstanceType, ) bootstrap.Bootstrapper
UserData returns the default userdata script for the image Family
type ImageFamily ¶
type ImageFamily interface {
ScriptlessCustomData(
kubeletConfig *bootstrap.KubeletConfiguration,
taints []corev1.Taint,
labels map[string]string,
caBundle *string,
instanceType *cloudprovider.InstanceType,
) bootstrap.Bootstrapper
CustomScriptsNodeBootstrapping(
kubeletConfig *bootstrap.KubeletConfiguration,
taints []corev1.Taint,
startupTaints []corev1.Taint,
labels map[string]string,
instanceType *cloudprovider.InstanceType,
imageDistro string,
storageProfile string,
nodeBootstrappingClient types.NodeBootstrappingAPI,
fipsMode *v1beta1.FIPSMode,
workloadRuntime *v1beta1.WorkloadRuntime,
localDNS *v1beta1.LocalDNS,
artifactStreaming *v1beta1.ArtifactStreaming,
linuxOSConfig *v1beta1.LinuxOSConfiguration,
vtpmEnabled *bool,
secureBootEnabled *bool,
) customscriptsbootstrap.Bootstrapper
Name() string
// DefaultImages returns supported AKS node image definitions for this ImageFamily.
// Our Image Selection logic relies on the ordering of the default images to be ordered from most preferred to least, then we will select the latest image version available for that CommunityImage definition.
// Our Release pipeline ensures all images are released together within 24 hours of each other for community image gallery, so selecting based on image feature priorities, then by date, and not vice-versa is acceptable.
// If fipsMode is FIPSModeFIPS or trustedLaunch is enabled, only matching feature-specific images will be returned.
// If kataEnabled is true, only the AKS Pod Sandboxing (Kata) image variant is
// returned (AzureLinux 3 only; other families return no images, as Kata is enforced to
// AzureLinux by AKSNodeClass CEL validation).
DefaultImages(useSIG bool, fipsMode *v1beta1.FIPSMode, trustedLaunch bool, kataEnabled bool) []types.DefaultImageOutput
}
ImageFamily can be implemented to override the default logic for generating dynamic launch template parameters ATTENTION!!!: changes here may NOT be effective on AKS machine nodes (ProvisionModeAKSMachineAPI); See aksmachineinstance.go/aksmachineinstancehelpers.go. Refactoring for code unification is not being invested immediately.
func GetImageFamily ¶ added in v1.6.3
func GetImageFamily(familyName *string, fipsMode *v1beta1.FIPSMode, trustedLaunch bool, kubernetesVersion string, parameters *template.StaticParameters) ImageFamily
type NodeBootstrappingClient ¶ added in v1.5.0
type NodeBootstrappingClient struct {
// contains filtered or unexported fields
}
NodeBootstrappingClient implements the NodeBootstrappingAPI interface using the swagger-generated client.
func NewNodeBootstrappingClient ¶ added in v1.5.0
func NewNodeBootstrappingClient( ctx context.Context, cloud cloud.Configuration, subscriptionID string, resourceGroupName string, resourceName string, credential azcore.TokenCredential, serverURL string, enableLogging bool, ) (*NodeBootstrappingClient, error)
NewNodeBootstrappingClient creates a new NodeBootstrappingClient with token caching enabled.
func (*NodeBootstrappingClient) Get ¶ added in v1.5.0
func (c *NodeBootstrappingClient) Get( ctx context.Context, parameters *models.ProvisionValues, ) (types.NodeBootstrapping, error)
Get implements the NodeBootstrappingAPI interface. It retrieves node bootstrapping data (CSE and base64-encoded CustomData), but may omit the TLS bootstrap token.
type NodeImage ¶ added in v1.4.0
type NodeImage struct {
ID string
Requirements scheduling.Requirements
}
type NodeImageProvider ¶ added in v1.4.0
type NodeImageVersionsClient ¶ added in v0.7.1
type NodeImageVersionsClient struct {
// contains filtered or unexported fields
}
func NewNodeImageVersionsClient ¶ added in v0.7.1
func NewNodeImageVersionsClient(subscriptionID string, cred azcore.TokenCredential, opts *arm.ClientOptions) (*NodeImageVersionsClient, error)
func (*NodeImageVersionsClient) List ¶ added in v0.7.1
func (l *NodeImageVersionsClient) List(ctx context.Context, location string) ([]*armcontainerservice.NodeImageVersion, error)
type Resolver ¶
type Resolver interface {
Resolve(
ctx context.Context,
nodeClass *v1beta1.AKSNodeClass,
nodeClaim *karpv1.NodeClaim,
instanceType *cloudprovider.InstanceType,
staticParameters *template.StaticParameters) (*template.Parameters, error)
ResolveNodeImageFromNodeClass(nodeClass *v1beta1.AKSNodeClass, instanceType *cloudprovider.InstanceType) (string, error)
}
type Ubuntu2004 ¶ added in v1.6.2
type Ubuntu2004 struct {
Options *parameters.StaticParameters
}
func (Ubuntu2004) CustomScriptsNodeBootstrapping ¶ added in v1.6.2
func (u Ubuntu2004) CustomScriptsNodeBootstrapping( kubeletConfig *bootstrap.KubeletConfiguration, taints []v1.Taint, startupTaints []v1.Taint, labels map[string]string, instanceType *cloudprovider.InstanceType, imageDistro string, storageProfile string, nodeBootstrappingClient types.NodeBootstrappingAPI, fipsMode *v1beta1.FIPSMode, workloadRuntime *v1beta1.WorkloadRuntime, _ *v1beta1.LocalDNS, artifactStreaming *v1beta1.ArtifactStreaming, linuxOSConfig *v1beta1.LinuxOSConfiguration, vtpmEnabled *bool, secureBootEnabled *bool, ) customscriptsbootstrap.Bootstrapper
UserData returns the default userdata script for the image Family
func (Ubuntu2004) DefaultImages ¶ added in v1.6.2
func (u Ubuntu2004) DefaultImages(useSIG bool, fipsMode *v1beta1.FIPSMode, trustedLaunch bool, kataEnabled bool) []types.DefaultImageOutput
func (Ubuntu2004) Name ¶ added in v1.6.2
func (u Ubuntu2004) Name() string
TODO (charliedmcb): look into .Name() usage, and implications
func (Ubuntu2004) ScriptlessCustomData ¶ added in v1.6.2
func (u Ubuntu2004) ScriptlessCustomData( kubeletConfig *bootstrap.KubeletConfiguration, taints []v1.Taint, labels map[string]string, caBundle *string, _ *cloudprovider.InstanceType, ) bootstrap.Bootstrapper
UserData returns the default userdata script for the image Family
type Ubuntu2204 ¶
type Ubuntu2204 struct {
Options *parameters.StaticParameters
}
func (Ubuntu2204) CustomScriptsNodeBootstrapping ¶ added in v0.6.1
func (u Ubuntu2204) CustomScriptsNodeBootstrapping( kubeletConfig *bootstrap.KubeletConfiguration, taints []v1.Taint, startupTaints []v1.Taint, labels map[string]string, instanceType *cloudprovider.InstanceType, imageDistro string, storageProfile string, nodeBootstrappingClient types.NodeBootstrappingAPI, fipsMode *v1beta1.FIPSMode, workloadRuntime *v1beta1.WorkloadRuntime, localDNS *v1beta1.LocalDNS, artifactStreaming *v1beta1.ArtifactStreaming, linuxOSConfig *v1beta1.LinuxOSConfiguration, vtpmEnabled *bool, secureBootEnabled *bool, ) customscriptsbootstrap.Bootstrapper
UserData returns the default userdata script for the image Family
func (Ubuntu2204) DefaultImages ¶
func (u Ubuntu2204) DefaultImages(useSIG bool, fipsMode *v1beta1.FIPSMode, trustedLaunch bool, kataEnabled bool) []types.DefaultImageOutput
func (Ubuntu2204) Name ¶
func (u Ubuntu2204) Name() string
func (Ubuntu2204) ScriptlessCustomData ¶ added in v0.6.1
func (u Ubuntu2204) ScriptlessCustomData( kubeletConfig *bootstrap.KubeletConfiguration, taints []v1.Taint, labels map[string]string, caBundle *string, _ *cloudprovider.InstanceType, ) bootstrap.Bootstrapper
UserData returns the default userdata script for the image Family
type Ubuntu2404 ¶ added in v1.6.3
type Ubuntu2404 struct {
Options *parameters.StaticParameters
}
func (Ubuntu2404) CustomScriptsNodeBootstrapping ¶ added in v1.6.3
func (u Ubuntu2404) CustomScriptsNodeBootstrapping( kubeletConfig *bootstrap.KubeletConfiguration, taints []v1.Taint, startupTaints []v1.Taint, labels map[string]string, instanceType *cloudprovider.InstanceType, imageDistro string, storageProfile string, nodeBootstrappingClient types.NodeBootstrappingAPI, fipsMode *v1beta1.FIPSMode, workloadRuntime *v1beta1.WorkloadRuntime, localDNS *v1beta1.LocalDNS, artifactStreaming *v1beta1.ArtifactStreaming, linuxOSConfig *v1beta1.LinuxOSConfiguration, vtpmEnabled *bool, secureBootEnabled *bool, ) customscriptsbootstrap.Bootstrapper
UserData returns the default userdata script for the image Family
func (Ubuntu2404) DefaultImages ¶ added in v1.6.3
func (u Ubuntu2404) DefaultImages(useSIG bool, fipsMode *v1beta1.FIPSMode, trustedLaunch bool, kataEnabled bool) []types.DefaultImageOutput
func (Ubuntu2404) Name ¶ added in v1.6.3
func (u Ubuntu2404) Name() string
func (Ubuntu2404) ScriptlessCustomData ¶ added in v1.6.3
func (u Ubuntu2404) ScriptlessCustomData( kubeletConfig *bootstrap.KubeletConfiguration, taints []v1.Taint, labels map[string]string, caBundle *string, _ *cloudprovider.InstanceType, ) bootstrap.Bootstrapper
UserData returns the default userdata script for the image Family