Author: buildbot
Date: Tue May 19 18:47:41 2015
New Revision: 951917

Log:
Staging update by buildbot for slider

Modified:
    websites/staging/slider/trunk/content/   (props changed)
    
websites/staging/slider/trunk/content/docs/slider_specs/application_pkg_docker.html

Propchange: websites/staging/slider/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Tue May 19 18:47:41 2015
@@ -1 +1 @@
-1680364
+1680371

Modified: 
websites/staging/slider/trunk/content/docs/slider_specs/application_pkg_docker.html
==============================================================================
--- 
websites/staging/slider/trunk/content/docs/slider_specs/application_pkg_docker.html
 (original)
+++ 
websites/staging/slider/trunk/content/docs/slider_specs/application_pkg_docker.html
 Tue May 19 18:47:41 2015
@@ -231,80 +231,84 @@ Latest release: <strong>0.80.0-incubatin
 
 
 <p>Below is an example of how we can use Slider to deploy a multi-component 
Dockerized application</p>
-<p><strong>appConfig.json</strong>
-<code>{
-    "schema": "http://example.org/specification/v2.0.0";,
-    "metadata": {
-    },
-    "global": {
-    },
-    "components": {
-        "REDIS": {
-            "memcached.commandPath":"/user/local/bin/docker",
-            "memcached.options":"-d -e REDIS_PASS=\"**None**\"",
-            "memcached.statusCommand":"/usr/bin/docker ps",
-             "memcached.inputFiles": [
-                   {
-                         "containerPath": "/tmp/input",
-                         "fileLocalPath": "/Users/peter/config.json"
-                   }
-             ]
-        }
-    }
-  }</code>
-Please note that in this example, we are specifying a different docker command 
path than the default <code>/usr/bin/docker</code> in appConfig.json. We also 
specify the options that we need to include in the <code>docker run</code> 
command (<code>-d</code> is by default included). This is just a demo as how to 
include docker run command options. We also need to expose a port to listen on 
for the application. Thus, we are specifying 
<code>site.global.listen_port</code> in appConfig.json and the export config in 
metainfo.json below</p>
+<p><strong>appConfig.json</strong></p>
+<div class="codehilite"><pre><span class="p">{</span>
+    &quot;<span class="n">schema</span>&quot;<span class="p">:</span> 
&quot;<span class="n">http</span><span class="p">:</span><span 
class="o">//</span><span class="n">example</span><span class="p">.</span><span 
class="n">org</span><span class="o">/</span><span 
class="n">specification</span><span class="o">/</span><span 
class="n">v2</span><span class="p">.</span>0<span 
class="p">.</span>0&quot;<span class="p">,</span> 
+    &quot;<span class="n">metadata</span>&quot;<span class="p">:</span> <span 
class="p">{</span> <span class="p">},</span> 
+    &quot;<span class="k">global</span>&quot;<span class="p">:</span> <span 
class="p">{</span> <span class="p">},</span> 
+    &quot;<span class="n">components</span>&quot;<span class="p">:</span> 
<span class="p">{</span>
+        &quot;<span class="n">REDIS</span>&quot;<span class="p">:</span> <span 
class="p">{</span>
+            &quot;<span class="n">memcached</span><span 
class="p">.</span><span class="n">commandPath</span>&quot;<span 
class="p">:</span> &quot;<span class="o">/</span><span 
class="n">user</span><span class="o">/</span><span class="n">local</span><span 
class="o">/</span><span class="n">bin</span><span class="o">/</span><span 
class="n">docker</span>&quot;<span class="p">,</span> 
+            &quot;<span class="n">memcached</span><span 
class="p">.</span><span class="n">options</span>&quot;<span class="p">:</span> 
&quot;<span class="o">-</span><span class="n">d</span> <span 
class="o">-</span><span class="n">e</span> <span 
class="n">REDIS_PASS</span><span class="p">=</span><span 
class="o">\</span>&quot;<span class="o">**</span><span 
class="n">None</span><span class="o">**\</span>&quot;&quot;<span 
class="p">,</span> 
+            &quot;<span class="n">memcached</span><span 
class="p">.</span><span class="n">statusCommand</span>&quot;<span 
class="p">:</span> &quot;<span class="o">/</span><span 
class="n">usr</span><span class="o">/</span><span class="n">bin</span><span 
class="o">/</span><span class="n">docker</span> <span 
class="n">ps</span>&quot;<span class="p">,</span> 
+            &quot;<span class="n">memcached</span><span 
class="p">.</span><span class="n">inputFiles</span>&quot;<span 
class="p">:</span> <span class="p">[</span>
+                <span class="p">{</span>
+                    &quot;<span class="n">containerPath</span>&quot;<span 
class="p">:</span> &quot;<span class="o">/</span><span 
class="n">tmp</span><span class="o">/</span><span 
class="n">input</span>&quot;<span class="p">,</span> 
+                    &quot;<span class="n">fileLocalPath</span>&quot;<span 
class="p">:</span> &quot;<span class="o">/</span><span 
class="n">Users</span><span class="o">/</span><span class="n">peter</span><span 
class="o">/</span><span class="n">config</span><span class="p">.</span><span 
class="n">json</span>&quot;
+                <span class="p">}</span>
+            <span class="p">]</span>
+        <span class="p">}</span>
+    <span class="p">}</span>
+<span class="p">}</span>
+</pre></div>
+
+
+<p>Please note that in this example, we are specifying a different docker 
command path than the default <code>/usr/bin/docker</code> in appConfig.json. 
We also specify the options that we need to include in the <code>docker 
run</code> command (<code>-d</code> is by default included). This is just a 
demo as how to include docker run command options. We also need to expose a 
port to listen on for the application. Thus, we are specifying 
<code>site.global.listen_port</code> in appConfig.json and the export config in 
metainfo.json below</p>
 <div class="codehilite"><pre><span class="n">The</span> <span 
class="n">config</span> <span class="n">structure</span> <span 
class="n">in</span> <span class="n">appConfig</span><span 
class="p">.</span><span class="n">json</span><span class="p">(</span><span 
class="n">map</span><span class="p">)</span> <span class="o">-&gt;</span> <span 
class="n">components</span><span class="p">(</span><span 
class="n">list</span><span class="p">)</span> <span class="o">-&gt;</span> 
<span class="n">component</span><span class="p">(</span><span 
class="n">map</span><span class="p">)</span> <span class="o">-&gt;</span> <span 
class="n">containers</span><span class="p">(</span><span 
class="n">list</span><span class="p">)</span><span class="o">-&gt;</span> <span 
class="n">container</span><span class="p">(</span><span 
class="n">map</span><span class="p">)</span> <span class="n">have</span> <span 
class="n">to</span> <span class="n">match</span> <span class="n">the</span> 
<span class="n">one</span> <span clas
 s="n">in</span> <span class="n">metainfo</span><span class="p">.</span><span 
class="n">json</span><span class="p">.</span>
 </pre></div>
 
 
 <p>We are also adding a few configurations for the component 
<em>memcached</em> in appConfig.json here. These configurations are runtime 
parameters of the component, as opposed to being part of the Docker image 
definition in metainfo.json.</p>
-<p><strong>metainfo.json</strong>
-<code>{
-     "schemaVersion": "2.1",
-     "application": {
-            "name": "FAKEAPP",
-            "components": [
-                {
-                    "name": "MEMCACHED",
-                    "type": "docker",
-                    "dockerContainers": [
-                        {
-                            "name": "memcached",
-                            "image": "borja/memcached",
-                            "additionalParam": "--appendonly yes",
-                            "commandPath": "/usr/bin/docker",
-                            "statusCommand": "docker inspect ${container_id}"
-                        }
-                    ]
-                },
-                {
-                    "name": "REDIS",
-                    "type": "docker",
-                    "dockerContainers": [
-                        {
-                            "name": "redis",
-                            "image": "dockerhub/redis",
-                            "additionalParam": "--appendonly yes",
-                            "commandPath": "/usr/bin/docker",
-                            "ports": [
-                                {
-                                    "containerPort" : "11211",
-                                    "hostPort": 
"${conf:configuration/global/port1}"
-                                }
-                            ],
-                            "mounts": [
-                                {
-                                    "containerMount": "/tmp/confg",
-                                    "hostMount": 
"${conf:configuration/global/app_root}/conf"
-                                }
-                            ]
-                        }
-                    ]
-                }
-            ]
-        }
-  }</code>
-Please note, in metainfo.json (we are trying to migrate from metainfo.xml to 
metainfo.json as an improvement to the packaging approach) we are adding some 
new fields in the component section to support Docker based applications:</p>
+<p><strong>metainfo.json</strong></p>
+<div class="codehilite"><pre>{
+    &quot;schemaVersion&quot;: &quot;2.1&quot;, 
+    &quot;application&quot;: {
+        &quot;name&quot;: &quot;FAKEAPP&quot;, 
+        &quot;components&quot;: [
+            {
+                &quot;name&quot;: &quot;MEMCACHED&quot;, 
+                &quot;type&quot;: &quot;docker&quot;, 
+                &quot;dockerContainers&quot;: [
+                    {
+                        &quot;name&quot;: &quot;memcached&quot;, 
+                        &quot;image&quot;: &quot;borja/memcached&quot;, 
+                        &quot;additionalParam&quot;: &quot;--appendonly 
yes&quot;, 
+                        &quot;commandPath&quot;: &quot;/usr/bin/docker&quot;, 
+                        &quot;statusCommand&quot;: &quot;docker inspect <span 
class="cp">${</span><span class="n">container_id</span><span 
class="cp">}</span>&quot;
+                    }
+                ]
+            }, 
+            {
+                &quot;name&quot;: &quot;REDIS&quot;, 
+                &quot;type&quot;: &quot;docker&quot;, 
+                &quot;dockerContainers&quot;: [
+                    {
+                        &quot;name&quot;: &quot;redis&quot;, 
+                        &quot;image&quot;: &quot;dockerhub/redis&quot;, 
+                        &quot;additionalParam&quot;: &quot;--appendonly 
yes&quot;, 
+                        &quot;commandPath&quot;: &quot;/usr/bin/docker&quot;, 
+                        &quot;ports&quot;: [
+                            {
+                                &quot;containerPort&quot;: &quot;11211&quot;, 
+                                &quot;hostPort&quot;: &quot;<span 
class="cp">${</span><span class="n">conf</span><span class="p">:</span><span 
class="n">configuration</span><span class="o">/</span><span 
class="k">global</span><span class="o">/</span><span 
class="n">port1</span><span class="cp">}</span>&quot;
+                            }
+                        ], 
+                        &quot;mounts&quot;: [
+                            {
+                                &quot;containerMount&quot;: 
&quot;/tmp/confg&quot;, 
+                                &quot;hostMount&quot;: &quot;<span 
class="cp">${</span><span class="n">conf</span><span class="p">:</span><span 
class="n">configuration</span><span class="o">/</span><span 
class="k">global</span><span class="o">/</span><span 
class="n">app_root</span><span class="cp">}</span>/conf&quot;
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    }
+}
+</pre></div>
+
+
+<p>Please note, in metainfo.json (we are trying to migrate from metainfo.xml 
to metainfo.json as an improvement to the packaging approach) we are adding 
some new fields in the component section to support Docker based 
applications:</p>
 <ul>
 <li><strong>type</strong>: if specified as <code>docker</code>, Slider will 
start Docker containers for the application; by default it is 
<code>process</code>, which means Slider will instantiate the application as 
normal process as today</li>
 <li><strong>containers/container</strong>: the Docker image of the 
application, the name of which will be specified in <code>image</code> 
field</li>
@@ -314,31 +318,29 @@ Please note, in metainfo.json (we are tr
 <li><strong>status_command</strong>: the command that Slider can use to query 
the status of the application component running in the container</li>
 <li>Properties specified in metainfo.json can be overridden in appConfig.json: 
<strong>commandPath, options, statusCommand, inputFiles, mounts, 
ports</strong></li>
 </ul>
-<p><strong>resources.json</strong>
-```
-{
-  "schema" : "http://example.org/specification/v2.0.0";,
-  "metadata" : {
-  },
-  "global" : {
-  },
-  "components": {
-    "slider-appmaster": {
-    },
-    "REDIS": {
-      "yarn.role.priority": "1",
-      "yarn.component.instances": "2",
-      "yarn.memory": "512"
-    },
-    "MEMCACHED": {
-      "yarn.role.priority": "1",
-      "yarn.component.instances": "2",
-      "yarn.memory": "512"
-    }</p>
-<p>}
-}
-<code>``
-With the configuration files above, Slider will ask for the required number of 
containers from YARN, as specified in resources.json. In each of those YARN 
containers, Slider will run</code>docker pull<code>to download the Docker image 
specified in metainfo.json. In the scope of this JIRA ticket, we are not 
supporting Docker images stored in private Docker hubs that require credentials 
to run docker pull. After downloading completes, Slider will start the 
containers by running, in this case,</code>/usr/bin/docker run -d 
borja/memcached`</p>
+<p><strong>resources.json</strong></p>
+<div class="codehilite"><pre><span class="p">{</span>
+    &quot;<span class="n">schema</span>&quot;<span class="p">:</span> 
&quot;<span class="n">http</span><span class="p">:</span><span 
class="o">//</span><span class="n">example</span><span class="p">.</span><span 
class="n">org</span><span class="o">/</span><span 
class="n">specification</span><span class="o">/</span><span 
class="n">v2</span><span class="p">.</span>0<span 
class="p">.</span>0&quot;<span class="p">,</span> 
+    &quot;<span class="n">metadata</span>&quot;<span class="p">:</span> <span 
class="p">{</span> <span class="p">},</span> 
+    &quot;<span class="k">global</span>&quot;<span class="p">:</span> <span 
class="p">{</span> <span class="p">},</span> 
+    &quot;<span class="n">components</span>&quot;<span class="p">:</span> 
<span class="p">{</span>
+        &quot;<span class="n">slider</span><span class="o">-</span><span 
class="n">appmaster</span>&quot;<span class="p">:</span> <span 
class="p">{</span> <span class="p">},</span> 
+        &quot;<span class="n">REDIS</span>&quot;<span class="p">:</span> <span 
class="p">{</span>
+            &quot;<span class="n">yarn</span><span class="p">.</span><span 
class="n">role</span><span class="p">.</span><span 
class="n">priority</span>&quot;<span class="p">:</span> &quot;1&quot;<span 
class="p">,</span> 
+            &quot;<span class="n">yarn</span><span class="p">.</span><span 
class="n">component</span><span class="p">.</span><span 
class="n">instances</span>&quot;<span class="p">:</span> &quot;2&quot;<span 
class="p">,</span> 
+            &quot;<span class="n">yarn</span><span class="p">.</span><span 
class="n">memory</span>&quot;<span class="p">:</span> &quot;512&quot;
+        <span class="p">},</span> 
+        &quot;<span class="n">MEMCACHED</span>&quot;<span class="p">:</span> 
<span class="p">{</span>
+            &quot;<span class="n">yarn</span><span class="p">.</span><span 
class="n">role</span><span class="p">.</span><span 
class="n">priority</span>&quot;<span class="p">:</span> &quot;1&quot;<span 
class="p">,</span> 
+            &quot;<span class="n">yarn</span><span class="p">.</span><span 
class="n">component</span><span class="p">.</span><span 
class="n">instances</span>&quot;<span class="p">:</span> &quot;2&quot;<span 
class="p">,</span> 
+            &quot;<span class="n">yarn</span><span class="p">.</span><span 
class="n">memory</span>&quot;<span class="p">:</span> &quot;512&quot;
+        <span class="p">}</span>
+    <span class="p">}</span>
+<span class="p">}</span>
+</pre></div>
+
+
+<p>With the configuration files above, Slider will ask for the required number 
of containers from YARN, as specified in resources.json. In each of those YARN 
containers, Slider will run <code>docker pull</code> to download the Docker 
image specified in metainfo.json. In the scope of this JIRA ticket, we are not 
supporting Docker images stored in private Docker hubs that require credentials 
to run docker pull. After downloading completes, Slider will start the 
containers by running, in this case, <code>/usr/bin/docker run -d 
borja/memcached</code></p>
 <ul>
 <li>For redis components, it will run:</li>
 </ul>


Reply via email to