Skip to content

Commit aa6cfcb

Browse files
committed
Add missing resourceTags and imagePullSecret
1 parent 02df5f4 commit aa6cfcb

File tree

3 files changed

+17
-12
lines changed

3 files changed

+17
-12
lines changed

core/invoker/src/main/scala/org/apache/openwhisk/core/containerpool/kubernetes/KubernetesClient.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,8 @@ class KubernetesClient(
143143
resourceTags: Option[List[String]],
144144
imagePullSecret: Option[String] = None)(implicit transid: TransactionId): Future[KubernetesContainer] = {
145145

146-
val (pod, pdb) = podBuilder.buildPodSpec(name, image, memory, environment, labels, config, resourceTags)
146+
val (pod, pdb) =
147+
podBuilder.buildPodSpec(name, image, memory, environment, labels, config, resourceTags, imagePullSecret)
147148
if (transid.meta.extraLogging) {
148149
log.info(this, s"Pod spec being created\n${Serialization.asYaml(pod)}")
149150
}

core/invoker/src/main/scala/org/apache/openwhisk/core/containerpool/kubernetes/KubernetesContainer.scala

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -61,23 +61,26 @@ object KubernetesContainer {
6161
memory: ByteSize = 256.MB,
6262
environment: Map[String, String] = Map.empty,
6363
labels: Map[String, String] = Map.empty,
64-
resourceTags: Option[List[String]] = None)(implicit kubernetes: KubernetesApi,
65-
ec: ExecutionContext,
66-
log: Logging): Future[KubernetesContainer] = {
64+
resourceTags: Option[List[String]] = None,
65+
imagePullSecret: Option[String] = None)(implicit kubernetes: KubernetesApi,
66+
ec: ExecutionContext,
67+
log: Logging): Future[KubernetesContainer] = {
6768
implicit val tid = transid
6869

6970
// Kubernetes naming rule allows maximum length of 63 character and ended with character only.
7071
val origName = name.replace("_", "-").replaceAll("[()]", "").toLowerCase.take(63)
7172
val podName = if (origName.endsWith("-")) origName.reverse.dropWhile(_ == '-').reverse else origName
7273

7374
for {
74-
container <- kubernetes.run(podName, image, memory, environment, labels, resourceTags).recoverWith {
75-
case e: KubernetesPodApiException =>
76-
//apiserver call failed - this will expose a different error to users
77-
cleanupFailedPod(e, podName, WhiskContainerStartupError(Messages.resourceProvisionError))
78-
case e: Throwable =>
79-
cleanupFailedPod(e, podName, WhiskContainerStartupError(s"Failed to run container with image '${image}'."))
80-
}
75+
container <- kubernetes
76+
.run(podName, image, memory, environment, labels, resourceTags, imagePullSecret)
77+
.recoverWith {
78+
case e: KubernetesPodApiException =>
79+
//apiserver call failed - this will expose a different error to users
80+
cleanupFailedPod(e, podName, WhiskContainerStartupError(Messages.resourceProvisionError))
81+
case e: Throwable =>
82+
cleanupFailedPod(e, podName, WhiskContainerStartupError(s"Failed to run container with image '${image}'."))
83+
}
8184
} yield container
8285
}
8386
private def cleanupFailedPod(e: Throwable, podName: String, failureCause: Exception)(

core/invoker/src/main/scala/org/apache/openwhisk/core/containerpool/kubernetes/WhiskPodBuilder.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,8 @@ class WhiskPodBuilder(client: NamespacedKubernetesClient, config: KubernetesClie
5252
environment: Map[String, String],
5353
labels: Map[String, String],
5454
config: KubernetesClientConfig,
55-
resourceTags: Option[List[String]] = None)(implicit transid: TransactionId): (Pod, Option[PodDisruptionBudget]) = {
55+
resourceTags: Option[List[String]] = None,
56+
imagePullSecret: Option[String] = None)(implicit transid: TransactionId): (Pod, Option[PodDisruptionBudget]) = {
5657
val envVars = environment.map {
5758
case (key, value) => new EnvVarBuilder().withName(key).withValue(value).build()
5859
}.toSeq ++ config.fieldRefEnvironment

0 commit comments

Comments
 (0)