in controllers/blobstore/chain/crete_s3_blobstore.go [120:156]
func (c *CreateS3BlobStore) s3BucketSecurityToS3Blobstore(
ctx context.Context,
s3BucketSecuritySpec *nexusApi.S3BucketSecurity,
namespace string,
) (*blobstore.S3BucketSecurity, error) {
bucketSecurity := &blobstore.S3BucketSecurity{
AccessKeyID: "",
Role: s3BucketSecuritySpec.Role,
SecretAccessKey: "",
SessionToken: "",
}
accessKeyID, err := helper.GetValueFromSourceRef(ctx, &s3BucketSecuritySpec.AccessKeyID, namespace, c.k8sClient)
if err != nil {
return nil, fmt.Errorf("failed to get access key ID: %w", err)
}
bucketSecurity.AccessKeyID = accessKeyID
secretAccessKey, err := helper.GetValueFromSourceRef(ctx, &s3BucketSecuritySpec.SecretAccessKey, namespace, c.k8sClient)
if err != nil {
return nil, fmt.Errorf("failed to get secret access key: %w", err)
}
bucketSecurity.SecretAccessKey = secretAccessKey
if s3BucketSecuritySpec.SessionToken != nil {
sessionToken, err := helper.GetValueFromSourceRef(ctx, s3BucketSecuritySpec.SessionToken, namespace, c.k8sClient)
if err != nil {
return nil, fmt.Errorf("failed to get session token: %w", err)
}
bucketSecurity.SessionToken = sessionToken
}
return bucketSecurity, nil
}