in custom-metrics-stackdriver-adapter/pkg/config/gce_config.go [36:72]
func GetGceConfig() (*GceConfig, error) {
if !gce.OnGCE() {
return nil, fmt.Errorf("Not running on GCE.")
}
project, err := gce.ProjectID()
if err != nil {
return nil, fmt.Errorf("error while getting project id: %v", err)
}
location, err := gce.InstanceAttributeValue("cluster-location")
if err != nil {
klog.Warningf("Failed to retrieve cluster location, falling back to local zone: %s", err)
location, err = gce.Zone()
if err != nil {
return nil, fmt.Errorf("error while getting cluster location: %v", err)
}
}
cluster, err := gce.InstanceAttributeValue("cluster-name")
if err != nil {
return nil, fmt.Errorf("error while getting cluster name: %v", err)
}
instance, err := gce.Hostname()
if err != nil {
return nil, fmt.Errorf("error while getting instance hostname: %v", err)
}
return &GceConfig{
Project: project,
// Trim trailing '\n' from parameters obtained from instance attributes
Location: strings.TrimSpace(location),
Cluster: strings.TrimSpace(cluster),
Instance: instance,
}, nil
}