func buildMetadataForK8sPlatform()

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
		}
	}
}