openwhisk-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From markusthoem...@apache.org
Subject [incubator-openwhisk] branch master updated: Improve container factory documentation (#4255)
Date Thu, 21 Feb 2019 09:50:38 GMT
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-last@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,


Mime
View raw message