This is an automated email from the ASF dual-hosted git repository.

markusthoemmes pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-openwhisk.git


The following commit(s) were added to refs/heads/master by this push:
     new 8e45921  Improve container factory documentation (#4255)
8e45921 is described below

commit 8e459219a7e8557ccec08e9aebb2707eab5d4c3f
Author: Sven Lange-Last <sven.lange-l...@de.ibm.com>
AuthorDate: Thu Feb 21 10:50:32 2019 +0100

    Improve container factory documentation (#4255)
    
    * Improve container factory documentation
    
    Explicitly list some of the expectations and requirements an actual 
container factory / container implementation needs to satisfy. Addresses #4002.
    
    * Address review feedback
---
 .../core/containerpool/ContainerFactory.scala       | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

diff --git 
a/common/scala/src/main/scala/org/apache/openwhisk/core/containerpool/ContainerFactory.scala
 
b/common/scala/src/main/scala/org/apache/openwhisk/core/containerpool/ContainerFactory.scala
index ad78ce2..eeb37f3 100644
--- 
a/common/scala/src/main/scala/org/apache/openwhisk/core/containerpool/ContainerFactory.scala
+++ 
b/common/scala/src/main/scala/org/apache/openwhisk/core/containerpool/ContainerFactory.scala
@@ -52,7 +52,26 @@ case class ContainerPoolConfig(userMemory: ByteSize, 
concurrentPeekFactor: Doubl
  */
 trait ContainerFactory {
 
-  /** create a new Container */
+  /**
+   * Create a new Container
+   *
+   * The created container has to satisfy following requirements:
+   * - The container's file system is based on the provided action image and 
may have a read/write layer on top.
+   *   Some managed action runtimes may need the capability to write files.
+   * - If the specified image is not available on the system, it is pulled 
from an image
+   *   repository - for example, Docker Hub.
+   * - The container needs a network setup - usually, a network interface - 
such that the invoker is able
+   *   to connect the action container. The container must be able to perform 
DNS resolution based
+   *   on the settings provided via ContainerArgsConfig. If needed by action 
authors,
+   *   the container should be able to connect to other systems or even the 
internet to consume services.
+   * - The IP address of said interface is stored in the created Container 
instance if you want to use
+   *   the standard init / run behaviour defined in the Container trait.
+   * - The default process specified in the action image is run.
+   * - It is desired that all stdout / stderr written by processes in the 
container is captured such
+   *   that it can be obtained using the logs() method of the Container trait.
+   * - It is desired that the container supports and enforces the specified 
memory limit and CPU shares.
+   *   In particular, action memory limits rely on the underlying container 
technology.
+   */
   def createContainer(tid: TransactionId,
                       name: String,
                       actionImage: ExecManifest.ImageName,

Reply via email to