github.com/treeverse/lakefs@v1.24.1-0.20240520134607-95648127bfb0/pkg/cloud/gcp/metadata.go (about) 1 package gcp 2 3 import ( 4 "crypto/md5" //nolint:gosec 5 "fmt" 6 7 "cloud.google.com/go/compute/metadata" 8 "github.com/treeverse/lakefs/pkg/cloud" 9 "github.com/treeverse/lakefs/pkg/logging" 10 ) 11 12 type MetadataProvider struct { 13 logger logging.Logger 14 } 15 16 func NewMetadataProvider(logger logging.Logger) *MetadataProvider { 17 return &MetadataProvider{logger: logger} 18 } 19 20 func (m *MetadataProvider) GetMetadata() map[string]string { 21 projectID, err := metadata.NumericProjectID() 22 if err != nil { 23 m.logger.WithError(err).Warn("Failed to get Google numeric project ID from instance metadata") 24 return nil 25 } 26 return map[string]string{ 27 cloud.IDKey: fmt.Sprintf("%x", md5.Sum([]byte(projectID))), //nolint:gosec 28 cloud.IDTypeKey: "gcp_project_numerical_id", 29 } 30 }