From 7d83767eb9be582b175c7b831a2f470f139edfd9 Mon Sep 17 00:00:00 2001 From: Shahad Date: Mon, 9 Mar 2026 03:43:20 +0300 Subject: [PATCH] add support for S3 IMDS configuration --- cpp/velox/utils/ConfigExtractor.cc | 2 ++ .../src/main/scala/org/apache/gluten/config/GlutenConfig.scala | 3 +++ 2 files changed, 5 insertions(+) diff --git a/cpp/velox/utils/ConfigExtractor.cc b/cpp/velox/utils/ConfigExtractor.cc index fe35ce9f8e2f..c6cd5f8b2974 100644 --- a/cpp/velox/utils/ConfigExtractor.cc +++ b/cpp/velox/utils/ConfigExtractor.cc @@ -70,6 +70,7 @@ void getS3HiveConfig( {S3Config::Keys::kIamRole, std::make_pair("iam.role", std::nullopt)}, {S3Config::Keys::kIamRoleSessionName, std::make_pair("iam.role.session.name", "gluten-session")}, {S3Config::Keys::kEndpointRegion, std::make_pair("endpoint.region", std::nullopt)}, + {S3Config::Keys::kIMDSEnabled, std::make_pair("aws.imds.enabled", "true")}, }; // get Velox S3 config key from Spark Suffix. @@ -124,6 +125,7 @@ void getS3HiveConfig( setConfigIfPresent(S3Config::Keys::kSocketTimeout); setConfigIfPresent(S3Config::Keys::kConnectTimeout); setConfigIfPresent(S3Config::Keys::kEndpointRegion); + setConfigIfPresent(S3Config::Keys::kIMDSEnabled); hiveConfMap[S3Config::kS3LogLevel] = conf->get(kVeloxAwsSdkLogLevel, kVeloxAwsSdkLogLevelDefault); hiveConfMap[S3Config::baseConfigKey(S3Config::Keys::kUseProxyFromEnv)] = diff --git a/gluten-substrait/src/main/scala/org/apache/gluten/config/GlutenConfig.scala b/gluten-substrait/src/main/scala/org/apache/gluten/config/GlutenConfig.scala index 8d71e15964ea..c426ceb82149 100644 --- a/gluten-substrait/src/main/scala/org/apache/gluten/config/GlutenConfig.scala +++ b/gluten-substrait/src/main/scala/org/apache/gluten/config/GlutenConfig.scala @@ -424,6 +424,8 @@ object GlutenConfig extends ConfigRegistry { val SPARK_S3_CONNECTION_MAXIMUM: String = HADOOP_PREFIX + S3_CONNECTION_MAXIMUM val S3_ENDPOINT_REGION = "fs.s3a.endpoint.region" val SPARK_S3_ENDPOINT_REGION: String = HADOOP_PREFIX + S3_ENDPOINT_REGION + val S3_AWS_IMDS_ENABLED = "fs.s3a.aws.imds.enabled" + val SPARK_S3_AWS_IMDS_ENABLED: String = HADOOP_PREFIX + S3_AWS_IMDS_ENABLED // ABFS config val ABFS_PREFIX = "fs.azure." @@ -487,6 +489,7 @@ object GlutenConfig extends ConfigRegistry { SPARK_S3_RETRY_MAX_ATTEMPTS, SPARK_S3_CONNECTION_MAXIMUM, SPARK_S3_ENDPOINT_REGION, + SPARK_S3_AWS_IMDS_ENABLED, "spark.gluten.velox.fs.s3a.connect.timeout", "spark.gluten.velox.fs.s3a.retry.mode", "spark.gluten.velox.awsSdkLogLevel",