func LoadConfig()

in pkg/agent/datamodel/gpu_components.go [35:67]


func LoadConfig() error {
	// Read the embedded components.json file
	data, err := parts.Templates.ReadFile("common/components.json")
	if err != nil {
		return fmt.Errorf("failed to read components.json: %w", err)
	}

	var config componentsConfig
	if err := json.Unmarshal(data, &config); err != nil {
		return fmt.Errorf("failed to unmarshal components.json: %w", err)
	}

	const driverIndex = 0
	const suffixIndex = 1
	const expectedLength = 2

	for _, image := range config.GPUContainerImages {
		parts := strings.Split(image.GPUVersion.LatestVersion, "-")
		if len(parts) != expectedLength {
			continue
		}
		version, suffix := parts[driverIndex], parts[suffixIndex]

		if strings.Contains(image.DownloadURL, "aks-gpu-cuda") {
			NvidiaCudaDriverVersion = version
			AKSGPUCudaVersionSuffix = suffix
		} else if strings.Contains(image.DownloadURL, "aks-gpu-grid") {
			NvidiaGridDriverVersion = version
			AKSGPUGridVersionSuffix = suffix
		}
	}
	return nil
}