Himavanth closed pull request #4086: Making mesos task healthcheck configurable URL: https://github.com/apache/incubator-openwhisk/pull/4086
This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/common/scala/build.gradle b/common/scala/build.gradle index c6eb0051c0..8572b1e6d1 100644 --- a/common/scala/build.gradle +++ b/common/scala/build.gradle @@ -64,7 +64,7 @@ dependencies { compile 'io.kamon:kamon-core_2.11:0.6.7' compile 'io.kamon:kamon-statsd_2.11:0.6.7' //for mesos - compile 'com.adobe.api.platform.runtime:mesos-actor:0.0.8' + compile 'com.adobe.api.platform.runtime:mesos-actor:0.0.9' //tracing support compile 'io.opentracing:opentracing-api:0.31.0' diff --git a/common/scala/src/main/resources/application.conf b/common/scala/src/main/resources/application.conf index b7afb0415f..739535dce4 100644 --- a/common/scala/src/main/resources/application.conf +++ b/common/scala/src/main/resources/application.conf @@ -237,6 +237,15 @@ whisk { blackbox-constraints = [] //placement constraints to use for blackbox containers constraint-delimiter = " "//used to parse constraint strings teardown-on-exit = true //set to true to disable the mesos framework on system exit; set for false for HA deployments + #Remove health-section section to disable it + health-check { + health-check-port-index = 0 + delay = 0 + interval = 1 + timeout = 1 + grace-period = 25 + max-consecutive-failures = 3 + } } logstore { diff --git a/common/scala/src/main/scala/whisk/core/mesos/MesosContainerFactory.scala b/common/scala/src/main/scala/whisk/core/mesos/MesosContainerFactory.scala index 474361a2e5..0d1b169c57 100644 --- a/common/scala/src/main/scala/whisk/core/mesos/MesosContainerFactory.scala +++ b/common/scala/src/main/scala/whisk/core/mesos/MesosContainerFactory.scala @@ -20,16 +20,11 @@ package whisk.core.mesos import akka.actor.ActorRef import akka.actor.ActorSystem import akka.pattern.ask -import com.adobe.api.platform.runtime.mesos.Constraint -import com.adobe.api.platform.runtime.mesos.LIKE -import com.adobe.api.platform.runtime.mesos.LocalTaskStore -import com.adobe.api.platform.runtime.mesos.MesosClient -import com.adobe.api.platform.runtime.mesos.Subscribe -import com.adobe.api.platform.runtime.mesos.SubscribeComplete -import com.adobe.api.platform.runtime.mesos.Teardown -import com.adobe.api.platform.runtime.mesos.UNLIKE +import com.adobe.api.platform.runtime.mesos._ import java.time.Instant + import pureconfig.loadConfigOrThrow + import scala.concurrent.Await import scala.concurrent.ExecutionContext import scala.concurrent.Future @@ -66,7 +61,8 @@ case class MesosConfig(masterUrl: String, constraints: Seq[String], constraintDelimiter: String, blackboxConstraints: Seq[String], - teardownOnExit: Boolean) {} + teardownOnExit: Boolean, + healthCheck: Option[HealthCheckConfig] = None) {} class MesosContainerFactory(config: WhiskConfig, actorSystem: ActorSystem, diff --git a/common/scala/src/main/scala/whisk/core/mesos/MesosTask.scala b/common/scala/src/main/scala/whisk/core/mesos/MesosTask.scala index 9b21903a24..119f2df0cc 100644 --- a/common/scala/src/main/scala/whisk/core/mesos/MesosTask.scala +++ b/common/scala/src/main/scala/whisk/core/mesos/MesosTask.scala @@ -23,18 +23,12 @@ import akka.pattern.ask import akka.stream.scaladsl.Source import akka.util.ByteString import akka.util.Timeout -import com.adobe.api.platform.runtime.mesos.Bridge -import com.adobe.api.platform.runtime.mesos.CommandDef -import com.adobe.api.platform.runtime.mesos.Constraint -import com.adobe.api.platform.runtime.mesos.DeleteTask -import com.adobe.api.platform.runtime.mesos.Host -import com.adobe.api.platform.runtime.mesos.Running -import com.adobe.api.platform.runtime.mesos.SubmitTask -import com.adobe.api.platform.runtime.mesos.TaskDef -import com.adobe.api.platform.runtime.mesos.User +import com.adobe.api.platform.runtime.mesos._ import java.time.Instant + import org.apache.mesos.v1.Protos.TaskState import org.apache.mesos.v1.Protos.TaskStatus + import scala.concurrent.ExecutionContext import scala.concurrent.Future import scala.concurrent.duration._ @@ -103,7 +97,7 @@ object MesosTask { mesosCpuShares, mesosRam, List(8080), // all action containers listen on 8080 - Some(0), // port at index 0 used for health + mesosConfig.healthCheck, false, taskNetwork, dnsOrEmpty ++ parameters, diff --git a/tests/src/test/scala/whisk/core/containerpool/mesos/test/MesosContainerFactoryTest.scala b/tests/src/test/scala/whisk/core/containerpool/mesos/test/MesosContainerFactoryTest.scala index d5187ed833..8313bd5c77 100644 --- a/tests/src/test/scala/whisk/core/containerpool/mesos/test/MesosContainerFactoryTest.scala +++ b/tests/src/test/scala/whisk/core/containerpool/mesos/test/MesosContainerFactoryTest.scala @@ -146,7 +146,7 @@ class MesosContainerFactoryTest mesosCpus, actionMemory.toMB.toInt, List(8080), - Some(0), + None, false, User("net1"), Map( @@ -195,7 +195,7 @@ class MesosContainerFactoryTest mesosCpus, actionMemory.toMB.toInt, List(8080), - Some(0), + None, false, User("net1"), Map( @@ -267,7 +267,7 @@ class MesosContainerFactoryTest mesosCpus, actionMemory.toMB.toInt, List(8080), - Some(0), + None, false, Bridge, Map( ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services