in agent/envoy_bootstrap/platforminfo/platform_info_collector.go [76:105]
func buildMetadataForK8sPlatform(mapping map[string]interface{}) {
k8sVersion := env.Get(k8sVersionEnvVar)
podUid := env.Get(podUidEnvVar)
appMeshControllerVersion := env.Get(appMeshControllerVersionEnvVar)
// TODO: Add EKS cluster info when available
if k8sVersion != "" && podUid != "" && appMeshControllerVersion != "" {
mapping[k8sPlatformInfoKey] = map[string]interface{}{
k8sVersionKey: k8sVersion,
podUidKey: podUid,
appMeshControllerVersionKey: appMeshControllerVersion,
}
// Since IMDS is not accessible from inside ECS, making below 2 calls only on EKS platform.
// Fetch AZ from EC2 instance metadata if possible.
if availabilityZone, err := getEc2InstanceMetadata(azQuery); err != nil {
log.Warnf("Couldn't determine the AZ due to: %v", err)
} else if availabilityZone != "" {
mapping[AvailabilityZoneKey] = availabilityZone
}
// Fetch AZ ID info as AZ can map differently for each account but AZ IDs are the same for
// every account https://docs.aws.amazon.com/ram/latest/userguide/working-with-az-ids.html
if availabilityZoneID, err := getEc2InstanceMetadata(azIDQuery); err != nil {
// Just log info if we can't get this information
log.Warnf("Couldn't determine the AZ ID due to: %v", err)
} else if availabilityZoneID != "" {
mapping[AvailabilityZoneIDKey] = availabilityZoneID
}
}
}