func GetGceConfig()

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
}