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
}