func()

in credentialproviderpackage/pkg/configurator/bottlerocket/bottlerocket.go [205:250]


func (b *bottleRocket) isSupportedBRVersion() (bool, error) {
	allowedVersions := "v1.11.0"
	req, err := http.NewRequest(http.MethodGet, b.baseURL, nil)
	if err != nil {
		return false, err
	}
	q := req.URL.Query()
	q.Add("prefix", "os")
	req.URL.RawQuery = q.Encode()

	respGet, err := b.client.Do(req)
	if err != nil {
		return false, err
	}

	defer respGet.Body.Close()

	if respGet.StatusCode != http.StatusOK {
		return false, fmt.Errorf("failed GET request: %s", respGet.Status)
	}

	valueBody, err := ioutil.ReadAll(respGet.Body)
	if err != nil {
		return false, err
	}

	osVersion := brVersion{}
	err = json.Unmarshal(valueBody, &osVersion)
	if err != nil {
		return false, err
	}

	// Check if BR k8s version is 1.25 or greater. If so we will update allowedVersions to be >1.13.0
	if osVersion.Os.VariantID != "" {
		variants := strings.Split(osVersion.Os.VariantID, "-")
		variantSemVar := "v" + variants[len(variants)-1]

		if semver.Compare(variantSemVar, "v1.25") >= 0 {
			allowedVersions = "v1.13.0"
		}
	}

	ver := "v" + osVersion.Os.VersionID
	valid := semver.Compare(ver, allowedVersions)
	return valid > 0, nil
}