Added: 
aurora/site/publish/documentation/0.17.0/reference/configuration/index.html
URL: 
http://svn.apache.org/viewvc/aurora/site/publish/documentation/0.17.0/reference/configuration/index.html?rev=1783940&view=auto
==============================================================================
--- aurora/site/publish/documentation/0.17.0/reference/configuration/index.html 
(added)
+++ aurora/site/publish/documentation/0.17.0/reference/configuration/index.html 
Tue Feb 21 20:54:58 2017
@@ -0,0 +1,1235 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+       <title>Apache Aurora</title>
+    <link rel="stylesheet" 
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css";>
+    <link href="/assets/css/main.css" rel="stylesheet">
+       <!-- Analytics -->
+       <script type="text/javascript">
+                 var _gaq = _gaq || [];
+                 _gaq.push(['_setAccount', 'UA-45879646-1']);
+                 _gaq.push(['_setDomainName', 'apache.org']);
+                 _gaq.push(['_trackPageview']);
+
+                 (function() {
+                   var ga = document.createElement('script'); ga.type = 
'text/javascript'; ga.async = true;
+                   ga.src = ('https:' == document.location.protocol ? 
'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+                   var s = document.getElementsByTagName('script')[0]; 
s.parentNode.insertBefore(ga, s);
+                 })();
+       </script>
+  </head>
+  <body>
+    <div class="container-fluid section-header">
+  <div class="container">
+    <div class="nav nav-bar">
+    <a href="/"><img src="/assets/img/aurora_logo_dkbkg.svg" width="300" 
alt="Transparent Apache Aurora logo with dark background"/></a>
+    <ul class="nav navbar-nav navbar-right">
+      <li><a href="/documentation/latest/">Documentation</a></li>
+      <li><a href="/community/">Community</a></li>
+      <li><a href="/downloads/">Downloads</a></li>
+      <li><a href="/blog/">Blog</a></li>
+    </ul>
+    </div>
+  </div>
+</div>
+       
+    <div class="container-fluid">
+      <div class="container content">
+        <div class="col-md-12 documentation">
+<h5 class="page-header text-uppercase">Documentation
+<select onChange="window.location.href='/documentation/' + this.value + 
'/reference/configuration/'"
+        value="0.17.0">
+  <option value="0.17.0"
+    selected="selected">
+    0.17.0
+      (latest)
+  </option>
+  <option value="0.16.0"
+    >
+    0.16.0
+  </option>
+  <option value="0.15.0"
+    >
+    0.15.0
+  </option>
+  <option value="0.14.0"
+    >
+    0.14.0
+  </option>
+  <option value="0.13.0"
+    >
+    0.13.0
+  </option>
+  <option value="0.12.0"
+    >
+    0.12.0
+  </option>
+  <option value="0.11.0"
+    >
+    0.11.0
+  </option>
+  <option value="0.10.0"
+    >
+    0.10.0
+  </option>
+  <option value="0.9.0"
+    >
+    0.9.0
+  </option>
+  <option value="0.8.0"
+    >
+    0.8.0
+  </option>
+  <option value="0.7.0-incubating"
+    >
+    0.7.0-incubating
+  </option>
+  <option value="0.6.0-incubating"
+    >
+    0.6.0-incubating
+  </option>
+  <option value="0.5.0-incubating"
+    >
+    0.5.0-incubating
+  </option>
+</select>
+</h5>
+<h1 id="aurora-configuration-reference">Aurora Configuration Reference</h1>
+
+<p>Don&rsquo;t know where to start? The Aurora configuration schema is very
+powerful, and configurations can become quite complex for advanced use
+cases.</p>
+
+<p>For examples of simple configurations to get something up and running
+quickly, check out the <a href="../../getting-started/tutorial/">Tutorial</a>. 
When you feel comfortable with the basics, move
+on to the <a href="../configuration-tutorial/">Configuration Tutorial</a> for 
more in-depth coverage of
+configuration design.</p>
+
+<ul>
+<li><a href="#process-schema">Process Schema</a>
+
+<ul>
+<li><a href="#process-objects">Process Objects</a></li>
+</ul></li>
+<li><a href="#task-schema">Task Schema</a>
+
+<ul>
+<li><a href="#task-object">Task Object</a></li>
+<li><a href="#constraint-object">Constraint Object</a></li>
+<li><a href="#resource-object">Resource Object</a></li>
+</ul></li>
+<li><a href="#job-schema">Job Schema</a>
+
+<ul>
+<li><a href="#job-objects">Job Objects</a></li>
+<li><a href="#updateconfig-objects">UpdateConfig Objects</a></li>
+<li><a href="#healthcheckconfig-objects">HealthCheckConfig Objects</a></li>
+<li><a href="#announcer-objects">Announcer Objects</a></li>
+<li><a href="#container">Container Objects</a></li>
+<li><a href="#lifecycleconfig-objects">LifecycleConfig Objects</a></li>
+</ul></li>
+<li><a href="#specifying-scheduling-constraints">Specifying Scheduling 
Constraints</a></li>
+<li><a href="#template-namespaces">Template Namespaces</a>
+
+<ul>
+<li><a href="#mesos-namespace">mesos Namespace</a></li>
+<li><a href="#thermos-namespace">thermos Namespace</a></li>
+</ul></li>
+</ul>
+
+<h1 id="process-schema">Process Schema</h1>
+
+<p>Process objects consist of required <code>name</code> and 
<code>cmdline</code> attributes. You can customize Process
+behavior with its optional attributes. Remember, Processes are handled by 
Thermos.</p>
+
+<h3 id="process-objects">Process Objects</h3>
+
+<table><thead>
+<tr>
+<th><strong>Attribute Name</strong></th>
+<th style="text-align: center"><strong>Type</strong></th>
+<th><strong>Description</strong></th>
+</tr>
+</thead><tbody>
+<tr>
+<td><strong>name</strong></td>
+<td style="text-align: center">String</td>
+<td>Process name (Required)</td>
+</tr>
+<tr>
+<td><strong>cmdline</strong></td>
+<td style="text-align: center">String</td>
+<td>Command line (Required)</td>
+</tr>
+<tr>
+<td><strong>max_failures</strong></td>
+<td style="text-align: center">Integer</td>
+<td>Maximum process failures (Default: 1)</td>
+</tr>
+<tr>
+<td><strong>daemon</strong></td>
+<td style="text-align: center">Boolean</td>
+<td>When True, this is a daemon process. (Default: False)</td>
+</tr>
+<tr>
+<td><strong>ephemeral</strong></td>
+<td style="text-align: center">Boolean</td>
+<td>When True, this is an ephemeral process. (Default: False)</td>
+</tr>
+<tr>
+<td><strong>min_duration</strong></td>
+<td style="text-align: center">Integer</td>
+<td>Minimum duration between process restarts in seconds. (Default: 15)</td>
+</tr>
+<tr>
+<td><strong>final</strong></td>
+<td style="text-align: center">Boolean</td>
+<td>When True, this process is a finalizing one that should run last. 
(Default: False)</td>
+</tr>
+<tr>
+<td><strong>logger</strong></td>
+<td style="text-align: center">Logger</td>
+<td>Struct defining the log behavior for the process. (Default: Empty)</td>
+</tr>
+</tbody></table>
+
+<h4 id="name">name</h4>
+
+<p>The name is any valid UNIX filename string (specifically no
+slashes, NULLs or leading periods). Within a Task object, each Process name
+must be unique.</p>
+
+<h4 id="cmdline">cmdline</h4>
+
+<p>The command line run by the process. The command line is invoked in a bash
+subshell, so can involve fully-blown bash scripts. However, nothing is
+supplied for command-line arguments so <code>$*</code> is unspecified.</p>
+
+<h4 id="max_failures">max_failures</h4>
+
+<p>The maximum number of failures (non-zero exit statuses) this process can
+have before being marked permanently failed and not retried. If a
+process permanently fails, Thermos looks at the failure limit of the task
+containing the process (usually 1) to determine if the task has
+failed as well.</p>
+
+<p>Setting <code>max_failures</code> to 0 makes the process retry
+indefinitely until it achieves a successful (zero) exit status.
+It retries at most once every <code>min_duration</code> seconds to prevent
+an effective denial of service attack on the coordinating Thermos 
scheduler.</p>
+
+<h4 id="daemon">daemon</h4>
+
+<p>By default, Thermos processes are non-daemon. If <code>daemon</code> is set 
to True, a
+successful (zero) exit status does not prevent future process runs.
+Instead, the process reinvokes after <code>min_duration</code> seconds.
+However, the maximum failure limit still applies. A combination of
+<code>daemon=True</code> and <code>max_failures=0</code> causes a process to 
retry
+indefinitely regardless of exit status. This should be avoided
+for very short-lived processes because of the accumulation of
+checkpointed state for each process run. When running in Mesos
+specifically, <code>max_failures</code> is capped at 100.</p>
+
+<h4 id="ephemeral">ephemeral</h4>
+
+<p>By default, Thermos processes are non-ephemeral. If <code>ephemeral</code> 
is set to
+True, the process&rsquo; status is not used to determine if its containing task
+has completed. For example, consider a task with a non-ephemeral
+webserver process and an ephemeral logsaver process
+that periodically checkpoints its log files to a centralized data store.
+The task is considered finished once the webserver process has
+completed, regardless of the logsaver&rsquo;s current status.</p>
+
+<h4 id="min_duration">min_duration</h4>
+
+<p>Processes may succeed or fail multiple times during a single task&rsquo;s
+duration. Each of these is called a <em>process run</em>. 
<code>min_duration</code> is
+the minimum number of seconds the scheduler waits before running the
+same process.</p>
+
+<h4 id="final">final</h4>
+
+<p>Processes can be grouped into two classes: ordinary processes and
+finalizing processes. By default, Thermos processes are ordinary. They
+run as long as the task is considered healthy (i.e., no failure
+limits have been reached.) But once all regular Thermos processes
+finish or the task reaches a certain failure threshold, it
+moves into a &ldquo;finalization&rdquo; stage and runs all finalizing
+processes. These are typically processes necessary for cleaning up the
+task, such as log checkpointers, or perhaps e-mail notifications that
+the task completed.</p>
+
+<p>Finalizing processes may not depend upon ordinary processes or
+vice-versa, however finalizing processes may depend upon other
+finalizing processes and otherwise run as a typical process
+schedule.</p>
+
+<h4 id="logger">logger</h4>
+
+<p>The default behavior of Thermos is to store stderr/stdout logs in files 
which grow unbounded.
+In the event that you have large log volume, you may want to configure Thermos 
to automatically
+rotate logs after they grow to a certain size, which can prevent your job from 
using more than its
+allocated disk space.</p>
+
+<p>Logger objects specify a <code>destination</code> for Process logs which 
is, by default, <code>file</code> - a pair of
+<code>stdout</code> and <code>stderr</code> files. Its also possible to 
specify <code>console</code> to get logs output to
+the Process stdout and stderr streams, <code>none</code> to suppress any logs 
output or <code>both</code> to send logs to
+files and console streams.</p>
+
+<p>The default Logger <code>mode</code> is <code>standard</code> which lets 
the stdout and stderr streams grow without bound.</p>
+
+<table><thead>
+<tr>
+<th><strong>Attribute Name</strong></th>
+<th style="text-align: center"><strong>Type</strong></th>
+<th><strong>Description</strong></th>
+</tr>
+</thead><tbody>
+<tr>
+<td><strong>destination</strong></td>
+<td style="text-align: center">LoggerDestination</td>
+<td>Destination of logs. (Default: <code>file</code>)</td>
+</tr>
+<tr>
+<td><strong>mode</strong></td>
+<td style="text-align: center">LoggerMode</td>
+<td>Mode of the logger. (Default: <code>standard</code>)</td>
+</tr>
+<tr>
+<td><strong>rotate</strong></td>
+<td style="text-align: center">RotatePolicy</td>
+<td>An optional rotation policy. (Default: <code>Empty</code>)</td>
+</tr>
+</tbody></table>
+
+<p>A RotatePolicy describes log rotation behavior for when <code>mode</code> 
is set to <code>rotate</code> and it is ignored
+otherwise. If <code>rotate</code> is <code>Empty</code> or 
<code>RotatePolicy()</code> when the <code>mode</code> is set to 
<code>rotate</code> the
+defaults below are used.</p>
+
+<table><thead>
+<tr>
+<th><strong>Attribute Name</strong></th>
+<th style="text-align: center"><strong>Type</strong></th>
+<th><strong>Description</strong></th>
+</tr>
+</thead><tbody>
+<tr>
+<td><strong>log_size</strong></td>
+<td style="text-align: center">Integer</td>
+<td>Maximum size (in bytes) of an individual log file. (Default: 100 MiB)</td>
+</tr>
+<tr>
+<td><strong>backups</strong></td>
+<td style="text-align: center">Integer</td>
+<td>The maximum number of backups to retain. (Default: 5)</td>
+</tr>
+</tbody></table>
+
+<p>An example process configuration is as follows:</p>
+<pre class="highlight plaintext"><code>    process = Process(
+      name='process',
+      logger=Logger(
+        destination=LoggerDestination('both'),
+        mode=LoggerMode('rotate'),
+        rotate=RotatePolicy(log_size=5*MB, backups=5)
+      )
+    )
+</code></pre>
+
+<h1 id="task-schema">Task Schema</h1>
+
+<p>Tasks fundamentally consist of a <code>name</code> and a list of Process 
objects stored as the
+value of the <code>processes</code> attribute. Processes can be further 
constrained with
+<code>constraints</code>. By default, <code>name</code>&rsquo;s value inherits 
from the first Process in the
+<code>processes</code> list, so for simple <code>Task</code> objects with one 
Process, <code>name</code>
+can be omitted. In Mesos, <code>resources</code> is also required.</p>
+
+<h3 id="task-object">Task Object</h3>
+
+<table><thead>
+<tr>
+<th><strong>param</strong></th>
+<th style="text-align: center"><strong>type</strong></th>
+<th><strong>description</strong></th>
+</tr>
+</thead><tbody>
+<tr>
+<td><code>name</code></td>
+<td style="text-align: center">String</td>
+<td>Process name (Required) (Default: <code>processes0.name</code>)</td>
+</tr>
+<tr>
+<td><code>processes</code></td>
+<td style="text-align: center">List of <code>Process</code> objects</td>
+<td>List of <code>Process</code> objects bound to this task. (Required)</td>
+</tr>
+<tr>
+<td><code>constraints</code></td>
+<td style="text-align: center">List of <code>Constraint</code> objects</td>
+<td>List of <code>Constraint</code> objects constraining processes.</td>
+</tr>
+<tr>
+<td><code>resources</code></td>
+<td style="text-align: center"><code>Resource</code> object</td>
+<td>Resource footprint. (Required)</td>
+</tr>
+<tr>
+<td><code>max_failures</code></td>
+<td style="text-align: center">Integer</td>
+<td>Maximum process failures before being considered failed (Default: 1)</td>
+</tr>
+<tr>
+<td><code>max_concurrency</code></td>
+<td style="text-align: center">Integer</td>
+<td>Maximum number of concurrent processes (Default: 0, unlimited 
concurrency.)</td>
+</tr>
+<tr>
+<td><code>finalization_wait</code></td>
+<td style="text-align: center">Integer</td>
+<td>Amount of time allocated for finalizing processes, in seconds. (Default: 
30)</td>
+</tr>
+</tbody></table>
+
+<h4 id="name">name</h4>
+
+<p><code>name</code> is a string denoting the name of this task. It defaults 
to the name of the first Process in
+the list of Processes associated with the <code>processes</code> attribute.</p>
+
+<h4 id="processes">processes</h4>
+
+<p><code>processes</code> is an unordered list of <code>Process</code> 
objects. To constrain the order
+in which they run, use <code>constraints</code>.</p>
+
+<h5 id="constraints">constraints</h5>
+
+<p>A list of <code>Constraint</code> objects. Currently it supports only one 
type,
+the <code>order</code> constraint. <code>order</code> is a list of process 
names
+that should run in the order given. For example,</p>
+<pre class="highlight plaintext"><code>    process = Process(cmdline = "echo 
hello {{name}}")
+    task = Task(name = "echoes",
+                processes = [process(name = "jim"), process(name = "bob")],
+                constraints = [Constraint(order = ["jim", "bob"]))
+</code></pre>
+
+<p>Constraints can be supplied ad-hoc and in duplicate. Not all
+Processes need be constrained, however Tasks with cycles are
+rejected by the Thermos scheduler.</p>
+
+<p>Use the <code>order</code> function as shorthand to generate 
<code>Constraint</code> lists.
+The following:</p>
+<pre class="highlight plaintext"><code>    order(process1, process2)
+</code></pre>
+
+<p>is shorthand for</p>
+<pre class="highlight plaintext"><code>    [Constraint(order = 
[process1.name(), process2.name()])]
+</code></pre>
+
+<p>The <code>order</code> function accepts Process name strings 
<code>(&#39;foo&#39;, &#39;bar&#39;)</code> or the processes
+themselves, e.g. <code>foo=Process(name=&#39;foo&#39;, ...)</code>, 
<code>bar=Process(name=&#39;bar&#39;, ...)</code>,
+<code>constraints=order(foo, bar)</code>.</p>
+
+<h4 id="resources">resources</h4>
+
+<p>Takes a <code>Resource</code> object, which specifies the amounts of CPU, 
memory, and disk space resources
+to allocate to the Task.</p>
+
+<h4 id="max_failures">max_failures</h4>
+
+<p><code>max_failures</code> is the number of failed processes needed for the 
<code>Task</code> to be
+marked as failed.</p>
+
+<p>For example, assume a Task has two Processes and a 
<code>max_failures</code> value of <code>2</code>:</p>
+<pre class="highlight plaintext"><code>    template = Process(max_failures=10)
+    task = Task(
+      name = "fail",
+      processes = [
+         template(name = "failing", cmdline = "exit 1"),
+         template(name = "succeeding", cmdline = "exit 0")
+      ],
+      max_failures=2)
+</code></pre>
+
+<p>The <code>failing</code> Process could fail 10 times before being marked as 
permanently
+failed, and the <code>succeeding</code> Process could succeed on the first 
run. However,
+the task would succeed despite only allowing for two failed processes. To be 
more
+specific, there would be 10 failed process runs yet 1 failed process. Both 
processes
+would have to fail for the Task to fail.</p>
+
+<h4 id="max_concurrency">max_concurrency</h4>
+
+<p>For Tasks with a number of expensive but otherwise independent
+processes, you may want to limit the amount of concurrency
+the Thermos scheduler provides rather than artificially constraining
+it via <code>order</code> constraints. For example, a test framework may
+generate a task with 100 test run processes, but wants to run it on
+a machine with only 4 cores. You can limit the amount of parallelism to
+4 by setting <code>max_concurrency=4</code> in your task configuration.</p>
+
+<p>For example, the following task spawns 180 Processes (&ldquo;mappers&rdquo;)
+to compute individual elements of a 180 degree sine table, all dependent
+upon one final Process (&ldquo;reducer&rdquo;) to tabulate the results:</p>
+<pre class="highlight plaintext"><code>def make_mapper(id):
+  return Process(
+    name = "mapper%03d" % id,
+    cmdline = "echo 'scale=50;s(%d\*4\*a(1)/180)' | bc -l &gt;
+               temp.sine_table.%03d" % (id, id))
+
+def make_reducer():
+  return Process(name = "reducer", cmdline = "cat temp.\* | nl \&gt; 
sine\_table.txt
+                 &amp;&amp; rm -f temp.\*")
+
+processes = map(make_mapper, range(180))
+
+task = Task(
+  name = "mapreduce",
+  processes = processes + [make\_reducer()],
+  constraints = [Constraint(order = [mapper.name(), 'reducer']) for mapper
+                 in processes],
+  max_concurrency = 8)
+</code></pre>
+
+<h4 id="finalization_wait">finalization_wait</h4>
+
+<p>Process execution is organizued into three active stages: 
<code>ACTIVE</code>,
+<code>CLEANING</code>, and <code>FINALIZING</code>. The <code>ACTIVE</code> 
stage is when ordinary processes run.
+This stage lasts as long as Processes are running and the Task is healthy.
+The moment either all Processes have finished successfully or the Task has 
reached a
+maximum Process failure limit, it goes into <code>CLEANING</code> stage and 
send
+SIGTERMs to all currently running Processes and their process trees.
+Once all Processes have terminated, the Task goes into <code>FINALIZING</code> 
stage
+and invokes the schedule of all Processes with the &ldquo;final&rdquo; 
attribute set to True.</p>
+
+<p>This whole process from the end of <code>ACTIVE</code> stage to the end of 
<code>FINALIZING</code>
+must happen within <code>finalization_wait</code> seconds. If it does not
+finish during that time, all remaining Processes are sent SIGKILLs
+(or if they depend upon uncompleted Processes, are
+never invoked.)</p>
+
+<p>When running on Aurora, the <code>finalization_wait</code> is capped at 60 
seconds.</p>
+
+<h3 id="constraint-object">Constraint Object</h3>
+
+<p>Current constraint objects only support a single ordering constraint, 
<code>order</code>,
+which specifies its processes run sequentially in the order given. By
+default, all processes run in parallel when bound to a <code>Task</code> 
without
+ordering constraints.</p>
+
+<table><thead>
+<tr>
+<th>param</th>
+<th style="text-align: center">type</th>
+<th>description</th>
+</tr>
+</thead><tbody>
+<tr>
+<td>order</td>
+<td style="text-align: center">List of String</td>
+<td>List of processes by name (String) that should be run serially.</td>
+</tr>
+</tbody></table>
+
+<h3 id="resource-object">Resource Object</h3>
+
+<p>Specifies the amount of CPU, Ram, and disk resources the task needs. See the
+<a href="../../features/resource-isolation/">Resource Isolation document</a> 
for suggested values and to understand how
+resources are allocated.</p>
+
+<table><thead>
+<tr>
+<th>param</th>
+<th style="text-align: center">type</th>
+<th>description</th>
+</tr>
+</thead><tbody>
+<tr>
+<td><code>cpu</code></td>
+<td style="text-align: center">Float</td>
+<td>Fractional number of cores required by the task.</td>
+</tr>
+<tr>
+<td><code>ram</code></td>
+<td style="text-align: center">Integer</td>
+<td>Bytes of RAM required by the task.</td>
+</tr>
+<tr>
+<td><code>disk</code></td>
+<td style="text-align: center">Integer</td>
+<td>Bytes of disk required by the task.</td>
+</tr>
+<tr>
+<td><code>gpu</code></td>
+<td style="text-align: center">Integer</td>
+<td>Number of GPU cores required by the task</td>
+</tr>
+</tbody></table>
+
+<h1 id="job-schema">Job Schema</h1>
+
+<h3 id="job-objects">Job Objects</h3>
+
+<p><em>Note: Specifying a <code>Container</code> object as the value of the 
<code>container</code> property is
+  deprecated in favor of setting its value directly to the appropriate 
<code>Docker</code> or <code>Mesos</code>
+  container type</em></p>
+
+<p><em>Note: Specifying preemption behavior of tasks through 
<code>production</code> flag is deprecated in favor of
+  electing appropriate task tier via <code>tier</code> attribute.</em></p>
+
+<table><thead>
+<tr>
+<th>name</th>
+<th style="text-align: center">type</th>
+<th>description</th>
+</tr>
+</thead><tbody>
+<tr>
+<td><code>task</code></td>
+<td style="text-align: center">Task</td>
+<td>The Task object to bind to this job. Required.</td>
+</tr>
+<tr>
+<td><code>name</code></td>
+<td style="text-align: center">String</td>
+<td>Job name. (Default: inherited from the task attribute&rsquo;s name)</td>
+</tr>
+<tr>
+<td><code>role</code></td>
+<td style="text-align: center">String</td>
+<td>Job role account. Required.</td>
+</tr>
+<tr>
+<td><code>cluster</code></td>
+<td style="text-align: center">String</td>
+<td>Cluster in which this job is scheduled. Required.</td>
+</tr>
+<tr>
+<td><code>environment</code></td>
+<td style="text-align: center">String</td>
+<td>Job environment, default <code>devel</code>. Must be one of 
<code>prod</code>, <code>devel</code>, <code>test</code> or 
<code>staging&lt;number&gt;</code>.</td>
+</tr>
+<tr>
+<td><code>contact</code></td>
+<td style="text-align: center">String</td>
+<td>Best email address to reach the owner of the job. For production jobs, 
this is usually a team mailing list.</td>
+</tr>
+<tr>
+<td><code>instances</code></td>
+<td style="text-align: center">Integer</td>
+<td>Number of instances (sometimes referred to as replicas or shards) of the 
task to create. (Default: 1)</td>
+</tr>
+<tr>
+<td><code>cron_schedule</code></td>
+<td style="text-align: center">String</td>
+<td>Cron schedule in cron format. May only be used with non-service jobs. See 
<a href="../../features/cron-jobs/">Cron Jobs</a> for more information. 
Default: None (not a cron job.)</td>
+</tr>
+<tr>
+<td><code>cron_collision_policy</code></td>
+<td style="text-align: center">String</td>
+<td>Policy to use when a cron job is triggered while a previous run is still 
active. KILL<em>EXISTING Kill the previous run, and schedule the new run 
CANCEL</em>NEW Let the previous run continue, and cancel the new run. (Default: 
KILL_EXISTING)</td>
+</tr>
+<tr>
+<td><code>update_config</code></td>
+<td style="text-align: center"><code>UpdateConfig</code> object</td>
+<td>Parameters for controlling the rate and policy of rolling updates.</td>
+</tr>
+<tr>
+<td><code>constraints</code></td>
+<td style="text-align: center">dict</td>
+<td>Scheduling constraints for the tasks. See the section on the <a 
href="#specifying-scheduling-constraints">constraint specification 
language</a></td>
+</tr>
+<tr>
+<td><code>service</code></td>
+<td style="text-align: center">Boolean</td>
+<td>If True, restart tasks regardless of success or failure. (Default: 
False)</td>
+</tr>
+<tr>
+<td><code>max_task_failures</code></td>
+<td style="text-align: center">Integer</td>
+<td>Maximum number of failures after which the task is considered to have 
failed (Default: 1) Set to -1 to allow for infinite failures</td>
+</tr>
+<tr>
+<td><code>priority</code></td>
+<td style="text-align: center">Integer</td>
+<td>Preemption priority to give the task (Default 0). Tasks with higher 
priorities may preempt tasks at lower priorities.</td>
+</tr>
+<tr>
+<td><code>production</code></td>
+<td style="text-align: center">Boolean</td>
+<td>(Deprecated) Whether or not this is a production task that may <a 
href="../../features/multitenancy/#preemption">preempt</a> other tasks 
(Default: False). Production job role must have the appropriate <a 
href="../../features/multitenancy/#preemption">quota</a>.</td>
+</tr>
+<tr>
+<td><code>health_check_config</code></td>
+<td style="text-align: center"><code>HealthCheckConfig</code> object</td>
+<td>Parameters for controlling a task&rsquo;s health checks. HTTP health check 
is only used if a  health port was assigned with a command line wildcard.</td>
+</tr>
+<tr>
+<td><code>container</code></td>
+<td style="text-align: center">Choice of <code>Container</code>, 
<code>Docker</code> or <code>Mesos</code> object</td>
+<td>An optional container to run all processes inside of.</td>
+</tr>
+<tr>
+<td><code>lifecycle</code></td>
+<td style="text-align: center"><code>LifecycleConfig</code> object</td>
+<td>An optional task lifecycle configuration that dictates commands to be 
executed on startup/teardown.  HTTP lifecycle is enabled by default if the 
&ldquo;health&rdquo; port is requested.  See <a 
href="#lifecycleconfig-objects">LifecycleConfig Objects</a> for more 
information.</td>
+</tr>
+<tr>
+<td><code>tier</code></td>
+<td style="text-align: center">String</td>
+<td>Task tier type. The default scheduler tier configuration allows for 3 
tiers: <code>revocable</code>, <code>preemptible</code>, and 
<code>preferred</code>. If a tier is not elected, Aurora assigns the task to a 
tier based on its choice of <code>production</code> (that is 
<code>preferred</code> for production and <code>preemptible</code> for 
non-production jobs). See the section on <a 
href="../../features/multitenancy/#configuration-tiers">Configuration Tiers</a> 
for more information.</td>
+</tr>
+<tr>
+<td><code>announce</code></td>
+<td style="text-align: center"><code>Announcer</code> object</td>
+<td>Optionally enable Zookeeper ServerSet announcements. See [Announcer 
Objects] for more information.</td>
+</tr>
+<tr>
+<td><code>enable_hooks</code></td>
+<td style="text-align: center">Boolean</td>
+<td>Whether to enable <a href="../client-hooks/">Client Hooks</a> for this 
job. (Default: False)</td>
+</tr>
+</tbody></table>
+
+<h3 id="updateconfig-objects">UpdateConfig Objects</h3>
+
+<p>Parameters for controlling the rate and policy of rolling updates.</p>
+
+<table><thead>
+<tr>
+<th>object</th>
+<th style="text-align: center">type</th>
+<th>description</th>
+</tr>
+</thead><tbody>
+<tr>
+<td><code>batch_size</code></td>
+<td style="text-align: center">Integer</td>
+<td>Maximum number of shards to be updated in one iteration (Default: 1)</td>
+</tr>
+<tr>
+<td><code>watch_secs</code></td>
+<td style="text-align: center">Integer</td>
+<td>Minimum number of seconds a shard must remain in <code>RUNNING</code> 
state before considered a success (Default: 45)</td>
+</tr>
+<tr>
+<td><code>max_per_shard_failures</code></td>
+<td style="text-align: center">Integer</td>
+<td>Maximum number of restarts per shard during update. Increments total 
failure count when this limit is exceeded. (Default: 0)</td>
+</tr>
+<tr>
+<td><code>max_total_failures</code></td>
+<td style="text-align: center">Integer</td>
+<td>Maximum number of shard failures to be tolerated in total during an 
update. Cannot be greater than or equal to the total number of tasks in a job. 
(Default: 0)</td>
+</tr>
+<tr>
+<td><code>rollback_on_failure</code></td>
+<td style="text-align: center">boolean</td>
+<td>When False, prevents auto rollback of a failed update (Default: True)</td>
+</tr>
+<tr>
+<td><code>wait_for_batch_completion</code></td>
+<td style="text-align: center">boolean</td>
+<td>When True, all threads from a given batch will be blocked from picking up 
new instances until the entire batch is updated. This essentially simulates the 
legacy sequential updater algorithm. (Default: False)</td>
+</tr>
+<tr>
+<td><code>pulse_interval_secs</code></td>
+<td style="text-align: center">Integer</td>
+<td>Indicates a <a 
href="../../features/job-updates/#coordinated-job-updates">coordinated 
update</a>. If no pulses are received within the provided interval the update 
will be blocked. Beta-updater only. Will fail on submission when used with 
client updater. (Default: None)</td>
+</tr>
+</tbody></table>
+
+<h3 id="healthcheckconfig-objects">HealthCheckConfig Objects</h3>
+
+<p>Parameters for controlling a task&rsquo;s health checks via HTTP or a shell 
command.</p>
+
+<table><thead>
+<tr>
+<th>param</th>
+<th style="text-align: center">type</th>
+<th>description</th>
+</tr>
+</thead><tbody>
+<tr>
+<td><code>health_checker</code></td>
+<td style="text-align: center">HealthCheckerConfig</td>
+<td>Configure what kind of health check to use.</td>
+</tr>
+<tr>
+<td><code>initial_interval_secs</code></td>
+<td style="text-align: center">Integer</td>
+<td>Initial grace period (during which health-check failures are ignored) 
while performing health checks. (Default: 15)</td>
+</tr>
+<tr>
+<td><code>interval_secs</code></td>
+<td style="text-align: center">Integer</td>
+<td>Interval on which to check the task&rsquo;s health. (Default: 10)</td>
+</tr>
+<tr>
+<td><code>max_consecutive_failures</code></td>
+<td style="text-align: center">Integer</td>
+<td>Maximum number of consecutive failures that will be tolerated before 
considering a task unhealthy (Default: 0)</td>
+</tr>
+<tr>
+<td><code>min_consecutive_successes</code></td>
+<td style="text-align: center">Integer</td>
+<td>Minimum number of consecutive successful health checks required before 
considering a task healthy (Default: 1)</td>
+</tr>
+<tr>
+<td><code>timeout_secs</code></td>
+<td style="text-align: center">Integer</td>
+<td>Health check timeout. (Default: 1)</td>
+</tr>
+</tbody></table>
+
+<h3 id="healthcheckerconfig-objects">HealthCheckerConfig Objects</h3>
+
+<table><thead>
+<tr>
+<th>param</th>
+<th style="text-align: center">type</th>
+<th>description</th>
+</tr>
+</thead><tbody>
+<tr>
+<td><code>http</code></td>
+<td style="text-align: center">HttpHealthChecker</td>
+<td>Configure health check to use HTTP. (Default)</td>
+</tr>
+<tr>
+<td><code>shell</code></td>
+<td style="text-align: center">ShellHealthChecker</td>
+<td>Configure health check via a shell command.</td>
+</tr>
+</tbody></table>
+
+<h3 id="httphealthchecker-objects">HttpHealthChecker Objects</h3>
+
+<table><thead>
+<tr>
+<th>param</th>
+<th style="text-align: center">type</th>
+<th>description</th>
+</tr>
+</thead><tbody>
+<tr>
+<td><code>endpoint</code></td>
+<td style="text-align: center">String</td>
+<td>HTTP endpoint to check (Default: /health)</td>
+</tr>
+<tr>
+<td><code>expected_response</code></td>
+<td style="text-align: center">String</td>
+<td>If not empty, fail the HTTP health check if the response differs. Case 
insensitive. (Default: ok)</td>
+</tr>
+<tr>
+<td><code>expected_response_code</code></td>
+<td style="text-align: center">Integer</td>
+<td>If not zero, fail the HTTP health check if the response code differs. 
(Default: 0)</td>
+</tr>
+</tbody></table>
+
+<h3 id="shellhealthchecker-objects">ShellHealthChecker Objects</h3>
+
+<table><thead>
+<tr>
+<th>param</th>
+<th style="text-align: center">type</th>
+<th>description</th>
+</tr>
+</thead><tbody>
+<tr>
+<td><code>shell_command</code></td>
+<td style="text-align: center">String</td>
+<td>An alternative to HTTP health checking. Specifies a shell command that 
will be executed. Any non-zero exit status will be interpreted as a health 
check failure.</td>
+</tr>
+</tbody></table>
+
+<h3 id="announcer-objects">Announcer Objects</h3>
+
+<p>If the <code>announce</code> field in the Job configuration is set, each 
task will be
+registered in the ServerSet <code>/aurora/role/environment/jobname</code> in 
the
+zookeeper ensemble configured by the executor (which can be optionally 
overriden by specifying
+<code>zk_path</code> parameter).  If no Announcer object is specified,
+no announcement will take place.  For more information about ServerSets, see 
the <a href="../../features/service-discovery/">Service Discover</a>
+documentation.</p>
+
+<p>By default, the hostname in the registered endpoints will be the 
<code>--hostname</code> parameter
+that is passed to the mesos agent. To override the hostname value, the 
executor can be started
+with <code>--announcer-hostname=&lt;overriden_value&gt;</code>. If you decide 
to use <code>--announcer-hostname</code> and if
+the overriden value needs to change for every executor, then the executor has 
to be started inside a wrapper, see <a 
href="../../operations/configuration/#thermos-executor-wrapper">Executor 
Wrapper</a>.</p>
+
+<p>For example, if you want the hostname in the endpoint to be an IP address 
instead of the hostname,
+the <code>--hostname</code> parameter to the mesos agent can be set to the 
machine IP or the executor can
+be started with <code>--announcer-hostname=&lt;host_ip&gt;</code> while 
wrapping the executor inside a script.</p>
+
+<table><thead>
+<tr>
+<th>object</th>
+<th style="text-align: center">type</th>
+<th>description</th>
+</tr>
+</thead><tbody>
+<tr>
+<td><code>primary_port</code></td>
+<td style="text-align: center">String</td>
+<td>Which named port to register as the primary endpoint in the ServerSet 
(Default: <code>http</code>)</td>
+</tr>
+<tr>
+<td><code>portmap</code></td>
+<td style="text-align: center">dict</td>
+<td>A mapping of additional endpoints to be announced in the ServerSet 
(Default: <code>{ &#39;aurora&#39;: &#39;{{primary_port}}&#39; }</code>)</td>
+</tr>
+<tr>
+<td><code>zk_path</code></td>
+<td style="text-align: center">String</td>
+<td>Zookeeper serverset path override (executor must be started with the 
<code>--announcer-allow-custom-serverset-path</code> parameter)</td>
+</tr>
+</tbody></table>
+
+<h4 id="port-aliasing-with-the-announcer-portmap">Port aliasing with the 
Announcer <code>portmap</code></h4>
+
+<p>The primary endpoint registered in the ServerSet is the one allocated to 
the port
+specified by the <code>primary_port</code> in the <code>Announcer</code> 
object, by default
+the <code>http</code> port.  This port can be referenced from anywhere within 
a configuration
+as <code>{{thermos.ports[http]}}</code>.</p>
+
+<p>Without the port map, each named port would be allocated a unique port 
number.
+The <code>portmap</code> allows two different named ports to be aliased 
together.  The default
+<code>portmap</code> aliases the <code>aurora</code> port (i.e. 
<code>{{thermos.ports[aurora]}}</code>) to
+the <code>http</code> port.  Even though the two ports can be referenced 
independently,
+only one port is allocated by Mesos.  Any port referenced in a 
<code>Process</code> object
+but which is not in the portmap will be allocated dynamically by Mesos and 
announced as well.</p>
+
+<p>It is possible to use the portmap to alias names to static port numbers, 
e.g.
+<code>{&#39;http&#39;: 80, &#39;https&#39;: 443, &#39;aurora&#39;: 
&#39;http&#39;}</code>.  In this case, referencing
+<code>{{thermos.ports[aurora]}}</code> would look up 
<code>{{thermos.ports[http]}}</code> then
+find a static port 80.  No port would be requested of or allocated by 
Mesos.</p>
+
+<p>Static ports should be used cautiously as Aurora does nothing to prevent two
+tasks with the same static port allocations from being co-scheduled.
+External constraints such as agent attributes should be used to enforce such
+guarantees should they be needed.</p>
+
+<h3 id="container-objects">Container Objects</h3>
+
+<p>Describes the container the job&rsquo;s processes will run inside. If not 
using Docker or the Mesos
+unified-container, the container can be omitted from your job config.</p>
+
+<table><thead>
+<tr>
+<th>param</th>
+<th style="text-align: center">type</th>
+<th>description</th>
+</tr>
+</thead><tbody>
+<tr>
+<td><code>mesos</code></td>
+<td style="text-align: center">Mesos</td>
+<td>A native Mesos container to use.</td>
+</tr>
+<tr>
+<td><code>docker</code></td>
+<td style="text-align: center">Docker</td>
+<td>A Docker container to use (via Docker engine)</td>
+</tr>
+</tbody></table>
+
+<h3 id="mesos-object">Mesos Object</h3>
+
+<table><thead>
+<tr>
+<th>param</th>
+<th style="text-align: center">type</th>
+<th>description</th>
+</tr>
+</thead><tbody>
+<tr>
+<td><code>image</code></td>
+<td style="text-align: center">Choice(AppcImage, DockerImage)</td>
+<td>An optional filesystem image to use within this container.</td>
+</tr>
+</tbody></table>
+
+<h3 id="appcimage">AppcImage</h3>
+
+<p>Describes an AppC filesystem image.</p>
+
+<table><thead>
+<tr>
+<th>param</th>
+<th style="text-align: center">type</th>
+<th>description</th>
+</tr>
+</thead><tbody>
+<tr>
+<td><code>name</code></td>
+<td style="text-align: center">String</td>
+<td>The name of the appc image.</td>
+</tr>
+<tr>
+<td><code>image_id</code></td>
+<td style="text-align: center">String</td>
+<td>The <a 
href="https://github.com/appc/spec/blob/master/spec/aci.md#image-id";>image 
id</a> of the appc image.</td>
+</tr>
+</tbody></table>
+
+<h3 id="dockerimage">DockerImage</h3>
+
+<p>Describes a Docker filesystem image.</p>
+
+<table><thead>
+<tr>
+<th>param</th>
+<th style="text-align: center">type</th>
+<th>description</th>
+</tr>
+</thead><tbody>
+<tr>
+<td><code>name</code></td>
+<td style="text-align: center">String</td>
+<td>The name of the docker image.</td>
+</tr>
+<tr>
+<td><code>tag</code></td>
+<td style="text-align: center">String</td>
+<td>The tag that identifies the docker image.</td>
+</tr>
+</tbody></table>
+
+<h3 id="docker-object">Docker Object</h3>
+
+<p><em>Note: In order to correctly execute processes inside a job, the Docker 
container must have Python 2.7 installed.</em>
+<em>Note: For private docker registry, mesos mandates the docker credential 
file to be named as <code>.dockercfg</code>, even though docker may create a 
credential file with a different name on various platforms. Also, the 
<code>.dockercfg</code> file needs to be copied into the sandbox using the 
<code>-thermos_executor_resources</code> flag, specified while starting 
Aurora.</em></p>
+
+<table><thead>
+<tr>
+<th>param</th>
+<th style="text-align: center">type</th>
+<th>description</th>
+</tr>
+</thead><tbody>
+<tr>
+<td><code>image</code></td>
+<td style="text-align: center">String</td>
+<td>The name of the docker image to execute.  If the image does not exist 
locally it will be pulled with <code>docker pull</code>.</td>
+</tr>
+<tr>
+<td><code>parameters</code></td>
+<td style="text-align: center">List(Parameter)</td>
+<td>Additional parameters to pass to the Docker engine.</td>
+</tr>
+</tbody></table>
+
+<h3 id="docker-parameter-object">Docker Parameter Object</h3>
+
+<p>Docker CLI parameters. This needs to be enabled by the scheduler 
<code>-allow_docker_parameters</code> option.
+See <a href="https://docs.docker.com/reference/commandline/run/";>Docker 
Command Line Reference</a> for valid parameters.</p>
+
+<table><thead>
+<tr>
+<th>param</th>
+<th style="text-align: center">type</th>
+<th>description</th>
+</tr>
+</thead><tbody>
+<tr>
+<td><code>name</code></td>
+<td style="text-align: center">String</td>
+<td>The name of the docker parameter. E.g. volume</td>
+</tr>
+<tr>
+<td><code>value</code></td>
+<td style="text-align: center">String</td>
+<td>The value of the parameter. E.g. /usr/local/bin:/usr/bin:rw</td>
+</tr>
+</tbody></table>
+
+<h3 id="lifecycleconfig-objects">LifecycleConfig Objects</h3>
+
+<p><em>Note: The only lifecycle configuration supported is the HTTP lifecycle 
via the HttpLifecycleConfig.</em></p>
+
+<table><thead>
+<tr>
+<th>param</th>
+<th style="text-align: center">type</th>
+<th>description</th>
+</tr>
+</thead><tbody>
+<tr>
+<td><code>http</code></td>
+<td style="text-align: center">HttpLifecycleConfig</td>
+<td>Configure the lifecycle manager to send lifecycle commands to the task via 
HTTP.</td>
+</tr>
+</tbody></table>
+
+<h3 id="httplifecycleconfig-objects">HttpLifecycleConfig Objects</h3>
+
+<table><thead>
+<tr>
+<th>param</th>
+<th style="text-align: center">type</th>
+<th>description</th>
+</tr>
+</thead><tbody>
+<tr>
+<td><code>port</code></td>
+<td style="text-align: center">String</td>
+<td>The named port to send POST commands (Default: health)</td>
+</tr>
+<tr>
+<td><code>graceful_shutdown_endpoint</code></td>
+<td style="text-align: center">String</td>
+<td>Endpoint to hit to indicate that a task should gracefully shutdown. 
(Default: /quitquitquit)</td>
+</tr>
+<tr>
+<td><code>shutdown_endpoint</code></td>
+<td style="text-align: center">String</td>
+<td>Endpoint to hit to give a task its final warning before being killed. 
(Default: /abortabortabort)</td>
+</tr>
+</tbody></table>
+
+<h4 id="gracefulshutdownendpoint">graceful<em>shutdown</em>endpoint</h4>
+
+<p>If the Job is listening on the port as specified by the HttpLifecycleConfig
+(default: <code>health</code>), a HTTP POST request will be sent over 
localhost to this
+endpoint to request that the task gracefully shut itself down.  This is a
+courtesy call before the <code>shutdown_endpoint</code> is invoked a fixed 
amount of
+time later.</p>
+
+<h4 id="shutdown_endpoint">shutdown_endpoint</h4>
+
+<p>If the Job is listening on the port as specified by the HttpLifecycleConfig
+(default: <code>health</code>), a HTTP POST request will be sent over 
localhost to this
+endpoint to request as a final warning before being shut down.  If the task
+does not shut down on its own after this, it will be forcefully killed</p>
+
+<h1 id="specifying-scheduling-constraints">Specifying Scheduling 
Constraints</h1>
+
+<p>In the <code>Job</code> object there is a map <code>constraints</code> from 
String to String
+allowing the user to tailor the schedulability of tasks within the job.</p>
+
+<p>The constraint map&rsquo;s key value is the attribute name in which we
+constrain Tasks within our Job. The value is how we constrain them.
+There are two types of constraints: <em>limit constraints</em> and <em>value
+constraints</em>.</p>
+
+<table><thead>
+<tr>
+<th>constraint</th>
+<th>description</th>
+</tr>
+</thead><tbody>
+<tr>
+<td>Limit</td>
+<td>A string that specifies a limit for a constraint. Starts with 
<code>&#39;limit:</code> followed by an Integer and closing single quote, such 
as <code>&#39;limit:1&#39;</code>.</td>
+</tr>
+<tr>
+<td>Value</td>
+<td>A string that specifies a value for a constraint. To include a list of 
values, separate the values using commas. To negate the values of a constraint, 
start with a <code>!</code> <code>.</code></td>
+</tr>
+</tbody></table>
+
+<p>Further details can be found in the <a 
href="../../features/constraints/">Scheduling Constraints</a> feature
+description.</p>
+
+<h1 id="template-namespaces">Template Namespaces</h1>
+
+<p>Currently, a few Pystachio namespaces have special semantics. Using them
+in your configuration allow you to tailor application behavior
+through environment introspection or interact in special ways with the
+Aurora client or Aurora-provided services.</p>
+
+<h3 id="mesos-namespace">mesos Namespace</h3>
+
+<p>The <code>mesos</code> namespace contains variables which relate to the 
<code>mesos</code> agent
+which launched the task. The <code>instance</code> variable can be used
+to distinguish between Task replicas.</p>
+
+<table><thead>
+<tr>
+<th>variable name</th>
+<th style="text-align: center">type</th>
+<th>description</th>
+</tr>
+</thead><tbody>
+<tr>
+<td><code>instance</code></td>
+<td style="text-align: center">Integer</td>
+<td>The instance number of the created task. A job with 5 replicas has 
instance numbers 0, 1, 2, 3, and 4.</td>
+</tr>
+<tr>
+<td><code>hostname</code></td>
+<td style="text-align: center">String</td>
+<td>The instance hostname that the task was launched on.</td>
+</tr>
+</tbody></table>
+
+<p>Please note, there is no uniqueness guarantee for <code>instance</code> in 
the presence of
+network partitions. If that is required, it should be baked in at the 
application
+level using a distributed coordination service such as Zookeeper.</p>
+
+<h3 id="thermos-namespace">thermos Namespace</h3>
+
+<p>The <code>thermos</code> namespace contains variables that work directly on 
the
+Thermos platform in addition to Aurora. This namespace is fully
+compatible with Tasks invoked via the <code>thermos</code> CLI.</p>
+
+<table><thead>
+<tr>
+<th style="text-align: center">variable</th>
+<th>type</th>
+<th>description</th>
+</tr>
+</thead><tbody>
+<tr>
+<td style="text-align: center"><code>ports</code></td>
+<td>map of string to Integer</td>
+<td>A map of names to port numbers</td>
+</tr>
+<tr>
+<td style="text-align: center"><code>task_id</code></td>
+<td>string</td>
+<td>The task ID assigned to this task.</td>
+</tr>
+</tbody></table>
+
+<p>The <code>thermos.ports</code> namespace is automatically populated by 
Aurora when
+invoking tasks on Mesos. When running the <code>thermos</code> command 
directly,
+these ports must be explicitly mapped with the <code>-P</code> option.</p>
+
+<p>For example, if &rsquo;{{<code>thermos.ports[http]</code>}}&rsquo; is 
specified in a <code>Process</code>
+configuration, it is automatically extracted and auto-populated by
+Aurora, but must be specified with, for example, <code>thermos -P 
http:12345</code>
+to map <code>http</code> to port 12345 when running via the CLI.</p>
+
+</div>
+
+      </div>
+    </div>
+       <div class="container-fluid section-footer buffer">
+      <div class="container">
+        <div class="row">
+                 <div class="col-md-2 col-md-offset-1"><h3>Quick Links</h3>
+                 <ul>
+                   <li><a href="/downloads/">Downloads</a></li>
+            <li><a href="/community/">Mailing Lists</a></li>
+                       <li><a 
href="http://issues.apache.org/jira/browse/AURORA";>Issue Tracking</a></li>
+                       <li><a href="/documentation/latest/contributing/">How 
To Contribute</a></li>     
+                 </ul>
+             </div>
+                 <div class="col-md-2"><h3>The ASF</h3>
+          <ul>
+            <li><a href="http://www.apache.org/licenses/";>License</a></li>
+            <li><a 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li>  
+            <li><a 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li>
+            <li><a href="http://www.apache.org/security/";>Security</a></li>
+          </ul>
+                 </div>
+                 <div class="col-md-6">
+                       <p class="disclaimer">&copy; 2014-2017 <a 
href="http://www.apache.org/";>Apache Software Foundation</a>. Licensed under 
the <a href="http://www.apache.org/licenses/";>Apache License v2.0</a>. The <a 
href="https://www.flickr.com/photos/trondk/12706051375/";>Aurora Borealis IX 
photo</a> displayed on the homepage is available under a <a 
href="https://creativecommons.org/licenses/by-nc-nd/2.0/";>Creative Commons 
BY-NC-ND 2.0 license</a>. Apache, Apache Aurora, and the Apache feather logo 
are trademarks of The Apache Software Foundation.</p>
+        </div>
+      </div>
+    </div>
+
+  </body>
+</html>

Added: 
aurora/site/publish/documentation/0.17.0/reference/scheduler-configuration/index.html
URL: 
http://svn.apache.org/viewvc/aurora/site/publish/documentation/0.17.0/reference/scheduler-configuration/index.html?rev=1783940&view=auto
==============================================================================
--- 
aurora/site/publish/documentation/0.17.0/reference/scheduler-configuration/index.html
 (added)
+++ 
aurora/site/publish/documentation/0.17.0/reference/scheduler-configuration/index.html
 Tue Feb 21 20:54:58 2017
@@ -0,0 +1,392 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+       <title>Apache Aurora</title>
+    <link rel="stylesheet" 
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css";>
+    <link href="/assets/css/main.css" rel="stylesheet">
+       <!-- Analytics -->
+       <script type="text/javascript">
+                 var _gaq = _gaq || [];
+                 _gaq.push(['_setAccount', 'UA-45879646-1']);
+                 _gaq.push(['_setDomainName', 'apache.org']);
+                 _gaq.push(['_trackPageview']);
+
+                 (function() {
+                   var ga = document.createElement('script'); ga.type = 
'text/javascript'; ga.async = true;
+                   ga.src = ('https:' == document.location.protocol ? 
'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+                   var s = document.getElementsByTagName('script')[0]; 
s.parentNode.insertBefore(ga, s);
+                 })();
+       </script>
+  </head>
+  <body>
+    <div class="container-fluid section-header">
+  <div class="container">
+    <div class="nav nav-bar">
+    <a href="/"><img src="/assets/img/aurora_logo_dkbkg.svg" width="300" 
alt="Transparent Apache Aurora logo with dark background"/></a>
+    <ul class="nav navbar-nav navbar-right">
+      <li><a href="/documentation/latest/">Documentation</a></li>
+      <li><a href="/community/">Community</a></li>
+      <li><a href="/downloads/">Downloads</a></li>
+      <li><a href="/blog/">Blog</a></li>
+    </ul>
+    </div>
+  </div>
+</div>
+       
+    <div class="container-fluid">
+      <div class="container content">
+        <div class="col-md-12 documentation">
+<h5 class="page-header text-uppercase">Documentation
+<select onChange="window.location.href='/documentation/' + this.value + 
'/reference/scheduler-configuration/'"
+        value="0.17.0">
+  <option value="0.17.0"
+    selected="selected">
+    0.17.0
+      (latest)
+  </option>
+  <option value="0.16.0"
+    >
+    0.16.0
+  </option>
+  <option value="0.15.0"
+    >
+    0.15.0
+  </option>
+  <option value="0.14.0"
+    >
+    0.14.0
+  </option>
+  <option value="0.13.0"
+    >
+    0.13.0
+  </option>
+  <option value="0.12.0"
+    >
+    0.12.0
+  </option>
+  <option value="0.11.0"
+    >
+    0.11.0
+  </option>
+  <option value="0.10.0"
+    >
+    0.10.0
+  </option>
+  <option value="0.9.0"
+    >
+    0.9.0
+  </option>
+  <option value="0.8.0"
+    >
+    0.8.0
+  </option>
+  <option value="0.7.0-incubating"
+    >
+    0.7.0-incubating
+  </option>
+  <option value="0.6.0-incubating"
+    >
+    0.6.0-incubating
+  </option>
+  <option value="0.5.0-incubating"
+    >
+    0.5.0-incubating
+  </option>
+</select>
+</h5>
+<h1 id="scheduler-configuration-reference">Scheduler Configuration 
Reference</h1>
+
+<p>The Aurora scheduler can take a variety of configuration options through 
command-line arguments.
+A list of the available options can be seen by running <code>aurora-scheduler 
-help</code>.</p>
+
+<p>Please refer to the <a href="../../operations/configuration/">Operator 
Configuration Guide</a> for details on how
+to properly set the most important options.</p>
+<pre class="highlight plaintext"><code>$ aurora-scheduler -help
+-------------------------------------------------------------------------
+-h or -help to print this help message
+
+Required flags:
+-backup_dir [not null]
+    Directory to store backups under. Will be created if it does not exist.
+-cluster_name [not null]
+    Name to identify the cluster being served.
+-db_max_active_connection_count [must be &gt; 0]
+    Max number of connections to use with database via MyBatis
+-db_max_idle_connection_count [must be &gt; 0]
+    Max number of idle connections to the database via MyBatis
+-framework_authentication_file
+    Properties file which contains framework credentials to authenticate with 
Mesosmaster. Must contain the properties 'aurora_authentication_principal' and 
'aurora_authentication_secret'.
+-ip
+    The ip address to listen. If not set, the scheduler will listen on all 
interfaces.
+-mesos_master_address [not null]
+    Address for the mesos master, can be a socket address or zookeeper path.
+-mesos_role
+    The Mesos role this framework will register as. The default is to left 
this empty, and the framework will register without any role and only receive 
unreserved resources in offer.
+-serverset_path [not null, must be non-empty]
+    ZooKeeper ServerSet path to register at.
+-shiro_after_auth_filter
+    Fully qualified class name of the servlet filter to be applied after the 
shiro auth filters are applied.
+-thermos_executor_path
+    Path to the thermos executor entry point.
+-tier_config [file must be readable]
+    Configuration file defining supported task tiers, task traits and 
behaviors.
+-webhook_config [file must exist, file must be readable]
+    Path to webhook configuration file.
+-zk_endpoints [must have at least 1 item]
+    Endpoint specification for the ZooKeeper servers.
+
+Optional flags:
+-allow_container_volumes (default false)
+    Allow passing in volumes in the job. Enabling this could pose a privilege 
escalation threat.
+-allow_docker_parameters (default false)
+    Allow to pass docker container parameters in the job.
+-allow_gpu_resource (default false)
+    Allow jobs to request Mesos GPU resource.
+-allowed_container_types (default [MESOS])
+    Container types that are allowed to be used by jobs.
+-async_slot_stat_update_interval (default (1, mins))
+    Interval on which to try to update open slot stats.
+-async_task_stat_update_interval (default (1, hrs))
+    Interval on which to try to update resource consumption stats.
+-async_worker_threads (default 8)
+    The number of worker threads to process async task operations with.
+-backup_interval (default (1, hrs))
+    Minimum interval on which to write a storage backup.
+-cron_scheduler_num_threads (default 10)
+    Number of threads to use for the cron scheduler thread pool.
+-cron_scheduling_max_batch_size (default 10) [must be &gt; 0]
+    The maximum number of triggered cron jobs that can be processed in a batch.
+-cron_start_initial_backoff (default (5, secs))
+    Initial backoff delay while waiting for a previous cron run to be killed.
+-cron_start_max_backoff (default (1, mins))
+    Max backoff delay while waiting for a previous cron run to be killed.
+-cron_timezone (default GMT)
+    TimeZone to use for cron predictions.
+-custom_executor_config [file must exist, file must be readable]
+    Path to custom executor settings configuration file.
+-db_lock_timeout (default (1, mins))
+    H2 table lock timeout
+-db_row_gc_interval (default (2, hrs))
+    Interval on which to scan the database for unused row references.
+-default_docker_parameters (default {})
+    Default docker parameters for any job that does not explicitly declare 
parameters.
+-dlog_max_entry_size (default (512, KB))
+    Specifies the maximum entry size to append to the log. Larger entries will 
be split across entry Frames.
+-dlog_shutdown_grace_period (default (2, secs))
+    Specifies the maximum time to wait for scheduled checkpoint and snapshot 
actions to complete before forcibly shutting down.
+-dlog_snapshot_interval (default (1, hrs))
+    Specifies the frequency at which snapshots of local storage are taken and 
written to the log.
+-enable_cors_for
+    List of domains for which CORS support should be enabled.
+-enable_db_metrics (default true)
+    Whether to use MyBatis interceptor to measure the timing of intercepted 
Statements.
+-enable_h2_console (default false)
+    Enable H2 DB management console.
+-enable_mesos_fetcher (default false)
+    Allow jobs to pass URIs to the Mesos Fetcher. Note that enabling this 
feature could pose a privilege escalation threat.
+-enable_preemptor (default true)
+    Enable the preemptor and preemption
+-enable_revocable_cpus (default true)
+    Treat CPUs as a revocable resource.
+-enable_revocable_ram (default false)
+    Treat RAM as a revocable resource.
+-executor_user (default root)
+    User to start the executor. Defaults to "root". Set this to an 
unprivileged user if the mesos master was started with "--no-root_submissions". 
If set to anything other than "root", the executor will ignore the "role" 
setting for jobs since it can't use setuid() anymore. This means that all your 
jobs will run under the specified user and the user has to exist on the Mesos 
agents.
+-first_schedule_delay (default (1, ms))
+    Initial amount of time to wait before first attempting to schedule a 
PENDING task.
+-flapping_task_threshold (default (5, mins))
+    A task that repeatedly runs for less than this time is considered to be 
flapping.
+-framework_announce_principal (default false)
+    When 'framework_authentication_file' flag is set, the FrameworkInfo 
registered with the mesos master will also contain the principal. This is 
necessary if you intend to use mesos authorization via mesos ACLs. The default 
will change in a future release. Changing this value is backwards incompatible. 
For details, see MESOS-703.
+-framework_failover_timeout (default (21, days))
+    Time after which a framework is considered deleted.  SHOULD BE VERY HIGH.
+-framework_name (default Aurora)
+    Name used to register the Aurora framework with Mesos.
+-global_container_mounts (default [])
+    A comma separated list of mount points (in host:container form) to mount 
into all (non-mesos) containers.
+-history_max_per_job_threshold (default 100)
+    Maximum number of terminated tasks to retain in a job history.
+-history_min_retention_threshold (default (1, hrs))
+    Minimum guaranteed time for task history retention before any pruning is 
attempted.
+-history_prune_threshold (default (2, days))
+    Time after which the scheduler will prune terminated task history.
+-hostname
+    The hostname to advertise in ZooKeeper instead of the locally-resolved 
hostname.
+-http_authentication_mechanism (default NONE)
+    HTTP Authentication mechanism to use.
+-http_port (default 0)
+    The port to start an HTTP server on.  Default value will choose a random 
port.
+-initial_flapping_task_delay (default (30, secs))
+    Initial amount of time to wait before attempting to schedule a flapping 
task.
+-initial_schedule_penalty (default (1, secs))
+    Initial amount of time to wait before attempting to schedule a task that 
has failed to schedule.
+-initial_task_kill_retry_interval (default (5, secs))
+    When killing a task, retry after this delay if mesos has not responded, 
backing off up to transient_task_state_timeout
+-job_update_history_per_job_threshold (default 10)
+    Maximum number of completed job updates to retain in a job update history.
+-job_update_history_pruning_interval (default (15, mins))
+    Job update history pruning interval.
+-job_update_history_pruning_threshold (default (30, days))
+    Time after which the scheduler will prune completed job update history.
+-kerberos_debug (default false)
+    Produce additional Kerberos debugging output.
+-kerberos_server_keytab
+    Path to the server keytab.
+-kerberos_server_principal
+    Kerberos server principal to use, usually of the form 
HTTP/aurora.example....@example.com
+-max_flapping_task_delay (default (5, mins))
+    Maximum delay between attempts to schedule a flapping task.
+-max_leading_duration (default (1, days))
+    After leading for this duration, the scheduler should commit suicide.
+-max_registration_delay (default (1, mins))
+    Max allowable delay to allow the driver to register before aborting
+-max_reschedule_task_delay_on_startup (default (30, secs))
+    Upper bound of random delay for pending task rescheduling on scheduler 
startup.
+-max_saved_backups (default 48)
+    Maximum number of backups to retain before deleting the oldest backups.
+-max_schedule_attempts_per_sec (default 40.0)
+    Maximum number of scheduling attempts to make per second.
+-max_schedule_penalty (default (1, mins))
+    Maximum delay between attempts to schedule a PENDING tasks.
+-max_status_update_batch_size (default 1000) [must be &gt; 0]
+    The maximum number of status updates that can be processed in a batch.
+-max_task_event_batch_size (default 300) [must be &gt; 0]
+    The maximum number of task state change events that can be processed in a 
batch.
+-max_tasks_per_job (default 4000) [must be &gt; 0]
+    Maximum number of allowed tasks in a single job.
+-max_tasks_per_schedule_attempt (default 5) [must be &gt; 0]
+    The maximum number of tasks to pick in a single scheduling attempt.
+-max_update_instance_failures (default 20000) [must be &gt; 0]
+    Upper limit on the number of failures allowed during a job update. This 
helps cap potentially unbounded entries into storage.
+-min_offer_hold_time (default (5, mins))
+    Minimum amount of time to hold a resource offer before declining.
+-native_log_election_retries (default 20)
+    The maximum number of attempts to obtain a new log writer.
+-native_log_election_timeout (default (15, secs))
+    The timeout for a single attempt to obtain a new log writer.
+-native_log_file_path
+    Path to a file to store the native log data in.  If the parent directory 
doesnot exist it will be created.
+-native_log_quorum_size (default 1)
+    The size of the quorum required for all log mutations.
+-native_log_read_timeout (default (5, secs))
+    The timeout for doing log reads.
+-native_log_write_timeout (default (3, secs))
+    The timeout for doing log appends and truncations.
+-native_log_zk_group_path
+    A zookeeper node for use by the native log to track the master coordinator.
+-offer_filter_duration (default (5, secs))
+    Duration after which we expect Mesos to re-offer unused resources. A short 
duration improves scheduling performance in smaller clusters, but might lead to 
resource starvation for other frameworks if you run many frameworks in your 
cluster.
+-offer_hold_jitter_window (default (1, mins))
+    Maximum amount of random jitter to add to the offer hold time window.
+-offer_reservation_duration (default (3, mins))
+    Time to reserve a agent's offers while trying to satisfy a task preempting 
another.
+-populate_discovery_info (default false)
+    If true, Aurora populates DiscoveryInfo field of Mesos TaskInfo.
+-preemption_delay (default (3, mins))
+    Time interval after which a pending task becomes eligible to preempt other 
tasks
+-preemption_slot_hold_time (default (5, mins))
+    Time to hold a preemption slot found before it is discarded.
+-preemption_slot_search_interval (default (1, mins))
+    Time interval between pending task preemption slot searches.
+-receive_revocable_resources (default false)
+    Allows receiving revocable resource offers from Mesos.
+-reconciliation_explicit_batch_interval (default (5, secs))
+    Interval between explicit batch reconciliation requests.
+-reconciliation_explicit_batch_size (default 1000) [must be &gt; 0]
+    Number of tasks in a single batch request sent to Mesos for explicit 
reconciliation.
+-reconciliation_explicit_interval (default (60, mins))
+    Interval on which scheduler will ask Mesos for status updates of all 
non-terminal tasks known to scheduler.
+-reconciliation_implicit_interval (default (60, mins))
+    Interval on which scheduler will ask Mesos for status updates of all 
non-terminal tasks known to Mesos.
+-reconciliation_initial_delay (default (1, mins))
+    Initial amount of time to delay task reconciliation after scheduler start 
up.
+-reconciliation_schedule_spread (default (30, mins))
+    Difference between explicit and implicit reconciliation intervals intended 
to create a non-overlapping task reconciliation schedule.
+-require_docker_use_executor (default true)
+    If false, Docker tasks may run without an executor (EXPERIMENTAL)
+-scheduling_max_batch_size (default 3) [must be &gt; 0]
+    The maximum number of scheduling attempts that can be processed in a batch.
+-serverset_endpoint_name (default http)
+    Name of the scheduler endpoint published in ZooKeeper.
+-shiro_ini_path
+    Path to shiro.ini for authentication and authorization configuration.
+-shiro_realm_modules (default [class 
org.apache.aurora.scheduler.http.api.security.IniShiroRealmModule])
+    Guice modules for configuring Shiro Realms.
+-sla_non_prod_metrics (default [])
+    Metric categories collected for non production tasks.
+-sla_prod_metrics (default [JOB_UPTIMES, PLATFORM_UPTIME, MEDIANS])
+    Metric categories collected for production tasks.
+-sla_stat_refresh_interval (default (1, mins))
+    The SLA stat refresh interval.
+-slow_query_log_threshold (default (25, ms))
+    Log all queries that take at least this long to execute.
+-slow_query_log_threshold (default (25, ms))
+    Log all queries that take at least this long to execute.
+-snapshot_hydrate_stores (default [locks, hosts, quota, job_updates])
+    Which H2-backed stores to fully hydrate on the Snapshot.
+-stat_retention_period (default (1, hrs))
+    Time for a stat to be retained in memory before expiring.
+-stat_sampling_interval (default (1, secs))
+    Statistic value sampling interval.
+-thermos_executor_cpu (default 0.25)
+    The number of CPU cores to allocate for each instance of the executor.
+-thermos_executor_flags
+    Extra arguments to be passed to the thermos executor
+-thermos_executor_ram (default (128, MB))
+    The amount of RAM to allocate for each instance of the executor.
+-thermos_executor_resources (default [])
+    A comma separated list of additional resources to copy into the 
sandbox.Note: if thermos_executor_path is not the thermos_executor.pex file 
itself, this must include it.
+-thermos_home_in_sandbox (default false)
+    If true, changes HOME to the sandbox before running the executor. This 
primarily has the effect of causing the executor and runner to extract 
themselves into the sandbox.
+-transient_task_state_timeout (default (5, mins))
+    The amount of time after which to treat a task stuck in a transient state 
as LOST.
+-use_beta_db_task_store (default false)
+    Whether to use the experimental database-backed task store.
+-viz_job_url_prefix (default )
+    URL prefix for job container stats.
+-zk_chroot_path
+    chroot path to use for the ZooKeeper connections
+-zk_digest_credentials
+    user:password to use when authenticating with ZooKeeper.
+-zk_in_proc (default false)
+    Launches an embedded zookeeper server for local testing causing 
-zk_endpoints to be ignored if specified.
+-zk_session_timeout (default (4, secs))
+    The ZooKeeper session timeout.
+-zk_use_curator (default true)
+    DEPRECATED: Uses Apache Curator as the zookeeper client; otherwise a copy 
of Twitter commons/zookeeper (the legacy library) is used.
+-------------------------------------------------------------------------
+</code></pre>
+
+</div>
+
+      </div>
+    </div>
+       <div class="container-fluid section-footer buffer">
+      <div class="container">
+        <div class="row">
+                 <div class="col-md-2 col-md-offset-1"><h3>Quick Links</h3>
+                 <ul>
+                   <li><a href="/downloads/">Downloads</a></li>
+            <li><a href="/community/">Mailing Lists</a></li>
+                       <li><a 
href="http://issues.apache.org/jira/browse/AURORA";>Issue Tracking</a></li>
+                       <li><a href="/documentation/latest/contributing/">How 
To Contribute</a></li>     
+                 </ul>
+             </div>
+                 <div class="col-md-2"><h3>The ASF</h3>
+          <ul>
+            <li><a href="http://www.apache.org/licenses/";>License</a></li>
+            <li><a 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li>  
+            <li><a 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li>
+            <li><a href="http://www.apache.org/security/";>Security</a></li>
+          </ul>
+                 </div>
+                 <div class="col-md-6">
+                       <p class="disclaimer">&copy; 2014-2017 <a 
href="http://www.apache.org/";>Apache Software Foundation</a>. Licensed under 
the <a href="http://www.apache.org/licenses/";>Apache License v2.0</a>. The <a 
href="https://www.flickr.com/photos/trondk/12706051375/";>Aurora Borealis IX 
photo</a> displayed on the homepage is available under a <a 
href="https://creativecommons.org/licenses/by-nc-nd/2.0/";>Creative Commons 
BY-NC-ND 2.0 license</a>. Apache, Apache Aurora, and the Apache feather logo 
are trademarks of The Apache Software Foundation.</p>
+        </div>
+      </div>
+    </div>
+
+  </body>
+</html>

Added: 
aurora/site/publish/documentation/0.17.0/reference/scheduler-endpoints/index.html
URL: 
http://svn.apache.org/viewvc/aurora/site/publish/documentation/0.17.0/reference/scheduler-endpoints/index.html?rev=1783940&view=auto
==============================================================================
--- 
aurora/site/publish/documentation/0.17.0/reference/scheduler-endpoints/index.html
 (added)
+++ 
aurora/site/publish/documentation/0.17.0/reference/scheduler-endpoints/index.html
 Tue Feb 21 20:54:58 2017
@@ -0,0 +1,152 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+       <title>Apache Aurora</title>
+    <link rel="stylesheet" 
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css";>
+    <link href="/assets/css/main.css" rel="stylesheet">
+       <!-- Analytics -->
+       <script type="text/javascript">
+                 var _gaq = _gaq || [];
+                 _gaq.push(['_setAccount', 'UA-45879646-1']);
+                 _gaq.push(['_setDomainName', 'apache.org']);
+                 _gaq.push(['_trackPageview']);
+
+                 (function() {
+                   var ga = document.createElement('script'); ga.type = 
'text/javascript'; ga.async = true;
+                   ga.src = ('https:' == document.location.protocol ? 
'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+                   var s = document.getElementsByTagName('script')[0]; 
s.parentNode.insertBefore(ga, s);
+                 })();
+       </script>
+  </head>
+  <body>
+    <div class="container-fluid section-header">
+  <div class="container">
+    <div class="nav nav-bar">
+    <a href="/"><img src="/assets/img/aurora_logo_dkbkg.svg" width="300" 
alt="Transparent Apache Aurora logo with dark background"/></a>
+    <ul class="nav navbar-nav navbar-right">
+      <li><a href="/documentation/latest/">Documentation</a></li>
+      <li><a href="/community/">Community</a></li>
+      <li><a href="/downloads/">Downloads</a></li>
+      <li><a href="/blog/">Blog</a></li>
+    </ul>
+    </div>
+  </div>
+</div>
+       
+    <div class="container-fluid">
+      <div class="container content">
+        <div class="col-md-12 documentation">
+<h5 class="page-header text-uppercase">Documentation
+<select onChange="window.location.href='/documentation/' + this.value + 
'/reference/scheduler-endpoints/'"
+        value="0.17.0">
+  <option value="0.17.0"
+    selected="selected">
+    0.17.0
+      (latest)
+  </option>
+  <option value="0.16.0"
+    >
+    0.16.0
+  </option>
+  <option value="0.15.0"
+    >
+    0.15.0
+  </option>
+  <option value="0.14.0"
+    >
+    0.14.0
+  </option>
+  <option value="0.13.0"
+    >
+    0.13.0
+  </option>
+  <option value="0.12.0"
+    >
+    0.12.0
+  </option>
+  <option value="0.11.0"
+    >
+    0.11.0
+  </option>
+  <option value="0.10.0"
+    >
+    0.10.0
+  </option>
+  <option value="0.9.0"
+    >
+    0.9.0
+  </option>
+  <option value="0.8.0"
+    >
+    0.8.0
+  </option>
+  <option value="0.7.0-incubating"
+    >
+    0.7.0-incubating
+  </option>
+  <option value="0.6.0-incubating"
+    >
+    0.6.0-incubating
+  </option>
+  <option value="0.5.0-incubating"
+    >
+    0.5.0-incubating
+  </option>
+</select>
+</h5>
+<h1 id="http-endpoints">HTTP endpoints</h1>
+
+<p>There are a number of HTTP endpoints that the Aurora scheduler exposes. 
These allow various
+operational tasks to be performed on the scheduler. Below is the list of all 
such endpoints
+and a brief explanation of what they do.</p>
+
+<h2 id="leader-health">Leader health</h2>
+
+<p>The /leaderhealth endpoint enables performing health checks on the 
scheduler instances inorder
+to forward requests to the leading scheduler. This is typically used by a load 
balancer such as
+HAProxy or AWS ELB.</p>
+
+<p>When a HTTP GET request is issued on this endpoint, it responds as 
follows:</p>
+
+<ul>
+<li>If the instance that received the GET request is the leading scheduler, a 
HTTP status code of
+200 (OK) is returned.</li>
+<li>If the instance that received the GET request is not the leading scheduler 
but a leader does
+exist, a HTTP status code of 503 (SERVICE_UNAVAILABLE) is returned.</li>
+<li>If no leader currently exists or the leader is unknown, a HTTP status code 
of 502
+(BAD_GATEWAY) is returned.</li>
+</ul>
+
+</div>
+
+      </div>
+    </div>
+       <div class="container-fluid section-footer buffer">
+      <div class="container">
+        <div class="row">
+                 <div class="col-md-2 col-md-offset-1"><h3>Quick Links</h3>
+                 <ul>
+                   <li><a href="/downloads/">Downloads</a></li>
+            <li><a href="/community/">Mailing Lists</a></li>
+                       <li><a 
href="http://issues.apache.org/jira/browse/AURORA";>Issue Tracking</a></li>
+                       <li><a href="/documentation/latest/contributing/">How 
To Contribute</a></li>     
+                 </ul>
+             </div>
+                 <div class="col-md-2"><h3>The ASF</h3>
+          <ul>
+            <li><a href="http://www.apache.org/licenses/";>License</a></li>
+            <li><a 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li>  
+            <li><a 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li>
+            <li><a href="http://www.apache.org/security/";>Security</a></li>
+          </ul>
+                 </div>
+                 <div class="col-md-6">
+                       <p class="disclaimer">&copy; 2014-2017 <a 
href="http://www.apache.org/";>Apache Software Foundation</a>. Licensed under 
the <a href="http://www.apache.org/licenses/";>Apache License v2.0</a>. The <a 
href="https://www.flickr.com/photos/trondk/12706051375/";>Aurora Borealis IX 
photo</a> displayed on the homepage is available under a <a 
href="https://creativecommons.org/licenses/by-nc-nd/2.0/";>Creative Commons 
BY-NC-ND 2.0 license</a>. Apache, Apache Aurora, and the Apache feather logo 
are trademarks of The Apache Software Foundation.</p>
+        </div>
+      </div>
+    </div>
+
+  </body>
+</html>

Added: 
aurora/site/publish/documentation/0.17.0/reference/task-lifecycle/index.html
URL: 
http://svn.apache.org/viewvc/aurora/site/publish/documentation/0.17.0/reference/task-lifecycle/index.html?rev=1783940&view=auto
==============================================================================
--- 
aurora/site/publish/documentation/0.17.0/reference/task-lifecycle/index.html 
(added)
+++ 
aurora/site/publish/documentation/0.17.0/reference/task-lifecycle/index.html 
Tue Feb 21 20:54:58 2017
@@ -0,0 +1,278 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+       <title>Apache Aurora</title>
+    <link rel="stylesheet" 
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css";>
+    <link href="/assets/css/main.css" rel="stylesheet">
+       <!-- Analytics -->
+       <script type="text/javascript">
+                 var _gaq = _gaq || [];
+                 _gaq.push(['_setAccount', 'UA-45879646-1']);
+                 _gaq.push(['_setDomainName', 'apache.org']);
+                 _gaq.push(['_trackPageview']);
+
+                 (function() {
+                   var ga = document.createElement('script'); ga.type = 
'text/javascript'; ga.async = true;
+                   ga.src = ('https:' == document.location.protocol ? 
'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+                   var s = document.getElementsByTagName('script')[0]; 
s.parentNode.insertBefore(ga, s);
+                 })();
+       </script>
+  </head>
+  <body>
+    <div class="container-fluid section-header">
+  <div class="container">
+    <div class="nav nav-bar">
+    <a href="/"><img src="/assets/img/aurora_logo_dkbkg.svg" width="300" 
alt="Transparent Apache Aurora logo with dark background"/></a>
+    <ul class="nav navbar-nav navbar-right">
+      <li><a href="/documentation/latest/">Documentation</a></li>
+      <li><a href="/community/">Community</a></li>
+      <li><a href="/downloads/">Downloads</a></li>
+      <li><a href="/blog/">Blog</a></li>
+    </ul>
+    </div>
+  </div>
+</div>
+       
+    <div class="container-fluid">
+      <div class="container content">
+        <div class="col-md-12 documentation">
+<h5 class="page-header text-uppercase">Documentation
+<select onChange="window.location.href='/documentation/' + this.value + 
'/reference/task-lifecycle/'"
+        value="0.17.0">
+  <option value="0.17.0"
+    selected="selected">
+    0.17.0
+      (latest)
+  </option>
+  <option value="0.16.0"
+    >
+    0.16.0
+  </option>
+  <option value="0.15.0"
+    >
+    0.15.0
+  </option>
+  <option value="0.14.0"
+    >
+    0.14.0
+  </option>
+  <option value="0.13.0"
+    >
+    0.13.0
+  </option>
+  <option value="0.12.0"
+    >
+    0.12.0
+  </option>
+  <option value="0.11.0"
+    >
+    0.11.0
+  </option>
+  <option value="0.10.0"
+    >
+    0.10.0
+  </option>
+  <option value="0.9.0"
+    >
+    0.9.0
+  </option>
+  <option value="0.8.0"
+    >
+    0.8.0
+  </option>
+  <option value="0.7.0-incubating"
+    >
+    0.7.0-incubating
+  </option>
+  <option value="0.6.0-incubating"
+    >
+    0.6.0-incubating
+  </option>
+  <option value="0.5.0-incubating"
+    >
+    0.5.0-incubating
+  </option>
+</select>
+</h5>
+<h1 id="task-lifecycle">Task Lifecycle</h1>
+
+<p>When Aurora reads a configuration file and finds a <code>Job</code> 
definition, it:</p>
+
+<ol>
+<li> Evaluates the <code>Job</code> definition.</li>
+<li> Splits the <code>Job</code> into its constituent <code>Task</code>s.</li>
+<li> Sends those <code>Task</code>s to the scheduler.</li>
+<li> The scheduler puts the <code>Task</code>s into <code>PENDING</code> 
state, starting each
+<code>Task</code>&rsquo;s life cycle.</li>
+</ol>
+
+<p><img alt="Life of a task" src="../../images/lifeofatask.png" /></p>
+
+<p>Please note, a couple of task states described below are missing from
+this state diagram.</p>
+
+<h2 id="pending-to-running-states">PENDING to RUNNING states</h2>
+
+<p>When a <code>Task</code> is in the <code>PENDING</code> state, the 
scheduler constantly
+searches for machines satisfying that <code>Task</code>&rsquo;s resource 
request
+requirements (RAM, disk space, CPU time) while maintaining configuration
+constraints such as &ldquo;a <code>Task</code> must run on machines  dedicated 
 to a
+particular role&rdquo; or attribute limit constraints such as &ldquo;at most 2
+<code>Task</code>s from the same <code>Job</code> may run on each rack&rdquo;. 
When the scheduler
+finds a suitable match, it assigns the <code>Task</code> to a machine and puts 
the
+<code>Task</code> into the <code>ASSIGNED</code> state.</p>
+
+<p>From the <code>ASSIGNED</code> state, the scheduler sends an RPC to the 
agent
+machine containing <code>Task</code> configuration, which the agent uses to 
spawn
+an executor responsible for the <code>Task</code>&rsquo;s lifecycle. When the 
scheduler
+receives an acknowledgment that the machine has accepted the <code>Task</code>,
+the <code>Task</code> goes into <code>STARTING</code> state.</p>
+
+<p><code>STARTING</code> state initializes a <code>Task</code> sandbox. When 
the sandbox is fully
+initialized, Thermos begins to invoke <code>Process</code>es. Also, the agent
+machine sends an update to the scheduler that the <code>Task</code> is
+in <code>RUNNING</code> state, only after the task satisfies the liveness 
requirements.
+See <a href="../features/services#health-checking">Health Checking</a> for 
more details
+for how to configure health checks.</p>
+
+<h2 id="running-to-terminal-states">RUNNING to terminal states</h2>
+
+<p>There are various ways that an active <code>Task</code> can transition into 
a terminal
+state. By definition, it can never leave this state. However, depending on
+nature of the termination and the originating <code>Job</code> definition
+(e.g. <code>service</code>, <code>max_task_failures</code>), a replacement 
<code>Task</code> might be
+scheduled.</p>
+
+<h3 id="natural-termination-finished-failed">Natural Termination: FINISHED, 
FAILED</h3>
+
+<p>A <code>RUNNING</code> <code>Task</code> can terminate without direct user 
interaction. For
+example, it may be a finite computation that finishes, even something as
+simple as <code>echo hello world.</code>, or it could be an exceptional 
condition in
+a long-lived service. If the <code>Task</code> is successful (its underlying
+processes have succeeded with exit status <code>0</code> or finished without
+reaching failure limits) it moves into <code>FINISHED</code> state. If it 
finished
+after reaching a set of failure limits, it goes into <code>FAILED</code> 
state.</p>
+
+<p>A terminated <code>TASK</code> which is subject to rescheduling will be 
temporarily
+<code>THROTTLED</code>, if it is considered to be flapping. A task is 
flapping, if its
+previous invocation was terminated after less than 5 minutes (scheduler
+default). The time penalty a task has to remain in the <code>THROTTLED</code> 
state,
+before it is eligible for rescheduling, increases with each consecutive
+failure.</p>
+
+<h3 id="forceful-termination-killing-restarting">Forceful Termination: 
KILLING, RESTARTING</h3>
+
+<p>You can terminate a <code>Task</code> by issuing an <code>aurora job 
kill</code> command, which
+moves it into <code>KILLING</code> state. The scheduler then sends the agent a
+request to terminate the <code>Task</code>. If the scheduler receives a 
successful
+response, it moves the Task into <code>KILLED</code> state and never restarts 
it.</p>
+
+<p>If a <code>Task</code> is forced into the <code>RESTARTING</code> state via 
the <code>aurora job restart</code>
+command, the scheduler kills the underlying task but in parallel schedules
+an identical replacement for it.</p>
+
+<p>In any case, the responsible executor on the agent follows an escalation
+sequence when killing a running task:</p>
+
+<ol>
+<li>If a <code>HttpLifecycleConfig</code> is not present, skip to (4).</li>
+<li>Send a POST to the <code>graceful_shutdown_endpoint</code> and wait 5 
seconds.</li>
+<li>Send a POST to the <code>shutdown_endpoint</code> and wait 5 seconds.</li>
+<li>Send SIGTERM (<code>kill</code>) and wait at most 
<code>finalization_wait</code> seconds.</li>
+<li>Send SIGKILL (<code>kill -9</code>).</li>
+</ol>
+
+<p>If the executor notices that all <code>Process</code>es in a 
<code>Task</code> have aborted
+during this sequence, it will not proceed with subsequent steps.
+Note that graceful shutdown is best-effort, and due to the many
+inevitable realities of distributed systems, it may not be performed.</p>
+
+<h3 id="unexpected-termination-lost">Unexpected Termination: LOST</h3>
+
+<p>If a <code>Task</code> stays in a transient task state for too long (such 
as <code>ASSIGNED</code>
+or <code>STARTING</code>), the scheduler forces it into <code>LOST</code> 
state, creating a new
+<code>Task</code> in its place that&rsquo;s sent into <code>PENDING</code> 
state.</p>
+
+<p>In addition, if the Mesos core tells the scheduler that a agent has
+become unhealthy (or outright disappeared), the <code>Task</code>s assigned to 
that
+agent go into <code>LOST</code> state and new <code>Task</code>s are created 
in their place.
+From <code>PENDING</code> state, there is no guarantee a <code>Task</code> 
will be reassigned
+to the same machine unless job constraints explicitly force it there.</p>
+
+<h3 id="giving-priority-to-production-tasks-preempting">Giving Priority to 
Production Tasks: PREEMPTING</h3>
+
+<p>Sometimes a Task needs to be interrupted, such as when a non-production
+Task&rsquo;s resources are needed by a higher priority production Task. This
+type of interruption is called a <em>pre-emption</em>. When this happens in
+Aurora, the non-production Task is killed and moved into
+the <code>PREEMPTING</code> state  when both the following are true:</p>
+
+<ul>
+<li>The task being killed is a non-production task.</li>
+<li>The other task is a <code>PENDING</code> production task that hasn&rsquo;t 
been
+scheduled due to a lack of resources.</li>
+</ul>
+
+<p>The scheduler UI shows the non-production task was preempted in favor of
+the production task. At some point, tasks in <code>PREEMPTING</code> move to 
<code>KILLED</code>.</p>
+
+<p>Note that non-production tasks consuming many resources are likely to be
+preempted in favor of production tasks.</p>
+
+<h3 id="making-room-for-maintenance-draining">Making Room for Maintenance: 
DRAINING</h3>
+
+<p>Cluster operators can set agent into maintenance mode. This will transition
+all <code>Task</code> running on this agent into <code>DRAINING</code> and 
eventually to <code>KILLED</code>.
+Drained <code>Task</code>s will be restarted on other agents for which no 
maintenance
+has been announced yet.</p>
+
+<h2 id="state-reconciliation">State Reconciliation</h2>
+
+<p>Due to the many inevitable realities of distributed systems, there might
+be a mismatch of perceived and actual cluster state (e.g. a machine returns
+from a <code>netsplit</code> but the scheduler has already marked all its 
<code>Task</code>s as
+<code>LOST</code> and rescheduled them).</p>
+
+<p>Aurora regularly runs a state reconciliation process in order to detect
+and correct such issues (e.g. by killing the errant <code>RUNNING</code> 
tasks).
+By default, the proper detection of all failure scenarios and inconsistencies
+may take up to an hour.</p>
+
+<p>To emphasize this point: there is no uniqueness guarantee for a single
+instance of a job in the presence of network partitions. If the 
<code>Task</code>
+requires that, it should be baked in at the application level using a
+distributed coordination service such as Zookeeper.</p>
+
+</div>
+
+      </div>
+    </div>
+       <div class="container-fluid section-footer buffer">
+      <div class="container">
+        <div class="row">
+                 <div class="col-md-2 col-md-offset-1"><h3>Quick Links</h3>
+                 <ul>
+                   <li><a href="/downloads/">Downloads</a></li>
+            <li><a href="/community/">Mailing Lists</a></li>
+                       <li><a 
href="http://issues.apache.org/jira/browse/AURORA";>Issue Tracking</a></li>
+                       <li><a href="/documentation/latest/contributing/">How 
To Contribute</a></li>     
+                 </ul>
+             </div>
+                 <div class="col-md-2"><h3>The ASF</h3>
+          <ul>
+            <li><a href="http://www.apache.org/licenses/";>License</a></li>
+            <li><a 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li>  
+            <li><a 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li>
+            <li><a href="http://www.apache.org/security/";>Security</a></li>
+          </ul>
+                 </div>
+                 <div class="col-md-6">
+                       <p class="disclaimer">&copy; 2014-2017 <a 
href="http://www.apache.org/";>Apache Software Foundation</a>. Licensed under 
the <a href="http://www.apache.org/licenses/";>Apache License v2.0</a>. The <a 
href="https://www.flickr.com/photos/trondk/12706051375/";>Aurora Borealis IX 
photo</a> displayed on the homepage is available under a <a 
href="https://creativecommons.org/licenses/by-nc-nd/2.0/";>Creative Commons 
BY-NC-ND 2.0 license</a>. Apache, Apache Aurora, and the Apache feather logo 
are trademarks of The Apache Software Foundation.</p>
+        </div>
+      </div>
+    </div>
+
+  </body>
+</html>

Modified: 
aurora/site/publish/documentation/0.5.0-incubating/client-commands/index.html
URL: 
http://svn.apache.org/viewvc/aurora/site/publish/documentation/0.5.0-incubating/client-commands/index.html?rev=1783940&r1=1783939&r2=1783940&view=diff
==============================================================================
--- 
aurora/site/publish/documentation/0.5.0-incubating/client-commands/index.html 
(original)
+++ 
aurora/site/publish/documentation/0.5.0-incubating/client-commands/index.html 
Tue Feb 21 20:54:58 2017
@@ -41,10 +41,14 @@
 <h5 class="page-header text-uppercase">Documentation
 <select onChange="window.location.href='/documentation/' + this.value + 
'/client-commands/'"
         value="0.5.0-incubating">
+  <option value="0.17.0"
+    >
+    0.17.0
+      (latest)
+  </option>
   <option value="0.16.0"
     >
     0.16.0
-      (latest)
   </option>
   <option value="0.15.0"
     >


Reply via email to