func FilteredNodeImages()

in pkg/providers/imagefamily/nodeimageversionsclient.go [83:105]


func FilteredNodeImages(nodeImageVersions []NodeImageVersion) []NodeImageVersion {
	latestImages := make(map[string]NodeImageVersion)

	for _, image := range nodeImageVersions {
		// Skip the galleries that Karpenter does not support
		if image.OS != AKSUbuntuGalleryName && image.OS != AKSAzureLinuxGalleryName {
			continue
		}

		key := image.OS + "-" + image.SKU

		currentLatest, exists := latestImages[key]
		if !exists || isNewerVersion(image.Version, currentLatest.Version) {
			latestImages[key] = image
		}
	}

	var filteredImages []NodeImageVersion
	for _, image := range latestImages {
		filteredImages = append(filteredImages, image)
	}
	return filteredImages
}