Skip to content

Commit 744e4ae

Browse files
authored
K8S-1077 (apache#598)
* K8S-1077 - use single k8s secret with user info
1 parent 8947fd4 commit 744e4ae

File tree

2 files changed

+32
-45
lines changed

2 files changed

+32
-45
lines changed

resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/Config.scala

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -305,27 +305,17 @@ private[spark] object Config extends Logging {
305305
.stringConf
306306
.createWithDefault("mapr-cluster-cm")
307307

308-
val MAPR_CLUSTER_USER_SECRETS =
309-
ConfigBuilder("spark.mapr.user.secrets")
308+
val MAPR_USER_SECRET =
309+
ConfigBuilder("spark.mapr.user.secret")
310310
.doc("Name of the mapr user secrets")
311311
.stringConf
312-
.createWithDefault("mapr-user-secrets")
312+
.createWithDefault("mapr-user-secret")
313313

314314
val MAPR_TICKET_SECRET_KEY =
315315
ConfigBuilder("spark.mapr.ticket.secret.key")
316316
.stringConf
317317
.createWithDefault("CONTAINER_TICKET")
318318

319-
val MAPR_TICKET_SECRET_PREFIX =
320-
ConfigBuilder("spark.mapr.ticket.secret.prefix")
321-
.stringConf
322-
.createWithDefault("mapr-ticket")
323-
324-
val MAPR_SSL_SECRET_PREFIX =
325-
ConfigBuilder("spark.mapr.ssl.secret.prefix")
326-
.stringConf
327-
.createWithDefault("mapr-cluster-secrets")
328-
329319
val KUBERNETES_AUTH_SUBMISSION_CONF_PREFIX =
330320
"spark.kubernetes.authenticate.submission"
331321

resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/MaprConfigFeatureStep.scala

Lines changed: 29 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package org.apache.spark.deploy.k8s.features
22

33
import scala.collection.JavaConverters._
4-
import io.fabric8.kubernetes.api.model.{ContainerBuilder, EnvVarBuilder, HasMetadata}
4+
import io.fabric8.kubernetes.api.model.{ContainerBuilder, EnvVarBuilder, HasMetadata, PodBuilder, VolumeBuilder}
55
import org.apache.spark.SparkConf
6+
import org.apache.spark.deploy.k8s.{KubernetesConf, KubernetesRoleSpecificConf, SparkPod}
67
import org.apache.spark.deploy.k8s.Config._
78
import org.apache.spark.deploy.k8s.Constants._
8-
import org.apache.spark.deploy.k8s.{KubernetesConf, KubernetesRoleSpecificConf, SparkPod}
99

1010
private[spark] class MaprConfigFeatureStep(
1111
conf: KubernetesConf[_ <: KubernetesRoleSpecificConf])
@@ -22,50 +22,47 @@ private[spark] class MaprConfigFeatureStep(
2222
.build()
2323
}
2424

25-
val maprTicketSecret =
26-
s"$KUBERNETES_DRIVER_SECRETS_PREFIX${sparkConf.get(MAPR_TICKET_SECRET_PREFIX)}"
27-
28-
val maprTicketEnv = sparkConf
29-
.getAllWithPrefix(maprTicketSecret).toSeq
30-
.map { case (_, value) =>
31-
new EnvVarBuilder()
32-
.withName(MAPR_TICKETFILE_LOCATION)
33-
.withValue(value + s"/${sparkConf.get(MAPR_TICKET_SECRET_KEY)}")
34-
.build()
35-
}
36-
37-
val maprSslSecret =
38-
s"$KUBERNETES_DRIVER_SECRETS_PREFIX${sparkConf.get(MAPR_SSL_SECRET_PREFIX)}"
39-
40-
val maprSslEnv = sparkConf
41-
.getAllWithPrefix(maprSslSecret).toSeq
42-
.map { case (_, value) =>
43-
new EnvVarBuilder()
44-
.withName(MAPR_SSL_LOCATION)
45-
.withValue(value)
46-
.build()
47-
}
48-
4925
val clusterConfMap = sparkConf.get(MAPR_CLUSTER_CONFIGMAP).toString
50-
val clusterUserSecrets = sparkConf.get(MAPR_CLUSTER_USER_SECRETS).toString
26+
val userSecret = sparkConf.get(MAPR_USER_SECRET).toString
27+
val userSecretVolumeName = s"$userSecret-volume"
28+
val userSecretMountPath = "/tmp/maprticket"
29+
val ticketFileLocation = s"$userSecretMountPath/${sparkConf.get(MAPR_TICKET_SECRET_KEY)}"
30+
31+
val maprPod = new PodBuilder(pod.pod)
32+
.editOrNewSpec()
33+
.addToVolumes(
34+
new VolumeBuilder()
35+
.withName(userSecretVolumeName)
36+
.withNewSecret()
37+
.withSecretName(userSecret)
38+
.endSecret()
39+
.build())
40+
.endSpec()
41+
.build()
5142

52-
val container = new ContainerBuilder(pod.container)
43+
val maprContainer = new ContainerBuilder(pod.container)
5344
.addAllToEnv(clusterEnvs.asJava)
54-
.addAllToEnv(maprTicketEnv.asJava)
55-
.addAllToEnv(maprSslEnv.asJava)
45+
.addNewEnv()
46+
.withName(MAPR_TICKETFILE_LOCATION)
47+
.withValue(ticketFileLocation)
48+
.endEnv()
49+
.addNewVolumeMount()
50+
.withName(userSecretVolumeName)
51+
.withMountPath(userSecretMountPath)
52+
.endVolumeMount()
5653
.addNewEnvFrom()
5754
.withNewConfigMapRef()
5855
.withName(clusterConfMap)
5956
.endConfigMapRef()
6057
.endEnvFrom()
6158
.addNewEnvFrom()
6259
.withNewSecretRef()
63-
.withName(clusterUserSecrets)
60+
.withName(userSecret)
6461
.endSecretRef()
6562
.endEnvFrom()
6663
.build()
6764

68-
SparkPod(pod.pod, container)
65+
SparkPod(maprPod, maprContainer)
6966
}
7067

7168
override def getAdditionalPodSystemProperties(): Map[String, String] = Map.empty

0 commit comments

Comments
 (0)