func()

in pkg/ec2metadata/ec2metadata.go [356:382]


func (e *Service) GetNodeMetadata() NodeMetadata {
	metadata := NodeMetadata{}
	identityDoc, err := e.GetMetadataInfo(IdentityDocPath, false)
	if err != nil {
		log.Err(err).Msg("Unable to fetch metadata from IMDS")
		return metadata
	}
	err = json.NewDecoder(strings.NewReader(identityDoc)).Decode(&metadata)
	if err != nil {
		log.Warn().Msg("Unable to fetch instance identity document from ec2 metadata")
		metadata.InstanceID, _ = e.GetMetadataInfo(InstanceIDPath, false)
		metadata.InstanceType, _ = e.GetMetadataInfo(InstanceTypePath, false)
		metadata.LocalIP, _ = e.GetMetadataInfo(LocalIPPath, false)
		metadata.AvailabilityZone, _ = e.GetMetadataInfo(AZPlacementPath, false)
		if len(metadata.AvailabilityZone) > 1 {
			metadata.Region = metadata.AvailabilityZone[0 : len(metadata.AvailabilityZone)-1]
		}
	}
	metadata.InstanceLifeCycle, _ = e.GetMetadataInfo(InstanceLifeCycle, false)
	metadata.LocalHostname, _ = e.GetMetadataInfo(LocalHostnamePath, false)
	metadata.PublicHostname, _ = e.GetMetadataInfo(PublicHostnamePath, true)
	metadata.PublicIP, _ = e.GetMetadataInfo(PublicIPPath, true)

	log.Info().Interface("metadata", metadata).Msg("Startup Metadata Retrieved")

	return metadata
}