in pkg/agent/bakerapi.go [38:86]
func (agentBaker *agentBakerImpl) GetNodeBootstrapping(ctx context.Context, config *datamodel.NodeBootstrappingConfiguration) (*datamodel.NodeBootstrapping, error) {
// validate and fix input before passing config to the template generator.
if config.AgentPoolProfile.IsWindows() {
validateAndSetWindowsNodeBootstrappingConfiguration(config)
} else {
ValidateAndSetLinuxNodeBootstrappingConfiguration(config)
}
templateGenerator := InitializeTemplateGenerator()
nodeBootstrapping := &datamodel.NodeBootstrapping{
CustomData: templateGenerator.getNodeBootstrappingPayload(config),
CSE: templateGenerator.getNodeBootstrappingCmd(config),
}
distro := config.AgentPoolProfile.Distro
if distro == datamodel.CustomizedWindowsOSImage || distro == datamodel.CustomizedImage || distro == datamodel.CustomizedImageKata {
return nodeBootstrapping, nil
}
osImageConfigMap, hasCloud := datamodel.AzureCloudToOSImageMap[config.CloudSpecConfig.CloudName]
if !hasCloud {
return nil, fmt.Errorf("don't have settings for cloud %s", config.CloudSpecConfig.CloudName)
}
if osImageConfig, hasImage := osImageConfigMap[distro]; hasImage {
nodeBootstrapping.OSImageConfig = &osImageConfig
}
sigAzureEnvironmentSpecConfig, err := datamodel.GetSIGAzureCloudSpecConfig(config.SIGConfig, config.ContainerService.Location)
if err != nil {
return nil, err
}
nodeBootstrapping.SigImageConfig = findSIGImageConfig(sigAzureEnvironmentSpecConfig, distro)
if nodeBootstrapping.SigImageConfig == nil && nodeBootstrapping.OSImageConfig == nil {
return nil, fmt.Errorf("can't find image for distro %s", distro)
}
if !config.AgentPoolProfile.IsWindows() {
// handle node image version toggle/override
e := toggles.NewEntityFromNodeBootstrappingConfiguration(config)
imageVersion := agentBaker.toggles.GetLinuxNodeImageVersion(e, distro)
if imageVersion != "" {
nodeBootstrapping.SigImageConfig.Version = imageVersion
}
}
return nodeBootstrapping, nil
}