in image/resources/knfsd-agent/metadata.go [32:65]
func getMetadataValue(URI string, delimit bool) (string, error) {
client := &http.Client{
Timeout: 2 * time.Second,
}
req, err := http.NewRequest("GET", fmt.Sprintf("%s/%s?alt=text", metadataServerURL, URI), nil)
if err != nil {
return "", err
}
// As per https://cloud.google.com/compute/docs/metadata/overview#parts-of-a-request
// all metadata queries need to include "Metadata-Flavor: Google" in the
// HTTP headers.
req.Header.Set("Metadata-Flavor", "Google")
resp, err := client.Do(req)
if err != nil {
return "", err
}
if resp.StatusCode != http.StatusOK {
return "", fmt.Errorf("received invalid HTTP response code, got %d, wanted 200", resp.StatusCode)
}
body, err := io.ReadAll(resp.Body)
if err != nil {
return "", err
}
if delimit {
return lastAfterDelimiter(string(body), "/"), nil
} else {
return string(body), nil
}
}