diff --git a/cmd/osbuild-worker/main.go b/cmd/osbuild-worker/main.go index 8cb697941..fedca82db 100644 --- a/cmd/osbuild-worker/main.go +++ b/cmd/osbuild-worker/main.go @@ -474,7 +474,7 @@ func main() { Store: store, Output: output, OSBuildExecutor: ExecutorConfiguration{ - Type: config.OSBuildExecutor.Type, + Type: config.OSBuildExecutor.Type, }, KojiServers: kojiServers, GCPConfig: gcpConfig, diff --git a/internal/cloud/awscloud/awscloud.go b/internal/cloud/awscloud/awscloud.go index 419d0b4dc..ff3be728e 100644 --- a/internal/cloud/awscloud/awscloud.go +++ b/internal/cloud/awscloud/awscloud.go @@ -9,6 +9,7 @@ import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/credentials" + "github.com/aws/aws-sdk-go/aws/ec2metadata" "github.com/aws/aws-sdk-go/aws/request" "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/ec2" @@ -19,9 +20,10 @@ import ( ) type AWS struct { - uploader *s3manager.Uploader - ec2 *ec2.EC2 - s3 *s3.S3 + uploader *s3manager.Uploader + ec2 *ec2.EC2 + ec2metadata *ec2metadata.EC2Metadata + s3 *s3.S3 } // Create a new session from the credentials and the region and returns an *AWS object initialized with it. @@ -36,9 +38,10 @@ func newAwsFromCreds(creds *credentials.Credentials, region string) (*AWS, error } return &AWS{ - uploader: s3manager.NewUploader(sess), - ec2: ec2.New(sess), - s3: s3.New(sess), + uploader: s3manager.NewUploader(sess), + ec2: ec2.New(sess), + ec2metadata: ec2metadata.New(sess), + s3: s3.New(sess), }, nil } @@ -66,6 +69,18 @@ func NewDefault(region string) (*AWS, error) { return newAwsFromCreds(nil, region) } +func RegionFromInstanceMetadata() (string, error) { + sess, err := session.NewSession() + if err != nil { + return "", err + } + identity, err := ec2metadata.New(sess).GetInstanceIdentityDocument() + if err != nil { + return "", err + } + return identity.Region, nil +} + // Create a new session from the credentials and the region and returns an *AWS object initialized with it. func newAwsFromCredsWithEndpoint(creds *credentials.Credentials, region, endpoint, caBundle string, skipSSLVerification bool) (*AWS, error) { // Create a Session with a custom region @@ -102,9 +117,10 @@ func newAwsFromCredsWithEndpoint(creds *credentials.Credentials, region, endpoin } return &AWS{ - uploader: s3manager.NewUploader(sess), - ec2: ec2.New(sess), - s3: s3.New(sess), + uploader: s3manager.NewUploader(sess), + ec2: ec2.New(sess), + ec2metadata: ec2metadata.New(sess), + s3: s3.New(sess), }, nil }