in pkg/providers/imagefamily/nodeimage.go [40:77]
func (p *Provider) List(ctx context.Context, nodeClass *v1alpha2.AKSNodeClass) ([]NodeImage, error) {
kubernetesVersion, err := nodeClass.GetKubernetesVersion()
if err != nil {
return []NodeImage{}, err
}
supportedImages := getSupportedImages(nodeClass.Spec.ImageFamily)
// TODO: refactor to be part of construction, since this is a karpenter setting and won't change across the process.
useSIG := options.FromContext(ctx).UseSIG
key, err := p.cacheKey(
supportedImages,
kubernetesVersion,
)
if err != nil {
return []NodeImage{}, err
}
if nodeImages, ok := p.nodeImagesCache.Get(key); ok {
return nodeImages.([]NodeImage), nil
}
var nodeImages []NodeImage
if useSIG {
nodeImages, err = p.listSIG(ctx, supportedImages)
if err != nil {
return []NodeImage{}, err
}
} else {
nodeImages, err = p.listCIG(ctx, supportedImages)
if err != nil {
return []NodeImage{}, err
}
}
p.nodeImagesCache.Set(key, nodeImages, cache.DefaultExpiration)
return nodeImages, nil
}