You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by gi...@apache.org on 2017/10/11 19:48:34 UTC

[1/6] mesos-site git commit: Updated the website built from mesos SHA: 8c0b351.

Repository: mesos-site
Updated Branches:
  refs/heads/asf-site 88650024b -> a5fb0e1cc


http://git-wip-us.apache.org/repos/asf/mesos-site/blob/a5fb0e1c/content/documentation/latest/configuration/master-and-agent/index.html
----------------------------------------------------------------------
diff --git a/content/documentation/latest/configuration/master-and-agent/index.html b/content/documentation/latest/configuration/master-and-agent/index.html
new file mode 100644
index 0000000..3362db0
--- /dev/null
+++ b/content/documentation/latest/configuration/master-and-agent/index.html
@@ -0,0 +1,535 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <title>Apache Mesos - Master and Agent Options</title>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+    <meta property="og:locale" content="en_US"/>
+    <meta property="og:type" content="website"/>
+    <meta property="og:title" content="Apache Mesos"/>
+    <meta property="og:site_name" content="Apache Mesos"/>
+    <meta property="og:url" content="http://mesos.apache.org/"/>
+    <meta property="og:image" content="http://mesos.apache.org/assets/img/mesos_logo_fb_preview.png"/>
+    <meta property="og:description"
+          content="Apache Mesos abstracts resources away from machines,
+                   enabling fault-tolerant and elastic distributed systems
+                   to easily be built and run effectively."/>
+
+    <meta name="twitter:card" content="summary"/>
+    <meta name="twitter:site" content="@ApacheMesos"/>
+    <meta name="twitter:title" content="Apache Mesos"/>
+    <meta name="twitter:image" content="http://mesos.apache.org/assets/img/mesos_logo_fb_preview.png"/>
+    <meta name="twitter:description"
+          content="Apache Mesos abstracts resources away from machines,
+                   enabling fault-tolerant and elastic distributed systems
+                   to easily be built and run effectively."/>
+
+    <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
+    <link rel="alternate" type="application/atom+xml" title="Apache Mesos Blog" href="/blog/feed.xml">
+    <link href="../../../../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" />
+
+    
+
+    <!-- Google Analytics Magic -->
+    <script type="text/javascript">
+    var _gaq = _gaq || [];
+    _gaq.push(['_setAccount', 'UA-20226872-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>
+    <!-- magical breadcrumbs -->
+    <div class="topnav">
+      <div class="container">
+        <ul class="breadcrumb">
+          <li>
+            <div class="dropdown">
+              <a data-toggle="dropdown" href="#">Apache Software Foundation <span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
+                <li><a href="http://www.apache.org">Apache Homepage</a></li>
+                <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>
+          </li>
+
+          <li><a href="http://mesos.apache.org">Apache Mesos</a></li>
+          
+          
+          <li><a href="/documentation
+/">Documentation
+</a></li>
+          
+          
+        </ul><!-- /.breadcrumb -->
+      </div><!-- /.container -->
+    </div><!-- /.topnav -->
+
+    <!-- navbar excitement -->
+<div class="navbar navbar-default navbar-static-top" role="navigation">
+  <div class="container">
+    <div class="navbar-header">
+      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#mesos-menu" aria-expanded="false">
+      <span class="sr-only">Toggle navigation</span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      </button>
+      <a class="navbar-brand" href="/"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo"/></a>
+    </div><!-- /.navbar-header -->
+
+    <div class="navbar-collapse collapse" id="mesos-menu">
+      <ul class="nav navbar-nav navbar-right">
+        <li><a href="/gettingstarted/">Getting Started</a></li>
+        <li><a href="/blog/">Blog</a></li>
+        <li><a href="/documentation/latest/">Documentation</a></li>
+        <li><a href="/downloads/">Downloads</a></li>
+        <li><a href="/community/">Community</a></li>
+      </ul>
+    </div><!-- /#mesos-menu -->
+  </div><!-- /.container -->
+</div><!-- /.navbar -->
+
+<div class="content">
+  <div class="container">
+    <div class="row-fluid">
+  <div class="col-md-4">
+    <h4>If you're new to Mesos</h4>
+    <p>See the <a href="/gettingstarted/">getting started</a> page for more
+       information about downloading, building, and deploying Mesos.</p>
+
+    <h4>If you'd like to get involved or you're looking for support</h4>
+    <p>See our <a href="/community/">community</a> page for more details.</p>
+  </div>
+  <div class="col-md-8">
+    <h1>Master and Agent Options</h1>
+
+<p><em>These options can be supplied to both masters and agents.</em></p>
+
+<table class="table table-striped">
+  <thead>
+    <tr>
+      <th width="30%">
+        Flag
+      </th>
+      <th>
+        Explanation
+      </th>
+    </tr>
+  </thead>
+<tr>
+  <td>
+    --advertise_ip=VALUE
+  </td>
+  <td>
+IP address advertised to reach this Mesos master/agent.
+The master/agent does not bind to this IP address.
+However, this IP address may be used to access this master/agent.
+  </td>
+</tr>
+<tr>
+  <td>
+    --advertise_port=VALUE
+  </td>
+  <td>
+Port advertised to reach this Mesos master/agent (along with
+<code>advertise_ip</code>). The master/agent does not bind using this port.
+However, this port (along with <code>advertise_ip</code>) may be used to
+access Mesos master/agent.
+  </td>
+</tr>
+<tr>
+  <td>
+    --[no-]authenticate_http_readonly
+  </td>
+  <td>
+If <code>true</code>, only authenticated requests for read-only HTTP endpoints
+supporting authentication are allowed. If <code>false</code>, unauthenticated
+requests to such HTTP endpoints are also allowed.
+  </td>
+</tr>
+<tr>
+  <td>
+    --[no-]authenticate_http_readwrite
+  </td>
+  <td>
+If <code>true</code>, only authenticated requests for read-write HTTP endpoints
+supporting authentication are allowed. If <code>false</code>, unauthenticated
+requests to such HTTP endpoints are also allowed.
+  </td>
+</tr>
+<tr>
+  <td>
+    --firewall_rules=VALUE
+  </td>
+  <td>
+The value could be a JSON-formatted string of rules or a
+file path containing the JSON-formatted rules used in the endpoints
+firewall. Path must be of the form <code>file:///path/to/file</code>
+or <code>/path/to/file</code>.
+<p/>
+See the <code>Firewall</code> message in <code>flags.proto</code> for the expected format.
+<p/>
+Example:
+<pre><code>{
+  "disabled_endpoints" : {
+    "paths" : [
+      "/files/browse",
+      "/metrics/snapshot"
+    ]
+  }
+}</code></pre>
+  </td>
+</tr>
+<tr>
+  <td>
+    --domain=VALUE
+  </td>
+  <td>
+Domain that the master or agent belongs to. Mesos currently only supports
+fault domains, which identify groups of hosts with similar failure
+characteristics. A fault domain consists of a region and a zone. All masters
+in the same Mesos cluster must be in the same region (they can be in
+different zones). Agents configured to use a different region than the
+master's region will not appear in resource offers to frameworks that have
+not enabled the <code>REGION_AWARE</code> capability. This value can be
+specified as either a JSON-formatted string or a file path containing JSON.
+<p/>
+Example:
+<pre><code>{
+  "fault_domain":
+    {
+      "region":
+        {
+          "name": "aws-us-east-1"
+        },
+      "zone":
+        {
+          "name": "aws-us-east-1a"
+        }
+    }
+}</code></pre>
+  </td>
+</tr>
+<tr>
+  <td>
+    --[no-]help
+  </td>
+  <td>
+Show the help message and exit. (default: false)
+  </td>
+</tr>
+<tr>
+  <td>
+    --hooks=VALUE
+  </td>
+  <td>
+A comma-separated list of hook modules to be installed inside master/agent.
+  </td>
+</tr>
+<tr>
+  <td>
+    --hostname=VALUE
+  </td>
+  <td>
+The hostname the agent node should report, or that the master
+should advertise in ZooKeeper.
+If left unset, the hostname is resolved from the IP address
+that the master/agent binds to; unless the user explicitly prevents
+that, using <code>--no-hostname_lookup</code>, in which case the IP itself
+is used.
+  </td>
+</tr>
+<tr>
+  <td>
+    --[no-]hostname_lookup
+  </td>
+  <td>
+Whether we should execute a lookup to find out the server's hostname,
+if not explicitly set (via, e.g., <code>--hostname</code>).
+True by default; if set to <code>false</code> it will cause Mesos
+to use the IP address, unless the hostname is explicitly set. (default: true)
+  </td>
+</tr>
+<tr>
+  <td>
+    --http_authenticators=VALUE
+  </td>
+  <td>
+HTTP authenticator implementation to use when handling requests to
+authenticated endpoints. Use the default <code>basic</code>, or load an
+alternate HTTP authenticator module using <code>--modules</code>.
+(default: basic, or basic and JWT if executor authentication is enabled)
+  </td>
+</tr>
+<tr>
+  <td>
+    --ip=VALUE
+  </td>
+  <td>
+IP address to listen on. This cannot be used in conjunction
+with <code>--ip_discovery_command</code>.
+  </td>
+</tr>
+<tr>
+  <td>
+    --ip_discovery_command=VALUE
+  </td>
+  <td>
+Optional IP discovery binary: if set, it is expected to emit
+the IP address which the master/agent will try to bind to.
+Cannot be used in conjunction with <code>--ip</code>.
+  </td>
+</tr>
+<tr>
+  <td>
+    --ip6=VALUE
+  </td>
+  <td>
+IPv6 address to listen on. This cannot be used in conjunction
+with <code>--ip6_discovery_command</code>.
+<p/>
+NOTE: Currently Mesos doesn't listen on IPv6 sockets and hence
+this IPv6 address is only used to advertise IPv6 addresses for
+containers running on the host network.
+  </td>
+</tr>
+<tr>
+  <td>
+    --ip6_discovery_command=VALUE
+  </td>
+  <td>
+Optional IPv6 discovery binary: if set, it is expected to emit
+the IPv6 address on which Mesos will try to bind when IPv6 socket
+support is enabled in Mesos.
+<p/>
+NOTE: Currently Mesos doesn't listen on IPv6 sockets and hence
+this IPv6 address is only used to advertise IPv6 addresses for
+containers running on the host network.
+  </td>
+</tr>
+<tr>
+  <td>
+    --modules=VALUE
+  </td>
+  <td>
+List of modules to be loaded and be available to the internal
+subsystems.
+<p/>
+Use <code>--modules=filepath</code> to specify the list of modules via a
+file containing a JSON-formatted string. <code>filepath</code> can be
+of the form <code>file:///path/to/file</code> or <code>/path/to/file</code>.
+<p/>
+Use <code>--modules="{...}"</code> to specify the list of modules inline.
+<p/>
+Example:
+<pre><code>{
+  "libraries": [
+    {
+      "file": "/path/to/libfoo.so",
+      "modules": [
+        {
+          "name": "org_apache_mesos_bar",
+          "parameters": [
+            {
+              "key": "X",
+              "value": "Y"
+            }
+          ]
+        },
+        {
+          "name": "org_apache_mesos_baz"
+        }
+      ]
+    },
+    {
+      "name": "qux",
+      "modules": [
+        {
+          "name": "org_apache_mesos_norf"
+        }
+      ]
+    }
+  ]
+}</code></pre>
+<p/> Cannot be used in conjunction with --modules_dir.
+  </td>
+</tr>
+<tr>
+  <td>
+    --modules_dir=VALUE
+  </td>
+  <td>
+Directory path of the module manifest files. The manifest files are processed in
+alphabetical order. (See <code>--modules</code> for more information on module
+manifest files). Cannot be used in conjunction with <code>--modules</code>.
+  </td>
+</tr>
+<tr>
+  <td>
+    --port=VALUE
+  </td>
+  <td>
+Port to listen on. (master default: 5050; agent default: 5051)
+  </td>
+</tr>
+<tr>
+  <td>
+    --[no-]version
+  </td>
+  <td>
+Show version and exit. (default: false)
+  </td>
+</tr>
+<tr>
+  <td>
+    --zk_session_timeout=VALUE
+  </td>
+  <td>
+ZooKeeper session timeout. (default: 10secs)
+  </td>
+</tr>
+</table>
+
+
+<h2>Logging Options</h2>
+
+<p><em>These logging options can also be supplied to both masters and agents.</em>
+For more about logging, see the <a href="/documentation/latest/configuration/../logging/">logging documentation</a>.</p>
+
+<table class="table table-striped">
+  <thead>
+    <tr>
+      <th width="30%">
+        Flag
+      </th>
+      <th>
+        Explanation
+      </th>
+    </tr>
+  </thead>
+<tr>
+  <td>
+    --[no-]quiet
+  </td>
+  <td>
+Disable logging to stderr. (default: false)
+  </td>
+</tr>
+<tr>
+  <td>
+    --log_dir=VALUE
+  </td>
+  <td>
+Location to put log files.  By default, nothing is written to disk.
+Does not affect logging to stderr.
+If specified, the log file will appear in the Mesos WebUI.
+<b>NOTE</b>: 3rd party log messages (e.g. ZooKeeper) are
+only written to stderr!
+  </td>
+</tr>
+<tr>
+  <td>
+    --logbufsecs=VALUE
+  </td>
+  <td>
+Maximum number of seconds that logs may be buffered for.
+By default, logs are flushed immediately. (default: 0)
+  </td>
+</tr>
+<tr>
+  <td>
+    --logging_level=VALUE
+  </td>
+  <td>
+Log message at or above this level.
+Possible values: <code>INFO</code>, <code>WARNING</code>, <code>ERROR</code>.
+If <code>--quiet</code> is specified, this will only affect the logs
+written to <code>--log_dir</code>, if specified. (default: INFO)
+  </td>
+</tr>
+<tr>
+  <td>
+    --[no-]initialize_driver_logging
+  </td>
+  <td>
+Whether the master/agent should initialize Google logging for the
+scheduler and executor drivers, in the same way as described here.
+The scheduler/executor drivers have separate logs and do not get
+written to the master/agent logs.
+<p/>
+This option has no effect when using the HTTP scheduler/executor APIs.
+(default: true)
+  </td>
+</tr>
+<tr>
+  <td>
+    --external_log_file=VALUE
+  </td>
+  <td>
+Location of the externally managed log file.  Mesos does not write to
+this file directly and merely exposes it in the WebUI and HTTP API.
+This is only useful when logging to stderr in combination with an
+external logging mechanism, like syslog or journald.
+<p/>
+This option is meaningless when specified along with <code>--quiet</code>.
+<p/>
+This option takes precedence over <code>--log_dir</code> in the WebUI.
+However, logs will still be written to the <code>--log_dir</code> if
+that option is specified.
+  </td>
+</tr>
+</table>
+
+
+  </div>
+</div>
+
+  </div><!-- /.container -->
+</div><!-- /.content -->
+
+<hr>
+
+
+
+    <!-- footer -->
+    <div class="footer">
+      <div class="container">
+        <div class="col-md-4 social-blk">
+          <span class="social">
+            <a href="https://twitter.com/ApacheMesos"
+              class="twitter-follow-button"
+              data-show-count="false" data-size="large">Follow @ApacheMesos</a>
+            <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
+            <a href="https://twitter.com/intent/tweet?button_hashtag=mesos"
+              class="twitter-hashtag-button"
+              data-size="large"
+              data-related="ApacheMesos">Tweet #mesos</a>
+            <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
+          </span>
+        </div>
+
+        <div class="col-md-8 trademark">
+          <p>&copy; 2012-2017 <a href="http://apache.org">The Apache Software Foundation</a>.
+            Apache Mesos, the Apache feather logo, and the Apache Mesos project logo are trademarks of The Apache Software Foundation.
+          <p>
+        </div>
+      </div><!-- /.container -->
+    </div><!-- /.footer -->
+
+    <!-- JS -->
+    <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script>
+    <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/a5fb0e1c/content/documentation/latest/configuration/master/index.html
----------------------------------------------------------------------
diff --git a/content/documentation/latest/configuration/master/index.html b/content/documentation/latest/configuration/master/index.html
new file mode 100644
index 0000000..1f66ab6
--- /dev/null
+++ b/content/documentation/latest/configuration/master/index.html
@@ -0,0 +1,731 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <title>Apache Mesos - Master Options</title>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+    <meta property="og:locale" content="en_US"/>
+    <meta property="og:type" content="website"/>
+    <meta property="og:title" content="Apache Mesos"/>
+    <meta property="og:site_name" content="Apache Mesos"/>
+    <meta property="og:url" content="http://mesos.apache.org/"/>
+    <meta property="og:image" content="http://mesos.apache.org/assets/img/mesos_logo_fb_preview.png"/>
+    <meta property="og:description"
+          content="Apache Mesos abstracts resources away from machines,
+                   enabling fault-tolerant and elastic distributed systems
+                   to easily be built and run effectively."/>
+
+    <meta name="twitter:card" content="summary"/>
+    <meta name="twitter:site" content="@ApacheMesos"/>
+    <meta name="twitter:title" content="Apache Mesos"/>
+    <meta name="twitter:image" content="http://mesos.apache.org/assets/img/mesos_logo_fb_preview.png"/>
+    <meta name="twitter:description"
+          content="Apache Mesos abstracts resources away from machines,
+                   enabling fault-tolerant and elastic distributed systems
+                   to easily be built and run effectively."/>
+
+    <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
+    <link rel="alternate" type="application/atom+xml" title="Apache Mesos Blog" href="/blog/feed.xml">
+    <link href="../../../../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" />
+
+    
+
+    <!-- Google Analytics Magic -->
+    <script type="text/javascript">
+    var _gaq = _gaq || [];
+    _gaq.push(['_setAccount', 'UA-20226872-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>
+    <!-- magical breadcrumbs -->
+    <div class="topnav">
+      <div class="container">
+        <ul class="breadcrumb">
+          <li>
+            <div class="dropdown">
+              <a data-toggle="dropdown" href="#">Apache Software Foundation <span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
+                <li><a href="http://www.apache.org">Apache Homepage</a></li>
+                <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>
+          </li>
+
+          <li><a href="http://mesos.apache.org">Apache Mesos</a></li>
+          
+          
+          <li><a href="/documentation
+/">Documentation
+</a></li>
+          
+          
+        </ul><!-- /.breadcrumb -->
+      </div><!-- /.container -->
+    </div><!-- /.topnav -->
+
+    <!-- navbar excitement -->
+<div class="navbar navbar-default navbar-static-top" role="navigation">
+  <div class="container">
+    <div class="navbar-header">
+      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#mesos-menu" aria-expanded="false">
+      <span class="sr-only">Toggle navigation</span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      </button>
+      <a class="navbar-brand" href="/"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo"/></a>
+    </div><!-- /.navbar-header -->
+
+    <div class="navbar-collapse collapse" id="mesos-menu">
+      <ul class="nav navbar-nav navbar-right">
+        <li><a href="/gettingstarted/">Getting Started</a></li>
+        <li><a href="/blog/">Blog</a></li>
+        <li><a href="/documentation/latest/">Documentation</a></li>
+        <li><a href="/downloads/">Downloads</a></li>
+        <li><a href="/community/">Community</a></li>
+      </ul>
+    </div><!-- /#mesos-menu -->
+  </div><!-- /.container -->
+</div><!-- /.navbar -->
+
+<div class="content">
+  <div class="container">
+    <div class="row-fluid">
+  <div class="col-md-4">
+    <h4>If you're new to Mesos</h4>
+    <p>See the <a href="/gettingstarted/">getting started</a> page for more
+       information about downloading, building, and deploying Mesos.</p>
+
+    <h4>If you'd like to get involved or you're looking for support</h4>
+    <p>See our <a href="/community/">community</a> page for more details.</p>
+  </div>
+  <div class="col-md-8">
+    <h1>Master Options</h1>
+
+<h2>Required Flags</h2>
+
+<table class="table table-striped">
+  <thead>
+    <tr>
+      <th width="30%">
+        Flag
+      </th>
+      <th>
+        Explanation
+      </th>
+    </tr>
+  </thead>
+<tr>
+  <td>
+    --quorum=VALUE
+  </td>
+  <td>
+The size of the quorum of replicas when using <code>replicated_log</code> based
+registry. It is imperative to set this value to be a majority of
+masters i.e., <code>quorum > (number of masters)/2</code>.
+<b>NOTE</b>: Not required if master is run in standalone mode (non-HA).
+  </td>
+</tr>
+<tr>
+  <td>
+    --work_dir=VALUE
+  </td>
+  <td>
+Path of the master work directory. This is where the persistent
+information of the cluster will be stored. Note that locations like
+<code>/tmp</code> which are cleaned automatically are not suitable for the work
+directory when running in production, since long-running masters could
+lose data when cleanup occurs. (Example: <code>/var/lib/mesos/master</code>)
+  </td>
+</tr>
+<tr>
+  <td>
+    --zk=VALUE
+  </td>
+  <td>
+ZooKeeper URL (used for leader election amongst masters).
+May be one of:
+<pre><code>zk://host1:port1,host2:port2,.../path
+zk://username:password@host1:port1,host2:port2,.../path
+file:///path/to/file (where file contains one of the above)</code></pre>
+<b>NOTE</b>: Not required if master is run in standalone mode (non-HA).
+  </td>
+</tr>
+</table>
+
+
+<h2>Optional Flags</h2>
+
+<table class="table table-striped">
+  <thead>
+    <tr>
+      <th width="30%">
+        Flag
+      </th>
+      <th>
+        Explanation
+      </th>
+    </tr>
+  </thead>
+<tr>
+  <td>
+    --acls=VALUE
+  </td>
+  <td>
+The value could be a JSON-formatted string of ACLs
+or a file path containing the JSON-formatted ACLs used
+for authorization. Path could be of the form <code>file:///path/to/file</code>
+or <code>/path/to/file</code>.
+<p/>
+Note that if the flag <code>--authorizers</code> is provided with a value
+different than <code>local</code>, the ACLs contents will be
+ignored.
+<p/>
+See the ACLs protobuf in acls.proto for the expected format.
+<p/>
+Example:
+<pre><code>{
+  "register_frameworks": [
+    {
+      "principals": { "type": "ANY" },
+      "roles": { "values": ["a"] }
+    }
+  ],
+  "run_tasks": [
+    {
+      "principals": { "values": ["a", "b"] },
+      "users": { "values": ["c"] }
+    }
+  ],
+  "teardown_frameworks": [
+    {
+      "principals": { "values": ["a", "b"] },
+      "framework_principals": { "values": ["c"] }
+    }
+  ],
+  "set_quotas": [
+    {
+      "principals": { "values": ["a"] },
+      "roles": { "values": ["a", "b"] }
+    }
+  ],
+  "remove_quotas": [
+    {
+      "principals": { "values": ["a"] },
+      "quota_principals": { "values": ["a"] }
+    }
+  ],
+  "get_endpoints": [
+    {
+      "principals": { "values": ["a"] },
+      "paths": { "values": ["/flags"] }
+    }
+  ]
+}</code></pre>
+  </td>
+</tr>
+<tr>
+  <td>
+    --agent_ping_timeout=VALUE,
+    <p/>
+    --slave_ping_timeout=VALUE
+  </td>
+  <td>
+The timeout within which an agent is expected to respond to a
+ping from the master. Agents that do not respond within
+max_agent_ping_timeouts ping retries will be asked to shutdown.
+<b>NOTE</b>: The total ping timeout (<code>agent_ping_timeout</code> multiplied by
+<code>max_agent_ping_timeouts</code>) should be greater than the ZooKeeper
+session timeout to prevent useless re-registration attempts.
+(default: 15secs)
+  </td>
+</tr>
+<tr>
+  <td>
+    --agent_removal_rate_limit=VALUE
+    <p/>
+    --slave_removal_rate_limit=VALUE
+  </td>
+  <td>
+The maximum rate (e.g., <code>1/10mins</code>, <code>2/3hrs</code>, etc) at which agents
+will be removed from the master when they fail health checks.
+By default, agents will be removed as soon as they fail the health
+checks. The value is of the form <code>(Number of agents)/(Duration)</code>.
+  </td>
+</tr>
+<tr>
+  <td>
+    --agent_reregister_timeout=VALUE
+    <p/>
+    --slave_reregister_timeout=VALUE
+  </td>
+  <td>
+The timeout within which an agent is expected to re-register.
+Agents re-register when they become disconnected from the master
+or when a new master is elected as the leader. Agents that do not
+re-register within the timeout will be marked unreachable in the
+registry; if/when the agent re-registers with the master, any
+non-partition-aware tasks running on the agent will be terminated.
+<b>NOTE</b>: This value has to be at least 10mins. (default: 10mins)
+  </td>
+</tr>
+<tr>
+  <td>
+    --allocation_interval=VALUE
+  </td>
+  <td>
+Amount of time to wait between performing
+(batch) allocations (e.g., 500ms, 1sec, etc). (default: 1secs)
+  </td>
+</tr>
+<tr>
+  <td>
+    --allocator=VALUE
+  </td>
+  <td>
+Allocator to use for resource allocation to frameworks.
+Use the default <code>HierarchicalDRF</code> allocator, or
+load an alternate allocator module using <code>--modules</code>.
+(default: HierarchicalDRF)
+  </td>
+</tr>
+<tr>
+  <td>
+    --[no-]authenticate_agents,
+    <p/>
+    --[no-]authenticate_slaves
+  </td>
+  <td>
+If <code>true</code> only authenticated agents are allowed to register.
+If <code>false</code> unauthenticated agents are also allowed to register. (default: false)
+  </td>
+</tr>
+<tr>
+  <td>
+    --[no-]authenticate_frameworks,
+    <p/>
+    --[no-]authenticate
+  </td>
+  <td>
+If <code>true</code>, only authenticated frameworks are allowed to register. If
+<code>false</code>, unauthenticated frameworks are also allowed to register. For
+HTTP based frameworks use the <code>--authenticate_http_frameworks</code> flag. (default: false)
+  </td>
+</tr>
+<tr>
+  <td>
+    --[no-]authenticate_http_frameworks
+  </td>
+  <td>
+If <code>true</code>, only authenticated HTTP based frameworks are allowed to
+register. If <code>false</code>, HTTP frameworks are not authenticated. (default: false)
+  </td>
+</tr>
+<tr>
+  <td>
+    --authenticators=VALUE
+  </td>
+  <td>
+Authenticator implementation to use when authenticating frameworks
+and/or agents. Use the default <code>crammd5</code>, or
+load an alternate authenticator module using <code>--modules</code>. (default: crammd5)
+  </td>
+</tr>
+<tr>
+  <td>
+    --authorizers=VALUE
+  </td>
+  <td>
+Authorizer implementation to use when authorizing actions that
+require it.
+Use the default <code>local</code>, or
+load an alternate authorizer module using <code>--modules</code>.
+<p/>
+Note that if the flag <code>--authorizers</code> is provided with a value
+different than the default <code>local</code>, the ACLs
+passed through the <code>--acls</code> flag will be ignored.
+<p/>
+Currently there is no support for multiple authorizers. (default: local)
+  </td>
+</tr>
+<tr>
+  <td>
+    --cluster=VALUE
+  </td>
+  <td>
+Human readable name for the cluster, displayed in the webui.
+  </td>
+</tr>
+<tr>
+  <td>
+    --credentials=VALUE
+  </td>
+  <td>
+Path to a JSON-formatted file containing credentials.
+Path can be of the form <code>file:///path/to/file</code> or <code>/path/to/file</code>.
+Example:
+<pre><code>{
+  "credentials": [
+    {
+      "principal": "sherman",
+      "secret": "kitesurf"
+    }
+  ]
+}</code></pre>
+  </td>
+</tr>
+<tr>
+  <td>
+    --fair_sharing_excluded_resource_names=VALUE
+  </td>
+  <td>
+A comma-separated list of the resource names (e.g. 'gpus') that will be excluded
+from fair sharing constraints. This may be useful in cases where the fair
+sharing implementation currently has limitations. E.g. See the problem of
+"scarce" resources:
+    <a href="http://www.mail-archive.com/dev@mesos.apache.org/msg35631.html">msg35631</a>
+    <a href="https://issues.apache.org/jira/browse/MESOS-5377">MESOS-5377</a>
+  </td>
+</tr>
+<tr>
+  <td>
+    --[no_]filter_gpu_resources
+  </td>
+  <td>
+When set to true, this flag will cause the mesos master to filter all offers
+from agents with GPU resources by only sending them to frameworks that opt into
+the 'GPU_RESOURCES' framework capability. When set to false, this flag will
+cause the master to not filter offers from agents with GPU resources, and
+indiscriminately send them to all frameworks whether they set the
+'GPU_RESOURCES' capability or not.  This flag is meant as a temporary workaround
+towards the eventual deprecation of the 'GPU_RESOURCES' capability. Please see
+the following for more information:
+    <a href="https://www.mail-archive.com/dev@mesos.apache.org/msg37571.html">msg37571</a>
+    <a href="https://issues.apache.org/jira/browse/MESOS-7576">MESOS-7576</a>
+  </td>
+</tr>
+<tr>
+  <td>
+    --framework_sorter=VALUE
+  </td>
+  <td>
+Policy to use for allocating resources between a given user's
+frameworks. Options are the same as for <code>--user_sorter</code>.
+(default: drf)
+  </td>
+</tr>
+<tr>
+  <td>
+    --http_framework_authenticators=VALUE
+  </td>
+  <td>
+HTTP authenticator implementation to use when authenticating HTTP frameworks.
+Use the <code>basic</code> authenticator or load an alternate HTTP authenticator
+module using <code>--modules</code>. This must be used in conjunction with
+<code>--authenticate_http_frameworks</code>.
+<p/>
+Currently there is no support for multiple HTTP authenticators.
+  </td>
+</tr>
+<tr>
+  <td>
+    --[no-]log_auto_initialize
+  </td>
+  <td>
+Whether to automatically initialize the [replicated log](/documentation/latest/configuration/../replicated-log-internals/)
+used for the registry. If this is set to false, the log has to be manually
+initialized when used for the very first time. (default: true)
+  </td>
+</tr>
+<tr>
+  <td>
+    --master_contender=VALUE
+  </td>
+  <td>
+The symbol name of the master contender to use. This symbol should exist in a
+module specified through the <code>--modules</code> flag. Cannot be used in
+conjunction with <code>--zk</code>. Must be used in conjunction with
+<code>--master_detector</code>.
+  </td>
+</tr>
+<tr>
+  <td>
+    --master_detector=VALUE
+  </td>
+  <td>
+The symbol name of the master detector to use. This symbol should exist in a
+module specified through the <code>--modules</code> flag. Cannot be used in
+conjunction with <code>--zk</code>. Must be used in conjunction with
+<code>--master_contender</code>.
+  </td>
+</tr>
+<tr>
+  <td>
+    --max_agent_ping_timeouts=VALUE,
+    <p/>
+    --max_slave_ping_timeouts=VALUE
+  </td>
+  <td>
+The number of times an agent can fail to respond to a
+ping from the master. Agents that do not respond within
+<code>max_agent_ping_timeouts</code> ping retries will be asked to shutdown.
+(default: 5)
+  </td>
+</tr>
+<tr>
+  <td>
+    --max_completed_frameworks=VALUE
+  </td>
+  <td>
+Maximum number of completed frameworks to store in memory. (default: 50)
+  </td>
+</tr>
+<tr>
+  <td>
+    --max_completed_tasks_per_framework=VALUE
+  </td>
+  <td>
+Maximum number of completed tasks per framework to store in memory. (default: 1000)
+  </td>
+</tr>
+<tr>
+  <td>
+    --max_unreachable_tasks_per_framework=VALUE
+  </td>
+  <td>
+Maximum number of unreachable tasks per framework to store in memory. (default: 1000)
+  </td>
+</tr>
+<tr>
+  <td>
+    --offer_timeout=VALUE
+  </td>
+  <td>
+Duration of time before an offer is rescinded from a framework.
+This helps fairness when running frameworks that hold on to offers,
+or frameworks that accidentally drop offers.
+If not set, offers do not timeout.
+  </td>
+</tr>
+<tr>
+  <td>
+    --rate_limits=VALUE
+  </td>
+  <td>
+The value could be a JSON-formatted string of rate limits
+or a file path containing the JSON-formatted rate limits used
+for framework rate limiting.
+Path could be of the form <code>file:///path/to/file</code>
+or <code>/path/to/file</code>.
+<p/>
+See the RateLimits protobuf in mesos.proto for the expected format.
+<p/>
+Example:
+<pre><code>{
+  "limits": [
+    {
+      "principal": "foo",
+      "qps": 55.5
+    },
+    {
+      "principal": "bar"
+    }
+  ],
+  "aggregate_default_qps": 33.3
+}</code></pre>
+  </td>
+</tr>
+<tr>
+  <td>
+    --recovery_agent_removal_limit=VALUE,
+    <p/>
+    --recovery_slave_removal_limit=VALUE
+  </td>
+  <td>
+For failovers, limit on the percentage of agents that can be removed
+from the registry *and* shutdown after the re-registration timeout
+elapses. If the limit is exceeded, the master will fail over rather
+than remove the agents.
+This can be used to provide safety guarantees for production
+environments. Production environments may expect that across master
+failovers, at most a certain percentage of agents will fail
+permanently (e.g. due to rack-level failures).
+Setting this limit would ensure that a human needs to get
+involved should an unexpected widespread failure of agents occur
+in the cluster.
+Values: [0%-100%] (default: 100%)
+  </td>
+</tr>
+<tr>
+  <td>
+    --registry=VALUE
+  </td>
+  <td>
+Persistence strategy for the registry; available options are
+<code>replicated_log</code>, <code>in_memory</code> (for testing). (default: replicated_log)
+  </td>
+</tr>
+<tr>
+  <td>
+    --registry_fetch_timeout=VALUE
+  </td>
+  <td>
+Duration of time to wait in order to fetch data from the registry
+after which the operation is considered a failure. (default: 1mins)
+  </td>
+</tr>
+<tr>
+  <td>
+    --registry_store_timeout=VALUE
+  </td>
+  <td>
+Duration of time to wait in order to store data in the registry
+after which the operation is considered a failure. (default: 20secs)
+  </td>
+</tr>
+<tr>
+  <td>
+    --roles=VALUE
+  </td>
+  <td>
+A comma-separated list of the allocation roles that frameworks
+in this cluster may belong to. This flag is deprecated;
+if it is not specified, any role name can be used.
+  </td>
+</tr>
+<tr>
+  <td>
+    --[no-]root_submissions
+  </td>
+  <td>
+Can root submit frameworks? (default: true)
+  </td>
+</tr>
+<tr>
+  <td>
+    --user_sorter=VALUE
+  </td>
+  <td>
+Policy to use for allocating resources between users. May be one of:
+  dominant_resource_fairness (drf) (default: drf)
+  </td>
+</tr>
+<tr>
+  <td>
+    --webui_dir=VALUE
+  </td>
+  <td>
+Directory path of the webui files/assets (default: /usr/local/share/mesos/webui)
+  </td>
+</tr>
+<tr>
+  <td>
+    --weights=VALUE
+  </td>
+  <td>
+A comma-separated list of role/weight pairs of the form
+<code>role=weight,role=weight</code>. Weights can be used to control the
+relative share of cluster resources that is offered to different roles. This
+flag is deprecated. Instead, operators should configure weights dynamically
+using the <code>/weights</code> HTTP endpoint.
+  </td>
+</tr>
+<tr>
+  <td>
+    --whitelist=VALUE
+  </td>
+  <td>
+Path to a file which contains a list of agents (one per line) to
+advertise offers for. The file is watched and periodically re-read to
+refresh the agent whitelist. By default there is no whitelist: all
+machines are accepted. Path can be of the form
+<code>file:///path/to/file</code> or <code>/path/to/file</code>.
+  </td>
+</tr>
+</table>
+
+
+<h2>Network Isolator Flags</h2>
+
+<p><em>Available when configured with <code>--with-network-isolator</code>.</em></p>
+
+<table class="table table-striped">
+  <thead>
+    <tr>
+      <th width="30%">
+        Flag
+      </th>
+      <th>
+        Explanation
+      </th>
+    </tr>
+  </thead>
+<tr>
+  <td>
+    --max_executors_per_agent=VALUE,
+    <p/>
+     --max_executors_per_slave=VALUE
+  </td>
+  <td>
+Maximum number of executors allowed per agent. The network
+monitoring/isolation technique imposes an implicit resource
+acquisition on each executor (# ephemeral ports), as a result
+one can only run a certain number of executors on each agent.
+  </td>
+</tr>
+</table>
+
+
+  </div>
+</div>
+
+  </div><!-- /.container -->
+</div><!-- /.content -->
+
+<hr>
+
+
+
+    <!-- footer -->
+    <div class="footer">
+      <div class="container">
+        <div class="col-md-4 social-blk">
+          <span class="social">
+            <a href="https://twitter.com/ApacheMesos"
+              class="twitter-follow-button"
+              data-show-count="false" data-size="large">Follow @ApacheMesos</a>
+            <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
+            <a href="https://twitter.com/intent/tweet?button_hashtag=mesos"
+              class="twitter-hashtag-button"
+              data-size="large"
+              data-related="ApacheMesos">Tweet #mesos</a>
+            <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
+          </span>
+        </div>
+
+        <div class="col-md-8 trademark">
+          <p>&copy; 2012-2017 <a href="http://apache.org">The Apache Software Foundation</a>.
+            Apache Mesos, the Apache feather logo, and the Apache Mesos project logo are trademarks of The Apache Software Foundation.
+          <p>
+        </div>
+      </div><!-- /.container -->
+    </div><!-- /.footer -->
+
+    <!-- JS -->
+    <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script>
+    <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/a5fb0e1c/content/documentation/latest/container-image/index.html
----------------------------------------------------------------------
diff --git a/content/documentation/latest/container-image/index.html b/content/documentation/latest/container-image/index.html
index de66522..9ead890 100644
--- a/content/documentation/latest/container-image/index.html
+++ b/content/documentation/latest/container-image/index.html
@@ -310,7 +310,7 @@ container credential is not supported yet (coming soon).</p>
 <p>Operators can either specify the flag as an absolute path pointing to
 the docker config file (need to manually configure
 <code>.docker/config.json</code> or <code>.dockercfg</code> on each agent), or specify the
-flag as a JSON-formatted string. See <a href="/documentation/latest/./configuration/">configuration
+flag as a JSON-formatted string. See <a href="/documentation/latest/./configuration/agent/">configuration
 documentation</a> for detail. For example:</p>
 
 <pre><code>--docker_config=file:///home/vagrant/.docker/config.json

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/a5fb0e1c/content/documentation/latest/docker-containerizer/index.html
----------------------------------------------------------------------
diff --git a/content/documentation/latest/docker-containerizer/index.html b/content/documentation/latest/docker-containerizer/index.html
index 4bc4775..4817ab9 100644
--- a/content/documentation/latest/docker-containerizer/index.html
+++ b/content/documentation/latest/docker-containerizer/index.html
@@ -212,7 +212,7 @@ sandbox so docker cli will automatically pick up the config file.</p>
 config file for pulling images from private registries. We allow
 operators to specify a shared docker config file using an agent flag.
 This docker config file will be used to pull images from private
-registries for all containers. See <a href="/documentation/latest/./configuration/">configuration
+registries for all containers. See <a href="/documentation/latest/./configuration/agent/">configuration
 documentation</a> for detail. Operators can either
 specify the flag as an absolute path pointing to the docker config
 file (need to manually configure <code>.docker/config.json</code> or <code>.dockercfg</code>

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/a5fb0e1c/content/documentation/latest/fetcher/index.html
----------------------------------------------------------------------
diff --git a/content/documentation/latest/fetcher/index.html b/content/documentation/latest/fetcher/index.html
index 1f84ac2..49842e2 100644
--- a/content/documentation/latest/fetcher/index.html
+++ b/content/documentation/latest/fetcher/index.html
@@ -132,7 +132,7 @@ the input to the Mesos fetcher.</p>
 supports the HTTP, HTTPS, FTP and FTPS protocols. If the requested URI is based
 on some other protocol, then the fetcher tries to utilise a local Hadoop client
 and hence supports any protocol supported by the Hadoop client, e.g., HDFS, S3.
-See the agent <a href="/documentation/latest/./configuration/">configuration documentation</a>
+See the agent <a href="/documentation/latest/./configuration/agent/">configuration documentation</a>
 for how to configure the agent with a path to the Hadoop client.</p>
 
 <p>By default, each requested URI is downloaded directly into the sandbox directory

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/a5fb0e1c/content/documentation/latest/index.html
----------------------------------------------------------------------
diff --git a/content/documentation/latest/index.html b/content/documentation/latest/index.html
index f6a9080..44ee1d9 100644
--- a/content/documentation/latest/index.html
+++ b/content/documentation/latest/index.html
@@ -130,7 +130,8 @@
 <li><a href="/documentation/latest/./agent-recovery/">Agent Recovery</a> for doing seamless agent upgrades and allowing executors to survive <code>mesos-agent</code> crashes.</li>
 <li><a href="/documentation/latest/./authentication/">Authentication</a></li>
 <li><a href="/documentation/latest/./authorization/">Authorization</a></li>
-<li><a href="/documentation/latest/./configuration/">Configuration</a> and <a href="/documentation/latest/./configuration-cmake/">CMake configuration</a> for command-line arguments.</li>
+<li><a href="/documentation/latest/./cmake/">CMake</a> for details about using the new CMake build system.</li>
+<li><a href="/documentation/latest/./configuration/">Configuration</a> for command-line arguments.</li>
 <li><a href="/documentation/latest/./container-image/">Container Image</a> for supporting container images in Mesos containerizer.</li>
 <li><a href="/documentation/latest/./container-volume/">Container Volume</a> for using container volumes.</li>
 <li><a href="/documentation/latest/./containerizers/">Containerizers</a> for containerizer overview and use cases.

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/a5fb0e1c/content/documentation/latest/logging/index.html
----------------------------------------------------------------------
diff --git a/content/documentation/latest/logging/index.html b/content/documentation/latest/logging/index.html
index 1323882..c67307a 100644
--- a/content/documentation/latest/logging/index.html
+++ b/content/documentation/latest/logging/index.html
@@ -134,7 +134,8 @@ implement their own logging solution.</li>
 <p>The Mesos Master and Agent use the
 <a href="https://github.com/google/glog">Google&rsquo;s logging library</a>.
 For information regarding the command-line options used to configure this
-library, see the <a href="/documentation/latest/./configuration/">configuration documentation</a>.
+library, see the
+<a href="/documentation/latest/./configuration/master-and-agent/#logging-options">configuration documentation</a>.
 Google logging options that are not explicitly mentioned there can be
 configured via environment variables.</p>
 

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/a5fb0e1c/content/documentation/latest/sandbox/index.html
----------------------------------------------------------------------
diff --git a/content/documentation/latest/sandbox/index.html b/content/documentation/latest/sandbox/index.html
index 4d49525..bab2b59 100644
--- a/content/documentation/latest/sandbox/index.html
+++ b/content/documentation/latest/sandbox/index.html
@@ -287,7 +287,7 @@ After the delay, the files are deleted.</p>
 <p>Additionally, according to the <code>--disk_watch_interval</code> agent flag, files
 scheduled for garbage collection are pruned based on the available disk and
 the <code>--gc_disk_headroom</code> agent flag.
-See <a href="/documentation/latest/./configuration/#gc_disk_headroom">the formula here</a>.</p>
+See <a href="/documentation/latest/./configuration/agent/#gc_disk_headroom">the formula here</a>.</p>
 
   </div>
 </div>

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/a5fb0e1c/content/documentation/logging/index.html
----------------------------------------------------------------------
diff --git a/content/documentation/logging/index.html b/content/documentation/logging/index.html
index 7597828..00800c5 100644
--- a/content/documentation/logging/index.html
+++ b/content/documentation/logging/index.html
@@ -134,7 +134,8 @@ implement their own logging solution.</li>
 <p>The Mesos Master and Agent use the
 <a href="https://github.com/google/glog">Google&rsquo;s logging library</a>.
 For information regarding the command-line options used to configure this
-library, see the <a href="/documentation/latest/./configuration/">configuration documentation</a>.
+library, see the
+<a href="/documentation/latest/./configuration/master-and-agent/#logging-options">configuration documentation</a>.
 Google logging options that are not explicitly mentioned there can be
 configured via environment variables.</p>
 

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/a5fb0e1c/content/documentation/sandbox/index.html
----------------------------------------------------------------------
diff --git a/content/documentation/sandbox/index.html b/content/documentation/sandbox/index.html
index 70a67c9..48b537e 100644
--- a/content/documentation/sandbox/index.html
+++ b/content/documentation/sandbox/index.html
@@ -287,7 +287,7 @@ After the delay, the files are deleted.</p>
 <p>Additionally, according to the <code>--disk_watch_interval</code> agent flag, files
 scheduled for garbage collection are pruned based on the available disk and
 the <code>--gc_disk_headroom</code> agent flag.
-See <a href="/documentation/latest/./configuration/#gc_disk_headroom">the formula here</a>.</p>
+See <a href="/documentation/latest/./configuration/agent/#gc_disk_headroom">the formula here</a>.</p>
 
   </div>
 </div>

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/a5fb0e1c/content/sitemap.xml
----------------------------------------------------------------------
diff --git a/content/sitemap.xml b/content/sitemap.xml
index 14fc059..9d974a7 100644
--- a/content/sitemap.xml
+++ b/content/sitemap.xml
@@ -16069,6 +16069,14 @@
     <lastmod>2017-10-11T00:00:00+00:00</lastmod>
   </url>
   <url>
+    <loc>http://mesos.apache.org/documentation/latest/cmake-examples/</loc>
+    <lastmod>2017-10-11T00:00:00+00:00</lastmod>
+  </url>
+  <url>
+    <loc>http://mesos.apache.org/documentation/latest/cmake/</loc>
+    <lastmod>2017-10-11T00:00:00+00:00</lastmod>
+  </url>
+  <url>
     <loc>http://mesos.apache.org/documentation/latest/design-docs/</loc>
     <lastmod>2017-10-11T00:00:00+00:00</lastmod>
   </url>
@@ -16189,6 +16197,30 @@
     <lastmod>2017-10-11T00:00:00+00:00</lastmod>
   </url>
   <url>
+    <loc>http://mesos.apache.org/documentation/latest/configuration/cmake/</loc>
+    <lastmod>2017-10-11T00:00:00+00:00</lastmod>
+  </url>
+  <url>
+    <loc>http://mesos.apache.org/documentation/latest/configuration/master-and-agent/</loc>
+    <lastmod>2017-10-11T00:00:00+00:00</lastmod>
+  </url>
+  <url>
+    <loc>http://mesos.apache.org/documentation/latest/configuration/master/</loc>
+    <lastmod>2017-10-11T00:00:00+00:00</lastmod>
+  </url>
+  <url>
+    <loc>http://mesos.apache.org/documentation/latest/configuration/autotools/</loc>
+    <lastmod>2017-10-11T00:00:00+00:00</lastmod>
+  </url>
+  <url>
+    <loc>http://mesos.apache.org/documentation/latest/configuration/libprocess/</loc>
+    <lastmod>2017-10-11T00:00:00+00:00</lastmod>
+  </url>
+  <url>
+    <loc>http://mesos.apache.org/documentation/latest/configuration/agent/</loc>
+    <lastmod>2017-10-11T00:00:00+00:00</lastmod>
+  </url>
+  <url>
     <loc>http://mesos.apache.org/documentation/latest/oversubscription/</loc>
     <lastmod>2017-10-11T00:00:00+00:00</lastmod>
   </url>
@@ -16249,10 +16281,6 @@
     <lastmod>2017-10-11T00:00:00+00:00</lastmod>
   </url>
   <url>
-    <loc>http://mesos.apache.org/documentation/latest/configuration-cmake/</loc>
-    <lastmod>2017-10-11T00:00:00+00:00</lastmod>
-  </url>
-  <url>
     <loc>http://mesos.apache.org/documentation/latest/windows/</loc>
     <lastmod>2017-10-11T00:00:00+00:00</lastmod>
   </url>
@@ -16885,6 +16913,14 @@
     <lastmod>2017-10-11T00:00:00+00:00</lastmod>
   </url>
   <url>
+    <loc>http://mesos.apache.org/documentation/cmake-examples/</loc>
+    <lastmod>2017-10-11T00:00:00+00:00</lastmod>
+  </url>
+  <url>
+    <loc>http://mesos.apache.org/documentation/cmake/</loc>
+    <lastmod>2017-10-11T00:00:00+00:00</lastmod>
+  </url>
+  <url>
     <loc>http://mesos.apache.org/documentation/design-docs/</loc>
     <lastmod>2017-10-11T00:00:00+00:00</lastmod>
   </url>
@@ -17021,10 +17057,6 @@
     <lastmod>2017-10-11T00:00:00+00:00</lastmod>
   </url>
   <url>
-    <loc>http://mesos.apache.org/documentation/configuration-cmake/</loc>
-    <lastmod>2017-10-11T00:00:00+00:00</lastmod>
-  </url>
-  <url>
     <loc>http://mesos.apache.org/documentation/windows/</loc>
     <lastmod>2017-10-11T00:00:00+00:00</lastmod>
   </url>


[6/6] mesos-site git commit: Updated the website built from mesos SHA: 8c0b351.

Posted by gi...@apache.org.
Updated the website built from mesos SHA: 8c0b351.


Project: http://git-wip-us.apache.org/repos/asf/mesos-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos-site/commit/a5fb0e1c
Tree: http://git-wip-us.apache.org/repos/asf/mesos-site/tree/a5fb0e1c
Diff: http://git-wip-us.apache.org/repos/asf/mesos-site/diff/a5fb0e1c

Branch: refs/heads/asf-site
Commit: a5fb0e1ccaf30de3c7a232215739d55a4ccd96d0
Parents: 8865002
Author: jenkins <bu...@apache.org>
Authored: Wed Oct 11 19:48:32 2017 +0000
Committer: jenkins <bu...@apache.org>
Committed: Wed Oct 11 19:48:32 2017 +0000

----------------------------------------------------------------------
 content/documentation/agent-recovery/index.html |    2 +-
 content/documentation/authorization/index.html  |    2 +-
 content/documentation/cmake-examples/index.html |  531 ++++
 content/documentation/cmake/index.html          |  514 +++
 .../configuration-cmake/index.html              |  259 --
 content/documentation/configuration/index.html  | 2958 +-----------------
 .../documentation/container-image/index.html    |    2 +-
 .../docker-containerizer/index.html             |    2 +-
 content/documentation/fetcher/index.html        |    2 +-
 content/documentation/index.html                |    3 +-
 .../latest/agent-recovery/index.html            |    2 +-
 .../latest/authorization/index.html             |    2 +-
 .../latest/cmake-examples/index.html            |  531 ++++
 content/documentation/latest/cmake/index.html   |  514 +++
 .../latest/configuration-cmake/index.html       |  259 --
 .../latest/configuration/agent/index.html       | 1479 +++++++++
 .../latest/configuration/autotools/index.html   |  729 +++++
 .../latest/configuration/cmake/index.html       |  312 ++
 .../latest/configuration/index.html             | 2958 +-----------------
 .../latest/configuration/libprocess/index.html  |  261 ++
 .../configuration/master-and-agent/index.html   |  535 ++++
 .../latest/configuration/master/index.html      |  731 +++++
 .../latest/container-image/index.html           |    2 +-
 .../latest/docker-containerizer/index.html      |    2 +-
 content/documentation/latest/fetcher/index.html |    2 +-
 content/documentation/latest/index.html         |    3 +-
 content/documentation/latest/logging/index.html |    3 +-
 content/documentation/latest/sandbox/index.html |    2 +-
 content/documentation/logging/index.html        |    3 +-
 content/documentation/sandbox/index.html        |    2 +-
 content/sitemap.xml                             |   48 +-
 31 files changed, 6231 insertions(+), 6424 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos-site/blob/a5fb0e1c/content/documentation/agent-recovery/index.html
----------------------------------------------------------------------
diff --git a/content/documentation/agent-recovery/index.html b/content/documentation/agent-recovery/index.html
index c8cb08a..9864bc0 100644
--- a/content/documentation/agent-recovery/index.html
+++ b/content/documentation/agent-recovery/index.html
@@ -154,7 +154,7 @@ In other cases such as checkpointed resources (e.g. persistent volumes) being in
 
 <h2>Agent Configuration</h2>
 
-<p>Three <a href="/documentation/latest/./configuration/">configuration flags</a> control the recovery behavior of a Mesos agent:</p>
+<p>Three <a href="/documentation/latest/./configuration/agent/">configuration flags</a> control the recovery behavior of a Mesos agent:</p>
 
 <ul>
 <li><p><code>strict</code>: Whether to do agent recovery in strict mode [Default: true].</p>

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/a5fb0e1c/content/documentation/authorization/index.html
----------------------------------------------------------------------
diff --git a/content/documentation/authorization/index.html b/content/documentation/authorization/index.html
index bfad49c..518284a 100644
--- a/content/documentation/authorization/index.html
+++ b/content/documentation/authorization/index.html
@@ -125,7 +125,7 @@ frameworks subscribed to any roles.</p>
 use cases. This authorizer is configured using Access Control Lists (ACLs).
 Alternative implementations could express their authorization rules in
 different ways. The local authorizer is used if the
-<a href="/documentation/latest/./configuration/"><code>--authorizers</code></a> flag is not specified (or manually set to
+<a href="/documentation/latest/./configuration/master/"><code>--authorizers</code></a> flag is not specified (or manually set to
 the default value <code>local</code>) and ACLs are specified via the
 <a href="/documentation/latest/./configuration/"><code>--acls</code></a> flag.</p>
 

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/a5fb0e1c/content/documentation/cmake-examples/index.html
----------------------------------------------------------------------
diff --git a/content/documentation/cmake-examples/index.html b/content/documentation/cmake-examples/index.html
new file mode 100644
index 0000000..c6df745
--- /dev/null
+++ b/content/documentation/cmake-examples/index.html
@@ -0,0 +1,531 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <title>Apache Mesos - CMake By Example</title>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+    <meta property="og:locale" content="en_US"/>
+    <meta property="og:type" content="website"/>
+    <meta property="og:title" content="Apache Mesos"/>
+    <meta property="og:site_name" content="Apache Mesos"/>
+    <meta property="og:url" content="http://mesos.apache.org/"/>
+    <meta property="og:image" content="http://mesos.apache.org/assets/img/mesos_logo_fb_preview.png"/>
+    <meta property="og:description"
+          content="Apache Mesos abstracts resources away from machines,
+                   enabling fault-tolerant and elastic distributed systems
+                   to easily be built and run effectively."/>
+
+    <meta name="twitter:card" content="summary"/>
+    <meta name="twitter:site" content="@ApacheMesos"/>
+    <meta name="twitter:title" content="Apache Mesos"/>
+    <meta name="twitter:image" content="http://mesos.apache.org/assets/img/mesos_logo_fb_preview.png"/>
+    <meta name="twitter:description"
+          content="Apache Mesos abstracts resources away from machines,
+                   enabling fault-tolerant and elastic distributed systems
+                   to easily be built and run effectively."/>
+
+    <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
+    <link rel="alternate" type="application/atom+xml" title="Apache Mesos Blog" href="/blog/feed.xml">
+    <link href="../../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" />
+
+    
+
+    <!-- Google Analytics Magic -->
+    <script type="text/javascript">
+    var _gaq = _gaq || [];
+    _gaq.push(['_setAccount', 'UA-20226872-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>
+    <!-- magical breadcrumbs -->
+    <div class="topnav">
+      <div class="container">
+        <ul class="breadcrumb">
+          <li>
+            <div class="dropdown">
+              <a data-toggle="dropdown" href="#">Apache Software Foundation <span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
+                <li><a href="http://www.apache.org">Apache Homepage</a></li>
+                <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>
+          </li>
+
+          <li><a href="http://mesos.apache.org">Apache Mesos</a></li>
+          
+          
+          <li><a href="/documentation
+/">Documentation
+</a></li>
+          
+          
+        </ul><!-- /.breadcrumb -->
+      </div><!-- /.container -->
+    </div><!-- /.topnav -->
+
+    <!-- navbar excitement -->
+<div class="navbar navbar-default navbar-static-top" role="navigation">
+  <div class="container">
+    <div class="navbar-header">
+      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#mesos-menu" aria-expanded="false">
+      <span class="sr-only">Toggle navigation</span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      </button>
+      <a class="navbar-brand" href="/"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo"/></a>
+    </div><!-- /.navbar-header -->
+
+    <div class="navbar-collapse collapse" id="mesos-menu">
+      <ul class="nav navbar-nav navbar-right">
+        <li><a href="/gettingstarted/">Getting Started</a></li>
+        <li><a href="/blog/">Blog</a></li>
+        <li><a href="/documentation/latest/">Documentation</a></li>
+        <li><a href="/downloads/">Downloads</a></li>
+        <li><a href="/community/">Community</a></li>
+      </ul>
+    </div><!-- /#mesos-menu -->
+  </div><!-- /.container -->
+</div><!-- /.navbar -->
+
+<div class="content">
+  <div class="container">
+    <div class="row-fluid">
+  <div class="col-md-4">
+    <h4>If you're new to Mesos</h4>
+    <p>See the <a href="/gettingstarted/">getting started</a> page for more
+       information about downloading, building, and deploying Mesos.</p>
+
+    <h4>If you'd like to get involved or you're looking for support</h4>
+    <p>See our <a href="/community/">community</a> page for more details.</p>
+  </div>
+  <div class="col-md-8">
+    <h1>Adding a new library or executable</h1>
+
+<p>When adding a new library or executable, prefer using the name directly as the
+target. E.g. <code>libprocess</code> is <code>add_library(process)</code>, and <code>mesos-agent</code> is
+<code>add_executable(mesos-agent)</code>. Note that, on platforms where it is conventional,
+<code>add_library</code> will prepend <code>lib</code> when writing the library to disk.</p>
+
+<p>Do not introduce a variable simply to hold the name of the target; if the name
+on disk needs to be a specific value, set the target property <code>OUTPUT_NAME</code>.</p>
+
+<h1>Adding a third-party dependency</h1>
+
+<p>When adding a third-party dependency, keep the principle of locality in mind.
+All necessary data for building with and linking to the library should
+be defined where the library is imported. A consumer of the dependency should
+only have to add <code>target_link_libraries(consumer dependency)</code>, with every other
+build property coming from the graph (library location, include directories,
+compiler definitions, etc.).</p>
+
+<p>The steps to add a new third-party dependency are:</p>
+
+<ol>
+<li> Add the version and SHA256 hash to <code>Versions.cmake</code>.</li>
+<li> Add the URL/tarball file to the top of <code>3rdparty/CMakeLists.txt</code>.</li>
+<li> Find an appropriate location in <code>3rdparty/CMakeLists.txt</code> to declare the
+ library. Add a nice header with the name, description, and home page.</li>
+<li> Use <code>add_library(IMPORTED)</code> to declare an imported target.
+ A header-only library is imported with <code>add_library(INTERFACE)</code>.</li>
+<li> Use <a href="https://cmake.org/cmake/help/latest/module/ExternalProject.html"><code>ExternalProject_Add</code></a> to obtain, configure, and build the library.</li>
+<li> Link the consumer to the dependency.</li>
+</ol>
+
+
+<h2><code>INTERFACE</code> libraries</h2>
+
+<p>Using header-only libraries in CMake is a breeze. The special <code>INTERFACE</code>
+library lets you declare a header-only library as a proper CMake target, and
+then use it like any other library. Let&rsquo;s look at Boost for an example.</p>
+
+<p>First, we add two lines to <code>Versions.cmake</code>:</p>
+
+<pre><code>set(BOOST_VERSION "1.53.0")
+set(BOOST_HASH    "SHA256=CED7CE2ED8D7D34815AC9DB1D18D28FCD386FFBB3DE6DA45303E1CF193717038")
+</code></pre>
+
+<p>This lets us keep the versions (and the SHA256 hash of the tarball) of all our
+third-party dependencies in one location.</p>
+
+<p>Second, we add one line to the top of <code>3rdparty/CMakeLists.txt</code> to declare the
+location of the tarball:</p>
+
+<pre><code>set(BOOST_URL ${FETCH_URL}/boost-${BOOST_VERSION}.tar.gz)
+</code></pre>
+
+<p>The <code>FETCH_URL</code> variable lets the <code>REBUNDLED</code> option switch between offline and
+online versions. The use of <code>BOOST_VERSION</code> shows why this variable is declared
+early; it&rsquo;s used a few times.</p>
+
+<p>Third, we find a location in <code>3rdparty/CMakeLists.txt</code> to declare the Boost
+library.</p>
+
+<pre><code># Boost: C++ Libraries.
+# http://www.boost.org
+#######################
+...
+</code></pre>
+
+<p>We start with a proper header naming and describing the library, complete with
+its home page URL. This is for other developers to easily identify why this
+third-party dependency exists.</p>
+
+<pre><code>...
+EXTERNAL(boost ${BOOST_VERSION} ${CMAKE_CURRENT_BINARY_DIR})
+add_library(boost INTERFACE)
+add_dependencies(boost ${BOOST_TARGET})
+target_include_directories(boost SYSTEM INTERFACE ${BOOST_ROOT})
+...
+</code></pre>
+
+<p>Fourth, we declare the Boost target.</p>
+
+<p>To make things easier, we invoke our custom CMake function <code>EXTERNAL</code> to setup
+some variables for us: <code>BOOST_TARGET</code>, <code>BOOST_ROOT</code>, and <code>BOOST_CMAKE_ROOT</code>. See
+<a href="/documentation/latest/./cmake/#EXTERNAL">the docs</a> for more explanation of <code>EXTERNAL</code>.</p>
+
+<p>Then we call <code>add_library(boost INTERFACE)</code>. This creates a header-only CMake
+target, usable like any other library. We use <code>add_dependencies(boost
+${BOOST_TARGET})</code> to add a manual dependency on the <code>ExternalProject_Add</code> step;
+this is necessary as CMake is lazy and won&rsquo;t execute code unless it must (say,
+because of a dependency). The final part of creating this header-only library in
+our build system is <code>target_include_directories(boost SYSTEM INTERFACE
+${BOOST_ROOT})</code>, which sets the <code>BOOST_ROOT</code> folder (the destination of the
+extracted headers) as the include interface for the <code>boost</code> target. All
+dependencies on Boost will now automatically include this folder during
+compilation.</p>
+
+<p>Fifth, we setup the <code>ExternalProject_Add</code> step. This CMake module is incredibly
+flexible, but we&rsquo;re using it in the simplest case.</p>
+
+<pre><code>...
+ExternalProject_Add(
+  ${BOOST_TARGET}
+  PREFIX            ${BOOST_CMAKE_ROOT}
+  CONFIGURE_COMMAND ${CMAKE_NOOP}
+  BUILD_COMMAND     ${CMAKE_NOOP}
+  INSTALL_COMMAND   ${CMAKE_NOOP}
+  URL               ${BOOST_URL}
+  URL_HASH          ${BOOST_HASH})
+</code></pre>
+
+<p>The name of the custom target this creates is <code>BOOST_TARGET</code>, and the prefix
+directory for all the subsequent steps is <code>BOOST_CMAKE_ROOT</code>. Because this is a
+header-only library, and <code>ExternalProject_Add</code> defaults to invoking <code>cmake</code>, we
+use <code>CMAKE_NOOP</code> to disable the configure, build, and install commands. See <a href="/documentation/latest/./cmake/#cmake_noop">the
+docs</a> for more explanation of <code>CMAKE_NOOP</code>. Thus this code
+will simply verify the tarball with <code>BOOST_HASH</code>, and then extract it from
+<code>BOOST_URL</code> to <code>BOOST_ROOT</code> (a sub-folder of <code>BOOST_CMAKE_ROOT</code>).</p>
+
+<p>Sixth, and finally, we link <code>stout</code> to <code>boost</code>. This is the <em>only</em> change
+necessary to <code>3rdparty/stout/CMakeLists.txt</code>, as the include directory
+information is embedded in the CMake graph.</p>
+
+<pre><code>target_link_libraries(
+  stout INTERFACE
+  ...
+  boost
+  ...)
+</code></pre>
+
+<p>This dependency need not be specified again, as <code>libprocess</code> and <code>libmesos</code> link
+to <code>stout</code>, and so <code>boost</code> is picked up transitively.</p>
+
+<h3>Stout</h3>
+
+<p>Stout is a header-only library. Like Boost, it is a real CMake target, declared
+in <code>3rdparty/stout/CMakeLists.txt</code>, just without the external bits.</p>
+
+<pre><code>add_library(stout INTERFACE)
+target_include_directories(stout INTERFACE include)
+target_link_libraries(
+  stout INTERFACE
+  apr
+  boost
+  curl
+  elfio
+  glog
+  ...)
+</code></pre>
+
+<p>It is added as an <code>INTERFACE</code> library. Its include directory is specified as an
+<code>INTERFACE</code> (the <code>PUBLIC</code> property cannot be used as the library itself is just
+an interface). Its &ldquo;link&rdquo; dependencies (despite not being a real, linkable
+library) are specified as an <code>INTERFACE</code>.</p>
+
+<p>This notion of an interface in the CMake dependency graph is what makes the
+build system reasonable. The Mesos library and executables, and <code>libprocess</code>, do
+not have to repeat these lower level dependencies that come from <code>stout</code>.</p>
+
+<h2><code>IMPORTED</code> libraries</h2>
+
+<p>Third-party dependencies that we build are only more complicated because we have
+to encode their build steps too. We&rsquo;ll examine <code>glog</code>, and go over the
+differences from the interface library <code>boost</code>.</p>
+
+<p>Notably, when we declare the library, we use:</p>
+
+<pre><code>add_library(glog ${LIBRARY_LINKAGE} IMPORTED GLOBAL)
+</code></pre>
+
+<p>Instead of <code>INTERFACE</code> we specify <code>IMPORTED</code> as it is an actual library. We add
+<code>GLOBAL</code> to enable our pre-compiled header module <code>cotire</code> to find the targets
+(as they would otherwise be scoped only to <code>3rdparty</code> and below). And most
+oddly, we use <code>${LIBRARY_LINKAGE}</code> to set it as <code>SHARED</code> or <code>STATIC</code> based on
+<code>BUILD_SHARED_LIBS</code>, as we can build this dependency in both manners. See <a href="/documentation/latest/./cmake/#library_linkage">the
+docs</a> for more information.</p>
+
+<p>We must patch our bundled version of <code>glog</code> so we call:</p>
+
+<pre><code>PATCH_CMD(GLOG_PATCH_CMD glog-${GLOG_VERSION}.patch)
+</code></pre>
+
+<p>This generates a patch command. See <a href="/documentation/latest/./cmake/#patch_cmd">the docs</a> for more
+information.</p>
+
+<p>This library is an example of where we differ on Windows and other platforms. On
+Windows, we build <code>glog</code> with CMake, and have several properties we must set:</p>
+
+<pre><code>set_target_properties(
+  glog PROPERTIES
+  IMPORTED_LOCATION_DEBUG ${GLOG_ROOT}-build/Debug/glog${LIBRARY_SUFFIX}
+  IMPORTED_LOCATION_RELEASE ${GLOG_ROOT}-build/Release/glog${LIBRARY_SUFFIX}
+  IMPORTED_IMPLIB_DEBUG ${GLOG_ROOT}-build/Debug/glog${CMAKE_IMPORT_LIBRARY_SUFFIX}
+  IMPORTED_IMPLIB_RELEASE ${GLOG_ROOT}-build/Release/glog${CMAKE_IMPORT_LIBRARY_SUFFIX}
+  INTERFACE_INCLUDE_DIRECTORIES ${GLOG_ROOT}/src/windows
+  # TODO(andschwa): Remove this when glog is updated.
+  IMPORTED_LINK_INTERFACE_LIBRARIES DbgHelp
+  INTERFACE_COMPILE_DEFINITIONS "${GLOG_COMPILE_DEFINITIONS}")
+</code></pre>
+
+<p>The location of an imported library <em>must</em> be set for the build system to link
+to it. There is no notion of search through link directories for imported
+libraries.</p>
+
+<p>Windows requires both the <code>DEBUG</code> and <code>RELEASE</code> locations of the library
+specified, and since we have (experimental) support to build <code>glog</code> as a shared
+library on Windows, we also have to declare the <code>IMPLIB</code> location. Fortunately,
+these locations are programmatic based of <code>GLOG_ROOT</code>, set from our call to
+<code>EXTERNAL</code>.</p>
+
+<p>Note that we cannot use <code>target_include_directories</code> with an imported target. We
+have to set <code>INTERFACE_INCLUDE_DIRECTORIES</code> manually instead.</p>
+
+<p>This version of <code>glog</code> on Windows depends on <code>DbgHelp</code> but does not use a
+<code>#pragma</code> to include it, so we set it as an interface library that must also be
+linked, using the <code>IMPORTED_LINK_INTERFACE_LIBRARIES</code> property.</p>
+
+<p>For Windows there are multiple compile definitions that must be set when
+building with the <code>glog</code> headers, these are specified with the
+<code>INTERFACE_COMPILE_DEFINITIONS</code> property.</p>
+
+<p>For non-Windows platforms, we just set the Autotools commands to configure,
+make, and install <code>glog</code>. These commands depend on the project requirements. We
+also set the <code>IMPORTED_LOCATION</code> and <code>INTERFACE_INCLUDE_DIRECTORIES</code>.</p>
+
+<pre><code>set(GLOG_CONFIG_CMD  ${GLOG_ROOT}/src/../configure --with-pic GTEST_CONFIG=no --prefix=${GLOG_ROOT}-build)
+set(GLOG_BUILD_CMD   make)
+set(GLOG_INSTALL_CMD make install)
+
+set_target_properties(
+  glog PROPERTIES
+  IMPORTED_LOCATION ${GLOG_ROOT}-build/lib/libglog${LIBRARY_SUFFIX}
+  INTERFACE_INCLUDE_DIRECTORIES ${GLOG_ROOT}-build/include)
+</code></pre>
+
+<p>To work around some issues, we have to call <code>MAKE_INCLUDE_DIR(glog)</code> to create
+the include directory immediately so as to satisfy CMake&rsquo;s requirement that it
+exists (it will be populated by <code>ExternalProject_Add</code> during the build, but must
+exist first). See <a href="/documentation/latest/./cmake/#make_include_dir">the docs</a> for more information.</p>
+
+<p>Then call <code>GET_BYPRODUCTS(glog)</code> to create the <code>GLOG_BYPRODUCTS</code> variable, which
+is sent to <code>ExternalProject_Add</code> to make the Ninja build generator happy. See
+<a href="/documentation/latest/./cmake/#get_byproducts">the docs</a> for more information.</p>
+
+<pre><code>MAKE_INCLUDE_DIR(glog)
+GET_BYPRODUCTS(glog)
+</code></pre>
+
+<p>Like with Boost, we call <code>ExternalProject_Add</code>:</p>
+
+<pre><code>ExternalProject_Add(
+  ${GLOG_TARGET}
+  PREFIX            ${GLOG_CMAKE_ROOT}
+  BUILD_BYPRODUCTS  ${GLOG_BYPRODUCTS}
+  PATCH_COMMAND     ${GLOG_PATCH_CMD}
+  CMAKE_ARGS        ${CMAKE_FORWARD_ARGS};-DBUILD_TESTING=OFF
+  CONFIGURE_COMMAND ${GLOG_CONFIG_CMD}
+  BUILD_COMMAND     ${GLOG_BUILD_CMD}
+  INSTALL_COMMAND   ${GLOG_INSTALL_CMD}
+  URL               ${GLOG_URL}
+  URL_HASH          ${GLOG_HASH})
+</code></pre>
+
+<p>In contrast to an interface library, we need to send all the build information,
+which we set in variables prior. This includes the <code>BUILD_BYPRODUCTS</code>, and the
+<code>PATCH_COMMAND</code> as we have to patch <code>glog</code>.</p>
+
+<p>Since we build <code>glog</code> with CMake on Windows, we have to set <code>CMAKE_ARGS</code> with
+the <code>CMAKE_FORWARD_ARGS</code>, and particular to <code>glog</code>, we disable its tests with
+<code>-DBUILD_TESTING=OFF</code>, though this is not a canonical CMake option.</p>
+
+<p>On Linux, we set the config, build, and install commands, and send them too.
+These are empty on Windows, so <code>ExternalProject_Add</code> will fallback to using
+CMake, as we needed.</p>
+
+<p>Finally, we add <code>glog</code> to as a link library to <code>stout</code>:</p>
+
+<pre><code>target_link_libraries(
+  stout INTERFACE
+  ...
+  glog
+  ...)
+</code></pre>
+
+<p>No other code is necessary, we have completed adding, building, and linking to
+<code>glog</code>. The same patterns can be adapted for any other third-party dependency.</p>
+
+<h1>Building debug or release configurations</h1>
+
+<p>The default configuration is always <code>Debug</code>, which means with debug symbols and
+without (many) optimizations. Of course, when deploying Mesos an optimized
+<code>Release</code> build is desired. This is one of the few inconsistencies in CMake, and
+it&rsquo;s due to the difference between so-called &ldquo;single-configuration generators&rdquo;
+(such as GNU Make) and &ldquo;multi-configuration generators&rdquo; (such as Visual Studio).</p>
+
+<h2>Configuration-time configurations</h2>
+
+<p>In single-configuration generators, the configuration (debug or release) is
+chosen at configuration time (that is, when initially calling <code>cmake</code> to
+configure the build), and it is not changeable without re-configuring. So
+building a <code>Release</code> configuration on Linux (with GNU Make) is done via:</p>
+
+<pre><code>cmake -DCMAKE_BUILD_TYPE=Release ..
+cmake --build .
+</code></pre>
+
+<h2>Build-time configurations</h2>
+
+<p>However, the Visual Studio generator on Windows allows the developer to change
+the release at build-time, making it a multi-configuration generator. CMake
+generates a configuration-agnostic solution (and so <code>CMAKE_BUILD_TYPE</code> is
+ignored), and the user switches the configuration when building. This can be
+done with the familiar configuration menu in the Visual Studio IDE, or with
+CMake via:</p>
+
+<pre><code>cmake ..
+cmake --build . --config Release
+</code></pre>
+
+<p>In the same build folder, a <code>Debug</code> build can also be built, with the binaries
+stored in <code>Debug</code> and <code>Release</code> folders respectively. Unfortunately, the current
+CMake build explicitly sets the final binary destination directories, and so the
+final libraries and executables will overwrite each other when building
+different configurations.</p>
+
+<p>Note that Visual Studio is not the only IDE that uses a multi-configuration
+generator, Xcode on Mac OS X does as well.
+See <a href="https://issues.apache.org/jira/browse/MESOS-7943">MESOS-7943</a> for more information.</p>
+
+<h2>Building with shared or static libraries</h2>
+
+<p>On Linux, the configuration option <code>-DBUILD_SHARED_LIBS=FALSE</code> can be used to
+switch to static libraries where possible. Otherwise Linux builds shared
+libraries by default.</p>
+
+<p>On Windows, static libraries are the default. Building with shared libraries on
+Windows is not yet supported, as it requires code change to import symbols
+properly.</p>
+
+<h2>Building with Java</h2>
+
+<p>When building with Java on Windows, you must add the <a href="https://maven.apache.org/guides/getting-started/windows-prerequisites.html">Maven</a> build tool to
+your path. The <code>JAVA_HOME</code> environment variable must also be manually set.
+An installation of the Java SDK can be found form <a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">Oracle</a>.</p>
+
+<p>As of this writing, Java 9 is not yet supported, but Java 8 has been tested.</p>
+
+<p>The Java build defaults to <code>OFF</code> because it is slow, to build the Java
+components on Windows, turn it <code>ON</code>:</p>
+
+<pre><code class="powershell">mkdir build; cd build
+$env:PATH += ";C:\...\apache-maven-3.3.9\bin\"
+$env:JAVA_HOME = "C:\Program Files\Java\jdk1.8.0_144"
+cmake .. -DENABLE_JAVA=ON -DENABLE_LIBEVENT=ON -G "Visual Studio 15 2017 Win64" -T "host=x64"
+cmake --build . --target mesos-java
+</code></pre>
+
+<p>Note that the <code>mesos-java</code> library does not have to be manually built; as
+<code>libmesos</code> will link it when Java is enabled.</p>
+
+<p>At runtime, if <code>JAVA_JVM_LIBRARY</code> is not set correctly, it can also be set as an
+environment variable, and should be of the form:</p>
+
+<pre><code>C:\Program Files\Java\jdk1.8.0_144\jre\bin\server\jvm.dll
+</code></pre>
+
+<h2>Building with OpenSSL</h2>
+
+<p>When building with OpenSSL on Windows, you must build or install a distribution
+of OpenSSL for Windows. A commonly chosen distribution is <a href="https://slproweb.com/products/Win32OpenSSL.html">Shining Light
+Productions' OpenSSL</a>.</p>
+
+<p>As of this writing, OpenSSL 1.1.x is not yet supported, but 1.0.2L has been
+tested.</p>
+
+<p>Use <code>-DENABLE_SSL=ON</code> when running CMake to build with OpenSSL.</p>
+
+  </div>
+</div>
+
+  </div><!-- /.container -->
+</div><!-- /.content -->
+
+<hr>
+
+
+
+    <!-- footer -->
+    <div class="footer">
+      <div class="container">
+        <div class="col-md-4 social-blk">
+          <span class="social">
+            <a href="https://twitter.com/ApacheMesos"
+              class="twitter-follow-button"
+              data-show-count="false" data-size="large">Follow @ApacheMesos</a>
+            <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
+            <a href="https://twitter.com/intent/tweet?button_hashtag=mesos"
+              class="twitter-hashtag-button"
+              data-size="large"
+              data-related="ApacheMesos">Tweet #mesos</a>
+            <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
+          </span>
+        </div>
+
+        <div class="col-md-8 trademark">
+          <p>&copy; 2012-2017 <a href="http://apache.org">The Apache Software Foundation</a>.
+            Apache Mesos, the Apache feather logo, and the Apache Mesos project logo are trademarks of The Apache Software Foundation.
+          <p>
+        </div>
+      </div><!-- /.container -->
+    </div><!-- /.footer -->
+
+    <!-- JS -->
+    <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script>
+    <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/a5fb0e1c/content/documentation/cmake/index.html
----------------------------------------------------------------------
diff --git a/content/documentation/cmake/index.html b/content/documentation/cmake/index.html
new file mode 100644
index 0000000..bd92426
--- /dev/null
+++ b/content/documentation/cmake/index.html
@@ -0,0 +1,514 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <title>Apache Mesos - CMake</title>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+    <meta property="og:locale" content="en_US"/>
+    <meta property="og:type" content="website"/>
+    <meta property="og:title" content="Apache Mesos"/>
+    <meta property="og:site_name" content="Apache Mesos"/>
+    <meta property="og:url" content="http://mesos.apache.org/"/>
+    <meta property="og:image" content="http://mesos.apache.org/assets/img/mesos_logo_fb_preview.png"/>
+    <meta property="og:description"
+          content="Apache Mesos abstracts resources away from machines,
+                   enabling fault-tolerant and elastic distributed systems
+                   to easily be built and run effectively."/>
+
+    <meta name="twitter:card" content="summary"/>
+    <meta name="twitter:site" content="@ApacheMesos"/>
+    <meta name="twitter:title" content="Apache Mesos"/>
+    <meta name="twitter:image" content="http://mesos.apache.org/assets/img/mesos_logo_fb_preview.png"/>
+    <meta name="twitter:description"
+          content="Apache Mesos abstracts resources away from machines,
+                   enabling fault-tolerant and elastic distributed systems
+                   to easily be built and run effectively."/>
+
+    <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
+    <link rel="alternate" type="application/atom+xml" title="Apache Mesos Blog" href="/blog/feed.xml">
+    <link href="../../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" />
+
+    
+
+    <!-- Google Analytics Magic -->
+    <script type="text/javascript">
+    var _gaq = _gaq || [];
+    _gaq.push(['_setAccount', 'UA-20226872-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>
+    <!-- magical breadcrumbs -->
+    <div class="topnav">
+      <div class="container">
+        <ul class="breadcrumb">
+          <li>
+            <div class="dropdown">
+              <a data-toggle="dropdown" href="#">Apache Software Foundation <span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
+                <li><a href="http://www.apache.org">Apache Homepage</a></li>
+                <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>
+          </li>
+
+          <li><a href="http://mesos.apache.org">Apache Mesos</a></li>
+          
+          
+          <li><a href="/documentation
+/">Documentation
+</a></li>
+          
+          
+        </ul><!-- /.breadcrumb -->
+      </div><!-- /.container -->
+    </div><!-- /.topnav -->
+
+    <!-- navbar excitement -->
+<div class="navbar navbar-default navbar-static-top" role="navigation">
+  <div class="container">
+    <div class="navbar-header">
+      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#mesos-menu" aria-expanded="false">
+      <span class="sr-only">Toggle navigation</span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      </button>
+      <a class="navbar-brand" href="/"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo"/></a>
+    </div><!-- /.navbar-header -->
+
+    <div class="navbar-collapse collapse" id="mesos-menu">
+      <ul class="nav navbar-nav navbar-right">
+        <li><a href="/gettingstarted/">Getting Started</a></li>
+        <li><a href="/blog/">Blog</a></li>
+        <li><a href="/documentation/latest/">Documentation</a></li>
+        <li><a href="/downloads/">Downloads</a></li>
+        <li><a href="/community/">Community</a></li>
+      </ul>
+    </div><!-- /#mesos-menu -->
+  </div><!-- /.container -->
+</div><!-- /.navbar -->
+
+<div class="content">
+  <div class="container">
+    <div class="row-fluid">
+  <div class="col-md-4">
+    <h4>If you're new to Mesos</h4>
+    <p>See the <a href="/gettingstarted/">getting started</a> page for more
+       information about downloading, building, and deploying Mesos.</p>
+
+    <h4>If you'd like to get involved or you're looking for support</h4>
+    <p>See our <a href="/community/">community</a> page for more details.</p>
+  </div>
+  <div class="col-md-8">
+    <h1>Install CMake 3.7+</h1>
+
+<h2>Linux</h2>
+
+<p>Install the latest version of CMake from <a href="https://cmake.org/download/">CMake.org</a>.
+A self-extracting tarball is available to make this process painless.</p>
+
+<p>Currently, few of the common Linux flavors package a sufficient CMake
+version. Ubuntu versions 12.04 and 14.04 package CMake 2;
+Ubuntu 16.04 packages CMake 3.5. If you already installed cmake from packages,
+you may remove it via: <code>apt-get purge cmake</code>.</p>
+
+<p>The standard CentOS package is CMake 2, and unfortunately even the <code>cmake3</code>
+package in EPEL is only CMake 3.6, you may remove them via:
+<code>yum remove cmake cmake3</code>.</p>
+
+<h2>Mac OS X</h2>
+
+<p>HomeBrew&rsquo;s CMake version is sufficient: <code>brew install cmake</code>.</p>
+
+<h2>Windows</h2>
+
+<p>Download and install the MSI from <a href="https://cmake.org/download/">CMake.org</a>.</p>
+
+<p><strong>NOTE:</strong> Windows needs CMake 3.8+, rather than 3.7+.</p>
+
+<h1>Supported options</h1>
+
+<p>See <a href="/documentation/latest/./configuration/cmake/">configuration options</a>.</p>
+
+<h1>Examples</h1>
+
+<p>See <a href="/documentation/latest/./cmake-examples/">CMake By Example</a>.</p>
+
+<h1>Documentation</h1>
+
+<p>The <a href="https://cmake.org/cmake/help/latest/">CMake documentation</a> is written as a reference module. The most commonly
+used sections are:</p>
+
+<ul>
+<li><a href="https://cmake.org/cmake/help/latest/manual/cmake-buildsystem.7.html">buildsystem overview</a></li>
+<li><a href="https://cmake.org/cmake/help/latest/manual/cmake-commands.7.html">commands</a></li>
+<li><a href="https://cmake.org/cmake/help/latest/manual/cmake-properties.7.html">properties</a></li>
+<li><a href="https://cmake.org/cmake/help/latest/manual/cmake-variables.7.html">variables</a></li>
+</ul>
+
+
+<p>The wiki also has a set of <a href="https://cmake.org/Wiki/CMake_Useful_Variables">useful variables</a>.</p>
+
+<h1>Dependency graph</h1>
+
+<p>Like any build system, CMake has a dependency graph. The difference is
+that targets in CMake&rsquo;s dependency graph are <em>much richer</em> compared to other
+build systems. CMake targets have the notion of &lsquo;interfaces&rsquo;, where build
+properties are saved as part of the target, and these properties can be
+inherited transitively within the graph.</p>
+
+<p>For example, say there is a library <code>mylib</code>, and anything which links it must
+include its headers, located in <code>mylib/include</code>. When building the library, some
+private headers must also be included, but not when linking to it. When
+compiling the executable <code>myprogram</code>, <code>mylib</code>&rsquo;s public headers must be included,
+but not its private headers. There is no manual step to add <code>mylib/include</code> to
+<code>myprogram</code> (and any other program which links to <code>mylib</code>), it is instead
+deduced from the public interface property of <code>mylib</code>. This is represented by
+the following code:</p>
+
+<pre><code># A new library with a single source file (headers are found automatically).
+add_library(mylib mylib.cpp)
+
+# The folder of private headers, not exposed to consumers of `mylib`.
+target_include_directories(mylib PRIVATE mylib/private)
+
+# The folder of public headers, added to the compilation of any consumer.
+target_include_directories(mylib PUBLIC mylib/include)
+
+# A new exectuable with a single source file.
+add_executable(myprogram main.cpp)
+
+# The creation of the link dependency `myprogram` -&gt; `mylib`.
+target_link_libraries(myprogram mylib)
+
+# There is no additional step to add `mylib/include` to `myprogram`.
+</code></pre>
+
+<p>This same notion applies to practically every build property:
+compile definitions via <a href="https://cmake.org/cmake/help/latest/command/target_compile_definitions.html"><code>target_compile_definitions</code></a>,
+include directories via <a href="https://cmake.org/cmake/help/latest/command/target_include_directories.html"><code>target_include_directories</code></a>,
+link libraries via <a href="https://cmake.org/cmake/help/latest/command/target_link_libraries.html"><code>target_link_libraries</code></a>,
+compile options via <a href="https://cmake.org/cmake/help/latest/command/target_compile_options.html"><code>target_compile_options</code></a>,
+and compile features via <a href="https://cmake.org/cmake/help/latest/command/target_compile_features.html"><code>target_compile_features</code></a>.</p>
+
+<p>All of these commands also take an optional argument of
+<code>&lt;INTERFACE|PUBLIC|PRIVATE&gt;</code>, which constrains their transitivity in the graph.
+That is, a <code>PRIVATE</code> include directory is recorded for the target, but not
+shared transitively to anything depending on the target, <code>PUBLIC</code> is used
+for both the target and dependencies on it, and <code>INTERFACE</code> is used only
+for dependencies.</p>
+
+<p>Notably missing from this list are link directories. CMake explicitly prefers
+finding and using the absolute paths to libraries, obsoleting link directories.</p>
+
+<h1>Common mistakes</h1>
+
+<h2>Booleans</h2>
+
+<p>CMake treats <code>ON</code>, <code>OFF</code>, <code>TRUE</code>, <code>FALSE</code>, <code>1</code>, and <code>0</code> all as true/false
+booleans. Furthermore, variables of the form <code>&lt;target&gt;-NOTFOUND</code> are also
+treated as false (this is used for finding packages).</p>
+
+<p>In Mesos, we prefer the boolean types <code>TRUE</code> and <code>FALSE</code>.</p>
+
+<p>See <a href="https://cmake.org/cmake/help/latest/command/if.html"><code>if</code></a> for more info.</p>
+
+<h2>Conditionals</h2>
+
+<p>For historical reasons, CMake conditionals such as <code>if</code> and <code>elseif</code>
+automatically interpolate variable names. It is therefore dangerous to
+interpolate them manually, because if <code>${FOO}</code> evaluates to <code>BAR</code>, and <code>BAR</code> is
+another variable name, then <code>if (${FOO})</code> becomes <code>if (BAR)</code>, and <code>BAR</code> is then
+evaluated again by the <code>if</code>. Stick to <code>if (FOO)</code> to check the value of <code>${FOO}</code>.
+Do not use <code>if (${FOO})</code>.</p>
+
+<p>Also see the CMake policies
+<a href="https://cmake.org/cmake/help/latest/policy/CMP0012.html">CMP0012</a> and
+<a href="https://cmake.org/cmake/help/latest/policy/CMP0054.html">CMP0054</a>.</p>
+
+<h2>Definitions</h2>
+
+<p>When using <code>add_definitions()</code> (which should be used rarely, as it is for
+&ldquo;global&rdquo; compile definitions), the flags must be prefixed with <code>-D</code> to be
+treated as preprocessor definitions. However, when using
+<code>target_compile_definitions()</code> (which should be preferred, as it is
+for specific targets), the flags do not need the prefix.</p>
+
+<h1>Style</h1>
+
+<p>In general, wrap at 80 lines, and use a two-space indent. When wrapping
+arguments, put the command on a separate line and arguments on subsequent lines:</p>
+
+<pre><code>target_link_libraries(
+  program PRIVATE
+  alpha
+  beta
+  gamma)
+</code></pre>
+
+<p>Otherwise keep it together:</p>
+
+<pre><code>target_link_libraries(program PUBLIC library)
+</code></pre>
+
+<p>Always keep the trailing parenthesis with the last argument.</p>
+
+<p>Use a single space between conditionals and their open parenthesis, e.g.
+<code>if (FOO)</code>, but not for commands, e.g. <code>add_executable(program)</code>.</p>
+
+<p>CAPITALIZE the declaration and use of custom functions and macros (e.g.
+<code>EXTERNAL</code> and <code>PATCH_CMD</code>), and do not capitalize the use of CMake built-in
+(including modules) functions and macros. CAPITALIZE variables.</p>
+
+<h1>CMake anti-patterns</h1>
+
+<p>Because CMake handles much more of the grunt work for you than other build
+systems, there are unfortunately a lot of CMake <a href="http://voices.canonical.com/jussi.pakkanen/2013/03/26/a-list-of-common-cmake-antipatterns/">anti-patterns</a> you should
+look out for when writing new CMake code. These are some common problems
+that should be avoided when writing new CMake code:</p>
+
+<h2>Superfluous use of <code>add_dependencies</code></h2>
+
+<p>When you&rsquo;ve linked library <code>a</code> to library <code>b</code> with <code>target_link_libraries(a b)</code>,
+the CMake graph is already updated with the dependency information. It is
+redundant to use <code>add_dependencies(a b)</code> to (re)specify the dependency. In fact,
+this command should <em>rarely</em> be used.</p>
+
+<p>The exceptions to this are:</p>
+
+<ol>
+<li> Setting a dependency from an imported library to a target added via
+ <code>ExternalProject_Add</code>.</li>
+<li> Setting a dependency on Mesos modules since no explicit linking is done.</li>
+<li> Setting a dependency between executables (e.g. the <code>mesos-agent</code> requiring the
+ <code>mesos-containerizer</code> executable). In general, runtime dependencies need
+ to be setup with <code>add_dependency</code>, but never link dependencies.</li>
+</ol>
+
+
+<h2>Use of <code>link_libraries</code> or <code>link_directories</code></h2>
+
+<p>Neither of these commands should ever be used. The only appropriate command used
+to link libraries is <a href="https://cmake.org/cmake/help/latest/command/target_link_libraries.html"><code>target_link_libraries</code></a>, which records the information
+in the CMake dependency graph. Furthermore, imported third-party libraries
+should have correct locations recorded in their respective targets, so the use
+of <code>link_directories</code> should never be necessary. The
+<a href="https://cmake.org/cmake/help/latest/command/link_directories.html">official documentation</a> states:</p>
+
+<blockquote><p>Note that this command is rarely necessary. Library locations returned by
+<code>find_package()</code> and <code>find_library()</code> are absolute paths. Pass these absolute
+library file paths directly to the <code>target_link_libraries()</code> command. CMake
+will ensure the linker finds them.</p></blockquote>
+
+<p>The difference is that the former sets global (or directory level) side effects,
+and the latter sets specific target information stored in the graph.</p>
+
+<h2>Use of <code>include_directories</code></h2>
+
+<p>This is similar to the above: the <a href="https://cmake.org/cmake/help/latest/command/target_include_directories.html"><code>target_include_directories</code></a> should always
+be preferred so that the include directory information remains localized to the
+appropriate targets.</p>
+
+<h2>Adding anything to <code>endif ()</code></h2>
+
+<p>Old versions of CMake expected the style <code>if (FOO) ... endif (FOO)</code>, where the
+<code>endif</code> contained the same expression as the <code>if</code> command. However, this is
+tortuously redundant, so leave the parentheses in <code>endif ()</code> empty. This goes
+for other endings too, such as <code>endforeach ()</code>, <code>endwhile ()</code>, <code>endmacro ()</code> and
+<code>endfunction ()</code>.</p>
+
+<h2>Specifying header files superfluously</h2>
+
+<p>One of the distinct advantages of using CMake for C and C++ projects is that
+adding header files to the source list for a target is unnecessary. CMake is
+designed to parse the source files (<code>.c</code>, <code>.cpp</code>, etc.) and determine their
+required headers automatically. The exception to this is headers generated as
+part of the build (such as protobuf or the JNI headers).</p>
+
+<h2>Checking <code>CMAKE_BUILD_TYPE</code></h2>
+
+<p>See the <a href="cmake-examples.md#building-debug-or-release-configurations">&ldquo;Building debug or release configurations&rdquo;</a> example for more
+information. In short, not all generators respect the variable
+<code>CMAKE_BUILD_TYPE</code> at configuration time, and thus it must not be used in CMake
+logic. A usable alternative (where supported) is a <a href="https://cmake.org/cmake/help/latest/manual/cmake-generator-expressions.7.html#logical-expressions">generator expression</a> such
+as <code>$&lt;$&lt;CONFIG:Debug&gt;:DEBUG_MODE&gt;</code>.</p>
+
+<h1>Remaining hacks</h1>
+
+<h2><code>3RDPARTY_DEPENDENCIES</code></h2>
+
+<p>Until Mesos on Windows is stable, we keep some dependencies in an external
+repository, <a href="https://github.com/3rdparty/mesos-3rdparty">mesos-3rdparty</a>. When
+all dependencies are bundled with Mesos, this extra repository will no longer be
+necessary. Until then, the CMake variable <code>3RDPARTY_DEPENDENCIES</code> points by
+default to this URL, but it can also point to the on-disk location of a local
+clone of the repo. With this option you can avoid pulling from GitHub for every
+clean build.</p>
+
+<h2><code>EXTERNAL</code></h2>
+
+<p>The CMake function <code>EXTERNAL</code> defines a few variables that make it easy for us
+to track the directory structure of a dependency. In particular, if our
+library&rsquo;s name is <code>boost</code>, we invoke:</p>
+
+<pre><code>EXTERNAL(boost ${BOOST_VERSION} ${CMAKE_CURRENT_BINARY_DIR})
+</code></pre>
+
+<p>Which will define the following variables as side-effects in the current scope:</p>
+
+<ul>
+<li><code>BOOST_TARGET</code>     (a target folder name to put dep in e.g., <code>boost-1.53.0</code>)</li>
+<li><code>BOOST_CMAKE_ROOT</code> (where to have CMake put the uncompressed source, e.g.,
+                   <code>build/3rdparty/boost-1.53.0</code>)</li>
+<li><code>BOOST_ROOT</code>       (where the code goes in various stages of build, e.g.,
+                   <code>build/.../boost-1.53.0/src</code>, which might contain folders
+                   <code>build-1.53.0-build</code>, <code>-lib</code>, and so on, for each build
+                   step that dependency has)</li>
+</ul>
+
+
+<p>The implementation is in <code>3rdparty/cmake/External.cmake</code>.</p>
+
+<p>This is not to be confused with the CMake module <a href="https://cmake.org/cmake/help/latest/module/ExternalProject.html">ExternalProject</a>, from which
+we use <code>ExternalProject_Add</code> to download, extract, configure, and build our
+dependencies.</p>
+
+<h2><code>CMAKE_NOOP</code></h2>
+
+<p>This is a CMake variable we define in <code>3rdparty/CMakeLists.txt</code> so that we can
+cancel steps of <code>ExternalProject</code>. <code>ExternalProject</code>&rsquo;s default behavior is to
+attempt to configure, build, and install a project using CMake. So when one of
+these steps must be skipped, we use set it to <code>CMAKE_NOOP</code> so that nothing
+is run instead.</p>
+
+<h2><code>CMAKE_FORWARD_ARGS</code></h2>
+
+<p>The <code>CMAKE_FORWARD_ARGS</code> variable defined in <code>3rdparty/CMakeLists.txt</code> is sent
+as the <code>CMAKE_ARGS</code> argument to the <code>ExternalProject_Add</code> macro (along with any
+per-project arguments), and is used when the external project is configured as a
+CMake project. If either the <code>CONFIGURE_COMMAND</code> or <code>BUILD_COMMAND</code> arguments of
+<code>ExternalProject_Add</code> are used, then the <code>CMAKE_ARGS</code> argument will be ignored.
+This variable ensures that compilation configurations are properly propagated to
+third-party dependencies, such as compiler flags.</p>
+
+<h2><code>LIBRARY_LINKAGE</code></h2>
+
+<p>This variable is a shortcut used in <code>3rdparty/CMakeLists.txt</code>. It is set to
+<code>SHARED</code> when <code>BUILD_SHARED_LIBS</code> is true, and otherwise it is set to <code>STATIC</code>.
+The <code>SHARED</code> and <code>STATIC</code> keywords are used to declare how a library should be
+built; however, if left out then the type is deduced automatically from
+<code>BUILD_SHARED_LIBS</code>.</p>
+
+<h2><code>MAKE_INCLUDE_DIR</code></h2>
+
+<p>This function works around a <a href="https://gitlab.kitware.com/cmake/cmake/issues/15052">CMake issue</a> with setting include
+directories of imported libraries built with <code>ExternalProject_Add</code>. We have to
+call this for each <code>IMPORTED</code> third-party dependency which has set
+<code>INTERFACE_INCLUDE_DIRECTORIES</code>, just to make CMake happy. An example is Glog:</p>
+
+<pre><code>MAKE_INCLUDE_DIR(glog)
+</code></pre>
+
+<h2><code>GET_BYPRODUCTS</code></h2>
+
+<p>This function works around a <a href="https://cmake.org/pipermail/cmake/2015-April/060234.html">CMake issue</a> with the Ninja
+generator where it does not understand imported libraries, and instead needs
+<code>BUILD_BYPRODUCTS</code> explicitly set. This simply allows us to use
+<code>ExternalProject_Add</code> and Ninja. For Glog, it looks like this:</p>
+
+<pre><code>GET_BYPRODUCTS(glog)
+</code></pre>
+
+<p>Also see the CMake policy <a href="https://cmake.org/cmake/help/latest/policy/CMP0058.html">CMP0058</a>.</p>
+
+<h2><code>PATCH_CMD</code></h2>
+
+<p>The CMake function <code>PATCH_CMD</code> generates a patch command given a patch file.
+If the path is not absolute, it&rsquo;s resolved to the current source directory.
+It stores the command in the variable name supplied. This is used to easily
+patch third-party dependencies. For Glog, it looks like this:</p>
+
+<pre><code>PATCH_CMD(GLOG_PATCH_CMD glog-${GLOG_VERSION}.patch)
+ExternalProject_Add(
+  ${GLOG_TARGET}
+  ...
+  PATCH_COMMAND     ${GLOG_PATCH_CMD})
+</code></pre>
+
+<p>The implementation is in <code>3rdparty/cmake/PatchCommand.cmake</code>.</p>
+
+<h3>Windows <code>patch.exe</code></h3>
+
+<p>While using <code>patch</code> on Linux is straightforward, doing the same on Windows takes
+a bit of work. <code>PATH_CMD</code> encapsulates this:</p>
+
+<ul>
+<li>Checks the cache variable <code>PATCHEXE_PATH</code> for <code>patch.exe</code>.</li>
+<li>Searches for <code>patch.exe</code> in its default locations.</li>
+<li>Copies <code>patch.exe</code> and a custom manifest to the temporary directory.</li>
+<li>Applies the manifest to avoid the UAC prompt.</li>
+<li>Uses the patched <code>patch.exe</code>.</li>
+</ul>
+
+
+<p>As such, <code>PATCH_CMD</code> lets us apply patches as we do on Linux, without requiring
+an administrative prompt.</p>
+
+<p>Note that on Windows, the patch file must have CRLF line endings. A file with LF
+line endings will cause the error: &ldquo;Assertion failed, hunk, file patch.c, line
+343&rdquo;. For this reason, it is required to checkout the Mesos repo with <code>git
+config core.autocrlf true</code>.</p>
+
+  </div>
+</div>
+
+  </div><!-- /.container -->
+</div><!-- /.content -->
+
+<hr>
+
+
+
+    <!-- footer -->
+    <div class="footer">
+      <div class="container">
+        <div class="col-md-4 social-blk">
+          <span class="social">
+            <a href="https://twitter.com/ApacheMesos"
+              class="twitter-follow-button"
+              data-show-count="false" data-size="large">Follow @ApacheMesos</a>
+            <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
+            <a href="https://twitter.com/intent/tweet?button_hashtag=mesos"
+              class="twitter-hashtag-button"
+              data-size="large"
+              data-related="ApacheMesos">Tweet #mesos</a>
+            <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
+          </span>
+        </div>
+
+        <div class="col-md-8 trademark">
+          <p>&copy; 2012-2017 <a href="http://apache.org">The Apache Software Foundation</a>.
+            Apache Mesos, the Apache feather logo, and the Apache Mesos project logo are trademarks of The Apache Software Foundation.
+          <p>
+        </div>
+      </div><!-- /.container -->
+    </div><!-- /.footer -->
+
+    <!-- JS -->
+    <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script>
+    <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/a5fb0e1c/content/documentation/configuration-cmake/index.html
----------------------------------------------------------------------
diff --git a/content/documentation/configuration-cmake/index.html b/content/documentation/configuration-cmake/index.html
deleted file mode 100644
index ea1f823..0000000
--- a/content/documentation/configuration-cmake/index.html
+++ /dev/null
@@ -1,259 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <title>Apache Mesos - CMake Configuration</title>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0">
-
-    <meta property="og:locale" content="en_US"/>
-    <meta property="og:type" content="website"/>
-    <meta property="og:title" content="Apache Mesos"/>
-    <meta property="og:site_name" content="Apache Mesos"/>
-    <meta property="og:url" content="http://mesos.apache.org/"/>
-    <meta property="og:image" content="http://mesos.apache.org/assets/img/mesos_logo_fb_preview.png"/>
-    <meta property="og:description"
-          content="Apache Mesos abstracts resources away from machines,
-                   enabling fault-tolerant and elastic distributed systems
-                   to easily be built and run effectively."/>
-
-    <meta name="twitter:card" content="summary"/>
-    <meta name="twitter:site" content="@ApacheMesos"/>
-    <meta name="twitter:title" content="Apache Mesos"/>
-    <meta name="twitter:image" content="http://mesos.apache.org/assets/img/mesos_logo_fb_preview.png"/>
-    <meta name="twitter:description"
-          content="Apache Mesos abstracts resources away from machines,
-                   enabling fault-tolerant and elastic distributed systems
-                   to easily be built and run effectively."/>
-
-    <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
-    <link rel="alternate" type="application/atom+xml" title="Apache Mesos Blog" href="/blog/feed.xml">
-    <link href="../../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" />
-
-    
-
-    <!-- Google Analytics Magic -->
-    <script type="text/javascript">
-    var _gaq = _gaq || [];
-    _gaq.push(['_setAccount', 'UA-20226872-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>
-    <!-- magical breadcrumbs -->
-    <div class="topnav">
-      <div class="container">
-        <ul class="breadcrumb">
-          <li>
-            <div class="dropdown">
-              <a data-toggle="dropdown" href="#">Apache Software Foundation <span class="caret"></span></a>
-              <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
-                <li><a href="http://www.apache.org">Apache Homepage</a></li>
-                <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>
-          </li>
-
-          <li><a href="http://mesos.apache.org">Apache Mesos</a></li>
-          
-          
-          <li><a href="/documentation
-/">Documentation
-</a></li>
-          
-          
-        </ul><!-- /.breadcrumb -->
-      </div><!-- /.container -->
-    </div><!-- /.topnav -->
-
-    <!-- navbar excitement -->
-<div class="navbar navbar-default navbar-static-top" role="navigation">
-  <div class="container">
-    <div class="navbar-header">
-      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#mesos-menu" aria-expanded="false">
-      <span class="sr-only">Toggle navigation</span>
-      <span class="icon-bar"></span>
-      <span class="icon-bar"></span>
-      <span class="icon-bar"></span>
-      </button>
-      <a class="navbar-brand" href="/"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo"/></a>
-    </div><!-- /.navbar-header -->
-
-    <div class="navbar-collapse collapse" id="mesos-menu">
-      <ul class="nav navbar-nav navbar-right">
-        <li><a href="/gettingstarted/">Getting Started</a></li>
-        <li><a href="/blog/">Blog</a></li>
-        <li><a href="/documentation/latest/">Documentation</a></li>
-        <li><a href="/downloads/">Downloads</a></li>
-        <li><a href="/community/">Community</a></li>
-      </ul>
-    </div><!-- /#mesos-menu -->
-  </div><!-- /.container -->
-</div><!-- /.navbar -->
-
-<div class="content">
-  <div class="container">
-    <div class="row-fluid">
-  <div class="col-md-4">
-    <h4>If you're new to Mesos</h4>
-    <p>See the <a href="/gettingstarted/">getting started</a> page for more
-       information about downloading, building, and deploying Mesos.</p>
-
-    <h4>If you'd like to get involved or you're looking for support</h4>
-    <p>See our <a href="/community/">community</a> page for more details.</p>
-  </div>
-  <div class="col-md-8">
-    <h1>Mesos CMake Build Configuration Options</h1>
-
-<p>Mesos currently exposes two build systems, one written in
-<a href="/documentation/latest/./configuration/">autotools</a>, and one written in CMake.
-This document describes the configuration flags available in
-the CMake build system.</p>
-
-<h2>CMake configuration options</h2>
-
-<table class="table table-striped">
-  <thead>
-    <tr>
-      <th width="30%">
-        Flag
-      </th>
-      <th>
-        Explanation
-      </th>
-    </tr>
-  </thead>
-  <tr>
-    <td>
-      -D3RDPARTY_DEPENDENCIES[=path_or_url]
-    </td>
-    <td>
-      Location of the dependency mirror. In some cases, the Mesos build system
-      needs to acquire third-party dependencies that aren't rebundled as
-      tarballs in the Mesos repository. For example, on Windows, we must aquire
-      newer versions of some dependencies, and since Windows does not have a
-      package manager, we must acquire system dependencies like cURL. This
-      parameter can be either a URL (for example, pointing at the Mesos official
-      [third-party dependency mirror](https://github.com/3rdparty/mesos-3rdparty)),
-      or a local folder (for example, a local clone of the dependency mirror).
-      [default=https://github.com/3rdparty/mesos-3rdparty]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      -DCPACK_BINARY_(BUNDLE|DEB|DRAGNDROP|IFW|NSIS|OSXX11|PACKAGEMAKER|RPM|STGZ|TBZ2|TGZ|TXZ)
-    </td>
-    <td>
-      This modifies the 'package' target to generate binary package of
-      the specified format.  A binary package contains everything that
-      would be installed via CMake's 'install' target.
-      [default=OFF]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      -DCPACK_SOURCE_(TBZ2|TXZ|TZ|ZIP)
-    </td>
-    <td>
-      This modifies the 'package_source' target to generate a package of the
-      sources required to build and test Mesos, in the specified format.
-      [default=OFF]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      -DENABLE_LIBEVENT
-    </td>
-    <td>
-      Use libevent instead of libev for the event loop. [default=FALSE]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      -DENABLE_SSL
-    </td>
-    <td>
-      Build libprocess with SSL support. [default=FALSE]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      -DREBUNDLED
-    </td>
-    <td>
-      Attempt to build against the third-party dependencies included as
-      tarballs in the Mesos repository.
-
-      NOTE: This is not always possible.  For example, a dependency might
-      not be included as a tarball in the Mesos repository; additionally,
-      Windows does not have a package manager, so we do not expect system
-      dependencies like APR to exist natively, and we therefore must acquire
-      them. In these cases (or when `REBUNDLED` is set to `FALSE`), we will
-      acquire the dependency from the location specified by the
-      `3RDPARTY_DEPENDENCIES`, which by default points to the official Mesos
-      [third-party dependency mirror](https://github.com/3rdparty/mesos-3rdparty).
-      [default=TRUE]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      -DVERBOSE
-    </td>
-    <td>
-      Generate a build solution that produces verbose output
-      (for example, verbose Makefiles). [default=TRUE]
-    </td>
-  </tr>
-</table>
-
-
-  </div>
-</div>
-
-  </div><!-- /.container -->
-</div><!-- /.content -->
-
-<hr>
-
-
-
-    <!-- footer -->
-    <div class="footer">
-      <div class="container">
-        <div class="col-md-4 social-blk">
-          <span class="social">
-            <a href="https://twitter.com/ApacheMesos"
-              class="twitter-follow-button"
-              data-show-count="false" data-size="large">Follow @ApacheMesos</a>
-            <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
-            <a href="https://twitter.com/intent/tweet?button_hashtag=mesos"
-              class="twitter-hashtag-button"
-              data-size="large"
-              data-related="ApacheMesos">Tweet #mesos</a>
-            <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
-          </span>
-        </div>
-
-        <div class="col-md-8 trademark">
-          <p>&copy; 2012-2017 <a href="http://apache.org">The Apache Software Foundation</a>.
-            Apache Mesos, the Apache feather logo, and the Apache Mesos project logo are trademarks of The Apache Software Foundation.
-          <p>
-        </div>
-      </div><!-- /.container -->
-    </div><!-- /.footer -->
-
-    <!-- JS -->
-    <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script>
-    <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script>
-  </body>
-</html>


[3/6] mesos-site git commit: Updated the website built from mesos SHA: 8c0b351.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/a5fb0e1c/content/documentation/latest/configuration/agent/index.html
----------------------------------------------------------------------
diff --git a/content/documentation/latest/configuration/agent/index.html b/content/documentation/latest/configuration/agent/index.html
new file mode 100644
index 0000000..4b2a26a
--- /dev/null
+++ b/content/documentation/latest/configuration/agent/index.html
@@ -0,0 +1,1479 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <title>Apache Mesos - Agent Options</title>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+    <meta property="og:locale" content="en_US"/>
+    <meta property="og:type" content="website"/>
+    <meta property="og:title" content="Apache Mesos"/>
+    <meta property="og:site_name" content="Apache Mesos"/>
+    <meta property="og:url" content="http://mesos.apache.org/"/>
+    <meta property="og:image" content="http://mesos.apache.org/assets/img/mesos_logo_fb_preview.png"/>
+    <meta property="og:description"
+          content="Apache Mesos abstracts resources away from machines,
+                   enabling fault-tolerant and elastic distributed systems
+                   to easily be built and run effectively."/>
+
+    <meta name="twitter:card" content="summary"/>
+    <meta name="twitter:site" content="@ApacheMesos"/>
+    <meta name="twitter:title" content="Apache Mesos"/>
+    <meta name="twitter:image" content="http://mesos.apache.org/assets/img/mesos_logo_fb_preview.png"/>
+    <meta name="twitter:description"
+          content="Apache Mesos abstracts resources away from machines,
+                   enabling fault-tolerant and elastic distributed systems
+                   to easily be built and run effectively."/>
+
+    <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
+    <link rel="alternate" type="application/atom+xml" title="Apache Mesos Blog" href="/blog/feed.xml">
+    <link href="../../../../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" />
+
+    
+
+    <!-- Google Analytics Magic -->
+    <script type="text/javascript">
+    var _gaq = _gaq || [];
+    _gaq.push(['_setAccount', 'UA-20226872-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>
+    <!-- magical breadcrumbs -->
+    <div class="topnav">
+      <div class="container">
+        <ul class="breadcrumb">
+          <li>
+            <div class="dropdown">
+              <a data-toggle="dropdown" href="#">Apache Software Foundation <span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
+                <li><a href="http://www.apache.org">Apache Homepage</a></li>
+                <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>
+          </li>
+
+          <li><a href="http://mesos.apache.org">Apache Mesos</a></li>
+          
+          
+          <li><a href="/documentation
+/">Documentation
+</a></li>
+          
+          
+        </ul><!-- /.breadcrumb -->
+      </div><!-- /.container -->
+    </div><!-- /.topnav -->
+
+    <!-- navbar excitement -->
+<div class="navbar navbar-default navbar-static-top" role="navigation">
+  <div class="container">
+    <div class="navbar-header">
+      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#mesos-menu" aria-expanded="false">
+      <span class="sr-only">Toggle navigation</span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      </button>
+      <a class="navbar-brand" href="/"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo"/></a>
+    </div><!-- /.navbar-header -->
+
+    <div class="navbar-collapse collapse" id="mesos-menu">
+      <ul class="nav navbar-nav navbar-right">
+        <li><a href="/gettingstarted/">Getting Started</a></li>
+        <li><a href="/blog/">Blog</a></li>
+        <li><a href="/documentation/latest/">Documentation</a></li>
+        <li><a href="/downloads/">Downloads</a></li>
+        <li><a href="/community/">Community</a></li>
+      </ul>
+    </div><!-- /#mesos-menu -->
+  </div><!-- /.container -->
+</div><!-- /.navbar -->
+
+<div class="content">
+  <div class="container">
+    <div class="row-fluid">
+  <div class="col-md-4">
+    <h4>If you're new to Mesos</h4>
+    <p>See the <a href="/gettingstarted/">getting started</a> page for more
+       information about downloading, building, and deploying Mesos.</p>
+
+    <h4>If you'd like to get involved or you're looking for support</h4>
+    <p>See our <a href="/community/">community</a> page for more details.</p>
+  </div>
+  <div class="col-md-8">
+    <h1>Agent Options</h1>
+
+<h2>Required Flags</h2>
+
+<table class="table table-striped">
+  <thead>
+    <tr>
+      <th width="30%">
+        Flag
+      </th>
+      <th>
+        Explanation
+      </th>
+    </tr>
+  </thead>
+<tr>
+  <td>
+    --master=VALUE
+  </td>
+  <td>
+May be one of:
+  <code>host:port</code>
+  <code>zk://host1:port1,host2:port2,.../path</code>
+  <code>zk://username:password@host1:port1,host2:port2,.../path</code>
+  <code>file:///path/to/file</code> (where file contains one of the above)
+  </td>
+</tr>
+<tr>
+  <td>
+    --work_dir=VALUE
+  </td>
+  <td>
+Path of the agent work directory. This is where executor sandboxes
+will be placed, as well as the agent's checkpointed state in case of
+failover. Note that locations like <code>/tmp</code> which are cleaned
+automatically are not suitable for the work directory when running in
+production, since long-running agents could lose data when cleanup
+occurs. (Example: <code>/var/lib/mesos/agent</code>)
+  </td>
+</tr>
+</table>
+
+
+<h2>Optional Flags</h2>
+
+<table class="table table-striped">
+  <thead>
+    <tr>
+      <th width="30%">
+        Flag
+      </th>
+      <th>
+        Explanation
+      </th>
+    </tr>
+  </thead>
+<tr>
+  <td>
+    --acls=VALUE
+  </td>
+  <td>
+The value could be a JSON-formatted string of ACLs
+or a file path containing the JSON-formatted ACLs used
+for authorization. Path could be of the form <code>file:///path/to/file</code>
+or <code>/path/to/file</code>.
+<p/>
+Note that if the <code>--authorizer</code> flag is provided with a value
+other than <code>local</code>, the ACLs contents will be
+ignored.
+<p/>
+See the ACLs protobuf in acls.proto for the expected format.
+<p/>
+Example:
+<pre><code>{
+  "get_endpoints": [
+    {
+      "principals": { "values": ["a"] },
+      "paths": { "values": ["/flags", "/monitor/statistics"] }
+    }
+  ]
+}</code></pre>
+  </td>
+</tr>
+<tr>
+  <td>
+    --agent_subsystems=VALUE,
+    <p/>
+    --slave_subsystems=VALUE
+  </td>
+  <td>
+List of comma-separated cgroup subsystems to run the agent binary
+in, e.g., <code>memory,cpuacct</code>. The default is none.
+Present functionality is intended for resource monitoring and
+no cgroup limits are set, they are inherited from the root mesos
+cgroup.
+  </td>
+
+</tr>
+<tr>
+  <td>
+    --effective_capabilities=VALUE
+  </td>
+  <td>
+JSON representation of the Linux capabilities that the agent will
+grant to a task that will be run in containers launched by the
+containerizer (currently only supported by the Mesos Containerizer).
+This set overrides the default capabilities for the user but not
+the capabilities requested by the framework.
+<p/>
+To set capabilities the agent should have the <code>SETPCAP</code> capability.
+<p/>
+This flag is effective iff <code>linux/capabilities</code> isolation is enabled.
+When <code>linux/capabilities</code> isolation is enabled, the absence of this flag
+implies that the operator intends to allow ALL capabilities.
+<p/>
+Example:
+<pre><code>
+{
+  "capabilities": [
+    "NET_RAW",
+    "SYS_ADMIN"
+  ]
+}
+</code></pre>
+  </td>
+</tr>
+
+</tr>
+<tr>
+  <td>
+    --bounding_capabilities=VALUE
+  </td>
+  <td>
+JSON representation of the Linux capabilities that the operator
+will allow as the maximum level of privilege that a task launched
+by the containerizer may acquire (currently only supported by the
+Mesos Containerizer).
+<p/>
+This flag is effective iff <code>linux/capabilities</code> isolation is enabled.
+When <code>linux/capabilities</code> isolation is enabled, the absence of this flag
+implies that the operator intends to allow ALL capabilities.
+<p/>
+This flag has the same syntax as <code>--effective_capabilities</code>.
+  </td>
+</tr>
+
+<tr>
+  <td>
+    --appc_simple_discovery_uri_prefix=VALUE
+  </td>
+  <td>
+URI prefix to be used for simple discovery of appc images,
+e.g., <code>http://</code>, <code>https://</code>,
+<code>hdfs://<hostname>:9000/user/abc/cde</code>.
+(default: http://)
+  </td>
+</tr>
+<tr>
+  <td>
+    --appc_store_dir=VALUE
+  </td>
+  <td>
+Directory the appc provisioner will store images in.
+(default: /tmp/mesos/store/appc)
+  </td>
+</tr>
+<tr>
+  <td>
+    --attributes=VALUE
+  </td>
+  <td>
+Attributes of the agent machine, in the form:
+<code>rack:2</code> or <code>rack:2;u:1</code>
+  </td>
+</tr>
+<tr>
+  <td>
+    --[no-]authenticate_http_executors
+  </td>
+  <td>
+If <code>true</code>, only authenticated requests for the HTTP executor API are
+allowed. If <code>false</code>, unauthenticated requests are also allowed. This
+flag is only available when Mesos is built with SSL support.
+(default: false)
+  </td>
+</tr>
+<tr>
+  <td>
+    --authenticatee=VALUE
+  </td>
+  <td>
+Authenticatee implementation to use when authenticating against the
+master. Use the default <code>crammd5</code>, or
+load an alternate authenticatee module using <code>--modules</code>. (default: crammd5)
+  </td>
+</tr>
+<tr>
+  <td>
+    --authentication_backoff_factor=VALUE
+  </td>
+  <td>
+After a failed authentication the agent picks a random amount of time between
+<code>[0, b]</code>, where <code>b = authentication_backoff_factor</code>, to
+authenticate with a new master. Subsequent retries are exponentially backed
+off based on this interval (e.g., 1st retry uses a random value between
+<code>[0, b * 2^1]</code>, 2nd retry between <code>[0, b * 2^2]</code>, 3rd
+retry between <code>[0, b * 2^3]</code>, etc up to a maximum of 1mins
+(default: 1secs)
+  </td>
+</tr>
+<tr>
+  <td>
+    --authorizer=VALUE
+  </td>
+  <td>
+Authorizer implementation to use when authorizing actions that
+require it.
+Use the default <code>local</code>, or
+load an alternate authorizer module using <code>--modules</code>.
+<p/>
+Note that if the <code>--authorizer</code> flag is provided with a value
+other than the default <code>local</code>, the ACLs
+passed through the <code>--acls</code> flag will be ignored.
+  </td>
+</tr>
+<tr>
+  <td>
+    --[no]-cgroups_cpu_enable_pids_and_tids_count
+  </td>
+  <td>
+Cgroups feature flag to enable counting of processes and threads
+inside a container. (default: false)
+  </td>
+</tr>
+<tr>
+  <td>
+    --[no]-cgroups_enable_cfs
+  </td>
+  <td>
+Cgroups feature flag to enable hard limits on CPU resources
+via the CFS bandwidth limiting subfeature. (default: false)
+  </td>
+</tr>
+<tr>
+  <td>
+    --cgroups_hierarchy=VALUE
+  </td>
+  <td>
+The path to the cgroups hierarchy root. (default: /sys/fs/cgroup)
+  </td>
+</tr>
+<tr>
+  <td>
+    --[no]-cgroups_limit_swap
+  </td>
+  <td>
+Cgroups feature flag to enable memory limits on both memory and
+swap instead of just memory. (default: false)
+  </td>
+</tr>
+<tr>
+  <td>
+    --cgroups_net_cls_primary_handle
+  </td>
+  <td>
+A non-zero, 16-bit handle of the form `0xAAAA`. This will be used as
+the primary handle for the net_cls cgroup.
+  </td>
+</tr>
+<tr>
+  <td>
+    --cgroups_net_cls_secondary_handles
+  </td>
+  <td>
+A range of the form 0xAAAA,0xBBBB, specifying the valid secondary
+handles that can be used with the primary handle. This will take
+effect only when the <code>--cgroups_net_cls_primary_handle</code> is set.
+  </td>
+</tr>
+<tr>
+  <td>
+    --allowed_devices
+  </td>
+  <td>
+JSON object representing the devices that will be additionally
+whitelisted by cgroups devices subsystem. Noted that the following
+devices always be whitelisted by default:
+<pre><code>  * /dev/console
+  * /dev/tty0
+  * /dev/tty1
+  * /dev/pts/*
+  * /dev/ptmx
+  * /dev/net/tun
+  * /dev/null
+  * /dev/zero
+  * /dev/full
+  * /dev/tty
+  * /dev/urandom
+  * /dev/random
+</code></pre>
+This flag will take effect only when <code>cgroups/devices</code> is set in
+<code>--isolation</code> flag.
+<p/>
+Example:
+<pre><code>{
+  "allowed_devices": [
+    {
+      "device": {
+        "path": "/path/to/device"
+      },
+      "access": {
+        "read": true,
+        "write": false,
+        "mknod": false
+      }
+    }
+  ]
+}
+</code></pre>
+  </td>
+</tr>
+<tr>
+  <td>
+    --cgroups_root=VALUE
+  </td>
+  <td>
+Name of the root cgroup. (default: mesos)
+  </td>
+</tr>
+<tr>
+  <td>
+    --container_disk_watch_interval=VALUE
+  </td>
+  <td>
+The interval between disk quota checks for containers. This flag is
+used for the <code>disk/du</code> isolator. (default: 15secs)
+  </td>
+</tr>
+<tr>
+  <td>
+    --container_logger=VALUE
+  </td>
+  <td>
+The name of the container logger to use for logging container
+(i.e., executor and task) stdout and stderr. The default
+container logger writes to <code>stdout</code> and <code>stderr</code> files
+in the sandbox directory.
+  </td>
+</tr>
+<tr>
+  <td>
+    --containerizers=VALUE
+  </td>
+  <td>
+Comma-separated list of containerizer implementations
+to compose in order to provide containerization.
+Available options are <code>mesos</code> and
+<code>docker</code> (on Linux). The order the containerizers
+are specified is the order they are tried.
+(default: mesos)
+  </td>
+</tr>
+<tr>
+  <td>
+    --credential=VALUE
+  </td>
+  <td>
+Path to a JSON-formatted file containing the credential
+to use to authenticate with the master.
+Path could be of the form <code>file:///path/to/file</code> or <code>/path/to/file</code>.
+Example:
+<pre><code>{
+  "principal": "username",
+  "secret": "secret"
+}</code></pre>
+  </td>
+</tr>
+<tr>
+  <td>
+    --default_container_dns=VALUE
+  </td>
+  <td>
+JSON-formatted DNS information for CNI networks (Mesos containerizer)
+and CNM networks (Docker containerizer). For CNI networks, this flag
+can be used to configure `nameservers`, `domain`, `search` and
+`options`, and its priority is lower than the DNS information returned
+by a CNI plugin, but higher than the DNS information in agent host's
+/etc/resolv.conf. For CNM networks, this flag can be used to configure
+`nameservers`, `search` and `options`, it will only be used if there
+is no DNS information provided in the ContainerInfo.docker.parameters
+message.
+<p/>
+See the ContainerDNS message in `flags.proto` for the expected format.
+<p/>
+Example:
+<pre><code>{
+  "mesos": [
+    {
+      "network_mode": "CNI",
+      "network_name": "net1",
+      "dns": {
+        "nameservers": [ "8.8.8.8", "8.8.4.4" ]
+      }
+    }
+  ],
+  "docker": [
+    {
+      "network_mode": "BRIDGE",
+      "dns": {
+        "nameservers": [ "8.8.8.8", "8.8.4.4" ]
+      }
+    },
+    {
+      "network_mode": "USER",
+      "network_name": "net2",
+      "dns": {
+        "nameservers": [ "8.8.8.8", "8.8.4.4" ]
+      }
+    }
+  ]
+}</code></pre>
+  </td>
+</tr>
+<tr>
+  <td>
+    --default_container_info=VALUE
+  </td>
+  <td>
+JSON-formatted ContainerInfo that will be included into
+any ExecutorInfo that does not specify a ContainerInfo.
+<p/>
+See the ContainerInfo protobuf in mesos.proto for
+the expected format.
+<p/>
+Example:
+<pre><code>{
+  "type": "MESOS",
+  "volumes": [
+    {
+      "host_path": ".private/tmp",
+      "container_path": "/tmp",
+      "mode": "RW"
+    }
+  ]
+}</code></pre>
+  </td>
+</tr>
+<tr>
+  <td>
+    --default_role=VALUE
+  </td>
+  <td>
+Any resources in the <code>--resources</code> flag that
+omit a role, as well as any resources that
+are not present in <code>--resources</code> but that are
+automatically detected, will be assigned to
+this role. (default: *)
+  </td>
+</tr>
+<tr>
+  <td>
+    --disk_watch_interval=VALUE
+  </td>
+  <td>
+Periodic time interval (e.g., 10secs, 2mins, etc)
+to check the overall disk usage managed by the agent.
+This drives the garbage collection of archived
+information and sandboxes. (default: 1mins)
+  </td>
+</tr>
+<tr>
+  <td>
+    --docker=VALUE
+  </td>
+  <td>
+The absolute path to the docker executable for docker
+containerizer.
+(default: docker)
+  </td>
+</tr>
+<tr>
+  <td>
+    --docker_config=VALUE
+  </td>
+  <td>
+The default docker config file for agent. Can be provided either as an
+absolute path pointing to the agent local docker config file, or as a
+JSON-formatted string. The format of the docker config file should be
+identical to docker's default one (e.g., either
+<code>$HOME/.docker/config.json</code> or <code>$HOME/.dockercfg</code>).
+Example JSON (<code>$HOME/.docker/config.json</code>):
+<pre><code>{
+  "auths": {
+    "https://index.docker.io/v1/": {
+      "auth": "xXxXxXxXxXx=",
+      "email": "username@example.com"
+    }
+  }
+}
+</code></pre>
+  </td>
+</tr>
+<tr>
+  <td>
+    --[no-]docker_kill_orphans
+  </td>
+  <td>
+Enable docker containerizer to kill orphaned containers.
+You should consider setting this to false when you launch multiple
+agents in the same OS, to avoid one of the DockerContainerizer
+removing docker tasks launched by other agents.
+(default: true)
+  </td>
+</tr>
+<tr>
+  <td>
+    --docker_mesos_image=VALUE
+  </td>
+  <td>
+The Docker image used to launch this Mesos agent instance.
+If an image is specified, the docker containerizer assumes the agent
+is running in a docker container, and launches executors with
+docker containers in order to recover them when the agent restarts and
+recovers.
+  </td>
+</tr>
+<tr>
+  <td>
+    --docker_registry=VALUE
+  </td>
+  <td>
+The default url for Mesos containerizer to pull Docker images. It could
+either be a Docker registry server url (i.e: <code>https://registry.docker.io</code>),
+or a local path (i.e: <code>/tmp/docker/images</code>) in which Docker
+image archives (result of <code>docker save</code>) are stored. Note
+that this option won't change the default registry server for Docker
+containerizer. (default: https://registry-1.docker.io)
+  </td>
+</tr>
+<tr>
+  <td>
+    --docker_remove_delay=VALUE
+  </td>
+  <td>
+The amount of time to wait before removing docker containers
+(e.g., <code>3days</code>, <code>2weeks</code>, etc).
+(default: 6hrs)
+  </td>
+</tr>
+<tr>
+  <td>
+    --docker_socket=VALUE
+  </td>
+  <td>
+Resource used by the agent and the executor to provide CLI access to the
+Docker daemon. On Unix, this is typically a path to a socket, such as
+<code>/var/run/docker.sock</code>. On Windows this must be a named pipe,
+such as <code>//./pipe/docker_engine</code>. <b>NOTE</b>: This must be the path
+used by the Docker image used to run the agent. (default:
+//./pipe/docker_engine on Windows; /var/run/docker.sock on other
+platforms).
+  </td>
+</tr>
+<tr>
+  <td>
+    --docker_stop_timeout=VALUE
+  </td>
+  <td>
+The time docker daemon waits after stopping a container before killing
+that container. This flag is deprecated; use task's kill policy instead.
+(default: 0ns)
+  </td>
+</tr>
+<tr>
+  <td>
+    --docker_store_dir=VALUE
+  </td>
+  <td>
+Directory the Docker provisioner will store images in (default: /tmp/mesos/store/docker)
+  </td>
+</tr>
+<tr>
+  <td>
+    --docker_volume_checkpoint_dir=VALUE
+  </td>
+  <td>
+The root directory where we checkpoint the information about docker
+volumes that each container uses.
+(default: /var/run/mesos/isolators/docker/volume)
+  </td>
+</tr>
+<tr>
+  <td>
+    --[no-]enforce_container_disk_quota
+  </td>
+  <td>
+Whether to enable disk quota enforcement for containers. This flag
+is used by the <code>disk/du</code> and <code>disk/xfs</code> isolators. (default: false)
+  </td>
+</tr>
+<tr>
+  <td>
+    --executor_environment_variables=VALUE
+  </td>
+  <td>
+JSON object representing the environment variables that should be
+passed to the executor, and thus subsequently task(s). By default this
+flag is none. Users have to define executor environment explicitly.
+Example:
+<pre><code>{
+  "PATH": "/bin:/usr/bin",
+  "LD_LIBRARY_PATH": "/usr/local/lib"
+}</code></pre>
+  </td>
+</tr>
+<tr>
+  <td>
+    --executor_registration_timeout=VALUE
+  </td>
+  <td>
+Amount of time to wait for an executor
+to register with the agent before considering it hung and
+shutting it down (e.g., 60secs, 3mins, etc) (default: 1mins)
+  </td>
+</tr>
+<tr>
+  <td>
+    --executor_reregistration_timeout=VALUE
+  </td>
+  <td>
+The timeout within which an executor is expected to re-register after
+the agent has restarted, before the agent considers it gone and shuts
+it down. Note that currently, the agent will not re-register with the
+master until this timeout has elapsed (see MESOS-7539). (default: 2secs)
+  </td>
+</tr>
+<tr>
+  <td>
+    --executor_reregistration_retry_interval=VALUE
+  </td>
+  <td>
+For PID-based executors, how long the agent waits before retrying
+the reconnect message sent to the executor during recovery.
+NOTE: Do not use this unless you understand the following
+(see MESOS-5332): PID-based executors using Mesos libraries &gt;= 1.1.2
+always re-link with the agent upon receiving the reconnect message.
+This avoids the executor replying on a half-open TCP connection to
+the old agent (possible if netfilter is dropping packets,
+see: MESOS-7057). However, PID-based executors using Mesos
+libraries &lt; 1.1.2 do not re-link and are therefore prone to
+replying on a half-open connection after the agent restarts. If we
+only send a single reconnect message, these "old" executors will
+reply on their half-open connection and receive a RST; without any
+retries, they will fail to reconnect and be killed by the agent once
+the executor re-registration timeout elapses. To ensure these "old"
+executors can reconnect in the presence of netfilter dropping
+packets, we introduced optional retries of the reconnect message.
+This results in "old" executors correctly establishing a link
+when processing the second reconnect message. (default: no retries)
+  </td>
+</tr>
+<tr>
+  <td>
+    --max_completed_executors_per_framework=VALUE
+  </td>
+  <td>
+Maximum number of completed executors per framework to store
+in memory. (default: 150)
+  </td>
+</tr>
+<tr>
+  <td>
+    --executor_secret_key=VALUE
+  </td>
+  <td>
+Path to a file containing the key used when generating executor
+secrets. This flag is only available when Mesos is built with SSL
+support.
+  </td>
+</tr>
+<tr>
+  <td>
+    --executor_shutdown_grace_period=VALUE
+  </td>
+  <td>
+Default amount of time to wait for an executor to shut down
+(e.g. 60secs, 3mins, etc). ExecutorInfo.shutdown_grace_period
+overrides this default. Note that the executor must not assume
+that it will always be allotted the full grace period, as the
+agent may decide to allot a shorter period, and failures / forcible
+terminations may occur.
+(default: 5secs)
+  </td>
+</tr>
+<tr>
+  <td>
+    --fetcher_cache_dir=VALUE
+  </td>
+  <td>
+Parent directory for fetcher cache directories
+(one subdirectory per agent). (default: /tmp/mesos/fetch)
+
+Directory for the fetcher cache. The agent will clear this directory
+on startup. It is recommended to set this value to a separate volume
+for several reasons:
+<ul>
+<li> The cache directories are transient and not meant to be
+     backed up. Upon restarting the agent, the cache is always empty. </li>
+<li> The cache and container sandboxes can potentially interfere with
+     each other when occupying a shared space (i.e. disk contention). </li>
+</ul>
+  </td>
+</tr>
+<tr>
+  <td>
+    --fetcher_cache_size=VALUE
+  </td>
+  <td>
+Size of the fetcher cache in Bytes. (default: 2GB)
+  </td>
+</tr>
+<tr>
+  <td>
+    --frameworks_home=VALUE
+  </td>
+  <td>
+Directory path prepended to relative executor URIs (default: )
+  </td>
+</tr>
+<tr>
+  <td>
+    --gc_delay=VALUE
+  </td>
+  <td>
+Maximum amount of time to wait before cleaning up
+executor directories (e.g., 3days, 2weeks, etc).
+Note that this delay may be shorter depending on
+the available disk usage. (default: 1weeks)
+  </td>
+</tr>
+<tr>
+  <td>
+    <a name="gc_disk_headroom"></a>
+    --gc_disk_headroom=VALUE
+  </td>
+  <td>
+Adjust disk headroom used to calculate maximum executor
+directory age. Age is calculated by:
+<code>gc_delay * max(0.0, (1.0 - gc_disk_headroom - disk usage))</code>
+every <code>--disk_watch_interval</code> duration. <code>gc_disk_headroom</code> must
+be a value between 0.0 and 1.0 (default: 0.1)
+  </td>
+</tr>
+<tr>
+  <td>
+    --hadoop_home=VALUE
+  </td>
+  <td>
+Path to find Hadoop installed (for
+fetching framework executors from HDFS)
+(no default, look for <code>HADOOP_HOME</code> in
+environment or find hadoop on <code>PATH</code>) (default: )
+  </td>
+</tr>
+<tr>
+  <td>
+    --http_credentials=VALUE
+  </td>
+  <td>
+Path to a JSON-formatted file containing credentials. These
+credentials are used to authenticate HTTP endpoints on the agent.
+Path can be of the form <code>file:///path/to/file</code> or <code>/path/to/file</code>.
+<p/>
+Example:
+<pre><code>{
+  "credentials": [
+    {
+      "principal": "yoda",
+      "secret": "usetheforce"
+    }
+  ]
+}
+</code></pre>
+  </td>
+</tr>
+<tr>
+  <td>
+    --[no-]http_command_executor
+  </td>
+  <td>
+The underlying executor library to be used for the command executor.
+If set to <code>true</code>, the command executor would use the HTTP based
+executor library to interact with the Mesos agent. If set to <code>false</code>,
+the driver based implementation would be used.
+<b>NOTE</b>: This flag is *experimental* and should not be used in
+production yet. (default: false)
+  </td>
+</tr>
+<tr>
+  <td>
+    --http_heartbeat_interval=VALUE
+  </td>
+  <td>
+This flag sets a heartbeat interval (e.g. '5secs', '10mins') for
+messages to be sent over persistent connections made against
+the agent HTTP API. Currently, this only applies to the
+<code>LAUNCH_NESTED_CONTAINER_SESSION</code> and <code>ATTACH_CONTAINER_OUTPUT</code> calls.
+(default: 30secs)
+  </td>
+</tr>
+<tr>
+  <td>
+    --image_providers=VALUE
+  </td>
+  <td>
+Comma-separated list of supported image providers,
+e.g., <code>APPC,DOCKER</code>.
+  </td>
+</tr>
+<tr>
+  <td>
+    --image_provisioner_backend=VALUE
+  </td>
+  <td>
+Strategy for provisioning container rootfs from images, e.g., <code>aufs</code>,
+<code>bind</code>, <code>copy</code>, <code>overlay</code>.
+  </td>
+</tr>
+<tr>
+  <td>
+    --isolation=VALUE
+  </td>
+  <td>
+Isolation mechanisms to use, e.g., <code>posix/cpu,posix/mem</code>, or
+<code>cgroups/cpu,cgroups/mem</code>, or <code>network/port_mapping</code>
+(configure with flag: <code>--with-network-isolator</code> to enable),
+or <code>gpu/nvidia</code> for nvidia specific gpu isolation, or load an alternate
+isolator module using the <code>--modules</code> flag. Note that this
+flag is only relevant for the Mesos Containerizer.
+(default: posix/cpu,posix/mem)
+  </td>
+</tr>
+<tr>
+  <td>
+    --launcher=VALUE
+  </td>
+  <td>
+The launcher to be used for Mesos containerizer. It could either be
+<code>linux</code> or <code>posix</code>. The Linux launcher is required for cgroups
+isolation and for any isolators that require Linux namespaces such as
+network, pid, etc. If unspecified, the agent will choose the Linux
+launcher if it's running as root on Linux.
+  </td>
+</tr>
+<tr>
+  <td>
+    --launcher_dir=VALUE
+  </td>
+  <td>
+Directory path of Mesos binaries. Mesos looks for the health-check,
+fetcher, containerizer, and executor binary files under this
+directory. (default: /usr/local/libexec/mesos)
+  </td>
+</tr>
+<tr>
+  <td>
+  --master_detector=VALUE
+  </td>
+  <td>
+The symbol name of the master detector to use. This symbol should exist in a
+module specified through the <code>--modules</code> flag. Cannot be used in
+conjunction with <code>--master</code>.
+  </td>
+</tr>
+<tr>
+  <td>
+    --nvidia_gpu_devices=VALUE
+  </td>
+  <td>
+A comma-separated list of Nvidia GPU devices. When <code>gpus</code> is specified
+in the <code>--resources</code> flag, this flag determines which GPU devices will
+be made available. The devices should be listed as numbers that
+correspond to Nvidia's NVML device enumeration (as seen by running the
+command <code>nvidia-smi</code> on an Nvidia GPU equipped system). The GPUs
+listed will only be isolated if the <code>--isolation</code> flag contains the
+string <code>gpu/nvidia</code>.
+  </td>
+</tr>
+<tr>
+  <td>
+    --network_cni_plugins_dir=VALUE
+  </td>
+  <td>
+Directory path of the CNI plugin binaries. The <code>network/cni</code>
+isolator will find CNI plugins under this directory so that it can execute
+the plugins to add/delete container from the CNI networks. It is the operator's
+responsibility to install the CNI plugin binaries in the specified directory.
+  </td>
+</tr>
+<tr>
+  <td>
+    --network_cni_config_dir=VALUE
+  </td>
+  <td>
+Directory path of the CNI network configuration files. For each network that
+containers launched in Mesos agent can connect to, the operator should install
+a network configuration file in JSON format in the specified directory.
+  </td>
+</tr>
+<tr>
+  <td>
+    --oversubscribed_resources_interval=VALUE
+  </td>
+  <td>
+The agent periodically updates the master with the current estimation
+about the total amount of oversubscribed resources that are allocated
+and available. The interval between updates is controlled by this flag.
+(default: 15secs)
+  </td>
+</tr>
+<tr>
+  <td>
+    --perf_duration=VALUE
+  </td>
+  <td>
+Duration of a perf stat sample. The duration must be less
+than the <code>perf_interval</code>. (default: 10secs)
+  </td>
+</tr>
+<tr>
+  <td>
+    --perf_events=VALUE
+  </td>
+  <td>
+List of command-separated perf events to sample for each container
+when using the perf_event isolator. Default is none.
+Run command <code>perf list</code> to see all events. Event names are
+sanitized by downcasing and replacing hyphens with underscores
+when reported in the PerfStatistics protobuf, e.g., <code>cpu-cycles</code>
+becomes <code>cpu_cycles</code>; see the PerfStatistics protobuf for all names.
+  </td>
+</tr>
+<tr>
+  <td>
+    --perf_interval=VALUE
+  </td>
+  <td>
+Interval between the start of perf stat samples. Perf samples are
+obtained periodically according to <code>perf_interval</code> and the most
+recently obtained sample is returned rather than sampling on
+demand. For this reason, <code>perf_interval</code> is independent of the
+resource monitoring interval. (default: 60secs)
+  </td>
+</tr>
+<tr>
+  <td>
+    --qos_controller=VALUE
+  </td>
+  <td>
+The name of the QoS Controller to use for oversubscription.
+  </td>
+</tr>
+<tr>
+  <td>
+    --qos_correction_interval_min=VALUE
+  </td>
+  <td>
+The agent polls and carries out QoS corrections from the QoS
+Controller based on its observed performance of running tasks.
+The smallest interval between these corrections is controlled by
+this flag. (default: 0secs)
+  </td>
+</tr>
+<tr>
+  <td>
+    --recover=VALUE
+  </td>
+  <td>
+Whether to recover status updates and reconnect with old executors.
+Valid values for <code>recover</code> are
+reconnect: Reconnect with any old live executors.
+cleanup  : Kill any old live executors and exit.
+           Use this option when doing an incompatible agent
+           or executor upgrade!). (default: reconnect)
+  </td>
+</tr>
+<tr>
+  <td>
+    --recovery_timeout=VALUE
+  </td>
+  <td>
+Amount of time allotted for the agent to recover. If the agent takes
+longer than recovery_timeout to recover, any executors that are
+waiting to reconnect to the agent will self-terminate.
+(default: 15mins)
+  </td>
+</tr>
+<tr>
+  <td>
+    --registration_backoff_factor=VALUE
+  </td>
+  <td>
+Agent initially picks a random amount of time between <code>[0, b]</code>, where
+<code>b = registration_backoff_factor</code>, to (re-)register with a new master.
+Subsequent retries are exponentially backed off based on this
+interval (e.g., 1st retry uses a random value between <code>[0, b * 2^1]</code>,
+2nd retry between <code>[0, b * 2^2]</code>, 3rd retry between <code>[0, b * 2^3]</code>,
+etc) up to a maximum of 1mins (default: 1secs)
+  </td>
+</tr>
+<tr>
+  <td>
+    --resource_estimator=VALUE
+  </td>
+  <td>
+The name of the resource estimator to use for oversubscription.
+  </td>
+</tr>
+<tr>
+  <td>
+    --resources=VALUE
+  </td>
+  <td>
+Total consumable resources per agent. Can be provided in JSON format
+or as a semicolon-delimited list of key:value pairs, with the role
+optionally specified.
+<p/>
+As a key:value list:
+<code>name(role):value;name:value...</code>
+<p/>
+To use JSON, pass a JSON-formatted string or use
+<code>--resources=filepath</code> to specify the resources via a file containing
+a JSON-formatted string. 'filepath' can be of the form
+<code>file:///path/to/file</code> or <code>/path/to/file</code>.
+<p/>
+Example JSON:
+<pre><code>[
+  {
+    "name": "cpus",
+    "type": "SCALAR",
+    "scalar": {
+      "value": 24
+    }
+  },
+  {
+    "name": "mem",
+    "type": "SCALAR",
+    "scalar": {
+      "value": 24576
+    }
+  }
+]</code></pre>
+  </td>
+</tr>
+<tr>
+  <td>
+    --resource_provider_config_dir=VALUE
+  </td>
+  <td>
+Path to a directory that contains local resource provider configs.
+Each file in the config dir should contain a JSON object representing
+a <code>ResourceProviderInfo</code> object. Each local resource
+provider provides resources that are local to the agent. It is also
+responsible for handling operations on the resources it provides.
+Please note that <code>resources</code> field might not need to be
+specified if the resource provider determines the resources
+automatically.
+<p/>
+Example config file in this directory:
+<pre><code>{
+  "type": "org.mesos.apache.rp.local.storage",
+  "name": "lvm"
+}</code></pre>
+  </td>
+</tr>
+<tr>
+  <td>
+    --[no-]revocable_cpu_low_priority
+  </td>
+  <td>
+Run containers with revocable CPU at a lower priority than
+normal containers (non-revocable cpu). Currently only
+supported by the cgroups/cpu isolator. (default: true)
+  </td>
+</tr>
+<tr>
+  <td>
+    --runtime_dir
+  </td>
+  <td>
+Path of the agent runtime directory. This is where runtime data
+is stored by an agent that it needs to persist across crashes (but
+not across reboots). This directory will be cleared on reboot.
+(Example: <code>/var/run/mesos</code>)
+  </td>
+</tr>
+<tr>
+  <td>
+    --sandbox_directory=VALUE
+  </td>
+  <td>
+The absolute path for the directory in the container where the
+sandbox is mapped to.
+(default: /mnt/mesos/sandbox)
+  </td>
+</tr>
+<tr>
+  <td>
+    --[no-]disallow_sharing_agent_pid_namespace
+  </td>
+  <td>
+If set to <code>true</code>, each top-level container will have its own pid
+namespace, and if the framework requests to share the agent pid namespace for
+the top level container, the container launch will be rejected. If set to
+<code>false</code>, the top-level containers will share the pid namespace with
+agent if the framework requests it. This flag will be ignored if the
+`namespaces/pid` isolator is not enabled.
+(default: false)
+  </td>
+</tr>
+<tr>
+  <td>
+    --[no-]strict
+  </td>
+  <td>
+If <code>strict=true</code>, any and all recovery errors are considered fatal.
+If <code>strict=false</code>, any expected errors (e.g., agent cannot recover
+information about an executor, because the agent died right before
+the executor registered.) during recovery are ignored and as much
+state as possible is recovered.
+(default: true)
+  </td>
+</tr>
+<tr>
+  <td>
+    --secret_resolver=VALUE
+  </td>
+  <td>
+The name of the secret resolver module to use for resolving
+environment and file-based secrets. If this flag is not specified,
+the default behavior is to resolve value-based secrets and error on
+reference-based secrets.
+  </td>
+</tr>
+
+<tr>
+  <td>
+    --[no-]switch_user
+  </td>
+  <td>
+If set to <code>true</code>, the agent will attempt to run tasks as
+the <code>user</code> who submitted them (as defined in <code>FrameworkInfo</code>)
+(this requires <code>setuid</code> permission and that the given <code>user</code>
+exists on the agent).
+If the user does not exist, an error occurs and the task will fail.
+If set to <code>false</code>, tasks will be run as the same user as the Mesos
+agent process.
+<b>NOTE</b>: This feature is not yet supported on Windows agent, and
+therefore the flag currently does not exist on that platform. (default: true)
+  </td>
+</tr>
+<tr>
+  <td>
+    --[no-]systemd_enable_support
+  </td>
+  <td>
+Top level control of systemd support. When enabled, features such as
+executor life-time extension are enabled unless there is an explicit
+flag to disable these (see other flags). This should be enabled when
+the agent is launched as a systemd unit.
+(default: true)
+  </td>
+</tr>
+<tr>
+  <td>
+    --systemd_runtime_directory=VALUE
+  </td>
+  <td>
+The path to the systemd system run time directory.
+(default: /run/systemd/system)
+  </td>
+</tr>
+</table>
+
+
+<h2>Network Isolator Flags</h2>
+
+<p><em>Available when configured with <code>--with-network-isolator</code>.</em></p>
+
+<table class="table table-striped">
+  <thead>
+    <tr>
+      <th width="30%">
+        Flag
+      </th>
+      <th>
+        Explanation
+      </th>
+    </tr>
+  </thead>
+<tr>
+  <td>
+    --ephemeral_ports_per_container=VALUE
+  </td>
+  <td>
+Number of ephemeral ports allocated to a container by the network
+isolator. This number has to be a power of 2. This flag is used
+for the <code>network/port_mapping</code> isolator. (default: 1024)
+  </td>
+</tr>
+<tr>
+  <td>
+    --eth0_name=VALUE
+  </td>
+  <td>
+The name of the public network interface (e.g., <code>eth0</code>). If it is
+not specified, the network isolator will try to guess it based
+on the host default gateway. This flag is used for the
+<code>network/port_mapping</code> isolator.
+  </td>
+</tr>
+<tr>
+  <td>
+    --lo_name=VALUE
+  </td>
+  <td>
+The name of the loopback network interface (e.g., lo). If it is
+not specified, the network isolator will try to guess it. This
+flag is used for the <code>network/port_mapping</code> isolator.
+  </td>
+</tr>
+<tr>
+  <td>
+    --egress_rate_limit_per_container=VALUE
+  </td>
+  <td>
+The limit of the egress traffic for each container, in Bytes/s.
+If not specified or specified as zero, the network isolator will
+impose no limits to containers' egress traffic throughput.
+This flag uses the Bytes type (defined in stout) and is used for
+the <code>network/port_mapping</code> isolator.
+  </td>
+</tr>
+<tr>
+  <td>
+    --[no-]egress_unique_flow_per_container
+  </td>
+  <td>
+Whether to assign an individual flow for each container for the
+egress traffic. This flag is used for the <code>network/port_mapping</code>
+isolator. (default: false)
+  </td>
+</tr>
+<tr>
+  <td>
+    --egress_flow_classifier_parent=VALUE
+  </td>
+  <td>
+When <code>egress_unique_flow_per_container</code> is enabled, we need to install
+a flow classifier (fq_codel) qdisc on egress side. This flag specifies
+where to install it in the hierarchy. By default, we install it at root.
+  </td>
+</tr>
+<tr>
+  <td>
+    --[no-]network_enable_socket_statistics_summary
+  </td>
+  <td>
+Whether to collect socket statistics summary for each container.
+This flag is used for the <code>network/port_mapping</code> isolator.
+(default: false)
+  </td>
+</tr>
+<tr>
+  <td>
+    --[no-]network_enable_socket_statistics_details
+  </td>
+  <td>
+Whether to collect socket statistics details (e.g., TCP RTT) for
+each container. This flag is used for the <code>network/port_mapping</code>
+isolator. (default: false)
+  </td>
+</tr>
+<tr>
+  <td>
+    --[no-]network_enable_snmp_statistics
+  </td>
+  <td>
+Whether to collect SNMP statistics details (e.g., TCPRetransSegs) for
+each container. This flag is used for the 'network/port_mapping'
+isolator. (default: false)
+  </td>
+</tr>
+</table>
+
+
+<h2>XFS Disk Isolator flags</h2>
+
+<p><em>Available when configured with <code>--enable-xfs-disk-isolator</code>.</em></p>
+
+<table class="table table-striped">
+  <thead>
+    <tr>
+      <th width="30%">
+        Flag
+      </th>
+      <th>
+        Explanation
+      </th>
+    </tr>
+  </thead>
+<tr>
+  <td>
+    --xfs_project_range=VALUE
+  </td>
+<td>
+The ranges of XFS project IDs that the isolator can use to track disk
+quotas for container sandbox directories. Valid project IDs range from
+1 to max(uint32). (default `[5000-10000]`)
+</td>
+</tr>
+</table>
+
+
+  </div>
+</div>
+
+  </div><!-- /.container -->
+</div><!-- /.content -->
+
+<hr>
+
+
+
+    <!-- footer -->
+    <div class="footer">
+      <div class="container">
+        <div class="col-md-4 social-blk">
+          <span class="social">
+            <a href="https://twitter.com/ApacheMesos"
+              class="twitter-follow-button"
+              data-show-count="false" data-size="large">Follow @ApacheMesos</a>
+            <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
+            <a href="https://twitter.com/intent/tweet?button_hashtag=mesos"
+              class="twitter-hashtag-button"
+              data-size="large"
+              data-related="ApacheMesos">Tweet #mesos</a>
+            <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
+          </span>
+        </div>
+
+        <div class="col-md-8 trademark">
+          <p>&copy; 2012-2017 <a href="http://apache.org">The Apache Software Foundation</a>.
+            Apache Mesos, the Apache feather logo, and the Apache Mesos project logo are trademarks of The Apache Software Foundation.
+          <p>
+        </div>
+      </div><!-- /.container -->
+    </div><!-- /.footer -->
+
+    <!-- JS -->
+    <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script>
+    <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/a5fb0e1c/content/documentation/latest/configuration/autotools/index.html
----------------------------------------------------------------------
diff --git a/content/documentation/latest/configuration/autotools/index.html b/content/documentation/latest/configuration/autotools/index.html
new file mode 100644
index 0000000..98ad129
--- /dev/null
+++ b/content/documentation/latest/configuration/autotools/index.html
@@ -0,0 +1,729 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <title>Apache Mesos - Autotools Options</title>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+    <meta property="og:locale" content="en_US"/>
+    <meta property="og:type" content="website"/>
+    <meta property="og:title" content="Apache Mesos"/>
+    <meta property="og:site_name" content="Apache Mesos"/>
+    <meta property="og:url" content="http://mesos.apache.org/"/>
+    <meta property="og:image" content="http://mesos.apache.org/assets/img/mesos_logo_fb_preview.png"/>
+    <meta property="og:description"
+          content="Apache Mesos abstracts resources away from machines,
+                   enabling fault-tolerant and elastic distributed systems
+                   to easily be built and run effectively."/>
+
+    <meta name="twitter:card" content="summary"/>
+    <meta name="twitter:site" content="@ApacheMesos"/>
+    <meta name="twitter:title" content="Apache Mesos"/>
+    <meta name="twitter:image" content="http://mesos.apache.org/assets/img/mesos_logo_fb_preview.png"/>
+    <meta name="twitter:description"
+          content="Apache Mesos abstracts resources away from machines,
+                   enabling fault-tolerant and elastic distributed systems
+                   to easily be built and run effectively."/>
+
+    <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
+    <link rel="alternate" type="application/atom+xml" title="Apache Mesos Blog" href="/blog/feed.xml">
+    <link href="../../../../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" />
+
+    
+
+    <!-- Google Analytics Magic -->
+    <script type="text/javascript">
+    var _gaq = _gaq || [];
+    _gaq.push(['_setAccount', 'UA-20226872-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>
+    <!-- magical breadcrumbs -->
+    <div class="topnav">
+      <div class="container">
+        <ul class="breadcrumb">
+          <li>
+            <div class="dropdown">
+              <a data-toggle="dropdown" href="#">Apache Software Foundation <span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
+                <li><a href="http://www.apache.org">Apache Homepage</a></li>
+                <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>
+          </li>
+
+          <li><a href="http://mesos.apache.org">Apache Mesos</a></li>
+          
+          
+          <li><a href="/documentation
+/">Documentation
+</a></li>
+          
+          
+        </ul><!-- /.breadcrumb -->
+      </div><!-- /.container -->
+    </div><!-- /.topnav -->
+
+    <!-- navbar excitement -->
+<div class="navbar navbar-default navbar-static-top" role="navigation">
+  <div class="container">
+    <div class="navbar-header">
+      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#mesos-menu" aria-expanded="false">
+      <span class="sr-only">Toggle navigation</span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      </button>
+      <a class="navbar-brand" href="/"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo"/></a>
+    </div><!-- /.navbar-header -->
+
+    <div class="navbar-collapse collapse" id="mesos-menu">
+      <ul class="nav navbar-nav navbar-right">
+        <li><a href="/gettingstarted/">Getting Started</a></li>
+        <li><a href="/blog/">Blog</a></li>
+        <li><a href="/documentation/latest/">Documentation</a></li>
+        <li><a href="/downloads/">Downloads</a></li>
+        <li><a href="/community/">Community</a></li>
+      </ul>
+    </div><!-- /#mesos-menu -->
+  </div><!-- /.container -->
+</div><!-- /.navbar -->
+
+<div class="content">
+  <div class="container">
+    <div class="row-fluid">
+  <div class="col-md-4">
+    <h4>If you're new to Mesos</h4>
+    <p>See the <a href="/gettingstarted/">getting started</a> page for more
+       information about downloading, building, and deploying Mesos.</p>
+
+    <h4>If you'd like to get involved or you're looking for support</h4>
+    <p>See our <a href="/community/">community</a> page for more details.</p>
+  </div>
+  <div class="col-md-8">
+    <h1>Autotools Options</h1>
+
+<p><em>The most up-to-date options can be found with <code>./configure --help</code>.</em></p>
+
+<h2>Autotools <code>configure</code> script options</h2>
+
+<table class="table table-striped">
+  <thead>
+    <tr>
+      <th width="30%">
+        Flag
+      </th>
+      <th>
+        Explanation
+      </th>
+    </tr>
+  </thead>
+  <tr>
+    <td>
+      --enable-static[=PKGS]
+    </td>
+    <td>
+      Build static libraries. [default=yes]
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --enable-dependency-tracking
+    </td>
+    <td>
+      Do not reject slow dependency extractors.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --disable-dependency-tracking
+    </td>
+    <td>
+      Speeds up one-time build.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --enable-silent-rules
+    </td>
+    <td>
+      Less verbose build output (undo: "make V=1").
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --disable-silent-rules
+    </td>
+    <td>
+      Verbose build output (undo: "make V=0").
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --disable-maintainer-mode
+    </td>
+    <td>
+      Disable make rules and dependencies not useful (and sometimes confusing)
+      to the casual installer.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --enable-shared[=PKGS]
+    </td>
+    <td>
+      Build shared libraries. [default=yes]
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --enable-fast-install[=PKGS]
+    </td>
+    <td>
+      Optimize for fast installation. [default=yes]
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --disable-libtool-lock
+    </td>
+    <td>
+      Avoid locking. Note that this might break parallel builds.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --disable-bundled
+    </td>
+    <td>
+      Configures Mesos to build against preinstalled dependencies
+      instead of bundled libraries.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --disable-bundled-pip
+    </td>
+    <td>
+      Excludes building and using the bundled pip package in lieu of an
+      installed version in <code>PYTHONPATH</code>.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --disable-bundled-setuptools
+    </td>
+    <td>
+      Excludes building and using the bundled setuptools package in lieu of an
+      installed version in <code>PYTHONPATH</code>.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --disable-bundled-wheel
+    </td>
+    <td>
+      Excludes building and using the bundled wheel package in lieu of an
+      installed version in <code>PYTHONPATH</code>.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --enable-debug
+    </td>
+    <td>
+      Whether debugging is enabled. If CFLAGS/CXXFLAGS are set, this
+      option won't change them. [default=no]
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --disable-java
+    </td>
+    <td>
+      Don't build Java bindings.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --enable-libevent
+    </td>
+    <td>
+      Use <a href="https://github.com/libevent/libevent">libevent</a>
+      instead of libev for the libprocess event loop. Note that the libevent
+      version 2+ development package is required. [default=no]
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --enable-install-module-dependencies
+    </td>
+    <td>
+      Install third-party bundled dependencies required for module development.
+      [default=no]
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --enable-optimize
+    </td>
+    <td>
+      Whether optimizations are enabled. If CFLAGS/CXXFLAGS are set,
+      this option won't change them. [default=no]
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --enable-perftools
+    </td>
+    <td>
+      Whether profiling with Google perftools is enabled. [default=no]
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --enable-parallel-test-execution
+    </td>
+    <td>
+      Whether to attempt to run tests in parallel.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --disable-python
+    </td>
+    <td>
+      Don't build Python bindings.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --disable-python-dependency-install
+    </td>
+    <td>
+      When the python packages are installed during make install, no external
+      dependencies will be downloaded or installed.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --enable-ssl
+    </td>
+    <td>
+      Enable <a href="/documentation/latest/ssl">SSL</a> for libprocess
+      communication. Note that <code>--enable-libevent</code> is currently
+      required for SSL functionality. [default=no]
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --enable-static-unimplemented
+    </td>
+    <td>
+      Generate static assertion errors for unimplemented functions. [default=no]
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --enable-tests-install
+    </td>
+    <td>
+      Build and install tests and their helper tools. [default=no]
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --enable-xfs-disk-isolator
+    </td>
+    <td>
+      Builds the XFS disk isolator. [default=no]
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --disable-zlib
+    </td>
+    <td>
+      Disables zlib compression, which means the webui will be far less
+      responsive; not recommended.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --enable-lock-free-event-queue
+    </td>
+    <td>
+      Enables the lock-free event queue to be used in libprocess which
+      greatly improves message passing performance!
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --disable-werror
+    </td>
+    <td>
+      Disables treating compiler warnings as fatal errors.
+    </td>
+  </tr>
+</table>
+
+
+<h3>Autotools <code>configure</code> script optional package flags</h3>
+
+<table class="table table-striped">
+  <thead>
+    <tr>
+      <th width="30%">
+        Flag
+      </th>
+      <th>
+        Explanation
+      </th>
+    </tr>
+  </thead>
+  <tr>
+    <td>
+      --with-gnu-ld
+    </td>
+    <td>
+      Assume the C compiler uses GNU <code>ld</code>. [default=no]
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --with-sysroot[=DIR]
+    </td>
+    <td>
+      Search for dependent libraries within <code>DIR</code>
+      (or the compiler's sysroot if not specified).
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --with-apr[=DIR]
+    </td>
+    <td>
+      Specify where to locate the apr-1 library.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --with-boost[=DIR]
+    </td>
+    <td>
+      Excludes building and using the bundled Boost package in lieu of an
+      installed version at a location prefixed by the given path.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --with-concurrentqueue[=DIR]
+    </td>
+    <td>
+      Excludes building and using the bundled concurrentqueue package in lieu
+      of an installed version at a location prefixed by the given path.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --with-curl[=DIR]
+    </td>
+    <td>
+      Specify where to locate the curl library.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --with-elfio[=DIR]
+    </td>
+    <td>
+      Excludes building and using the bundled ELFIO package in lieu of an
+      installed version at a location prefixed by the given path.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --with-glog[=DIR]
+    </td>
+    <td>
+      excludes building and using the bundled glog package in lieu of an
+      installed version at a location prefixed by the given path.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --with-gmock[=DIR]
+    </td>
+    <td>
+      Excludes building and using the bundled gmock package in lieu of an
+      installed version at a location prefixed by the given path.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --with-http-parser[=DIR]
+    </td>
+    <td>
+      Excludes building and using the bundled http-parser package in lieu of an
+      installed version at a location prefixed by the given path.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --with-leveldb[=DIR]
+    </td>
+    <td>
+      Excludes building and using the bundled LevelDB package in lieu of an
+      installed version at a location prefixed by the given path.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --with-libev[=DIR]
+    </td>
+    <td>
+      Excludes building and using the bundled libev package in lieu of an
+      installed version at a location prefixed by the given path.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --with-libevent[=DIR]
+    </td>
+    <td>
+      Specify where to locate the libevent library.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --with-libprocess[=DIR]
+    </td>
+    <td>
+      Specify where to locate the libprocess library.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --with-network-isolator
+    </td>
+    <td>
+      Builds the network isolator.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --with-nl[=DIR]
+    </td>
+    <td>
+      Specify where to locate the
+      <a href="https://www.infradead.org/~tgr/libnl/">libnl3</a> library,
+      which is required for the network isolator.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --with-nvml[=DIR]
+    </td>
+    <td>
+      Excludes building and using the bundled NVML headers in lieu of an
+      installed version at a location prefixed by the given path.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --with-picojson[=DIR]
+    </td>
+    <td>
+      Excludes building and using the bundled picojson package in lieu of an
+      installed version at a location prefixed by the given path.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --with-protobuf[=DIR]
+    </td>
+    <td>
+      Excludes building and using the bundled protobuf package in lieu of an
+      installed version at a location prefixed by the given path.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --with-sasl[=DIR]
+    </td>
+    <td>
+      Specify where to locate the sasl2 library.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --with-ssl[=DIR]
+    </td>
+    <td>
+      Specify where to locate the ssl library.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --with-stout[=DIR]
+    </td>
+    <td>
+      Specify where to locate stout library.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --with-svn[=DIR]
+    </td>
+    <td>
+      Specify where to locate the svn-1 library.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --with-zlib[=DIR]
+    </td>
+    <td>
+      Specify where to locate the zlib library.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      --with-zookeeper[=DIR]
+    </td>
+    <td>
+      Excludes building and using the bundled ZooKeeper package in lieu of an
+      installed version at a location prefixed by the given path.
+    </td>
+  </tr>
+</table>
+
+
+<h3>Environment variables which affect the Autotools <code>configure</code> script</h3>
+
+<p>Use these variables to override the choices made by <code>configure</code> or to help
+it to find libraries and programs with nonstandard names/locations.</p>
+
+<table class="table table-striped">
+  <thead>
+    <tr>
+      <th width="30%">
+        Variable
+      </th>
+      <th>
+        Explanation
+      </th>
+    </tr>
+  </thead>
+  <tr>
+    <td>
+      JAVA_HOME
+    </td>
+    <td>
+      Location of Java Development Kit (JDK).
+    </td>
+  </tr>
+  <tr>
+    <td>
+      JAVA_CPPFLAGS
+    </td>
+    <td>
+      Preprocessor flags for JNI.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      JAVA_JVM_LIBRARY
+    </td>
+    <td>
+      Full path to <code>libjvm.so</code>.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      MAVEN_HOME
+    </td>
+    <td>
+      Looks for <code>mvn</code> at <code>MAVEN_HOME/bin/mvn</code>.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      PROTOBUF_JAR
+    </td>
+    <td>
+      Full path to protobuf jar on prefixed builds.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      PYTHON
+    </td>
+    <td>
+      Which Python interpreter to use.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      PYTHON_VERSION
+    </td>
+    <td>
+      The installed Python version to use, for example '2.3'. This string will
+      be appended to the Python interpreter canonical name.
+    </td>
+  </tr>
+</table>
+
+
+  </div>
+</div>
+
+  </div><!-- /.container -->
+</div><!-- /.content -->
+
+<hr>
+
+
+
+    <!-- footer -->
+    <div class="footer">
+      <div class="container">
+        <div class="col-md-4 social-blk">
+          <span class="social">
+            <a href="https://twitter.com/ApacheMesos"
+              class="twitter-follow-button"
+              data-show-count="false" data-size="large">Follow @ApacheMesos</a>
+            <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
+            <a href="https://twitter.com/intent/tweet?button_hashtag=mesos"
+              class="twitter-hashtag-button"
+              data-size="large"
+              data-related="ApacheMesos">Tweet #mesos</a>
+            <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
+          </span>
+        </div>
+
+        <div class="col-md-8 trademark">
+          <p>&copy; 2012-2017 <a href="http://apache.org">The Apache Software Foundation</a>.
+            Apache Mesos, the Apache feather logo, and the Apache Mesos project logo are trademarks of The Apache Software Foundation.
+          <p>
+        </div>
+      </div><!-- /.container -->
+    </div><!-- /.footer -->
+
+    <!-- JS -->
+    <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script>
+    <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/a5fb0e1c/content/documentation/latest/configuration/cmake/index.html
----------------------------------------------------------------------
diff --git a/content/documentation/latest/configuration/cmake/index.html b/content/documentation/latest/configuration/cmake/index.html
new file mode 100644
index 0000000..a44e25e
--- /dev/null
+++ b/content/documentation/latest/configuration/cmake/index.html
@@ -0,0 +1,312 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <title>Apache Mesos - CMake Options</title>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+    <meta property="og:locale" content="en_US"/>
+    <meta property="og:type" content="website"/>
+    <meta property="og:title" content="Apache Mesos"/>
+    <meta property="og:site_name" content="Apache Mesos"/>
+    <meta property="og:url" content="http://mesos.apache.org/"/>
+    <meta property="og:image" content="http://mesos.apache.org/assets/img/mesos_logo_fb_preview.png"/>
+    <meta property="og:description"
+          content="Apache Mesos abstracts resources away from machines,
+                   enabling fault-tolerant and elastic distributed systems
+                   to easily be built and run effectively."/>
+
+    <meta name="twitter:card" content="summary"/>
+    <meta name="twitter:site" content="@ApacheMesos"/>
+    <meta name="twitter:title" content="Apache Mesos"/>
+    <meta name="twitter:image" content="http://mesos.apache.org/assets/img/mesos_logo_fb_preview.png"/>
+    <meta name="twitter:description"
+          content="Apache Mesos abstracts resources away from machines,
+                   enabling fault-tolerant and elastic distributed systems
+                   to easily be built and run effectively."/>
+
+    <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
+    <link rel="alternate" type="application/atom+xml" title="Apache Mesos Blog" href="/blog/feed.xml">
+    <link href="../../../../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" />
+
+    
+
+    <!-- Google Analytics Magic -->
+    <script type="text/javascript">
+    var _gaq = _gaq || [];
+    _gaq.push(['_setAccount', 'UA-20226872-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>
+    <!-- magical breadcrumbs -->
+    <div class="topnav">
+      <div class="container">
+        <ul class="breadcrumb">
+          <li>
+            <div class="dropdown">
+              <a data-toggle="dropdown" href="#">Apache Software Foundation <span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
+                <li><a href="http://www.apache.org">Apache Homepage</a></li>
+                <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>
+          </li>
+
+          <li><a href="http://mesos.apache.org">Apache Mesos</a></li>
+          
+          
+          <li><a href="/documentation
+/">Documentation
+</a></li>
+          
+          
+        </ul><!-- /.breadcrumb -->
+      </div><!-- /.container -->
+    </div><!-- /.topnav -->
+
+    <!-- navbar excitement -->
+<div class="navbar navbar-default navbar-static-top" role="navigation">
+  <div class="container">
+    <div class="navbar-header">
+      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#mesos-menu" aria-expanded="false">
+      <span class="sr-only">Toggle navigation</span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      </button>
+      <a class="navbar-brand" href="/"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo"/></a>
+    </div><!-- /.navbar-header -->
+
+    <div class="navbar-collapse collapse" id="mesos-menu">
+      <ul class="nav navbar-nav navbar-right">
+        <li><a href="/gettingstarted/">Getting Started</a></li>
+        <li><a href="/blog/">Blog</a></li>
+        <li><a href="/documentation/latest/">Documentation</a></li>
+        <li><a href="/downloads/">Downloads</a></li>
+        <li><a href="/community/">Community</a></li>
+      </ul>
+    </div><!-- /#mesos-menu -->
+  </div><!-- /.container -->
+</div><!-- /.navbar -->
+
+<div class="content">
+  <div class="container">
+    <div class="row-fluid">
+  <div class="col-md-4">
+    <h4>If you're new to Mesos</h4>
+    <p>See the <a href="/gettingstarted/">getting started</a> page for more
+       information about downloading, building, and deploying Mesos.</p>
+
+    <h4>If you'd like to get involved or you're looking for support</h4>
+    <p>See our <a href="/community/">community</a> page for more details.</p>
+  </div>
+  <div class="col-md-8">
+    <h1>CMake Options</h1>
+
+<p><em>The most up-to-date options can be found with <code>cmake .. -LAH</code>.</em></p>
+
+<p>See more information in the <a href="/documentation/latest/configuration/../cmake/">CMake documentation</a>.</p>
+
+<table class="table table-striped">
+  <thead>
+    <tr>
+      <th width="30%">
+        Flag
+      </th>
+      <th>
+        Explanation
+      </th>
+    </tr>
+  </thead>
+  <tr>
+    <td>
+      -DVERBOSE=(TRUE|FALSE)
+    </td>
+    <td>
+      Generate a build solution that produces verbose output
+      (for example, verbose Makefiles). [default=TRUE]
+    </td>
+  </tr>
+  <tr>
+    <td>
+      -DBUILD_SHARED_LIBS=(TRUE|FALSE)
+    </td>
+    <td>
+      Build shared libraries (where possible).
+      [default=FALSE for Windows, TRUE otherwise]
+    </td>
+  </tr>
+  <tr>
+    <td>
+      -DENABLE_PRECOMPILED_HEADERS=(TRUE|FALSE)
+    </td>
+    <td>
+      Enable auto-generated precompiled headers using cotire.
+      [default=TRUE for Windows, FALSE otherwise]
+    </td>
+  </tr>
+  <tr>
+    <td>
+      -DCPACK_BINARY_[TYPE]=(TRUE|FALSE)
+    </td>
+    <td>
+      Where [TYPE] is one of BUNDLE, DEB, DRAGNDROP, IFW, NSIS, OSXX11,
+      PACKAGEMAKER, RPM, STGZ, TBZ2, TGZ, TXZ. This modifies the 'package'
+      target to generate binary package of the specified format. A binary
+      package contains everything that would be installed via CMake's 'install'
+      target. [default=FALSE]
+    </td>
+  </tr>
+  <tr>
+    <td>
+      -DCPACK_SOURCE_[TYPE]=(TRUE|FALSE)
+    </td>
+    <td>
+      Where [TYPE] is one of TBZ2, TXZ, TZ, ZIP. This modifies the
+      'package_source' target to generate a package of the sources required to
+      build and test Mesos, in the specified format. [default=FALSE]
+    </td>
+  </tr>
+  <tr>
+    <td>
+      -DREBUNDLED=(TRUE|FALSE)
+    </td>
+    <td>
+      Attempt to build against the third-party dependencies included as tarballs
+      in the Mesos repository. NOTE: This is not always possible. For example, a
+      dependency might not be included as a tarball in the Mesos repository;
+      additionally, Windows does not have a package manager, so we do not expect
+      system dependencies like APR to exist natively, and we therefore must
+      acquire them. In these cases (or when <code>-DREBUNDLED=FALSE</code>), we
+      will acquire the dependency from the location specified by the
+      <code>3RDPARTY_DEPENDENCIES</code>, which by default points to the
+      official Mesos <a
+      href="https://github.com/3rdparty/mesos-3rdparty">third-party dependency
+      mirror</a>. [default=TRUE]
+    </td>
+  </tr>
+  <tr>
+    <td>
+      -DENABLE_LIBEVENT=(TRUE|FALSE)
+    </td>
+    <td>
+      Use <a href="https://github.com/libevent/libevent">libevent</a> instead of
+      libev for the event loop. This is required (but not the default) on
+      Windows. [default=FALSE]
+    </td>
+  </tr>
+  <tr>
+    <td>
+      -DENABLE_SSL=(TRUE|FALSE)
+    </td>
+    <td>
+      Build libprocess with SSL support. [default=FALSE]
+    </td>
+  </tr>
+  <tr>
+    <td>
+      -DOPENSSL_ROOT_DIR=[path]
+    </td>
+    <td>
+      Specify the path to OpenSSL, e.g. "C:\OpenSSL-Win64".
+      [default=unspecified]
+    </td>
+  </tr>
+  <tr>
+    <td>
+      -DENABLE_LOCK_FREE_RUN_QUEUE=(TRUE|FALSE)
+    </td>
+    <td>
+      Build libprocess with lock free run queue. [default=FALSE]
+    </td>
+  </tr>
+  <tr>
+    <td>
+      -DENABLE_JAVA=(TRUE|FALSE)
+    </td>
+    <td>
+      Build Java components. Warning: this is SLOW. [default=FALSE]
+    </td>
+  </tr>
+  <tr>
+    <td>
+      -D3RDPARTY_DEPENDENCIES=[path_or_url]
+    </td>
+    <td>
+      Location of the dependency mirror. In some cases, the Mesos build system
+      needs to acquire third-party dependencies that aren't rebundled as
+      tarballs in the Mesos repository. For example, on Windows, we must aquire
+      newer versions of some dependencies, and since Windows does not have a
+      package manager, we must acquire system dependencies like cURL. This
+      parameter can be either a URL (for example, pointing at the Mesos official
+      <a href="https://github.com/3rdparty/mesos-3rdparty">third-party
+      dependency mirror</a>), or a local folder (for example, a local clone of
+      the dependency mirror).
+      [default="https://github.com/3rdparty/mesos-3rdparty/raw/master"]
+    </td>
+  </tr>
+  <tr>
+    <td>
+      -DPATCHEXE_PATH=[path]
+    </td>
+    <td>
+      Location of
+      <a href="http://gnuwin32.sourceforge.net/packages/patch.htm">GNU Patch for
+      Windows</a> binary. [default=%PROGRAMFILESX86%/GnuWin32/bin/patch.exe]
+      </td>
+  </tr>
+</table>
+
+
+  </div>
+</div>
+
+  </div><!-- /.container -->
+</div><!-- /.content -->
+
+<hr>
+
+
+
+    <!-- footer -->
+    <div class="footer">
+      <div class="container">
+        <div class="col-md-4 social-blk">
+          <span class="social">
+            <a href="https://twitter.com/ApacheMesos"
+              class="twitter-follow-button"
+              data-show-count="false" data-size="large">Follow @ApacheMesos</a>
+            <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
+            <a href="https://twitter.com/intent/tweet?button_hashtag=mesos"
+              class="twitter-hashtag-button"
+              data-size="large"
+              data-related="ApacheMesos">Tweet #mesos</a>
+            <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
+          </span>
+        </div>
+
+        <div class="col-md-8 trademark">
+          <p>&copy; 2012-2017 <a href="http://apache.org">The Apache Software Foundation</a>.
+            Apache Mesos, the Apache feather logo, and the Apache Mesos project logo are trademarks of The Apache Software Foundation.
+          <p>
+        </div>
+      </div><!-- /.container -->
+    </div><!-- /.footer -->
+
+    <!-- JS -->
+    <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script>
+    <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script>
+  </body>
+</html>


[4/6] mesos-site git commit: Updated the website built from mesos SHA: 8c0b351.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/a5fb0e1c/content/documentation/latest/cmake-examples/index.html
----------------------------------------------------------------------
diff --git a/content/documentation/latest/cmake-examples/index.html b/content/documentation/latest/cmake-examples/index.html
new file mode 100644
index 0000000..def75ff
--- /dev/null
+++ b/content/documentation/latest/cmake-examples/index.html
@@ -0,0 +1,531 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <title>Apache Mesos - CMake By Example</title>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+    <meta property="og:locale" content="en_US"/>
+    <meta property="og:type" content="website"/>
+    <meta property="og:title" content="Apache Mesos"/>
+    <meta property="og:site_name" content="Apache Mesos"/>
+    <meta property="og:url" content="http://mesos.apache.org/"/>
+    <meta property="og:image" content="http://mesos.apache.org/assets/img/mesos_logo_fb_preview.png"/>
+    <meta property="og:description"
+          content="Apache Mesos abstracts resources away from machines,
+                   enabling fault-tolerant and elastic distributed systems
+                   to easily be built and run effectively."/>
+
+    <meta name="twitter:card" content="summary"/>
+    <meta name="twitter:site" content="@ApacheMesos"/>
+    <meta name="twitter:title" content="Apache Mesos"/>
+    <meta name="twitter:image" content="http://mesos.apache.org/assets/img/mesos_logo_fb_preview.png"/>
+    <meta name="twitter:description"
+          content="Apache Mesos abstracts resources away from machines,
+                   enabling fault-tolerant and elastic distributed systems
+                   to easily be built and run effectively."/>
+
+    <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
+    <link rel="alternate" type="application/atom+xml" title="Apache Mesos Blog" href="/blog/feed.xml">
+    <link href="../../../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" />
+
+    
+
+    <!-- Google Analytics Magic -->
+    <script type="text/javascript">
+    var _gaq = _gaq || [];
+    _gaq.push(['_setAccount', 'UA-20226872-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>
+    <!-- magical breadcrumbs -->
+    <div class="topnav">
+      <div class="container">
+        <ul class="breadcrumb">
+          <li>
+            <div class="dropdown">
+              <a data-toggle="dropdown" href="#">Apache Software Foundation <span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
+                <li><a href="http://www.apache.org">Apache Homepage</a></li>
+                <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>
+          </li>
+
+          <li><a href="http://mesos.apache.org">Apache Mesos</a></li>
+          
+          
+          <li><a href="/documentation
+/">Documentation
+</a></li>
+          
+          
+        </ul><!-- /.breadcrumb -->
+      </div><!-- /.container -->
+    </div><!-- /.topnav -->
+
+    <!-- navbar excitement -->
+<div class="navbar navbar-default navbar-static-top" role="navigation">
+  <div class="container">
+    <div class="navbar-header">
+      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#mesos-menu" aria-expanded="false">
+      <span class="sr-only">Toggle navigation</span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      </button>
+      <a class="navbar-brand" href="/"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo"/></a>
+    </div><!-- /.navbar-header -->
+
+    <div class="navbar-collapse collapse" id="mesos-menu">
+      <ul class="nav navbar-nav navbar-right">
+        <li><a href="/gettingstarted/">Getting Started</a></li>
+        <li><a href="/blog/">Blog</a></li>
+        <li><a href="/documentation/latest/">Documentation</a></li>
+        <li><a href="/downloads/">Downloads</a></li>
+        <li><a href="/community/">Community</a></li>
+      </ul>
+    </div><!-- /#mesos-menu -->
+  </div><!-- /.container -->
+</div><!-- /.navbar -->
+
+<div class="content">
+  <div class="container">
+    <div class="row-fluid">
+  <div class="col-md-4">
+    <h4>If you're new to Mesos</h4>
+    <p>See the <a href="/gettingstarted/">getting started</a> page for more
+       information about downloading, building, and deploying Mesos.</p>
+
+    <h4>If you'd like to get involved or you're looking for support</h4>
+    <p>See our <a href="/community/">community</a> page for more details.</p>
+  </div>
+  <div class="col-md-8">
+    <h1>Adding a new library or executable</h1>
+
+<p>When adding a new library or executable, prefer using the name directly as the
+target. E.g. <code>libprocess</code> is <code>add_library(process)</code>, and <code>mesos-agent</code> is
+<code>add_executable(mesos-agent)</code>. Note that, on platforms where it is conventional,
+<code>add_library</code> will prepend <code>lib</code> when writing the library to disk.</p>
+
+<p>Do not introduce a variable simply to hold the name of the target; if the name
+on disk needs to be a specific value, set the target property <code>OUTPUT_NAME</code>.</p>
+
+<h1>Adding a third-party dependency</h1>
+
+<p>When adding a third-party dependency, keep the principle of locality in mind.
+All necessary data for building with and linking to the library should
+be defined where the library is imported. A consumer of the dependency should
+only have to add <code>target_link_libraries(consumer dependency)</code>, with every other
+build property coming from the graph (library location, include directories,
+compiler definitions, etc.).</p>
+
+<p>The steps to add a new third-party dependency are:</p>
+
+<ol>
+<li> Add the version and SHA256 hash to <code>Versions.cmake</code>.</li>
+<li> Add the URL/tarball file to the top of <code>3rdparty/CMakeLists.txt</code>.</li>
+<li> Find an appropriate location in <code>3rdparty/CMakeLists.txt</code> to declare the
+ library. Add a nice header with the name, description, and home page.</li>
+<li> Use <code>add_library(IMPORTED)</code> to declare an imported target.
+ A header-only library is imported with <code>add_library(INTERFACE)</code>.</li>
+<li> Use <a href="https://cmake.org/cmake/help/latest/module/ExternalProject.html"><code>ExternalProject_Add</code></a> to obtain, configure, and build the library.</li>
+<li> Link the consumer to the dependency.</li>
+</ol>
+
+
+<h2><code>INTERFACE</code> libraries</h2>
+
+<p>Using header-only libraries in CMake is a breeze. The special <code>INTERFACE</code>
+library lets you declare a header-only library as a proper CMake target, and
+then use it like any other library. Let&rsquo;s look at Boost for an example.</p>
+
+<p>First, we add two lines to <code>Versions.cmake</code>:</p>
+
+<pre><code>set(BOOST_VERSION "1.53.0")
+set(BOOST_HASH    "SHA256=CED7CE2ED8D7D34815AC9DB1D18D28FCD386FFBB3DE6DA45303E1CF193717038")
+</code></pre>
+
+<p>This lets us keep the versions (and the SHA256 hash of the tarball) of all our
+third-party dependencies in one location.</p>
+
+<p>Second, we add one line to the top of <code>3rdparty/CMakeLists.txt</code> to declare the
+location of the tarball:</p>
+
+<pre><code>set(BOOST_URL ${FETCH_URL}/boost-${BOOST_VERSION}.tar.gz)
+</code></pre>
+
+<p>The <code>FETCH_URL</code> variable lets the <code>REBUNDLED</code> option switch between offline and
+online versions. The use of <code>BOOST_VERSION</code> shows why this variable is declared
+early; it&rsquo;s used a few times.</p>
+
+<p>Third, we find a location in <code>3rdparty/CMakeLists.txt</code> to declare the Boost
+library.</p>
+
+<pre><code># Boost: C++ Libraries.
+# http://www.boost.org
+#######################
+...
+</code></pre>
+
+<p>We start with a proper header naming and describing the library, complete with
+its home page URL. This is for other developers to easily identify why this
+third-party dependency exists.</p>
+
+<pre><code>...
+EXTERNAL(boost ${BOOST_VERSION} ${CMAKE_CURRENT_BINARY_DIR})
+add_library(boost INTERFACE)
+add_dependencies(boost ${BOOST_TARGET})
+target_include_directories(boost SYSTEM INTERFACE ${BOOST_ROOT})
+...
+</code></pre>
+
+<p>Fourth, we declare the Boost target.</p>
+
+<p>To make things easier, we invoke our custom CMake function <code>EXTERNAL</code> to setup
+some variables for us: <code>BOOST_TARGET</code>, <code>BOOST_ROOT</code>, and <code>BOOST_CMAKE_ROOT</code>. See
+<a href="/documentation/latest/./cmake/#EXTERNAL">the docs</a> for more explanation of <code>EXTERNAL</code>.</p>
+
+<p>Then we call <code>add_library(boost INTERFACE)</code>. This creates a header-only CMake
+target, usable like any other library. We use <code>add_dependencies(boost
+${BOOST_TARGET})</code> to add a manual dependency on the <code>ExternalProject_Add</code> step;
+this is necessary as CMake is lazy and won&rsquo;t execute code unless it must (say,
+because of a dependency). The final part of creating this header-only library in
+our build system is <code>target_include_directories(boost SYSTEM INTERFACE
+${BOOST_ROOT})</code>, which sets the <code>BOOST_ROOT</code> folder (the destination of the
+extracted headers) as the include interface for the <code>boost</code> target. All
+dependencies on Boost will now automatically include this folder during
+compilation.</p>
+
+<p>Fifth, we setup the <code>ExternalProject_Add</code> step. This CMake module is incredibly
+flexible, but we&rsquo;re using it in the simplest case.</p>
+
+<pre><code>...
+ExternalProject_Add(
+  ${BOOST_TARGET}
+  PREFIX            ${BOOST_CMAKE_ROOT}
+  CONFIGURE_COMMAND ${CMAKE_NOOP}
+  BUILD_COMMAND     ${CMAKE_NOOP}
+  INSTALL_COMMAND   ${CMAKE_NOOP}
+  URL               ${BOOST_URL}
+  URL_HASH          ${BOOST_HASH})
+</code></pre>
+
+<p>The name of the custom target this creates is <code>BOOST_TARGET</code>, and the prefix
+directory for all the subsequent steps is <code>BOOST_CMAKE_ROOT</code>. Because this is a
+header-only library, and <code>ExternalProject_Add</code> defaults to invoking <code>cmake</code>, we
+use <code>CMAKE_NOOP</code> to disable the configure, build, and install commands. See <a href="/documentation/latest/./cmake/#cmake_noop">the
+docs</a> for more explanation of <code>CMAKE_NOOP</code>. Thus this code
+will simply verify the tarball with <code>BOOST_HASH</code>, and then extract it from
+<code>BOOST_URL</code> to <code>BOOST_ROOT</code> (a sub-folder of <code>BOOST_CMAKE_ROOT</code>).</p>
+
+<p>Sixth, and finally, we link <code>stout</code> to <code>boost</code>. This is the <em>only</em> change
+necessary to <code>3rdparty/stout/CMakeLists.txt</code>, as the include directory
+information is embedded in the CMake graph.</p>
+
+<pre><code>target_link_libraries(
+  stout INTERFACE
+  ...
+  boost
+  ...)
+</code></pre>
+
+<p>This dependency need not be specified again, as <code>libprocess</code> and <code>libmesos</code> link
+to <code>stout</code>, and so <code>boost</code> is picked up transitively.</p>
+
+<h3>Stout</h3>
+
+<p>Stout is a header-only library. Like Boost, it is a real CMake target, declared
+in <code>3rdparty/stout/CMakeLists.txt</code>, just without the external bits.</p>
+
+<pre><code>add_library(stout INTERFACE)
+target_include_directories(stout INTERFACE include)
+target_link_libraries(
+  stout INTERFACE
+  apr
+  boost
+  curl
+  elfio
+  glog
+  ...)
+</code></pre>
+
+<p>It is added as an <code>INTERFACE</code> library. Its include directory is specified as an
+<code>INTERFACE</code> (the <code>PUBLIC</code> property cannot be used as the library itself is just
+an interface). Its &ldquo;link&rdquo; dependencies (despite not being a real, linkable
+library) are specified as an <code>INTERFACE</code>.</p>
+
+<p>This notion of an interface in the CMake dependency graph is what makes the
+build system reasonable. The Mesos library and executables, and <code>libprocess</code>, do
+not have to repeat these lower level dependencies that come from <code>stout</code>.</p>
+
+<h2><code>IMPORTED</code> libraries</h2>
+
+<p>Third-party dependencies that we build are only more complicated because we have
+to encode their build steps too. We&rsquo;ll examine <code>glog</code>, and go over the
+differences from the interface library <code>boost</code>.</p>
+
+<p>Notably, when we declare the library, we use:</p>
+
+<pre><code>add_library(glog ${LIBRARY_LINKAGE} IMPORTED GLOBAL)
+</code></pre>
+
+<p>Instead of <code>INTERFACE</code> we specify <code>IMPORTED</code> as it is an actual library. We add
+<code>GLOBAL</code> to enable our pre-compiled header module <code>cotire</code> to find the targets
+(as they would otherwise be scoped only to <code>3rdparty</code> and below). And most
+oddly, we use <code>${LIBRARY_LINKAGE}</code> to set it as <code>SHARED</code> or <code>STATIC</code> based on
+<code>BUILD_SHARED_LIBS</code>, as we can build this dependency in both manners. See <a href="/documentation/latest/./cmake/#library_linkage">the
+docs</a> for more information.</p>
+
+<p>We must patch our bundled version of <code>glog</code> so we call:</p>
+
+<pre><code>PATCH_CMD(GLOG_PATCH_CMD glog-${GLOG_VERSION}.patch)
+</code></pre>
+
+<p>This generates a patch command. See <a href="/documentation/latest/./cmake/#patch_cmd">the docs</a> for more
+information.</p>
+
+<p>This library is an example of where we differ on Windows and other platforms. On
+Windows, we build <code>glog</code> with CMake, and have several properties we must set:</p>
+
+<pre><code>set_target_properties(
+  glog PROPERTIES
+  IMPORTED_LOCATION_DEBUG ${GLOG_ROOT}-build/Debug/glog${LIBRARY_SUFFIX}
+  IMPORTED_LOCATION_RELEASE ${GLOG_ROOT}-build/Release/glog${LIBRARY_SUFFIX}
+  IMPORTED_IMPLIB_DEBUG ${GLOG_ROOT}-build/Debug/glog${CMAKE_IMPORT_LIBRARY_SUFFIX}
+  IMPORTED_IMPLIB_RELEASE ${GLOG_ROOT}-build/Release/glog${CMAKE_IMPORT_LIBRARY_SUFFIX}
+  INTERFACE_INCLUDE_DIRECTORIES ${GLOG_ROOT}/src/windows
+  # TODO(andschwa): Remove this when glog is updated.
+  IMPORTED_LINK_INTERFACE_LIBRARIES DbgHelp
+  INTERFACE_COMPILE_DEFINITIONS "${GLOG_COMPILE_DEFINITIONS}")
+</code></pre>
+
+<p>The location of an imported library <em>must</em> be set for the build system to link
+to it. There is no notion of search through link directories for imported
+libraries.</p>
+
+<p>Windows requires both the <code>DEBUG</code> and <code>RELEASE</code> locations of the library
+specified, and since we have (experimental) support to build <code>glog</code> as a shared
+library on Windows, we also have to declare the <code>IMPLIB</code> location. Fortunately,
+these locations are programmatic based of <code>GLOG_ROOT</code>, set from our call to
+<code>EXTERNAL</code>.</p>
+
+<p>Note that we cannot use <code>target_include_directories</code> with an imported target. We
+have to set <code>INTERFACE_INCLUDE_DIRECTORIES</code> manually instead.</p>
+
+<p>This version of <code>glog</code> on Windows depends on <code>DbgHelp</code> but does not use a
+<code>#pragma</code> to include it, so we set it as an interface library that must also be
+linked, using the <code>IMPORTED_LINK_INTERFACE_LIBRARIES</code> property.</p>
+
+<p>For Windows there are multiple compile definitions that must be set when
+building with the <code>glog</code> headers, these are specified with the
+<code>INTERFACE_COMPILE_DEFINITIONS</code> property.</p>
+
+<p>For non-Windows platforms, we just set the Autotools commands to configure,
+make, and install <code>glog</code>. These commands depend on the project requirements. We
+also set the <code>IMPORTED_LOCATION</code> and <code>INTERFACE_INCLUDE_DIRECTORIES</code>.</p>
+
+<pre><code>set(GLOG_CONFIG_CMD  ${GLOG_ROOT}/src/../configure --with-pic GTEST_CONFIG=no --prefix=${GLOG_ROOT}-build)
+set(GLOG_BUILD_CMD   make)
+set(GLOG_INSTALL_CMD make install)
+
+set_target_properties(
+  glog PROPERTIES
+  IMPORTED_LOCATION ${GLOG_ROOT}-build/lib/libglog${LIBRARY_SUFFIX}
+  INTERFACE_INCLUDE_DIRECTORIES ${GLOG_ROOT}-build/include)
+</code></pre>
+
+<p>To work around some issues, we have to call <code>MAKE_INCLUDE_DIR(glog)</code> to create
+the include directory immediately so as to satisfy CMake&rsquo;s requirement that it
+exists (it will be populated by <code>ExternalProject_Add</code> during the build, but must
+exist first). See <a href="/documentation/latest/./cmake/#make_include_dir">the docs</a> for more information.</p>
+
+<p>Then call <code>GET_BYPRODUCTS(glog)</code> to create the <code>GLOG_BYPRODUCTS</code> variable, which
+is sent to <code>ExternalProject_Add</code> to make the Ninja build generator happy. See
+<a href="/documentation/latest/./cmake/#get_byproducts">the docs</a> for more information.</p>
+
+<pre><code>MAKE_INCLUDE_DIR(glog)
+GET_BYPRODUCTS(glog)
+</code></pre>
+
+<p>Like with Boost, we call <code>ExternalProject_Add</code>:</p>
+
+<pre><code>ExternalProject_Add(
+  ${GLOG_TARGET}
+  PREFIX            ${GLOG_CMAKE_ROOT}
+  BUILD_BYPRODUCTS  ${GLOG_BYPRODUCTS}
+  PATCH_COMMAND     ${GLOG_PATCH_CMD}
+  CMAKE_ARGS        ${CMAKE_FORWARD_ARGS};-DBUILD_TESTING=OFF
+  CONFIGURE_COMMAND ${GLOG_CONFIG_CMD}
+  BUILD_COMMAND     ${GLOG_BUILD_CMD}
+  INSTALL_COMMAND   ${GLOG_INSTALL_CMD}
+  URL               ${GLOG_URL}
+  URL_HASH          ${GLOG_HASH})
+</code></pre>
+
+<p>In contrast to an interface library, we need to send all the build information,
+which we set in variables prior. This includes the <code>BUILD_BYPRODUCTS</code>, and the
+<code>PATCH_COMMAND</code> as we have to patch <code>glog</code>.</p>
+
+<p>Since we build <code>glog</code> with CMake on Windows, we have to set <code>CMAKE_ARGS</code> with
+the <code>CMAKE_FORWARD_ARGS</code>, and particular to <code>glog</code>, we disable its tests with
+<code>-DBUILD_TESTING=OFF</code>, though this is not a canonical CMake option.</p>
+
+<p>On Linux, we set the config, build, and install commands, and send them too.
+These are empty on Windows, so <code>ExternalProject_Add</code> will fallback to using
+CMake, as we needed.</p>
+
+<p>Finally, we add <code>glog</code> to as a link library to <code>stout</code>:</p>
+
+<pre><code>target_link_libraries(
+  stout INTERFACE
+  ...
+  glog
+  ...)
+</code></pre>
+
+<p>No other code is necessary, we have completed adding, building, and linking to
+<code>glog</code>. The same patterns can be adapted for any other third-party dependency.</p>
+
+<h1>Building debug or release configurations</h1>
+
+<p>The default configuration is always <code>Debug</code>, which means with debug symbols and
+without (many) optimizations. Of course, when deploying Mesos an optimized
+<code>Release</code> build is desired. This is one of the few inconsistencies in CMake, and
+it&rsquo;s due to the difference between so-called &ldquo;single-configuration generators&rdquo;
+(such as GNU Make) and &ldquo;multi-configuration generators&rdquo; (such as Visual Studio).</p>
+
+<h2>Configuration-time configurations</h2>
+
+<p>In single-configuration generators, the configuration (debug or release) is
+chosen at configuration time (that is, when initially calling <code>cmake</code> to
+configure the build), and it is not changeable without re-configuring. So
+building a <code>Release</code> configuration on Linux (with GNU Make) is done via:</p>
+
+<pre><code>cmake -DCMAKE_BUILD_TYPE=Release ..
+cmake --build .
+</code></pre>
+
+<h2>Build-time configurations</h2>
+
+<p>However, the Visual Studio generator on Windows allows the developer to change
+the release at build-time, making it a multi-configuration generator. CMake
+generates a configuration-agnostic solution (and so <code>CMAKE_BUILD_TYPE</code> is
+ignored), and the user switches the configuration when building. This can be
+done with the familiar configuration menu in the Visual Studio IDE, or with
+CMake via:</p>
+
+<pre><code>cmake ..
+cmake --build . --config Release
+</code></pre>
+
+<p>In the same build folder, a <code>Debug</code> build can also be built, with the binaries
+stored in <code>Debug</code> and <code>Release</code> folders respectively. Unfortunately, the current
+CMake build explicitly sets the final binary destination directories, and so the
+final libraries and executables will overwrite each other when building
+different configurations.</p>
+
+<p>Note that Visual Studio is not the only IDE that uses a multi-configuration
+generator, Xcode on Mac OS X does as well.
+See <a href="https://issues.apache.org/jira/browse/MESOS-7943">MESOS-7943</a> for more information.</p>
+
+<h2>Building with shared or static libraries</h2>
+
+<p>On Linux, the configuration option <code>-DBUILD_SHARED_LIBS=FALSE</code> can be used to
+switch to static libraries where possible. Otherwise Linux builds shared
+libraries by default.</p>
+
+<p>On Windows, static libraries are the default. Building with shared libraries on
+Windows is not yet supported, as it requires code change to import symbols
+properly.</p>
+
+<h2>Building with Java</h2>
+
+<p>When building with Java on Windows, you must add the <a href="https://maven.apache.org/guides/getting-started/windows-prerequisites.html">Maven</a> build tool to
+your path. The <code>JAVA_HOME</code> environment variable must also be manually set.
+An installation of the Java SDK can be found form <a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">Oracle</a>.</p>
+
+<p>As of this writing, Java 9 is not yet supported, but Java 8 has been tested.</p>
+
+<p>The Java build defaults to <code>OFF</code> because it is slow, to build the Java
+components on Windows, turn it <code>ON</code>:</p>
+
+<pre><code class="powershell">mkdir build; cd build
+$env:PATH += ";C:\...\apache-maven-3.3.9\bin\"
+$env:JAVA_HOME = "C:\Program Files\Java\jdk1.8.0_144"
+cmake .. -DENABLE_JAVA=ON -DENABLE_LIBEVENT=ON -G "Visual Studio 15 2017 Win64" -T "host=x64"
+cmake --build . --target mesos-java
+</code></pre>
+
+<p>Note that the <code>mesos-java</code> library does not have to be manually built; as
+<code>libmesos</code> will link it when Java is enabled.</p>
+
+<p>At runtime, if <code>JAVA_JVM_LIBRARY</code> is not set correctly, it can also be set as an
+environment variable, and should be of the form:</p>
+
+<pre><code>C:\Program Files\Java\jdk1.8.0_144\jre\bin\server\jvm.dll
+</code></pre>
+
+<h2>Building with OpenSSL</h2>
+
+<p>When building with OpenSSL on Windows, you must build or install a distribution
+of OpenSSL for Windows. A commonly chosen distribution is <a href="https://slproweb.com/products/Win32OpenSSL.html">Shining Light
+Productions' OpenSSL</a>.</p>
+
+<p>As of this writing, OpenSSL 1.1.x is not yet supported, but 1.0.2L has been
+tested.</p>
+
+<p>Use <code>-DENABLE_SSL=ON</code> when running CMake to build with OpenSSL.</p>
+
+  </div>
+</div>
+
+  </div><!-- /.container -->
+</div><!-- /.content -->
+
+<hr>
+
+
+
+    <!-- footer -->
+    <div class="footer">
+      <div class="container">
+        <div class="col-md-4 social-blk">
+          <span class="social">
+            <a href="https://twitter.com/ApacheMesos"
+              class="twitter-follow-button"
+              data-show-count="false" data-size="large">Follow @ApacheMesos</a>
+            <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
+            <a href="https://twitter.com/intent/tweet?button_hashtag=mesos"
+              class="twitter-hashtag-button"
+              data-size="large"
+              data-related="ApacheMesos">Tweet #mesos</a>
+            <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
+          </span>
+        </div>
+
+        <div class="col-md-8 trademark">
+          <p>&copy; 2012-2017 <a href="http://apache.org">The Apache Software Foundation</a>.
+            Apache Mesos, the Apache feather logo, and the Apache Mesos project logo are trademarks of The Apache Software Foundation.
+          <p>
+        </div>
+      </div><!-- /.container -->
+    </div><!-- /.footer -->
+
+    <!-- JS -->
+    <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script>
+    <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/a5fb0e1c/content/documentation/latest/cmake/index.html
----------------------------------------------------------------------
diff --git a/content/documentation/latest/cmake/index.html b/content/documentation/latest/cmake/index.html
new file mode 100644
index 0000000..c7c3224
--- /dev/null
+++ b/content/documentation/latest/cmake/index.html
@@ -0,0 +1,514 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <title>Apache Mesos - CMake</title>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+    <meta property="og:locale" content="en_US"/>
+    <meta property="og:type" content="website"/>
+    <meta property="og:title" content="Apache Mesos"/>
+    <meta property="og:site_name" content="Apache Mesos"/>
+    <meta property="og:url" content="http://mesos.apache.org/"/>
+    <meta property="og:image" content="http://mesos.apache.org/assets/img/mesos_logo_fb_preview.png"/>
+    <meta property="og:description"
+          content="Apache Mesos abstracts resources away from machines,
+                   enabling fault-tolerant and elastic distributed systems
+                   to easily be built and run effectively."/>
+
+    <meta name="twitter:card" content="summary"/>
+    <meta name="twitter:site" content="@ApacheMesos"/>
+    <meta name="twitter:title" content="Apache Mesos"/>
+    <meta name="twitter:image" content="http://mesos.apache.org/assets/img/mesos_logo_fb_preview.png"/>
+    <meta name="twitter:description"
+          content="Apache Mesos abstracts resources away from machines,
+                   enabling fault-tolerant and elastic distributed systems
+                   to easily be built and run effectively."/>
+
+    <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
+    <link rel="alternate" type="application/atom+xml" title="Apache Mesos Blog" href="/blog/feed.xml">
+    <link href="../../../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" />
+
+    
+
+    <!-- Google Analytics Magic -->
+    <script type="text/javascript">
+    var _gaq = _gaq || [];
+    _gaq.push(['_setAccount', 'UA-20226872-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>
+    <!-- magical breadcrumbs -->
+    <div class="topnav">
+      <div class="container">
+        <ul class="breadcrumb">
+          <li>
+            <div class="dropdown">
+              <a data-toggle="dropdown" href="#">Apache Software Foundation <span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
+                <li><a href="http://www.apache.org">Apache Homepage</a></li>
+                <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>
+          </li>
+
+          <li><a href="http://mesos.apache.org">Apache Mesos</a></li>
+          
+          
+          <li><a href="/documentation
+/">Documentation
+</a></li>
+          
+          
+        </ul><!-- /.breadcrumb -->
+      </div><!-- /.container -->
+    </div><!-- /.topnav -->
+
+    <!-- navbar excitement -->
+<div class="navbar navbar-default navbar-static-top" role="navigation">
+  <div class="container">
+    <div class="navbar-header">
+      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#mesos-menu" aria-expanded="false">
+      <span class="sr-only">Toggle navigation</span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      </button>
+      <a class="navbar-brand" href="/"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo"/></a>
+    </div><!-- /.navbar-header -->
+
+    <div class="navbar-collapse collapse" id="mesos-menu">
+      <ul class="nav navbar-nav navbar-right">
+        <li><a href="/gettingstarted/">Getting Started</a></li>
+        <li><a href="/blog/">Blog</a></li>
+        <li><a href="/documentation/latest/">Documentation</a></li>
+        <li><a href="/downloads/">Downloads</a></li>
+        <li><a href="/community/">Community</a></li>
+      </ul>
+    </div><!-- /#mesos-menu -->
+  </div><!-- /.container -->
+</div><!-- /.navbar -->
+
+<div class="content">
+  <div class="container">
+    <div class="row-fluid">
+  <div class="col-md-4">
+    <h4>If you're new to Mesos</h4>
+    <p>See the <a href="/gettingstarted/">getting started</a> page for more
+       information about downloading, building, and deploying Mesos.</p>
+
+    <h4>If you'd like to get involved or you're looking for support</h4>
+    <p>See our <a href="/community/">community</a> page for more details.</p>
+  </div>
+  <div class="col-md-8">
+    <h1>Install CMake 3.7+</h1>
+
+<h2>Linux</h2>
+
+<p>Install the latest version of CMake from <a href="https://cmake.org/download/">CMake.org</a>.
+A self-extracting tarball is available to make this process painless.</p>
+
+<p>Currently, few of the common Linux flavors package a sufficient CMake
+version. Ubuntu versions 12.04 and 14.04 package CMake 2;
+Ubuntu 16.04 packages CMake 3.5. If you already installed cmake from packages,
+you may remove it via: <code>apt-get purge cmake</code>.</p>
+
+<p>The standard CentOS package is CMake 2, and unfortunately even the <code>cmake3</code>
+package in EPEL is only CMake 3.6, you may remove them via:
+<code>yum remove cmake cmake3</code>.</p>
+
+<h2>Mac OS X</h2>
+
+<p>HomeBrew&rsquo;s CMake version is sufficient: <code>brew install cmake</code>.</p>
+
+<h2>Windows</h2>
+
+<p>Download and install the MSI from <a href="https://cmake.org/download/">CMake.org</a>.</p>
+
+<p><strong>NOTE:</strong> Windows needs CMake 3.8+, rather than 3.7+.</p>
+
+<h1>Supported options</h1>
+
+<p>See <a href="/documentation/latest/./configuration/cmake/">configuration options</a>.</p>
+
+<h1>Examples</h1>
+
+<p>See <a href="/documentation/latest/./cmake-examples/">CMake By Example</a>.</p>
+
+<h1>Documentation</h1>
+
+<p>The <a href="https://cmake.org/cmake/help/latest/">CMake documentation</a> is written as a reference module. The most commonly
+used sections are:</p>
+
+<ul>
+<li><a href="https://cmake.org/cmake/help/latest/manual/cmake-buildsystem.7.html">buildsystem overview</a></li>
+<li><a href="https://cmake.org/cmake/help/latest/manual/cmake-commands.7.html">commands</a></li>
+<li><a href="https://cmake.org/cmake/help/latest/manual/cmake-properties.7.html">properties</a></li>
+<li><a href="https://cmake.org/cmake/help/latest/manual/cmake-variables.7.html">variables</a></li>
+</ul>
+
+
+<p>The wiki also has a set of <a href="https://cmake.org/Wiki/CMake_Useful_Variables">useful variables</a>.</p>
+
+<h1>Dependency graph</h1>
+
+<p>Like any build system, CMake has a dependency graph. The difference is
+that targets in CMake&rsquo;s dependency graph are <em>much richer</em> compared to other
+build systems. CMake targets have the notion of &lsquo;interfaces&rsquo;, where build
+properties are saved as part of the target, and these properties can be
+inherited transitively within the graph.</p>
+
+<p>For example, say there is a library <code>mylib</code>, and anything which links it must
+include its headers, located in <code>mylib/include</code>. When building the library, some
+private headers must also be included, but not when linking to it. When
+compiling the executable <code>myprogram</code>, <code>mylib</code>&rsquo;s public headers must be included,
+but not its private headers. There is no manual step to add <code>mylib/include</code> to
+<code>myprogram</code> (and any other program which links to <code>mylib</code>), it is instead
+deduced from the public interface property of <code>mylib</code>. This is represented by
+the following code:</p>
+
+<pre><code># A new library with a single source file (headers are found automatically).
+add_library(mylib mylib.cpp)
+
+# The folder of private headers, not exposed to consumers of `mylib`.
+target_include_directories(mylib PRIVATE mylib/private)
+
+# The folder of public headers, added to the compilation of any consumer.
+target_include_directories(mylib PUBLIC mylib/include)
+
+# A new exectuable with a single source file.
+add_executable(myprogram main.cpp)
+
+# The creation of the link dependency `myprogram` -&gt; `mylib`.
+target_link_libraries(myprogram mylib)
+
+# There is no additional step to add `mylib/include` to `myprogram`.
+</code></pre>
+
+<p>This same notion applies to practically every build property:
+compile definitions via <a href="https://cmake.org/cmake/help/latest/command/target_compile_definitions.html"><code>target_compile_definitions</code></a>,
+include directories via <a href="https://cmake.org/cmake/help/latest/command/target_include_directories.html"><code>target_include_directories</code></a>,
+link libraries via <a href="https://cmake.org/cmake/help/latest/command/target_link_libraries.html"><code>target_link_libraries</code></a>,
+compile options via <a href="https://cmake.org/cmake/help/latest/command/target_compile_options.html"><code>target_compile_options</code></a>,
+and compile features via <a href="https://cmake.org/cmake/help/latest/command/target_compile_features.html"><code>target_compile_features</code></a>.</p>
+
+<p>All of these commands also take an optional argument of
+<code>&lt;INTERFACE|PUBLIC|PRIVATE&gt;</code>, which constrains their transitivity in the graph.
+That is, a <code>PRIVATE</code> include directory is recorded for the target, but not
+shared transitively to anything depending on the target, <code>PUBLIC</code> is used
+for both the target and dependencies on it, and <code>INTERFACE</code> is used only
+for dependencies.</p>
+
+<p>Notably missing from this list are link directories. CMake explicitly prefers
+finding and using the absolute paths to libraries, obsoleting link directories.</p>
+
+<h1>Common mistakes</h1>
+
+<h2>Booleans</h2>
+
+<p>CMake treats <code>ON</code>, <code>OFF</code>, <code>TRUE</code>, <code>FALSE</code>, <code>1</code>, and <code>0</code> all as true/false
+booleans. Furthermore, variables of the form <code>&lt;target&gt;-NOTFOUND</code> are also
+treated as false (this is used for finding packages).</p>
+
+<p>In Mesos, we prefer the boolean types <code>TRUE</code> and <code>FALSE</code>.</p>
+
+<p>See <a href="https://cmake.org/cmake/help/latest/command/if.html"><code>if</code></a> for more info.</p>
+
+<h2>Conditionals</h2>
+
+<p>For historical reasons, CMake conditionals such as <code>if</code> and <code>elseif</code>
+automatically interpolate variable names. It is therefore dangerous to
+interpolate them manually, because if <code>${FOO}</code> evaluates to <code>BAR</code>, and <code>BAR</code> is
+another variable name, then <code>if (${FOO})</code> becomes <code>if (BAR)</code>, and <code>BAR</code> is then
+evaluated again by the <code>if</code>. Stick to <code>if (FOO)</code> to check the value of <code>${FOO}</code>.
+Do not use <code>if (${FOO})</code>.</p>
+
+<p>Also see the CMake policies
+<a href="https://cmake.org/cmake/help/latest/policy/CMP0012.html">CMP0012</a> and
+<a href="https://cmake.org/cmake/help/latest/policy/CMP0054.html">CMP0054</a>.</p>
+
+<h2>Definitions</h2>
+
+<p>When using <code>add_definitions()</code> (which should be used rarely, as it is for
+&ldquo;global&rdquo; compile definitions), the flags must be prefixed with <code>-D</code> to be
+treated as preprocessor definitions. However, when using
+<code>target_compile_definitions()</code> (which should be preferred, as it is
+for specific targets), the flags do not need the prefix.</p>
+
+<h1>Style</h1>
+
+<p>In general, wrap at 80 lines, and use a two-space indent. When wrapping
+arguments, put the command on a separate line and arguments on subsequent lines:</p>
+
+<pre><code>target_link_libraries(
+  program PRIVATE
+  alpha
+  beta
+  gamma)
+</code></pre>
+
+<p>Otherwise keep it together:</p>
+
+<pre><code>target_link_libraries(program PUBLIC library)
+</code></pre>
+
+<p>Always keep the trailing parenthesis with the last argument.</p>
+
+<p>Use a single space between conditionals and their open parenthesis, e.g.
+<code>if (FOO)</code>, but not for commands, e.g. <code>add_executable(program)</code>.</p>
+
+<p>CAPITALIZE the declaration and use of custom functions and macros (e.g.
+<code>EXTERNAL</code> and <code>PATCH_CMD</code>), and do not capitalize the use of CMake built-in
+(including modules) functions and macros. CAPITALIZE variables.</p>
+
+<h1>CMake anti-patterns</h1>
+
+<p>Because CMake handles much more of the grunt work for you than other build
+systems, there are unfortunately a lot of CMake <a href="http://voices.canonical.com/jussi.pakkanen/2013/03/26/a-list-of-common-cmake-antipatterns/">anti-patterns</a> you should
+look out for when writing new CMake code. These are some common problems
+that should be avoided when writing new CMake code:</p>
+
+<h2>Superfluous use of <code>add_dependencies</code></h2>
+
+<p>When you&rsquo;ve linked library <code>a</code> to library <code>b</code> with <code>target_link_libraries(a b)</code>,
+the CMake graph is already updated with the dependency information. It is
+redundant to use <code>add_dependencies(a b)</code> to (re)specify the dependency. In fact,
+this command should <em>rarely</em> be used.</p>
+
+<p>The exceptions to this are:</p>
+
+<ol>
+<li> Setting a dependency from an imported library to a target added via
+ <code>ExternalProject_Add</code>.</li>
+<li> Setting a dependency on Mesos modules since no explicit linking is done.</li>
+<li> Setting a dependency between executables (e.g. the <code>mesos-agent</code> requiring the
+ <code>mesos-containerizer</code> executable). In general, runtime dependencies need
+ to be setup with <code>add_dependency</code>, but never link dependencies.</li>
+</ol>
+
+
+<h2>Use of <code>link_libraries</code> or <code>link_directories</code></h2>
+
+<p>Neither of these commands should ever be used. The only appropriate command used
+to link libraries is <a href="https://cmake.org/cmake/help/latest/command/target_link_libraries.html"><code>target_link_libraries</code></a>, which records the information
+in the CMake dependency graph. Furthermore, imported third-party libraries
+should have correct locations recorded in their respective targets, so the use
+of <code>link_directories</code> should never be necessary. The
+<a href="https://cmake.org/cmake/help/latest/command/link_directories.html">official documentation</a> states:</p>
+
+<blockquote><p>Note that this command is rarely necessary. Library locations returned by
+<code>find_package()</code> and <code>find_library()</code> are absolute paths. Pass these absolute
+library file paths directly to the <code>target_link_libraries()</code> command. CMake
+will ensure the linker finds them.</p></blockquote>
+
+<p>The difference is that the former sets global (or directory level) side effects,
+and the latter sets specific target information stored in the graph.</p>
+
+<h2>Use of <code>include_directories</code></h2>
+
+<p>This is similar to the above: the <a href="https://cmake.org/cmake/help/latest/command/target_include_directories.html"><code>target_include_directories</code></a> should always
+be preferred so that the include directory information remains localized to the
+appropriate targets.</p>
+
+<h2>Adding anything to <code>endif ()</code></h2>
+
+<p>Old versions of CMake expected the style <code>if (FOO) ... endif (FOO)</code>, where the
+<code>endif</code> contained the same expression as the <code>if</code> command. However, this is
+tortuously redundant, so leave the parentheses in <code>endif ()</code> empty. This goes
+for other endings too, such as <code>endforeach ()</code>, <code>endwhile ()</code>, <code>endmacro ()</code> and
+<code>endfunction ()</code>.</p>
+
+<h2>Specifying header files superfluously</h2>
+
+<p>One of the distinct advantages of using CMake for C and C++ projects is that
+adding header files to the source list for a target is unnecessary. CMake is
+designed to parse the source files (<code>.c</code>, <code>.cpp</code>, etc.) and determine their
+required headers automatically. The exception to this is headers generated as
+part of the build (such as protobuf or the JNI headers).</p>
+
+<h2>Checking <code>CMAKE_BUILD_TYPE</code></h2>
+
+<p>See the <a href="cmake-examples.md#building-debug-or-release-configurations">&ldquo;Building debug or release configurations&rdquo;</a> example for more
+information. In short, not all generators respect the variable
+<code>CMAKE_BUILD_TYPE</code> at configuration time, and thus it must not be used in CMake
+logic. A usable alternative (where supported) is a <a href="https://cmake.org/cmake/help/latest/manual/cmake-generator-expressions.7.html#logical-expressions">generator expression</a> such
+as <code>$&lt;$&lt;CONFIG:Debug&gt;:DEBUG_MODE&gt;</code>.</p>
+
+<h1>Remaining hacks</h1>
+
+<h2><code>3RDPARTY_DEPENDENCIES</code></h2>
+
+<p>Until Mesos on Windows is stable, we keep some dependencies in an external
+repository, <a href="https://github.com/3rdparty/mesos-3rdparty">mesos-3rdparty</a>. When
+all dependencies are bundled with Mesos, this extra repository will no longer be
+necessary. Until then, the CMake variable <code>3RDPARTY_DEPENDENCIES</code> points by
+default to this URL, but it can also point to the on-disk location of a local
+clone of the repo. With this option you can avoid pulling from GitHub for every
+clean build.</p>
+
+<h2><code>EXTERNAL</code></h2>
+
+<p>The CMake function <code>EXTERNAL</code> defines a few variables that make it easy for us
+to track the directory structure of a dependency. In particular, if our
+library&rsquo;s name is <code>boost</code>, we invoke:</p>
+
+<pre><code>EXTERNAL(boost ${BOOST_VERSION} ${CMAKE_CURRENT_BINARY_DIR})
+</code></pre>
+
+<p>Which will define the following variables as side-effects in the current scope:</p>
+
+<ul>
+<li><code>BOOST_TARGET</code>     (a target folder name to put dep in e.g., <code>boost-1.53.0</code>)</li>
+<li><code>BOOST_CMAKE_ROOT</code> (where to have CMake put the uncompressed source, e.g.,
+                   <code>build/3rdparty/boost-1.53.0</code>)</li>
+<li><code>BOOST_ROOT</code>       (where the code goes in various stages of build, e.g.,
+                   <code>build/.../boost-1.53.0/src</code>, which might contain folders
+                   <code>build-1.53.0-build</code>, <code>-lib</code>, and so on, for each build
+                   step that dependency has)</li>
+</ul>
+
+
+<p>The implementation is in <code>3rdparty/cmake/External.cmake</code>.</p>
+
+<p>This is not to be confused with the CMake module <a href="https://cmake.org/cmake/help/latest/module/ExternalProject.html">ExternalProject</a>, from which
+we use <code>ExternalProject_Add</code> to download, extract, configure, and build our
+dependencies.</p>
+
+<h2><code>CMAKE_NOOP</code></h2>
+
+<p>This is a CMake variable we define in <code>3rdparty/CMakeLists.txt</code> so that we can
+cancel steps of <code>ExternalProject</code>. <code>ExternalProject</code>&rsquo;s default behavior is to
+attempt to configure, build, and install a project using CMake. So when one of
+these steps must be skipped, we use set it to <code>CMAKE_NOOP</code> so that nothing
+is run instead.</p>
+
+<h2><code>CMAKE_FORWARD_ARGS</code></h2>
+
+<p>The <code>CMAKE_FORWARD_ARGS</code> variable defined in <code>3rdparty/CMakeLists.txt</code> is sent
+as the <code>CMAKE_ARGS</code> argument to the <code>ExternalProject_Add</code> macro (along with any
+per-project arguments), and is used when the external project is configured as a
+CMake project. If either the <code>CONFIGURE_COMMAND</code> or <code>BUILD_COMMAND</code> arguments of
+<code>ExternalProject_Add</code> are used, then the <code>CMAKE_ARGS</code> argument will be ignored.
+This variable ensures that compilation configurations are properly propagated to
+third-party dependencies, such as compiler flags.</p>
+
+<h2><code>LIBRARY_LINKAGE</code></h2>
+
+<p>This variable is a shortcut used in <code>3rdparty/CMakeLists.txt</code>. It is set to
+<code>SHARED</code> when <code>BUILD_SHARED_LIBS</code> is true, and otherwise it is set to <code>STATIC</code>.
+The <code>SHARED</code> and <code>STATIC</code> keywords are used to declare how a library should be
+built; however, if left out then the type is deduced automatically from
+<code>BUILD_SHARED_LIBS</code>.</p>
+
+<h2><code>MAKE_INCLUDE_DIR</code></h2>
+
+<p>This function works around a <a href="https://gitlab.kitware.com/cmake/cmake/issues/15052">CMake issue</a> with setting include
+directories of imported libraries built with <code>ExternalProject_Add</code>. We have to
+call this for each <code>IMPORTED</code> third-party dependency which has set
+<code>INTERFACE_INCLUDE_DIRECTORIES</code>, just to make CMake happy. An example is Glog:</p>
+
+<pre><code>MAKE_INCLUDE_DIR(glog)
+</code></pre>
+
+<h2><code>GET_BYPRODUCTS</code></h2>
+
+<p>This function works around a <a href="https://cmake.org/pipermail/cmake/2015-April/060234.html">CMake issue</a> with the Ninja
+generator where it does not understand imported libraries, and instead needs
+<code>BUILD_BYPRODUCTS</code> explicitly set. This simply allows us to use
+<code>ExternalProject_Add</code> and Ninja. For Glog, it looks like this:</p>
+
+<pre><code>GET_BYPRODUCTS(glog)
+</code></pre>
+
+<p>Also see the CMake policy <a href="https://cmake.org/cmake/help/latest/policy/CMP0058.html">CMP0058</a>.</p>
+
+<h2><code>PATCH_CMD</code></h2>
+
+<p>The CMake function <code>PATCH_CMD</code> generates a patch command given a patch file.
+If the path is not absolute, it&rsquo;s resolved to the current source directory.
+It stores the command in the variable name supplied. This is used to easily
+patch third-party dependencies. For Glog, it looks like this:</p>
+
+<pre><code>PATCH_CMD(GLOG_PATCH_CMD glog-${GLOG_VERSION}.patch)
+ExternalProject_Add(
+  ${GLOG_TARGET}
+  ...
+  PATCH_COMMAND     ${GLOG_PATCH_CMD})
+</code></pre>
+
+<p>The implementation is in <code>3rdparty/cmake/PatchCommand.cmake</code>.</p>
+
+<h3>Windows <code>patch.exe</code></h3>
+
+<p>While using <code>patch</code> on Linux is straightforward, doing the same on Windows takes
+a bit of work. <code>PATH_CMD</code> encapsulates this:</p>
+
+<ul>
+<li>Checks the cache variable <code>PATCHEXE_PATH</code> for <code>patch.exe</code>.</li>
+<li>Searches for <code>patch.exe</code> in its default locations.</li>
+<li>Copies <code>patch.exe</code> and a custom manifest to the temporary directory.</li>
+<li>Applies the manifest to avoid the UAC prompt.</li>
+<li>Uses the patched <code>patch.exe</code>.</li>
+</ul>
+
+
+<p>As such, <code>PATCH_CMD</code> lets us apply patches as we do on Linux, without requiring
+an administrative prompt.</p>
+
+<p>Note that on Windows, the patch file must have CRLF line endings. A file with LF
+line endings will cause the error: &ldquo;Assertion failed, hunk, file patch.c, line
+343&rdquo;. For this reason, it is required to checkout the Mesos repo with <code>git
+config core.autocrlf true</code>.</p>
+
+  </div>
+</div>
+
+  </div><!-- /.container -->
+</div><!-- /.content -->
+
+<hr>
+
+
+
+    <!-- footer -->
+    <div class="footer">
+      <div class="container">
+        <div class="col-md-4 social-blk">
+          <span class="social">
+            <a href="https://twitter.com/ApacheMesos"
+              class="twitter-follow-button"
+              data-show-count="false" data-size="large">Follow @ApacheMesos</a>
+            <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
+            <a href="https://twitter.com/intent/tweet?button_hashtag=mesos"
+              class="twitter-hashtag-button"
+              data-size="large"
+              data-related="ApacheMesos">Tweet #mesos</a>
+            <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
+          </span>
+        </div>
+
+        <div class="col-md-8 trademark">
+          <p>&copy; 2012-2017 <a href="http://apache.org">The Apache Software Foundation</a>.
+            Apache Mesos, the Apache feather logo, and the Apache Mesos project logo are trademarks of The Apache Software Foundation.
+          <p>
+        </div>
+      </div><!-- /.container -->
+    </div><!-- /.footer -->
+
+    <!-- JS -->
+    <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script>
+    <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/a5fb0e1c/content/documentation/latest/configuration-cmake/index.html
----------------------------------------------------------------------
diff --git a/content/documentation/latest/configuration-cmake/index.html b/content/documentation/latest/configuration-cmake/index.html
deleted file mode 100644
index 49dd44f..0000000
--- a/content/documentation/latest/configuration-cmake/index.html
+++ /dev/null
@@ -1,259 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <title>Apache Mesos - CMake Configuration</title>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0">
-
-    <meta property="og:locale" content="en_US"/>
-    <meta property="og:type" content="website"/>
-    <meta property="og:title" content="Apache Mesos"/>
-    <meta property="og:site_name" content="Apache Mesos"/>
-    <meta property="og:url" content="http://mesos.apache.org/"/>
-    <meta property="og:image" content="http://mesos.apache.org/assets/img/mesos_logo_fb_preview.png"/>
-    <meta property="og:description"
-          content="Apache Mesos abstracts resources away from machines,
-                   enabling fault-tolerant and elastic distributed systems
-                   to easily be built and run effectively."/>
-
-    <meta name="twitter:card" content="summary"/>
-    <meta name="twitter:site" content="@ApacheMesos"/>
-    <meta name="twitter:title" content="Apache Mesos"/>
-    <meta name="twitter:image" content="http://mesos.apache.org/assets/img/mesos_logo_fb_preview.png"/>
-    <meta name="twitter:description"
-          content="Apache Mesos abstracts resources away from machines,
-                   enabling fault-tolerant and elastic distributed systems
-                   to easily be built and run effectively."/>
-
-    <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
-    <link rel="alternate" type="application/atom+xml" title="Apache Mesos Blog" href="/blog/feed.xml">
-    <link href="../../../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" />
-
-    
-
-    <!-- Google Analytics Magic -->
-    <script type="text/javascript">
-    var _gaq = _gaq || [];
-    _gaq.push(['_setAccount', 'UA-20226872-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>
-    <!-- magical breadcrumbs -->
-    <div class="topnav">
-      <div class="container">
-        <ul class="breadcrumb">
-          <li>
-            <div class="dropdown">
-              <a data-toggle="dropdown" href="#">Apache Software Foundation <span class="caret"></span></a>
-              <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
-                <li><a href="http://www.apache.org">Apache Homepage</a></li>
-                <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>
-          </li>
-
-          <li><a href="http://mesos.apache.org">Apache Mesos</a></li>
-          
-          
-          <li><a href="/documentation
-/">Documentation
-</a></li>
-          
-          
-        </ul><!-- /.breadcrumb -->
-      </div><!-- /.container -->
-    </div><!-- /.topnav -->
-
-    <!-- navbar excitement -->
-<div class="navbar navbar-default navbar-static-top" role="navigation">
-  <div class="container">
-    <div class="navbar-header">
-      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#mesos-menu" aria-expanded="false">
-      <span class="sr-only">Toggle navigation</span>
-      <span class="icon-bar"></span>
-      <span class="icon-bar"></span>
-      <span class="icon-bar"></span>
-      </button>
-      <a class="navbar-brand" href="/"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo"/></a>
-    </div><!-- /.navbar-header -->
-
-    <div class="navbar-collapse collapse" id="mesos-menu">
-      <ul class="nav navbar-nav navbar-right">
-        <li><a href="/gettingstarted/">Getting Started</a></li>
-        <li><a href="/blog/">Blog</a></li>
-        <li><a href="/documentation/latest/">Documentation</a></li>
-        <li><a href="/downloads/">Downloads</a></li>
-        <li><a href="/community/">Community</a></li>
-      </ul>
-    </div><!-- /#mesos-menu -->
-  </div><!-- /.container -->
-</div><!-- /.navbar -->
-
-<div class="content">
-  <div class="container">
-    <div class="row-fluid">
-  <div class="col-md-4">
-    <h4>If you're new to Mesos</h4>
-    <p>See the <a href="/gettingstarted/">getting started</a> page for more
-       information about downloading, building, and deploying Mesos.</p>
-
-    <h4>If you'd like to get involved or you're looking for support</h4>
-    <p>See our <a href="/community/">community</a> page for more details.</p>
-  </div>
-  <div class="col-md-8">
-    <h1>Mesos CMake Build Configuration Options</h1>
-
-<p>Mesos currently exposes two build systems, one written in
-<a href="/documentation/latest/./configuration/">autotools</a>, and one written in CMake.
-This document describes the configuration flags available in
-the CMake build system.</p>
-
-<h2>CMake configuration options</h2>
-
-<table class="table table-striped">
-  <thead>
-    <tr>
-      <th width="30%">
-        Flag
-      </th>
-      <th>
-        Explanation
-      </th>
-    </tr>
-  </thead>
-  <tr>
-    <td>
-      -D3RDPARTY_DEPENDENCIES[=path_or_url]
-    </td>
-    <td>
-      Location of the dependency mirror. In some cases, the Mesos build system
-      needs to acquire third-party dependencies that aren't rebundled as
-      tarballs in the Mesos repository. For example, on Windows, we must aquire
-      newer versions of some dependencies, and since Windows does not have a
-      package manager, we must acquire system dependencies like cURL. This
-      parameter can be either a URL (for example, pointing at the Mesos official
-      [third-party dependency mirror](https://github.com/3rdparty/mesos-3rdparty)),
-      or a local folder (for example, a local clone of the dependency mirror).
-      [default=https://github.com/3rdparty/mesos-3rdparty]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      -DCPACK_BINARY_(BUNDLE|DEB|DRAGNDROP|IFW|NSIS|OSXX11|PACKAGEMAKER|RPM|STGZ|TBZ2|TGZ|TXZ)
-    </td>
-    <td>
-      This modifies the 'package' target to generate binary package of
-      the specified format.  A binary package contains everything that
-      would be installed via CMake's 'install' target.
-      [default=OFF]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      -DCPACK_SOURCE_(TBZ2|TXZ|TZ|ZIP)
-    </td>
-    <td>
-      This modifies the 'package_source' target to generate a package of the
-      sources required to build and test Mesos, in the specified format.
-      [default=OFF]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      -DENABLE_LIBEVENT
-    </td>
-    <td>
-      Use libevent instead of libev for the event loop. [default=FALSE]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      -DENABLE_SSL
-    </td>
-    <td>
-      Build libprocess with SSL support. [default=FALSE]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      -DREBUNDLED
-    </td>
-    <td>
-      Attempt to build against the third-party dependencies included as
-      tarballs in the Mesos repository.
-
-      NOTE: This is not always possible.  For example, a dependency might
-      not be included as a tarball in the Mesos repository; additionally,
-      Windows does not have a package manager, so we do not expect system
-      dependencies like APR to exist natively, and we therefore must acquire
-      them. In these cases (or when `REBUNDLED` is set to `FALSE`), we will
-      acquire the dependency from the location specified by the
-      `3RDPARTY_DEPENDENCIES`, which by default points to the official Mesos
-      [third-party dependency mirror](https://github.com/3rdparty/mesos-3rdparty).
-      [default=TRUE]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      -DVERBOSE
-    </td>
-    <td>
-      Generate a build solution that produces verbose output
-      (for example, verbose Makefiles). [default=TRUE]
-    </td>
-  </tr>
-</table>
-
-
-  </div>
-</div>
-
-  </div><!-- /.container -->
-</div><!-- /.content -->
-
-<hr>
-
-
-
-    <!-- footer -->
-    <div class="footer">
-      <div class="container">
-        <div class="col-md-4 social-blk">
-          <span class="social">
-            <a href="https://twitter.com/ApacheMesos"
-              class="twitter-follow-button"
-              data-show-count="false" data-size="large">Follow @ApacheMesos</a>
-            <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
-            <a href="https://twitter.com/intent/tweet?button_hashtag=mesos"
-              class="twitter-hashtag-button"
-              data-size="large"
-              data-related="ApacheMesos">Tweet #mesos</a>
-            <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
-          </span>
-        </div>
-
-        <div class="col-md-8 trademark">
-          <p>&copy; 2012-2017 <a href="http://apache.org">The Apache Software Foundation</a>.
-            Apache Mesos, the Apache feather logo, and the Apache Mesos project logo are trademarks of The Apache Software Foundation.
-          <p>
-        </div>
-      </div><!-- /.container -->
-    </div><!-- /.footer -->
-
-    <!-- JS -->
-    <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script>
-    <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script>
-  </body>
-</html>


[5/6] mesos-site git commit: Updated the website built from mesos SHA: 8c0b351.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/a5fb0e1c/content/documentation/configuration/index.html
----------------------------------------------------------------------
diff --git a/content/documentation/configuration/index.html b/content/documentation/configuration/index.html
index 26f0601..9cb2fa4 100644
--- a/content/documentation/configuration/index.html
+++ b/content/documentation/configuration/index.html
@@ -113,7 +113,7 @@
     <p>See our <a href="/community/">community</a> page for more details.</p>
   </div>
   <div class="col-md-8">
-    <h1>Mesos Configuration</h1>
+    <h1>Mesos Runtime Configuration</h1>
 
 <p>The Mesos master and agent can take a variety of configuration options
 through command-line arguments or environment variables. A list of the
@@ -133,2965 +133,41 @@ name with a <code>MESOS_</code> prefix added to it).</p></li>
 <p>Configuration values are searched for first in the environment, then
 on the command-line.</p>
 
-<p><strong>Important Options</strong></p>
-
-<p>If you have special compilation requirements, please refer to
-<code>./configure --help</code> when configuring Mesos. Additionally, this
-documentation lists only a recent snapshot of the options in Mesos. A
-definitive source for which flags your version of Mesos supports can
-be found by running the binary with the flag <code>--help</code>, for example
-<code>mesos-master --help</code>.</p>
+<p>Additionally, this documentation lists only a recent snapshot of the options in
+Mesos. A definitive source for which flags your version of Mesos supports can be
+found by running the binary with the flag <code>--help</code>, for example <code>mesos-master
+--help</code>.</p>
 
 <h2>Master and Agent Options</h2>
 
-<p><em>These options can be supplied to both masters and agents.</em></p>
-
-<table class="table table-striped">
-  <thead>
-    <tr>
-      <th width="30%">
-        Flag
-      </th>
-      <th>
-        Explanation
-      </th>
-    </tr>
-  </thead>
-<tr>
-  <td>
-    --advertise_ip=VALUE
-  </td>
-  <td>
-IP address advertised to reach this Mesos master/agent.
-The master/agent does not bind to this IP address.
-However, this IP address may be used to access this master/agent.
-  </td>
-</tr>
-<tr>
-  <td>
-    --advertise_port=VALUE
-  </td>
-  <td>
-Port advertised to reach this Mesos master/agent (along with
-<code>advertise_ip</code>). The master/agent does not bind using this port.
-However, this port (along with <code>advertise_ip</code>) may be used to
-access Mesos master/agent.
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]authenticate_http_readonly
-  </td>
-  <td>
-If <code>true</code>, only authenticated requests for read-only HTTP endpoints
-supporting authentication are allowed. If <code>false</code>, unauthenticated
-requests to such HTTP endpoints are also allowed.
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]authenticate_http_readwrite
-  </td>
-  <td>
-If <code>true</code>, only authenticated requests for read-write HTTP endpoints
-supporting authentication are allowed. If <code>false</code>, unauthenticated
-requests to such HTTP endpoints are also allowed.
-  </td>
-</tr>
-<tr>
-  <td>
-    --firewall_rules=VALUE
-  </td>
-  <td>
-The value could be a JSON-formatted string of rules or a
-file path containing the JSON-formatted rules used in the endpoints
-firewall. Path must be of the form <code>file:///path/to/file</code>
-or <code>/path/to/file</code>.
-<p/>
-See the <code>Firewall</code> message in <code>flags.proto</code> for the expected format.
-<p/>
-Example:
-<pre><code>{
-  "disabled_endpoints" : {
-    "paths" : [
-      "/files/browse",
-      "/metrics/snapshot"
-    ]
-  }
-}</code></pre>
-  </td>
-</tr>
-<tr>
-  <td>
-    --domain=VALUE
-  </td>
-  <td>
-Domain that the master or agent belongs to. Mesos currently only supports
-fault domains, which identify groups of hosts with similar failure
-characteristics. A fault domain consists of a region and a zone. All masters
-in the same Mesos cluster must be in the same region (they can be in
-different zones). Agents configured to use a different region than the
-master's region will not appear in resource offers to frameworks that have
-not enabled the <code>REGION_AWARE</code> capability. This value can be
-specified as either a JSON-formatted string or a file path containing JSON.
-<p/>
-Example:
-<pre><code>{
-  "fault_domain":
-    {
-      "region":
-        {
-          "name": "aws-us-east-1"
-        },
-      "zone":
-        {
-          "name": "aws-us-east-1a"
-        }
-    }
-}</code></pre>
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]help
-  </td>
-  <td>
-Show the help message and exit. (default: false)
-  </td>
-</tr>
-<tr>
-  <td>
-    --hooks=VALUE
-  </td>
-  <td>
-A comma-separated list of hook modules to be installed inside master/agent.
-  </td>
-</tr>
-<tr>
-  <td>
-    --hostname=VALUE
-  </td>
-  <td>
-The hostname the agent node should report, or that the master
-should advertise in ZooKeeper.
-If left unset, the hostname is resolved from the IP address
-that the master/agent binds to; unless the user explicitly prevents
-that, using <code>--no-hostname_lookup</code>, in which case the IP itself
-is used.
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]hostname_lookup
-  </td>
-  <td>
-Whether we should execute a lookup to find out the server's hostname,
-if not explicitly set (via, e.g., <code>--hostname</code>).
-True by default; if set to <code>false</code> it will cause Mesos
-to use the IP address, unless the hostname is explicitly set. (default: true)
-  </td>
-</tr>
-<tr>
-  <td>
-    --http_authenticators=VALUE
-  </td>
-  <td>
-HTTP authenticator implementation to use when handling requests to
-authenticated endpoints. Use the default <code>basic</code>, or load an
-alternate HTTP authenticator module using <code>--modules</code>.
-(default: basic, or basic and JWT if executor authentication is enabled)
-  </td>
-</tr>
-<tr>
-  <td>
-    --ip=VALUE
-  </td>
-  <td>
-IP address to listen on. This cannot be used in conjunction
-with <code>--ip_discovery_command</code>.
-  </td>
-</tr>
-<tr>
-  <td>
-    --ip_discovery_command=VALUE
-  </td>
-  <td>
-Optional IP discovery binary: if set, it is expected to emit
-the IP address which the master/agent will try to bind to.
-Cannot be used in conjunction with <code>--ip</code>.
-  </td>
-</tr>
-<tr>
-  <td>
-    --ip6=VALUE
-  </td>
-  <td>
-IPv6 address to listen on. This cannot be used in conjunction
-with <code>--ip6_discovery_command</code>.
-<p/>
-NOTE: Currently Mesos doesn't listen on IPv6 sockets and hence
-this IPv6 address is only used to advertise IPv6 addresses for
-containers running on the host network.
-  </td>
-</tr>
-<tr>
-  <td>
-    --ip6_discovery_command=VALUE
-  </td>
-  <td>
-Optional IPv6 discovery binary: if set, it is expected to emit
-the IPv6 address on which Mesos will try to bind when IPv6 socket
-support is enabled in Mesos.
-<p/>
-NOTE: Currently Mesos doesn't listen on IPv6 sockets and hence
-this IPv6 address is only used to advertise IPv6 addresses for
-containers running on the host network.
-  </td>
-</tr>
-<tr>
-  <td>
-    --modules=VALUE
-  </td>
-  <td>
-List of modules to be loaded and be available to the internal
-subsystems.
-<p/>
-Use <code>--modules=filepath</code> to specify the list of modules via a
-file containing a JSON-formatted string. <code>filepath</code> can be
-of the form <code>file:///path/to/file</code> or <code>/path/to/file</code>.
-<p/>
-Use <code>--modules="{...}"</code> to specify the list of modules inline.
-<p/>
-Example:
-<pre><code>{
-  "libraries": [
-    {
-      "file": "/path/to/libfoo.so",
-      "modules": [
-        {
-          "name": "org_apache_mesos_bar",
-          "parameters": [
-            {
-              "key": "X",
-              "value": "Y"
-            }
-          ]
-        },
-        {
-          "name": "org_apache_mesos_baz"
-        }
-      ]
-    },
-    {
-      "name": "qux",
-      "modules": [
-        {
-          "name": "org_apache_mesos_norf"
-        }
-      ]
-    }
-  ]
-}</code></pre>
-<p/> Cannot be used in conjunction with --modules_dir.
-  </td>
-</tr>
-<tr>
-  <td>
-    --modules_dir=VALUE
-  </td>
-  <td>
-Directory path of the module manifest files. The manifest files are processed in
-alphabetical order. (See <code>--modules</code> for more information on module
-manifest files). Cannot be used in conjunction with <code>--modules</code>.
-  </td>
-</tr>
-<tr>
-  <td>
-    --port=VALUE
-  </td>
-  <td>
-Port to listen on. (master default: 5050; agent default: 5051)
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]version
-  </td>
-  <td>
-Show version and exit. (default: false)
-  </td>
-</tr>
-<tr>
-  <td>
-    --zk_session_timeout=VALUE
-  </td>
-  <td>
-ZooKeeper session timeout. (default: 10secs)
-  </td>
-</tr>
-</table>
-
-
-<p><em>These logging options can also be supplied to both masters and agents.</em>
-For more about logging, see the <a href="/documentation/latest/./logging/">logging documentation</a>.</p>
-
-<table class="table table-striped">
-  <thead>
-    <tr>
-      <th width="30%">
-        Flag
-      </th>
-      <th>
-        Explanation
-      </th>
-    </tr>
-  </thead>
-<tr>
-  <td>
-    --[no-]quiet
-  </td>
-  <td>
-Disable logging to stderr. (default: false)
-  </td>
-</tr>
-<tr>
-  <td>
-    --log_dir=VALUE
-  </td>
-  <td>
-Location to put log files.  By default, nothing is written to disk.
-Does not affect logging to stderr.
-If specified, the log file will appear in the Mesos WebUI.
-<b>NOTE</b>: 3rd party log messages (e.g. ZooKeeper) are
-only written to stderr!
-  </td>
-</tr>
-<tr>
-  <td>
-    --logbufsecs=VALUE
-  </td>
-  <td>
-Maximum number of seconds that logs may be buffered for.
-By default, logs are flushed immediately. (default: 0)
-  </td>
-</tr>
-<tr>
-  <td>
-    --logging_level=VALUE
-  </td>
-  <td>
-Log message at or above this level.
-Possible values: <code>INFO</code>, <code>WARNING</code>, <code>ERROR</code>.
-If <code>--quiet</code> is specified, this will only affect the logs
-written to <code>--log_dir</code>, if specified. (default: INFO)
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]initialize_driver_logging
-  </td>
-  <td>
-Whether the master/agent should initialize Google logging for the
-scheduler and executor drivers, in the same way as described here.
-The scheduler/executor drivers have separate logs and do not get
-written to the master/agent logs.
-<p/>
-This option has no effect when using the HTTP scheduler/executor APIs.
-(default: true)
-  </td>
-</tr>
-<tr>
-  <td>
-    --external_log_file=VALUE
-  </td>
-  <td>
-Location of the externally managed log file.  Mesos does not write to
-this file directly and merely exposes it in the WebUI and HTTP API.
-This is only useful when logging to stderr in combination with an
-external logging mechanism, like syslog or journald.
-<p/>
-This option is meaningless when specified along with <code>--quiet</code>.
-<p/>
-This option takes precedence over <code>--log_dir</code> in the WebUI.
-However, logs will still be written to the <code>--log_dir</code> if
-that option is specified.
-  </td>
-</tr>
-</table>
+<p><em>These are options common to both the Mesos master and agent.</em></p>
 
+<p>See <a href="/documentation/latest/./configuration/master-and-agent/">configuration/master-and-agent.md</a>.</p>
 
 <h2>Master Options</h2>
 
-<p><em>Required Flags</em></p>
-
-<table class="table table-striped">
-  <thead>
-    <tr>
-      <th width="30%">
-        Flag
-      </th>
-      <th>
-        Explanation
-      </th>
-    </tr>
-  </thead>
-<tr>
-  <td>
-    --quorum=VALUE
-  </td>
-  <td>
-The size of the quorum of replicas when using <code>replicated_log</code> based
-registry. It is imperative to set this value to be a majority of
-masters i.e., <code>quorum > (number of masters)/2</code>.
-<b>NOTE</b>: Not required if master is run in standalone mode (non-HA).
-  </td>
-</tr>
-<tr>
-  <td>
-    --work_dir=VALUE
-  </td>
-  <td>
-Path of the master work directory. This is where the persistent
-information of the cluster will be stored. Note that locations like
-<code>/tmp</code> which are cleaned automatically are not suitable for the work
-directory when running in production, since long-running masters could
-lose data when cleanup occurs. (Example: <code>/var/lib/mesos/master</code>)
-  </td>
-</tr>
-<tr>
-  <td>
-    --zk=VALUE
-  </td>
-  <td>
-ZooKeeper URL (used for leader election amongst masters).
-May be one of:
-<pre><code>zk://host1:port1,host2:port2,.../path
-zk://username:password@host1:port1,host2:port2,.../path
-file:///path/to/file (where file contains one of the above)</code></pre>
-<b>NOTE</b>: Not required if master is run in standalone mode (non-HA).
-  </td>
-</tr>
-</table>
-
-
-<p><em>Optional Flags</em></p>
-
-<table class="table table-striped">
-  <thead>
-    <tr>
-      <th width="30%">
-        Flag
-      </th>
-      <th>
-        Explanation
-      </th>
-    </tr>
-  </thead>
-<tr>
-  <td>
-    --acls=VALUE
-  </td>
-  <td>
-The value could be a JSON-formatted string of ACLs
-or a file path containing the JSON-formatted ACLs used
-for authorization. Path could be of the form <code>file:///path/to/file</code>
-or <code>/path/to/file</code>.
-<p/>
-Note that if the flag <code>--authorizers</code> is provided with a value
-different than <code>local</code>, the ACLs contents will be
-ignored.
-<p/>
-See the ACLs protobuf in acls.proto for the expected format.
-<p/>
-Example:
-<pre><code>{
-  "register_frameworks": [
-    {
-      "principals": { "type": "ANY" },
-      "roles": { "values": ["a"] }
-    }
-  ],
-  "run_tasks": [
-    {
-      "principals": { "values": ["a", "b"] },
-      "users": { "values": ["c"] }
-    }
-  ],
-  "teardown_frameworks": [
-    {
-      "principals": { "values": ["a", "b"] },
-      "framework_principals": { "values": ["c"] }
-    }
-  ],
-  "set_quotas": [
-    {
-      "principals": { "values": ["a"] },
-      "roles": { "values": ["a", "b"] }
-    }
-  ],
-  "remove_quotas": [
-    {
-      "principals": { "values": ["a"] },
-      "quota_principals": { "values": ["a"] }
-    }
-  ],
-  "get_endpoints": [
-    {
-      "principals": { "values": ["a"] },
-      "paths": { "values": ["/flags"] }
-    }
-  ]
-}</code></pre>
-  </td>
-</tr>
-<tr>
-  <td>
-    --agent_ping_timeout=VALUE,
-    <p/>
-    --slave_ping_timeout=VALUE
-  </td>
-  <td>
-The timeout within which an agent is expected to respond to a
-ping from the master. Agents that do not respond within
-max_agent_ping_timeouts ping retries will be asked to shutdown.
-<b>NOTE</b>: The total ping timeout (<code>agent_ping_timeout</code> multiplied by
-<code>max_agent_ping_timeouts</code>) should be greater than the ZooKeeper
-session timeout to prevent useless re-registration attempts.
-(default: 15secs)
-  </td>
-</tr>
-<tr>
-  <td>
-    --agent_removal_rate_limit=VALUE
-    <p/>
-    --slave_removal_rate_limit=VALUE
-  </td>
-  <td>
-The maximum rate (e.g., <code>1/10mins</code>, <code>2/3hrs</code>, etc) at which agents
-will be removed from the master when they fail health checks.
-By default, agents will be removed as soon as they fail the health
-checks. The value is of the form <code>(Number of agents)/(Duration)</code>.
-  </td>
-</tr>
-<tr>
-  <td>
-    --agent_reregister_timeout=VALUE
-    <p/>
-    --slave_reregister_timeout=VALUE
-  </td>
-  <td>
-The timeout within which an agent is expected to re-register.
-Agents re-register when they become disconnected from the master
-or when a new master is elected as the leader. Agents that do not
-re-register within the timeout will be marked unreachable in the
-registry; if/when the agent re-registers with the master, any
-non-partition-aware tasks running on the agent will be terminated.
-<b>NOTE</b>: This value has to be at least 10mins. (default: 10mins)
-  </td>
-</tr>
-<tr>
-  <td>
-    --allocation_interval=VALUE
-  </td>
-  <td>
-Amount of time to wait between performing
-(batch) allocations (e.g., 500ms, 1sec, etc). (default: 1secs)
-  </td>
-</tr>
-<tr>
-  <td>
-    --allocator=VALUE
-  </td>
-  <td>
-Allocator to use for resource allocation to frameworks.
-Use the default <code>HierarchicalDRF</code> allocator, or
-load an alternate allocator module using <code>--modules</code>.
-(default: HierarchicalDRF)
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]authenticate_agents,
-    <p/>
-    --[no-]authenticate_slaves
-  </td>
-  <td>
-If <code>true</code> only authenticated agents are allowed to register.
-If <code>false</code> unauthenticated agents are also allowed to register. (default: false)
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]authenticate_frameworks,
-    <p/>
-    --[no-]authenticate
-  </td>
-  <td>
-If <code>true</code>, only authenticated frameworks are allowed to register. If
-<code>false</code>, unauthenticated frameworks are also allowed to register. For
-HTTP based frameworks use the <code>--authenticate_http_frameworks</code> flag. (default: false)
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]authenticate_http_frameworks
-  </td>
-  <td>
-If <code>true</code>, only authenticated HTTP based frameworks are allowed to
-register. If <code>false</code>, HTTP frameworks are not authenticated. (default: false)
-  </td>
-</tr>
-<tr>
-  <td>
-    --authenticators=VALUE
-  </td>
-  <td>
-Authenticator implementation to use when authenticating frameworks
-and/or agents. Use the default <code>crammd5</code>, or
-load an alternate authenticator module using <code>--modules</code>. (default: crammd5)
-  </td>
-</tr>
-<tr>
-  <td>
-    --authorizers=VALUE
-  </td>
-  <td>
-Authorizer implementation to use when authorizing actions that
-require it.
-Use the default <code>local</code>, or
-load an alternate authorizer module using <code>--modules</code>.
-<p/>
-Note that if the flag <code>--authorizers</code> is provided with a value
-different than the default <code>local</code>, the ACLs
-passed through the <code>--acls</code> flag will be ignored.
-<p/>
-Currently there is no support for multiple authorizers. (default: local)
-  </td>
-</tr>
-<tr>
-  <td>
-    --cluster=VALUE
-  </td>
-  <td>
-Human readable name for the cluster, displayed in the webui.
-  </td>
-</tr>
-<tr>
-  <td>
-    --credentials=VALUE
-  </td>
-  <td>
-Path to a JSON-formatted file containing credentials.
-Path can be of the form <code>file:///path/to/file</code> or <code>/path/to/file</code>.
-Example:
-<pre><code>{
-  "credentials": [
-    {
-      "principal": "sherman",
-      "secret": "kitesurf"
-    }
-  ]
-}</code></pre>
-  </td>
-</tr>
-<tr>
-  <td>
-    --fair_sharing_excluded_resource_names=VALUE
-  </td>
-  <td>
-A comma-separated list of the resource names (e.g. 'gpus') that will be excluded
-from fair sharing constraints. This may be useful in cases where the fair
-sharing implementation currently has limitations. E.g. See the problem of
-"scarce" resources:
-    <a href="http://www.mail-archive.com/dev@mesos.apache.org/msg35631.html">msg35631</a>
-    <a href="https://issues.apache.org/jira/browse/MESOS-5377">MESOS-5377</a>
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no_]filter_gpu_resources
-  </td>
-  <td>
-When set to true, this flag will cause the mesos master to filter all offers
-from agents with GPU resources by only sending them to frameworks that opt into
-the 'GPU_RESOURCES' framework capability. When set to false, this flag will
-cause the master to not filter offers from agents with GPU resources, and
-indiscriminately send them to all frameworks whether they set the
-'GPU_RESOURCES' capability or not.  This flag is meant as a temporary workaround
-towards the eventual deprecation of the 'GPU_RESOURCES' capability. Please see
-the following for more information:
-    <a href="https://www.mail-archive.com/dev@mesos.apache.org/msg37571.html">msg37571</a>
-    <a href="https://issues.apache.org/jira/browse/MESOS-7576">MESOS-7576</a>
-  </td>
-</tr>
-<tr>
-  <td>
-    --framework_sorter=VALUE
-  </td>
-  <td>
-Policy to use for allocating resources between a given user's
-frameworks. Options are the same as for <code>--user_sorter</code>.
-(default: drf)
-  </td>
-</tr>
-<tr>
-  <td>
-    --http_framework_authenticators=VALUE
-  </td>
-  <td>
-HTTP authenticator implementation to use when authenticating HTTP frameworks.
-Use the <code>basic</code> authenticator or load an alternate HTTP authenticator
-module using <code>--modules</code>. This must be used in conjunction with
-<code>--authenticate_http_frameworks</code>.
-<p/>
-Currently there is no support for multiple HTTP authenticators.
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]log_auto_initialize
-  </td>
-  <td>
-Whether to automatically initialize the [replicated log](/documentation/latest/./replicated-log-internals/)
-used for the registry. If this is set to false, the log has to be manually
-initialized when used for the very first time. (default: true)
-  </td>
-</tr>
-<tr>
-  <td>
-    --master_contender=VALUE
-  </td>
-  <td>
-The symbol name of the master contender to use. This symbol should exist in a
-module specified through the <code>--modules</code> flag. Cannot be used in
-conjunction with <code>--zk</code>. Must be used in conjunction with
-<code>--master_detector</code>.
-  </td>
-</tr>
-<tr>
-  <td>
-    --master_detector=VALUE
-  </td>
-  <td>
-The symbol name of the master detector to use. This symbol should exist in a
-module specified through the <code>--modules</code> flag. Cannot be used in
-conjunction with <code>--zk</code>. Must be used in conjunction with
-<code>--master_contender</code>.
-  </td>
-</tr>
-<tr>
-  <td>
-    --max_agent_ping_timeouts=VALUE,
-    <p/>
-    --max_slave_ping_timeouts=VALUE
-  </td>
-  <td>
-The number of times an agent can fail to respond to a
-ping from the master. Agents that do not respond within
-<code>max_agent_ping_timeouts</code> ping retries will be asked to shutdown.
-(default: 5)
-  </td>
-</tr>
-<tr>
-  <td>
-    --max_completed_frameworks=VALUE
-  </td>
-  <td>
-Maximum number of completed frameworks to store in memory. (default: 50)
-  </td>
-</tr>
-<tr>
-  <td>
-    --max_completed_tasks_per_framework=VALUE
-  </td>
-  <td>
-Maximum number of completed tasks per framework to store in memory. (default: 1000)
-  </td>
-</tr>
-<tr>
-  <td>
-    --max_unreachable_tasks_per_framework=VALUE
-  </td>
-  <td>
-Maximum number of unreachable tasks per framework to store in memory. (default: 1000)
-  </td>
-</tr>
-<tr>
-  <td>
-    --offer_timeout=VALUE
-  </td>
-  <td>
-Duration of time before an offer is rescinded from a framework.
-This helps fairness when running frameworks that hold on to offers,
-or frameworks that accidentally drop offers.
-If not set, offers do not timeout.
-  </td>
-</tr>
-<tr>
-  <td>
-    --rate_limits=VALUE
-  </td>
-  <td>
-The value could be a JSON-formatted string of rate limits
-or a file path containing the JSON-formatted rate limits used
-for framework rate limiting.
-Path could be of the form <code>file:///path/to/file</code>
-or <code>/path/to/file</code>.
-<p/>
-See the RateLimits protobuf in mesos.proto for the expected format.
-<p/>
-Example:
-<pre><code>{
-  "limits": [
-    {
-      "principal": "foo",
-      "qps": 55.5
-    },
-    {
-      "principal": "bar"
-    }
-  ],
-  "aggregate_default_qps": 33.3
-}</code></pre>
-  </td>
-</tr>
-<tr>
-  <td>
-    --recovery_agent_removal_limit=VALUE,
-    <p/>
-    --recovery_slave_removal_limit=VALUE
-  </td>
-  <td>
-For failovers, limit on the percentage of agents that can be removed
-from the registry *and* shutdown after the re-registration timeout
-elapses. If the limit is exceeded, the master will fail over rather
-than remove the agents.
-This can be used to provide safety guarantees for production
-environments. Production environments may expect that across master
-failovers, at most a certain percentage of agents will fail
-permanently (e.g. due to rack-level failures).
-Setting this limit would ensure that a human needs to get
-involved should an unexpected widespread failure of agents occur
-in the cluster.
-Values: [0%-100%] (default: 100%)
-  </td>
-</tr>
-<tr>
-  <td>
-    --registry=VALUE
-  </td>
-  <td>
-Persistence strategy for the registry; available options are
-<code>replicated_log</code>, <code>in_memory</code> (for testing). (default: replicated_log)
-  </td>
-</tr>
-<tr>
-  <td>
-    --registry_fetch_timeout=VALUE
-  </td>
-  <td>
-Duration of time to wait in order to fetch data from the registry
-after which the operation is considered a failure. (default: 1mins)
-  </td>
-</tr>
-<tr>
-  <td>
-    --registry_store_timeout=VALUE
-  </td>
-  <td>
-Duration of time to wait in order to store data in the registry
-after which the operation is considered a failure. (default: 20secs)
-  </td>
-</tr>
-<tr>
-  <td>
-    --roles=VALUE
-  </td>
-  <td>
-A comma-separated list of the allocation roles that frameworks
-in this cluster may belong to. This flag is deprecated;
-if it is not specified, any role name can be used.
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]root_submissions
-  </td>
-  <td>
-Can root submit frameworks? (default: true)
-  </td>
-</tr>
-<tr>
-  <td>
-    --user_sorter=VALUE
-  </td>
-  <td>
-Policy to use for allocating resources between users. May be one of:
-  dominant_resource_fairness (drf) (default: drf)
-  </td>
-</tr>
-<tr>
-  <td>
-    --webui_dir=VALUE
-  </td>
-  <td>
-Directory path of the webui files/assets (default: /usr/local/share/mesos/webui)
-  </td>
-</tr>
-<tr>
-  <td>
-    --weights=VALUE
-  </td>
-  <td>
-A comma-separated list of role/weight pairs of the form
-<code>role=weight,role=weight</code>. Weights can be used to control the
-relative share of cluster resources that is offered to different roles. This
-flag is deprecated. Instead, operators should configure weights dynamically
-using the <code>/weights</code> HTTP endpoint.
-  </td>
-</tr>
-<tr>
-  <td>
-    --whitelist=VALUE
-  </td>
-  <td>
-Path to a file which contains a list of agents (one per line) to
-advertise offers for. The file is watched and periodically re-read to
-refresh the agent whitelist. By default there is no whitelist: all
-machines are accepted. Path can be of the form
-<code>file:///path/to/file</code> or <code>/path/to/file</code>.
-  </td>
-</tr>
-</table>
-
-
-<p><em>Flags available when configured with <code>--with-network-isolator</code></em></p>
-
-<table class="table table-striped">
-  <thead>
-    <tr>
-      <th width="30%">
-        Flag
-      </th>
-      <th>
-        Explanation
-      </th>
-    </tr>
-  </thead>
-<tr>
-  <td>
-    --max_executors_per_agent=VALUE,
-    <p/>
-     --max_executors_per_slave=VALUE
-  </td>
-  <td>
-Maximum number of executors allowed per agent. The network
-monitoring/isolation technique imposes an implicit resource
-acquisition on each executor (# ephemeral ports), as a result
-one can only run a certain number of executors on each agent.
-  </td>
-</tr>
-</table>
-
+<p>See <a href="/documentation/latest/./configuration/master/">configuration/master.md</a>.</p>
 
 <h2>Agent Options</h2>
 
-<p><em>Required Flags</em></p>
-
-<table class="table table-striped">
-  <thead>
-    <tr>
-      <th width="30%">
-        Flag
-      </th>
-      <th>
-        Explanation
-      </th>
-    </tr>
-  </thead>
-<tr>
-  <td>
-    --master=VALUE
-  </td>
-  <td>
-May be one of:
-  <code>host:port</code>
-  <code>zk://host1:port1,host2:port2,.../path</code>
-  <code>zk://username:password@host1:port1,host2:port2,.../path</code>
-  <code>file:///path/to/file</code> (where file contains one of the above)
-  </td>
-</tr>
-<tr>
-  <td>
-    --work_dir=VALUE
-  </td>
-  <td>
-Path of the agent work directory. This is where executor sandboxes
-will be placed, as well as the agent's checkpointed state in case of
-failover. Note that locations like <code>/tmp</code> which are cleaned
-automatically are not suitable for the work directory when running in
-production, since long-running agents could lose data when cleanup
-occurs. (Example: <code>/var/lib/mesos/agent</code>)
-  </td>
-</tr>
-</table>
-
-
-<p><em>Optional Flags</em></p>
-
-<table class="table table-striped">
-  <thead>
-    <tr>
-      <th width="30%">
-        Flag
-      </th>
-      <th>
-        Explanation
-      </th>
-    </tr>
-  </thead>
-<tr>
-  <td>
-    --acls=VALUE
-  </td>
-  <td>
-The value could be a JSON-formatted string of ACLs
-or a file path containing the JSON-formatted ACLs used
-for authorization. Path could be of the form <code>file:///path/to/file</code>
-or <code>/path/to/file</code>.
-<p/>
-Note that if the <code>--authorizer</code> flag is provided with a value
-other than <code>local</code>, the ACLs contents will be
-ignored.
-<p/>
-See the ACLs protobuf in acls.proto for the expected format.
-<p/>
-Example:
-<pre><code>{
-  "get_endpoints": [
-    {
-      "principals": { "values": ["a"] },
-      "paths": { "values": ["/flags", "/monitor/statistics"] }
-    }
-  ]
-}</code></pre>
-  </td>
-</tr>
-<tr>
-  <td>
-    --agent_subsystems=VALUE,
-    <p/>
-    --slave_subsystems=VALUE
-  </td>
-  <td>
-List of comma-separated cgroup subsystems to run the agent binary
-in, e.g., <code>memory,cpuacct</code>. The default is none.
-Present functionality is intended for resource monitoring and
-no cgroup limits are set, they are inherited from the root mesos
-cgroup.
-  </td>
-
-</tr>
-<tr>
-  <td>
-    --effective_capabilities=VALUE
-  </td>
-  <td>
-JSON representation of the Linux capabilities that the agent will
-grant to a task that will be run in containers launched by the
-containerizer (currently only supported by the Mesos Containerizer).
-This set overrides the default capabilities for the user but not
-the capabilities requested by the framework.
-<p/>
-To set capabilities the agent should have the <code>SETPCAP</code> capability.
-<p/>
-This flag is effective iff <code>linux/capabilities</code> isolation is enabled.
-When <code>linux/capabilities</code> isolation is enabled, the absence of this flag
-implies that the operator intends to allow ALL capabilities.
-<p/>
-Example:
-<pre><code>
-{
-  "capabilities": [
-    "NET_RAW",
-    "SYS_ADMIN"
-  ]
-}
-</code></pre>
-  </td>
-</tr>
-
-</tr>
-<tr>
-  <td>
-    --bounding_capabilities=VALUE
-  </td>
-  <td>
-JSON representation of the Linux capabilities that the operator
-will allow as the maximum level of privilege that a task launched
-by the containerizer may acquire (currently only supported by the
-Mesos Containerizer).
-<p/>
-This flag is effective iff <code>linux/capabilities</code> isolation is enabled.
-When <code>linux/capabilities</code> isolation is enabled, the absence of this flag
-implies that the operator intends to allow ALL capabilities.
-<p/>
-This flag has the same syntax as <code>--effective_capabilities</code>.
-  </td>
-</tr>
-
-<tr>
-  <td>
-    --appc_simple_discovery_uri_prefix=VALUE
-  </td>
-  <td>
-URI prefix to be used for simple discovery of appc images,
-e.g., <code>http://</code>, <code>https://</code>,
-<code>hdfs://<hostname>:9000/user/abc/cde</code>.
-(default: http://)
-  </td>
-</tr>
-<tr>
-  <td>
-    --appc_store_dir=VALUE
-  </td>
-  <td>
-Directory the appc provisioner will store images in.
-(default: /tmp/mesos/store/appc)
-  </td>
-</tr>
-<tr>
-  <td>
-    --attributes=VALUE
-  </td>
-  <td>
-Attributes of the agent machine, in the form:
-<code>rack:2</code> or <code>rack:2;u:1</code>
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]authenticate_http_executors
-  </td>
-  <td>
-If <code>true</code>, only authenticated requests for the HTTP executor API are
-allowed. If <code>false</code>, unauthenticated requests are also allowed. This
-flag is only available when Mesos is built with SSL support.
-(default: false)
-  </td>
-</tr>
-<tr>
-  <td>
-    --authenticatee=VALUE
-  </td>
-  <td>
-Authenticatee implementation to use when authenticating against the
-master. Use the default <code>crammd5</code>, or
-load an alternate authenticatee module using <code>--modules</code>. (default: crammd5)
-  </td>
-</tr>
-<tr>
-  <td>
-    --authentication_backoff_factor=VALUE
-  </td>
-  <td>
-After a failed authentication the agent picks a random amount of time between
-<code>[0, b]</code>, where <code>b = authentication_backoff_factor</code>, to
-authenticate with a new master. Subsequent retries are exponentially backed
-off based on this interval (e.g., 1st retry uses a random value between
-<code>[0, b * 2^1]</code>, 2nd retry between <code>[0, b * 2^2]</code>, 3rd
-retry between <code>[0, b * 2^3]</code>, etc up to a maximum of 1mins
-(default: 1secs)
-  </td>
-</tr>
-<tr>
-  <td>
-    --authorizer=VALUE
-  </td>
-  <td>
-Authorizer implementation to use when authorizing actions that
-require it.
-Use the default <code>local</code>, or
-load an alternate authorizer module using <code>--modules</code>.
-<p/>
-Note that if the <code>--authorizer</code> flag is provided with a value
-other than the default <code>local</code>, the ACLs
-passed through the <code>--acls</code> flag will be ignored.
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no]-cgroups_cpu_enable_pids_and_tids_count
-  </td>
-  <td>
-Cgroups feature flag to enable counting of processes and threads
-inside a container. (default: false)
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no]-cgroups_enable_cfs
-  </td>
-  <td>
-Cgroups feature flag to enable hard limits on CPU resources
-via the CFS bandwidth limiting subfeature. (default: false)
-  </td>
-</tr>
-<tr>
-  <td>
-    --cgroups_hierarchy=VALUE
-  </td>
-  <td>
-The path to the cgroups hierarchy root. (default: /sys/fs/cgroup)
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no]-cgroups_limit_swap
-  </td>
-  <td>
-Cgroups feature flag to enable memory limits on both memory and
-swap instead of just memory. (default: false)
-  </td>
-</tr>
-<tr>
-  <td>
-    --cgroups_net_cls_primary_handle
-  </td>
-  <td>
-A non-zero, 16-bit handle of the form `0xAAAA`. This will be used as
-the primary handle for the net_cls cgroup.
-  </td>
-</tr>
-<tr>
-  <td>
-    --cgroups_net_cls_secondary_handles
-  </td>
-  <td>
-A range of the form 0xAAAA,0xBBBB, specifying the valid secondary
-handles that can be used with the primary handle. This will take
-effect only when the <code>--cgroups_net_cls_primary_handle</code> is set.
-  </td>
-</tr>
-<tr>
-  <td>
-    --allowed_devices
-  </td>
-  <td>
-JSON object representing the devices that will be additionally
-whitelisted by cgroups devices subsystem. Noted that the following
-devices always be whitelisted by default:
-<pre><code>  * /dev/console
-  * /dev/tty0
-  * /dev/tty1
-  * /dev/pts/*
-  * /dev/ptmx
-  * /dev/net/tun
-  * /dev/null
-  * /dev/zero
-  * /dev/full
-  * /dev/tty
-  * /dev/urandom
-  * /dev/random
-</code></pre>
-This flag will take effect only when <code>cgroups/devices</code> is set in
-<code>--isolation</code> flag.
-<p/>
-Example:
-<pre><code>{
-  "allowed_devices": [
-    {
-      "device": {
-        "path": "/path/to/device"
-      },
-      "access": {
-        "read": true,
-        "write": false,
-        "mknod": false
-      }
-    }
-  ]
-}
-</code></pre>
-  </td>
-</tr>
-<tr>
-  <td>
-    --cgroups_root=VALUE
-  </td>
-  <td>
-Name of the root cgroup. (default: mesos)
-  </td>
-</tr>
-<tr>
-  <td>
-    --container_disk_watch_interval=VALUE
-  </td>
-  <td>
-The interval between disk quota checks for containers. This flag is
-used for the <code>disk/du</code> isolator. (default: 15secs)
-  </td>
-</tr>
-<tr>
-  <td>
-    --container_logger=VALUE
-  </td>
-  <td>
-The name of the container logger to use for logging container
-(i.e., executor and task) stdout and stderr. The default
-container logger writes to <code>stdout</code> and <code>stderr</code> files
-in the sandbox directory.
-  </td>
-</tr>
-<tr>
-  <td>
-    --containerizers=VALUE
-  </td>
-  <td>
-Comma-separated list of containerizer implementations
-to compose in order to provide containerization.
-Available options are <code>mesos</code> and
-<code>docker</code> (on Linux). The order the containerizers
-are specified is the order they are tried.
-(default: mesos)
-  </td>
-</tr>
-<tr>
-  <td>
-    --credential=VALUE
-  </td>
-  <td>
-Path to a JSON-formatted file containing the credential
-to use to authenticate with the master.
-Path could be of the form <code>file:///path/to/file</code> or <code>/path/to/file</code>.
-Example:
-<pre><code>{
-  "principal": "username",
-  "secret": "secret"
-}</code></pre>
-  </td>
-</tr>
-<tr>
-  <td>
-    --default_container_dns=VALUE
-  </td>
-  <td>
-JSON-formatted DNS information for CNI networks (Mesos containerizer)
-and CNM networks (Docker containerizer). For CNI networks, this flag
-can be used to configure `nameservers`, `domain`, `search` and
-`options`, and its priority is lower than the DNS information returned
-by a CNI plugin, but higher than the DNS information in agent host's
-/etc/resolv.conf. For CNM networks, this flag can be used to configure
-`nameservers`, `search` and `options`, it will only be used if there
-is no DNS information provided in the ContainerInfo.docker.parameters
-message.
-<p/>
-See the ContainerDNS message in `flags.proto` for the expected format.
-<p/>
-Example:
-<pre><code>{
-  "mesos": [
-    {
-      "network_mode": "CNI",
-      "network_name": "net1",
-      "dns": {
-        "nameservers": [ "8.8.8.8", "8.8.4.4" ]
-      }
-    }
-  ],
-  "docker": [
-    {
-      "network_mode": "BRIDGE",
-      "dns": {
-        "nameservers": [ "8.8.8.8", "8.8.4.4" ]
-      }
-    },
-    {
-      "network_mode": "USER",
-      "network_name": "net2",
-      "dns": {
-        "nameservers": [ "8.8.8.8", "8.8.4.4" ]
-      }
-    }
-  ]
-}</code></pre>
-  </td>
-</tr>
-<tr>
-  <td>
-    --default_container_info=VALUE
-  </td>
-  <td>
-JSON-formatted ContainerInfo that will be included into
-any ExecutorInfo that does not specify a ContainerInfo.
-<p/>
-See the ContainerInfo protobuf in mesos.proto for
-the expected format.
-<p/>
-Example:
-<pre><code>{
-  "type": "MESOS",
-  "volumes": [
-    {
-      "host_path": ".private/tmp",
-      "container_path": "/tmp",
-      "mode": "RW"
-    }
-  ]
-}</code></pre>
-  </td>
-</tr>
-<tr>
-  <td>
-    --default_role=VALUE
-  </td>
-  <td>
-Any resources in the <code>--resources</code> flag that
-omit a role, as well as any resources that
-are not present in <code>--resources</code> but that are
-automatically detected, will be assigned to
-this role. (default: *)
-  </td>
-</tr>
-<tr>
-  <td>
-    --disk_watch_interval=VALUE
-  </td>
-  <td>
-Periodic time interval (e.g., 10secs, 2mins, etc)
-to check the overall disk usage managed by the agent.
-This drives the garbage collection of archived
-information and sandboxes. (default: 1mins)
-  </td>
-</tr>
-<tr>
-  <td>
-    --docker=VALUE
-  </td>
-  <td>
-The absolute path to the docker executable for docker
-containerizer.
-(default: docker)
-  </td>
-</tr>
-<tr>
-  <td>
-    --docker_config=VALUE
-  </td>
-  <td>
-The default docker config file for agent. Can be provided either as an
-absolute path pointing to the agent local docker config file, or as a
-JSON-formatted string. The format of the docker config file should be
-identical to docker's default one (e.g., either
-<code>$HOME/.docker/config.json</code> or <code>$HOME/.dockercfg</code>).
-Example JSON (<code>$HOME/.docker/config.json</code>):
-<pre><code>{
-  "auths": {
-    "https://index.docker.io/v1/": {
-      "auth": "xXxXxXxXxXx=",
-      "email": "username@example.com"
-    }
-  }
-}
-</code></pre>
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]docker_kill_orphans
-  </td>
-  <td>
-Enable docker containerizer to kill orphaned containers.
-You should consider setting this to false when you launch multiple
-agents in the same OS, to avoid one of the DockerContainerizer
-removing docker tasks launched by other agents.
-(default: true)
-  </td>
-</tr>
-<tr>
-  <td>
-    --docker_mesos_image=VALUE
-  </td>
-  <td>
-The Docker image used to launch this Mesos agent instance.
-If an image is specified, the docker containerizer assumes the agent
-is running in a docker container, and launches executors with
-docker containers in order to recover them when the agent restarts and
-recovers.
-  </td>
-</tr>
-<tr>
-  <td>
-    --docker_registry=VALUE
-  </td>
-  <td>
-The default url for Mesos containerizer to pull Docker images. It could
-either be a Docker registry server url (i.e: <code>https://registry.docker.io</code>),
-or a local path (i.e: <code>/tmp/docker/images</code>) in which Docker
-image archives (result of <code>docker save</code>) are stored. Note
-that this option won't change the default registry server for Docker
-containerizer. (default: https://registry-1.docker.io)
-  </td>
-</tr>
-<tr>
-  <td>
-    --docker_remove_delay=VALUE
-  </td>
-  <td>
-The amount of time to wait before removing docker containers
-(e.g., <code>3days</code>, <code>2weeks</code>, etc).
-(default: 6hrs)
-  </td>
-</tr>
-<tr>
-  <td>
-    --docker_socket=VALUE
-  </td>
-  <td>
-Resource used by the agent and the executor to provide CLI access to the
-Docker daemon. On Unix, this is typically a path to a socket, such as
-<code>/var/run/docker.sock</code>. On Windows this must be a named pipe,
-such as <code>//./pipe/docker_engine</code>. <b>NOTE</b>: This must be the path
-used by the Docker image used to run the agent. (default:
-//./pipe/docker_engine on Windows; /var/run/docker.sock on other
-platforms).
-  </td>
-</tr>
-<tr>
-  <td>
-    --docker_stop_timeout=VALUE
-  </td>
-  <td>
-The time docker daemon waits after stopping a container before killing
-that container. This flag is deprecated; use task's kill policy instead.
-(default: 0ns)
-  </td>
-</tr>
-<tr>
-  <td>
-    --docker_store_dir=VALUE
-  </td>
-  <td>
-Directory the Docker provisioner will store images in (default: /tmp/mesos/store/docker)
-  </td>
-</tr>
-<tr>
-  <td>
-    --docker_volume_checkpoint_dir=VALUE
-  </td>
-  <td>
-The root directory where we checkpoint the information about docker
-volumes that each container uses.
-(default: /var/run/mesos/isolators/docker/volume)
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]enforce_container_disk_quota
-  </td>
-  <td>
-Whether to enable disk quota enforcement for containers. This flag
-is used by the <code>disk/du</code> and <code>disk/xfs</code> isolators. (default: false)
-  </td>
-</tr>
-<tr>
-  <td>
-    --executor_environment_variables=VALUE
-  </td>
-  <td>
-JSON object representing the environment variables that should be
-passed to the executor, and thus subsequently task(s). By default this
-flag is none. Users have to define executor environment explicitly.
-Example:
-<pre><code>{
-  "PATH": "/bin:/usr/bin",
-  "LD_LIBRARY_PATH": "/usr/local/lib"
-}</code></pre>
-  </td>
-</tr>
-<tr>
-  <td>
-    --executor_registration_timeout=VALUE
-  </td>
-  <td>
-Amount of time to wait for an executor
-to register with the agent before considering it hung and
-shutting it down (e.g., 60secs, 3mins, etc) (default: 1mins)
-  </td>
-</tr>
-<tr>
-  <td>
-    --executor_reregistration_timeout=VALUE
-  </td>
-  <td>
-The timeout within which an executor is expected to re-register after
-the agent has restarted, before the agent considers it gone and shuts
-it down. Note that currently, the agent will not re-register with the
-master until this timeout has elapsed (see MESOS-7539). (default: 2secs)
-  </td>
-</tr>
-<tr>
-  <td>
-    --executor_reregistration_retry_interval=VALUE
-  </td>
-  <td>
-For PID-based executors, how long the agent waits before retrying
-the reconnect message sent to the executor during recovery.
-NOTE: Do not use this unless you understand the following
-(see MESOS-5332): PID-based executors using Mesos libraries &gt;= 1.1.2
-always re-link with the agent upon receiving the reconnect message.
-This avoids the executor replying on a half-open TCP connection to
-the old agent (possible if netfilter is dropping packets,
-see: MESOS-7057). However, PID-based executors using Mesos
-libraries &lt; 1.1.2 do not re-link and are therefore prone to
-replying on a half-open connection after the agent restarts. If we
-only send a single reconnect message, these "old" executors will
-reply on their half-open connection and receive a RST; without any
-retries, they will fail to reconnect and be killed by the agent once
-the executor re-registration timeout elapses. To ensure these "old"
-executors can reconnect in the presence of netfilter dropping
-packets, we introduced optional retries of the reconnect message.
-This results in "old" executors correctly establishing a link
-when processing the second reconnect message. (default: no retries)
-  </td>
-</tr>
-<tr>
-  <td>
-    --max_completed_executors_per_framework=VALUE
-  </td>
-  <td>
-Maximum number of completed executors per framework to store
-in memory. (default: 150)
-  </td>
-</tr>
-<tr>
-  <td>
-    --executor_secret_key=VALUE
-  </td>
-  <td>
-Path to a file containing the key used when generating executor
-secrets. This flag is only available when Mesos is built with SSL
-support.
-  </td>
-</tr>
-<tr>
-  <td>
-    --executor_shutdown_grace_period=VALUE
-  </td>
-  <td>
-Default amount of time to wait for an executor to shut down
-(e.g. 60secs, 3mins, etc). ExecutorInfo.shutdown_grace_period
-overrides this default. Note that the executor must not assume
-that it will always be allotted the full grace period, as the
-agent may decide to allot a shorter period, and failures / forcible
-terminations may occur.
-(default: 5secs)
-  </td>
-</tr>
-<tr>
-  <td>
-    --fetcher_cache_dir=VALUE
-  </td>
-  <td>
-Parent directory for fetcher cache directories
-(one subdirectory per agent). (default: /tmp/mesos/fetch)
-
-Directory for the fetcher cache. The agent will clear this directory
-on startup. It is recommended to set this value to a separate volume
-for several reasons:
-<ul>
-<li> The cache directories are transient and not meant to be
-     backed up. Upon restarting the agent, the cache is always empty. </li>
-<li> The cache and container sandboxes can potentially interfere with
-     each other when occupying a shared space (i.e. disk contention). </li>
-</ul>
-  </td>
-</tr>
-<tr>
-  <td>
-    --fetcher_cache_size=VALUE
-  </td>
-  <td>
-Size of the fetcher cache in Bytes. (default: 2GB)
-  </td>
-</tr>
-<tr>
-  <td>
-    --frameworks_home=VALUE
-  </td>
-  <td>
-Directory path prepended to relative executor URIs (default: )
-  </td>
-</tr>
-<tr>
-  <td>
-    --gc_delay=VALUE
-  </td>
-  <td>
-Maximum amount of time to wait before cleaning up
-executor directories (e.g., 3days, 2weeks, etc).
-Note that this delay may be shorter depending on
-the available disk usage. (default: 1weeks)
-  </td>
-</tr>
-<tr>
-  <td>
-    <a name="gc_disk_headroom"></a>
-    --gc_disk_headroom=VALUE
-  </td>
-  <td>
-Adjust disk headroom used to calculate maximum executor
-directory age. Age is calculated by:
-<code>gc_delay * max(0.0, (1.0 - gc_disk_headroom - disk usage))</code>
-every <code>--disk_watch_interval</code> duration. <code>gc_disk_headroom</code> must
-be a value between 0.0 and 1.0 (default: 0.1)
-  </td>
-</tr>
-<tr>
-  <td>
-    --hadoop_home=VALUE
-  </td>
-  <td>
-Path to find Hadoop installed (for
-fetching framework executors from HDFS)
-(no default, look for <code>HADOOP_HOME</code> in
-environment or find hadoop on <code>PATH</code>) (default: )
-  </td>
-</tr>
-<tr>
-  <td>
-    --http_credentials=VALUE
-  </td>
-  <td>
-Path to a JSON-formatted file containing credentials. These
-credentials are used to authenticate HTTP endpoints on the agent.
-Path can be of the form <code>file:///path/to/file</code> or <code>/path/to/file</code>.
-<p/>
-Example:
-<pre><code>{
-  "credentials": [
-    {
-      "principal": "yoda",
-      "secret": "usetheforce"
-    }
-  ]
-}
-</code></pre>
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]http_command_executor
-  </td>
-  <td>
-The underlying executor library to be used for the command executor.
-If set to <code>true</code>, the command executor would use the HTTP based
-executor library to interact with the Mesos agent. If set to <code>false</code>,
-the driver based implementation would be used.
-<b>NOTE</b>: This flag is *experimental* and should not be used in
-production yet. (default: false)
-  </td>
-</tr>
-<tr>
-  <td>
-    --http_heartbeat_interval=VALUE
-  </td>
-  <td>
-This flag sets a heartbeat interval (e.g. '5secs', '10mins') for
-messages to be sent over persistent connections made against
-the agent HTTP API. Currently, this only applies to the
-<code>LAUNCH_NESTED_CONTAINER_SESSION</code> and <code>ATTACH_CONTAINER_OUTPUT</code> calls.
-(default: 30secs)
-  </td>
-</tr>
-<tr>
-  <td>
-    --image_providers=VALUE
-  </td>
-  <td>
-Comma-separated list of supported image providers,
-e.g., <code>APPC,DOCKER</code>.
-  </td>
-</tr>
-<tr>
-  <td>
-    --image_provisioner_backend=VALUE
-  </td>
-  <td>
-Strategy for provisioning container rootfs from images, e.g., <code>aufs</code>,
-<code>bind</code>, <code>copy</code>, <code>overlay</code>.
-  </td>
-</tr>
-<tr>
-  <td>
-    --isolation=VALUE
-  </td>
-  <td>
-Isolation mechanisms to use, e.g., <code>posix/cpu,posix/mem</code>, or
-<code>cgroups/cpu,cgroups/mem</code>, or <code>network/port_mapping</code>
-(configure with flag: <code>--with-network-isolator</code> to enable),
-or <code>gpu/nvidia</code> for nvidia specific gpu isolation, or load an alternate
-isolator module using the <code>--modules</code> flag. Note that this
-flag is only relevant for the Mesos Containerizer.
-(default: posix/cpu,posix/mem)
-  </td>
-</tr>
-<tr>
-  <td>
-    --launcher=VALUE
-  </td>
-  <td>
-The launcher to be used for Mesos containerizer. It could either be
-<code>linux</code> or <code>posix</code>. The Linux launcher is required for cgroups
-isolation and for any isolators that require Linux namespaces such as
-network, pid, etc. If unspecified, the agent will choose the Linux
-launcher if it's running as root on Linux.
-  </td>
-</tr>
-<tr>
-  <td>
-    --launcher_dir=VALUE
-  </td>
-  <td>
-Directory path of Mesos binaries. Mesos looks for the health-check,
-fetcher, containerizer, and executor binary files under this
-directory. (default: /usr/local/libexec/mesos)
-  </td>
-</tr>
-<tr>
-  <td>
-  --master_detector=VALUE
-  </td>
-  <td>
-The symbol name of the master detector to use. This symbol should exist in a
-module specified through the <code>--modules</code> flag. Cannot be used in
-conjunction with <code>--master</code>.
-  </td>
-</tr>
-<tr>
-  <td>
-    --nvidia_gpu_devices=VALUE
-  </td>
-  <td>
-A comma-separated list of Nvidia GPU devices. When <code>gpus</code> is specified
-in the <code>--resources</code> flag, this flag determines which GPU devices will
-be made available. The devices should be listed as numbers that
-correspond to Nvidia's NVML device enumeration (as seen by running the
-command <code>nvidia-smi</code> on an Nvidia GPU equipped system). The GPUs
-listed will only be isolated if the <code>--isolation</code> flag contains the
-string <code>gpu/nvidia</code>.
-  </td>
-</tr>
-<tr>
-  <td>
-    --network_cni_plugins_dir=VALUE
-  </td>
-  <td>
-Directory path of the CNI plugin binaries. The <code>network/cni</code>
-isolator will find CNI plugins under this directory so that it can execute
-the plugins to add/delete container from the CNI networks. It is the operator's
-responsibility to install the CNI plugin binaries in the specified directory.
-  </td>
-</tr>
-<tr>
-  <td>
-    --network_cni_config_dir=VALUE
-  </td>
-  <td>
-Directory path of the CNI network configuration files. For each network that
-containers launched in Mesos agent can connect to, the operator should install
-a network configuration file in JSON format in the specified directory.
-  </td>
-</tr>
-<tr>
-  <td>
-    --oversubscribed_resources_interval=VALUE
-  </td>
-  <td>
-The agent periodically updates the master with the current estimation
-about the total amount of oversubscribed resources that are allocated
-and available. The interval between updates is controlled by this flag.
-(default: 15secs)
-  </td>
-</tr>
-<tr>
-  <td>
-    --perf_duration=VALUE
-  </td>
-  <td>
-Duration of a perf stat sample. The duration must be less
-than the <code>perf_interval</code>. (default: 10secs)
-  </td>
-</tr>
-<tr>
-  <td>
-    --perf_events=VALUE
-  </td>
-  <td>
-List of command-separated perf events to sample for each container
-when using the perf_event isolator. Default is none.
-Run command <code>perf list</code> to see all events. Event names are
-sanitized by downcasing and replacing hyphens with underscores
-when reported in the PerfStatistics protobuf, e.g., <code>cpu-cycles</code>
-becomes <code>cpu_cycles</code>; see the PerfStatistics protobuf for all names.
-  </td>
-</tr>
-<tr>
-  <td>
-    --perf_interval=VALUE
-  </td>
-  <td>
-Interval between the start of perf stat samples. Perf samples are
-obtained periodically according to <code>perf_interval</code> and the most
-recently obtained sample is returned rather than sampling on
-demand. For this reason, <code>perf_interval</code> is independent of the
-resource monitoring interval. (default: 60secs)
-  </td>
-</tr>
-<tr>
-  <td>
-    --qos_controller=VALUE
-  </td>
-  <td>
-The name of the QoS Controller to use for oversubscription.
-  </td>
-</tr>
-<tr>
-  <td>
-    --qos_correction_interval_min=VALUE
-  </td>
-  <td>
-The agent polls and carries out QoS corrections from the QoS
-Controller based on its observed performance of running tasks.
-The smallest interval between these corrections is controlled by
-this flag. (default: 0secs)
-  </td>
-</tr>
-<tr>
-  <td>
-    --recover=VALUE
-  </td>
-  <td>
-Whether to recover status updates and reconnect with old executors.
-Valid values for <code>recover</code> are
-reconnect: Reconnect with any old live executors.
-cleanup  : Kill any old live executors and exit.
-           Use this option when doing an incompatible agent
-           or executor upgrade!). (default: reconnect)
-  </td>
-</tr>
-<tr>
-  <td>
-    --recovery_timeout=VALUE
-  </td>
-  <td>
-Amount of time allotted for the agent to recover. If the agent takes
-longer than recovery_timeout to recover, any executors that are
-waiting to reconnect to the agent will self-terminate.
-(default: 15mins)
-  </td>
-</tr>
-<tr>
-  <td>
-    --registration_backoff_factor=VALUE
-  </td>
-  <td>
-Agent initially picks a random amount of time between <code>[0, b]</code>, where
-<code>b = registration_backoff_factor</code>, to (re-)register with a new master.
-Subsequent retries are exponentially backed off based on this
-interval (e.g., 1st retry uses a random value between <code>[0, b * 2^1]</code>,
-2nd retry between <code>[0, b * 2^2]</code>, 3rd retry between <code>[0, b * 2^3]</code>,
-etc) up to a maximum of 1mins (default: 1secs)
-  </td>
-</tr>
-<tr>
-  <td>
-    --resource_estimator=VALUE
-  </td>
-  <td>
-The name of the resource estimator to use for oversubscription.
-  </td>
-</tr>
-<tr>
-  <td>
-    --resources=VALUE
-  </td>
-  <td>
-Total consumable resources per agent. Can be provided in JSON format
-or as a semicolon-delimited list of key:value pairs, with the role
-optionally specified.
-<p/>
-As a key:value list:
-<code>name(role):value;name:value...</code>
-<p/>
-To use JSON, pass a JSON-formatted string or use
-<code>--resources=filepath</code> to specify the resources via a file containing
-a JSON-formatted string. 'filepath' can be of the form
-<code>file:///path/to/file</code> or <code>/path/to/file</code>.
-<p/>
-Example JSON:
-<pre><code>[
-  {
-    "name": "cpus",
-    "type": "SCALAR",
-    "scalar": {
-      "value": 24
-    }
-  },
-  {
-    "name": "mem",
-    "type": "SCALAR",
-    "scalar": {
-      "value": 24576
-    }
-  }
-]</code></pre>
-  </td>
-</tr>
-<tr>
-  <td>
-    --resource_provider_config_dir=VALUE
-  </td>
-  <td>
-Path to a directory that contains local resource provider configs.
-Each file in the config dir should contain a JSON object representing
-a <code>ResourceProviderInfo</code> object. Each local resource
-provider provides resources that are local to the agent. It is also
-responsible for handling operations on the resources it provides.
-Please note that <code>resources</code> field might not need to be
-specified if the resource provider determines the resources
-automatically.
-<p/>
-Example config file in this directory:
-<pre><code>{
-  "type": "org.mesos.apache.rp.local.storage",
-  "name": "lvm"
-}</code></pre>
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]revocable_cpu_low_priority
-  </td>
-  <td>
-Run containers with revocable CPU at a lower priority than
-normal containers (non-revocable cpu). Currently only
-supported by the cgroups/cpu isolator. (default: true)
-  </td>
-</tr>
-<tr>
-  <td>
-    --runtime_dir
-  </td>
-  <td>
-Path of the agent runtime directory. This is where runtime data
-is stored by an agent that it needs to persist across crashes (but
-not across reboots). This directory will be cleared on reboot.
-(Example: <code>/var/run/mesos</code>)
-  </td>
-</tr>
-<tr>
-  <td>
-    --sandbox_directory=VALUE
-  </td>
-  <td>
-The absolute path for the directory in the container where the
-sandbox is mapped to.
-(default: /mnt/mesos/sandbox)
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]disallow_sharing_agent_pid_namespace
-  </td>
-  <td>
-If set to <code>true</code>, each top-level container will have its own pid
-namespace, and if the framework requests to share the agent pid namespace for
-the top level container, the container launch will be rejected. If set to
-<code>false</code>, the top-level containers will share the pid namespace with
-agent if the framework requests it. This flag will be ignored if the
-`namespaces/pid` isolator is not enabled.
-(default: false)
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]strict
-  </td>
-  <td>
-If <code>strict=true</code>, any and all recovery errors are considered fatal.
-If <code>strict=false</code>, any expected errors (e.g., agent cannot recover
-information about an executor, because the agent died right before
-the executor registered.) during recovery are ignored and as much
-state as possible is recovered.
-(default: true)
-  </td>
-</tr>
-<tr>
-  <td>
-    --secret_resolver=VALUE
-  </td>
-  <td>
-The name of the secret resolver module to use for resolving
-environment and file-based secrets. If this flag is not specified,
-the default behavior is to resolve value-based secrets and error on
-reference-based secrets.
-  </td>
-</tr>
-
-<tr>
-  <td>
-    --[no-]switch_user
-  </td>
-  <td>
-If set to <code>true</code>, the agent will attempt to run tasks as
-the <code>user</code> who submitted them (as defined in <code>FrameworkInfo</code>)
-(this requires <code>setuid</code> permission and that the given <code>user</code>
-exists on the agent).
-If the user does not exist, an error occurs and the task will fail.
-If set to <code>false</code>, tasks will be run as the same user as the Mesos
-agent process.
-<b>NOTE</b>: This feature is not yet supported on Windows agent, and
-therefore the flag currently does not exist on that platform. (default: true)
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]systemd_enable_support
-  </td>
-  <td>
-Top level control of systemd support. When enabled, features such as
-executor life-time extension are enabled unless there is an explicit
-flag to disable these (see other flags). This should be enabled when
-the agent is launched as a systemd unit.
-(default: true)
-  </td>
-</tr>
-<tr>
-  <td>
-    --systemd_runtime_directory=VALUE
-  </td>
-  <td>
-The path to the systemd system run time directory.
-(default: /run/systemd/system)
-  </td>
-</tr>
-</table>
-
-
-<p><em>Flags available when configured with <code>--with-network-isolator</code></em></p>
-
-<table class="table table-striped">
-  <thead>
-    <tr>
-      <th width="30%">
-        Flag
-      </th>
-      <th>
-        Explanation
-      </th>
-    </tr>
-  </thead>
-<tr>
-  <td>
-    --ephemeral_ports_per_container=VALUE
-  </td>
-  <td>
-Number of ephemeral ports allocated to a container by the network
-isolator. This number has to be a power of 2. This flag is used
-for the <code>network/port_mapping</code> isolator. (default: 1024)
-  </td>
-</tr>
-<tr>
-  <td>
-    --eth0_name=VALUE
-  </td>
-  <td>
-The name of the public network interface (e.g., <code>eth0</code>). If it is
-not specified, the network isolator will try to guess it based
-on the host default gateway. This flag is used for the
-<code>network/port_mapping</code> isolator.
-  </td>
-</tr>
-<tr>
-  <td>
-    --lo_name=VALUE
-  </td>
-  <td>
-The name of the loopback network interface (e.g., lo). If it is
-not specified, the network isolator will try to guess it. This
-flag is used for the <code>network/port_mapping</code> isolator.
-  </td>
-</tr>
-<tr>
-  <td>
-    --egress_rate_limit_per_container=VALUE
-  </td>
-  <td>
-The limit of the egress traffic for each container, in Bytes/s.
-If not specified or specified as zero, the network isolator will
-impose no limits to containers' egress traffic throughput.
-This flag uses the Bytes type (defined in stout) and is used for
-the <code>network/port_mapping</code> isolator.
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]egress_unique_flow_per_container
-  </td>
-  <td>
-Whether to assign an individual flow for each container for the
-egress traffic. This flag is used for the <code>network/port_mapping</code>
-isolator. (default: false)
-  </td>
-</tr>
-<tr>
-  <td>
-    --egress_flow_classifier_parent=VALUE
-  </td>
-  <td>
-When <code>egress_unique_flow_per_container</code> is enabled, we need to install
-a flow classifier (fq_codel) qdisc on egress side. This flag specifies
-where to install it in the hierarchy. By default, we install it at root.
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]network_enable_socket_statistics_summary
-  </td>
-  <td>
-Whether to collect socket statistics summary for each container.
-This flag is used for the <code>network/port_mapping</code> isolator.
-(default: false)
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]network_enable_socket_statistics_details
-  </td>
-  <td>
-Whether to collect socket statistics details (e.g., TCP RTT) for
-each container. This flag is used for the <code>network/port_mapping</code>
-isolator. (default: false)
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]network_enable_snmp_statistics
-  </td>
-  <td>
-Whether to collect SNMP statistics details (e.g., TCPRetransSegs) for
-each container. This flag is used for the 'network/port_mapping'
-isolator. (default: false)
-  </td>
-</tr>
-</table>
-
-
-<p><em>XFS disk isolator flags available when configured with
-<code>--enable-xfs-disk-isolator</code></em></p>
-
-<table class="table table-striped">
-  <thead>
-    <tr>
-      <th width="30%">
-        Flag
-      </th>
-      <th>
-        Explanation
-      </th>
-    </tr>
-  </thead>
-<tr>
-  <td>
-    --xfs_project_range=VALUE
-  </td>
-<td>
-The ranges of XFS project IDs that the isolator can use to track disk
-quotas for container sandbox directories. Valid project IDs range from
-1 to max(uint32). (default `[5000-10000]`)
-</td>
-</tr>
-</table>
-
+<p>See <a href="/documentation/latest/./configuration/agent/">configuration/agent.md</a>.</p>
 
 <h2>Libprocess Options</h2>
 
-<p><em>The bundled libprocess library can be controlled with the following environment variables.</em></p>
-
-<table class="table table-striped">
-  <thead>
-    <tr>
-      <th width="30%">
-        Variable
-      </th>
-      <th>
-        Explanation
-      </th>
-    </tr>
-  </thead>
-  <tr>
-    <td>
-      LIBPROCESS_IP
-    </td>
-    <td>
-      Sets the IP address for communication to and from libprocess.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      LIBPROCESS_PORT
-    </td>
-    <td>
-      Sets the port for communication to and from libprocess.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      LIBPROCESS_ADVERTISE_IP
-    </td>
-    <td>
-      If set, this provides the IP address that will be advertised to
-      the outside world for communication to and from libprocess.
-      This is useful, for example, for containerized tasks in which
-      communication is bound locally to a non-public IP that will be
-      inaccessible to the master.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      LIBPROCESS_ADVERTISE_PORT
-    </td>
-    <td>
-      If set, this provides the port that will be advertised to the
-      outside world for communication to and from libprocess. Note that
-      this port will not actually be bound (the local LIBPROCESS_PORT
-      will be), so redirection to the local IP and port must be
-      provided separately.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      LIBPROCESS_REQUIRE_PEER_ADDRESS_IP_MATCH
-    </td>
-    <td>
-      If set, the IP address portion of the libprocess UPID in
-      incoming messages is required to match the IP address
-      of the socket from which the message was sent. This can be a
-      security enhancement since it prevents unauthorized senders
-      impersonating other libprocess actors. This check may
-      break configurations that require setting LIBPROCESS_IP,
-      or LIBPROCESS_ADVERTISE_IP. Additionally, multi-homed
-      configurations may be affected since the address on
-      which libprocess is listening may not match the address from
-      which libprocess connects to other actors.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      LIBPROCESS_ENABLE_PROFILER
-    </td>
-    <td>
-      To enable the profiler, this variable must be set to 1. Note that this
-      variable will only work if Mesos has been configured with
-      <code>--enable-perftools</code>.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      LIBPROCESS_METRICS_SNAPSHOT_ENDPOINT_RATE_LIMIT
-    </td>
-    <td>
-      If set, this variable can be used to configure the rate limit
-      applied to the /metrics/snapshot endpoint. The format is
-      `<number of requests>/<interval duration>`.
-      Examples: `10/1secs`, `100/10secs`, etc.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      LIBPROCESS_NUM_WORKER_THREADS
-    </td>
-    <td>
-      If set to an integer value in the range 1 to 1024, it overrides
-      the default setting of the number of libprocess worker threads,
-      which is the maximum of 8 and the number of cores on the machine.
-    </td>
-  </tr>
-</table>
-
-
-<h2>Mesos Autotools Build Configuration Options</h2>
-
-<h3>Autotools <code>configure</code> script options</h3>
-
-<table class="table table-striped">
-  <thead>
-    <tr>
-      <th width="30%">
-        Flag
-      </th>
-      <th>
-        Explanation
-      </th>
-    </tr>
-  </thead>
-  <tr>
-    <td>
-      --enable-static[=PKGS]
-    </td>
-    <td>
-      Build static libraries. [default=yes]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --enable-dependency-tracking
-    </td>
-    <td>
-      Do not reject slow dependency extractors.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --disable-dependency-tracking
-    </td>
-    <td>
-      Speeds up one-time build.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --enable-silent-rules
-    </td>
-    <td>
-      Less verbose build output (undo: "make V=1").
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --disable-silent-rules
-    </td>
-    <td>
-      Verbose build output (undo: "make V=0").
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --disable-maintainer-mode
-    </td>
-    <td>
-      Disable make rules and dependencies not useful (and sometimes confusing)
-      to the casual installer.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --enable-shared[=PKGS]
-    </td>
-    <td>
-      Build shared libraries. [default=yes]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --enable-fast-install[=PKGS]
-    </td>
-    <td>
-      Optimize for fast installation. [default=yes]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --disable-libtool-lock
-    </td>
-    <td>
-      Avoid locking. Note that this might break parallel builds.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --disable-bundled
-    </td>
-    <td>
-      Configures Mesos to build against preinstalled dependencies
-      instead of bundled libraries.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --disable-bundled-pip
-    </td>
-    <td>
-      Excludes building and using the bundled pip package in lieu of an
-      installed version in <code>PYTHONPATH</code>.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --disable-bundled-setuptools
-    </td>
-    <td>
-      Excludes building and using the bundled setuptools package in lieu of an
-      installed version in <code>PYTHONPATH</code>.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --disable-bundled-wheel
-    </td>
-    <td>
-      Excludes building and using the bundled wheel package in lieu of an
-      installed version in <code>PYTHONPATH</code>.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --enable-debug
-    </td>
-    <td>
-      Whether debugging is enabled. If CFLAGS/CXXFLAGS are set, this
-      option won't change them. [default=no]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --disable-java
-    </td>
-    <td>
-      Don't build Java bindings.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --enable-libevent
-    </td>
-    <td>
-      Use <a href="https://github.com/libevent/libevent">libevent</a>
-      instead of libev for the libprocess event loop. Note that the libevent
-      version 2+ development package is required. [default=no]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --enable-install-module-dependencies
-    </td>
-    <td>
-      Install third-party bundled dependencies required for module development.
-      [default=no]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --enable-optimize
-    </td>
-    <td>
-      Whether optimizations are enabled. If CFLAGS/CXXFLAGS are set,
-      this option won't change them. [default=no]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --enable-perftools
-    </td>
-    <td>
-      Whether profiling with Google perftools is enabled. [default=no]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --enable-parallel-test-execution
-    </td>
-    <td>
-      Whether to attempt to run tests in parallel.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --disable-python
-    </td>
-    <td>
-      Don't build Python bindings.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --disable-python-dependency-install
-    </td>
-    <td>
-      When the python packages are installed during make install, no external
-      dependencies will be downloaded or installed.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --enable-ssl
-    </td>
-    <td>
-      Enable <a href="/documentation/latest/ssl">SSL</a> for libprocess
-      communication. Note that <code>--enable-libevent</code> is currently
-      required for SSL functionality. [default=no]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --enable-static-unimplemented
-    </td>
-    <td>
-      Generate static assertion errors for unimplemented functions. [default=no]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --enable-tests-install
-    </td>
-    <td>
-      Build and install tests and their helper tools. [default=no]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --enable-xfs-disk-isolator
-    </td>
-    <td>
-      Builds the XFS disk isolator. [default=no]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --disable-zlib
-    </td>
-    <td>
-      Disables zlib compression, which means the webui will be far less
-      responsive; not recommended.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --enable-lock-free-event-queue
-    </td>
-    <td>
-      Enables the lock-free event queue to be used in libprocess which
-      greatly improves message passing performance!
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --disable-werror
-    </td>
-    <td>
-      Disables treating compiler warnings as fatal errors.
-    </td>
-  </tr>
-</table>
-
-
-<h3>Autotools <code>configure</code> script optional package flags</h3>
+<p>See <a href="/documentation/latest/./configuration/libprocess/">configuration/libprocess.md</a>.</p>
 
-<table class="table table-striped">
-  <thead>
-    <tr>
-      <th width="30%">
-        Flag
-      </th>
-      <th>
-        Explanation
-      </th>
-    </tr>
-  </thead>
-  <tr>
-    <td>
-      --with-gnu-ld
-    </td>
-    <td>
-      Assume the C compiler uses GNU <code>ld</code>. [default=no]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-sysroot=DIR
-    </td>
-    <td>
-      Search for dependent libraries within <code>DIR</code>
-      (or the compiler's sysroot if not specified).
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-apr=[=DIR]
-    </td>
-    <td>
-      Specify where to locate the apr-1 library.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-boost[=DIR]
-    </td>
-    <td>
-      Excludes building and using the bundled Boost package in lieu of an
-      installed version at a location prefixed by the given path.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-concurrentqueue[=DIR]
-    </td>
-    <td>
-      Excludes building and using the bundled concurrentqueue package in lieu
-      of an installed version at a location prefixed by the given path.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-curl=[=DIR]
-    </td>
-    <td>
-      Specify where to locate the curl library.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-elfio[=DIR]
-    </td>
-    <td>
-      Excludes building and using the bundled ELFIO package in lieu of an
-      installed version at a location prefixed by the given path.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-glog[=DIR]
-    </td>
-    <td>
-      excludes building and using the bundled glog package in lieu of an
-      installed version at a location prefixed by the given path.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-gmock[=DIR]
-    </td>
-    <td>
-      Excludes building and using the bundled gmock package in lieu of an
-      installed version at a location prefixed by the given path.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-http-parser[=DIR]
-    </td>
-    <td>
-      Excludes building and using the bundled http-parser package in lieu of an
-      installed version at a location prefixed by the given path.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-leveldb[=DIR]
-    </td>
-    <td>
-      Excludes building and using the bundled LevelDB package in lieu of an
-      installed version at a location prefixed by the given path.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-libev[=DIR]
-    </td>
-    <td>
-      Excludes building and using the bundled libev package in lieu of an
-      installed version at a location prefixed by the given path.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-libevent=[=DIR]
-    </td>
-    <td>
-      Specify where to locate the libevent library.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-libprocess=[=DIR]
-    </td>
-    <td>
-      Specify where to locate the libprocess library.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-network-isolator
-    </td>
-    <td>
-      Builds the network isolator.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-nl=[DIR]
-    </td>
-    <td>
-      Specify where to locate the
-      <a href="https://www.infradead.org/~tgr/libnl/">libnl3</a> library,
-      which is required for the network isolator.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-nvml[=DIR]
-    </td>
-    <td>
-      Excludes building and using the bundled NVML headers in lieu of an
-      installed version at a location prefixed by the given path.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-picojson[=DIR]
-    </td>
-    <td>
-      Excludes building and using the bundled picojson package in lieu of an
-      installed version at a location prefixed by the given path.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-protobuf[=DIR]
-    </td>
-    <td>
-      Excludes building and using the bundled protobuf package in lieu of an
-      installed version at a location prefixed by the given path.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-sasl=[=DIR]
-    </td>
-    <td>
-      Specify where to locate the sasl2 library.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-ssl=[=DIR]
-    </td>
-    <td>
-      Specify where to locate the ssl library.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-stout=[=DIR]
-    </td>
-    <td>
-      Specify where to locate stout library.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-svn=[=DIR]
-    </td>
-    <td>
-      Specify where to locate the svn-1 library.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-zlib=[=DIR]
-    </td>
-    <td>
-      Specify where to locate the zlib library.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-zookeeper[=DIR]
-    </td>
-    <td>
-      Excludes building and using the bundled ZooKeeper package in lieu of an
-      installed version at a location prefixed by the given path.
-    </td>
-  </tr>
-</table>
+<h1>Mesos Build Configuration</h1>
 
+<h2>Autotools Options</h2>
 
-<h3>Environment variables which affect the Autotools <code>configure</code> script</h3>
+<p>If you have special compilation requirements, please refer to <code>./configure
+--help</code> when configuring Mesos.</p>
 
-<p>Use these variables to override the choices made by <code>configure</code> or to help
-it to find libraries and programs with nonstandard names/locations.</p>
+<p>See <a href="/documentation/latest/./configuration/autotools/">configuration/autotools.md</a>.</p>
 
-<table class="table table-striped">
-  <thead>
-    <tr>
-      <th width="30%">
-        Variable
-      </th>
-      <th>
-        Explanation
-      </th>
-    </tr>
-  </thead>
-  <tr>
-    <td>
-      JAVA_HOME
-    </td>
-    <td>
-      Location of Java Development Kit (JDK).
-    </td>
-  </tr>
-  <tr>
-    <td>
-      JAVA_CPPFLAGS
-    </td>
-    <td>
-      Preprocessor flags for JNI.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      JAVA_JVM_LIBRARY
-    </td>
-    <td>
-      Full path to <code>libjvm.so</code>.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      MAVEN_HOME
-    </td>
-    <td>
-      Looks for <code>mvn</code> at <code>MAVEN_HOME/bin/mvn</code>.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      PROTOBUF_JAR
-    </td>
-    <td>
-      Full path to protobuf jar on prefixed builds.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      PYTHON
-    </td>
-    <td>
-      Which Python interpreter to use.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      PYTHON_VERSION
-    </td>
-    <td>
-      The installed Python version to use, for example '2.3'. This string will
-      be appended to the Python interpreter canonical name.
-    </td>
-  </tr>
-</table>
+<h2>CMake Options</h2>
 
+<p>See <a href="/documentation/latest/./configuration/cmake/">configuration/cmake.md</a>.</p>
 
   </div>
 </div>

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/a5fb0e1c/content/documentation/container-image/index.html
----------------------------------------------------------------------
diff --git a/content/documentation/container-image/index.html b/content/documentation/container-image/index.html
index 41851c6..3974535 100644
--- a/content/documentation/container-image/index.html
+++ b/content/documentation/container-image/index.html
@@ -310,7 +310,7 @@ container credential is not supported yet (coming soon).</p>
 <p>Operators can either specify the flag as an absolute path pointing to
 the docker config file (need to manually configure
 <code>.docker/config.json</code> or <code>.dockercfg</code> on each agent), or specify the
-flag as a JSON-formatted string. See <a href="/documentation/latest/./configuration/">configuration
+flag as a JSON-formatted string. See <a href="/documentation/latest/./configuration/agent/">configuration
 documentation</a> for detail. For example:</p>
 
 <pre><code>--docker_config=file:///home/vagrant/.docker/config.json

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/a5fb0e1c/content/documentation/docker-containerizer/index.html
----------------------------------------------------------------------
diff --git a/content/documentation/docker-containerizer/index.html b/content/documentation/docker-containerizer/index.html
index 0add74a..e7be507 100644
--- a/content/documentation/docker-containerizer/index.html
+++ b/content/documentation/docker-containerizer/index.html
@@ -212,7 +212,7 @@ sandbox so docker cli will automatically pick up the config file.</p>
 config file for pulling images from private registries. We allow
 operators to specify a shared docker config file using an agent flag.
 This docker config file will be used to pull images from private
-registries for all containers. See <a href="/documentation/latest/./configuration/">configuration
+registries for all containers. See <a href="/documentation/latest/./configuration/agent/">configuration
 documentation</a> for detail. Operators can either
 specify the flag as an absolute path pointing to the docker config
 file (need to manually configure <code>.docker/config.json</code> or <code>.dockercfg</code>

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/a5fb0e1c/content/documentation/fetcher/index.html
----------------------------------------------------------------------
diff --git a/content/documentation/fetcher/index.html b/content/documentation/fetcher/index.html
index 71b6f91..e3ba480 100644
--- a/content/documentation/fetcher/index.html
+++ b/content/documentation/fetcher/index.html
@@ -132,7 +132,7 @@ the input to the Mesos fetcher.</p>
 supports the HTTP, HTTPS, FTP and FTPS protocols. If the requested URI is based
 on some other protocol, then the fetcher tries to utilise a local Hadoop client
 and hence supports any protocol supported by the Hadoop client, e.g., HDFS, S3.
-See the agent <a href="/documentation/latest/./configuration/">configuration documentation</a>
+See the agent <a href="/documentation/latest/./configuration/agent/">configuration documentation</a>
 for how to configure the agent with a path to the Hadoop client.</p>
 
 <p>By default, each requested URI is downloaded directly into the sandbox directory

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/a5fb0e1c/content/documentation/index.html
----------------------------------------------------------------------
diff --git a/content/documentation/index.html b/content/documentation/index.html
index bcddc9f..fa8d292 100644
--- a/content/documentation/index.html
+++ b/content/documentation/index.html
@@ -130,7 +130,8 @@
 <li><a href="/documentation/latest/./agent-recovery/">Agent Recovery</a> for doing seamless agent upgrades and allowing executors to survive <code>mesos-agent</code> crashes.</li>
 <li><a href="/documentation/latest/./authentication/">Authentication</a></li>
 <li><a href="/documentation/latest/./authorization/">Authorization</a></li>
-<li><a href="/documentation/latest/./configuration/">Configuration</a> and <a href="/documentation/latest/./configuration-cmake/">CMake configuration</a> for command-line arguments.</li>
+<li><a href="/documentation/latest/./cmake/">CMake</a> for details about using the new CMake build system.</li>
+<li><a href="/documentation/latest/./configuration/">Configuration</a> for command-line arguments.</li>
 <li><a href="/documentation/latest/./container-image/">Container Image</a> for supporting container images in Mesos containerizer.</li>
 <li><a href="/documentation/latest/./container-volume/">Container Volume</a> for using container volumes.</li>
 <li><a href="/documentation/latest/./containerizers/">Containerizers</a> for containerizer overview and use cases.

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/a5fb0e1c/content/documentation/latest/agent-recovery/index.html
----------------------------------------------------------------------
diff --git a/content/documentation/latest/agent-recovery/index.html b/content/documentation/latest/agent-recovery/index.html
index 66cd763..a12379e 100644
--- a/content/documentation/latest/agent-recovery/index.html
+++ b/content/documentation/latest/agent-recovery/index.html
@@ -154,7 +154,7 @@ In other cases such as checkpointed resources (e.g. persistent volumes) being in
 
 <h2>Agent Configuration</h2>
 
-<p>Three <a href="/documentation/latest/./configuration/">configuration flags</a> control the recovery behavior of a Mesos agent:</p>
+<p>Three <a href="/documentation/latest/./configuration/agent/">configuration flags</a> control the recovery behavior of a Mesos agent:</p>
 
 <ul>
 <li><p><code>strict</code>: Whether to do agent recovery in strict mode [Default: true].</p>

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/a5fb0e1c/content/documentation/latest/authorization/index.html
----------------------------------------------------------------------
diff --git a/content/documentation/latest/authorization/index.html b/content/documentation/latest/authorization/index.html
index 3fcc8b9..5fd5fc6 100644
--- a/content/documentation/latest/authorization/index.html
+++ b/content/documentation/latest/authorization/index.html
@@ -125,7 +125,7 @@ frameworks subscribed to any roles.</p>
 use cases. This authorizer is configured using Access Control Lists (ACLs).
 Alternative implementations could express their authorization rules in
 different ways. The local authorizer is used if the
-<a href="/documentation/latest/./configuration/"><code>--authorizers</code></a> flag is not specified (or manually set to
+<a href="/documentation/latest/./configuration/master/"><code>--authorizers</code></a> flag is not specified (or manually set to
 the default value <code>local</code>) and ACLs are specified via the
 <a href="/documentation/latest/./configuration/"><code>--acls</code></a> flag.</p>
 


[2/6] mesos-site git commit: Updated the website built from mesos SHA: 8c0b351.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/a5fb0e1c/content/documentation/latest/configuration/index.html
----------------------------------------------------------------------
diff --git a/content/documentation/latest/configuration/index.html b/content/documentation/latest/configuration/index.html
index d9ee8e0..c371020 100644
--- a/content/documentation/latest/configuration/index.html
+++ b/content/documentation/latest/configuration/index.html
@@ -113,7 +113,7 @@
     <p>See our <a href="/community/">community</a> page for more details.</p>
   </div>
   <div class="col-md-8">
-    <h1>Mesos Configuration</h1>
+    <h1>Mesos Runtime Configuration</h1>
 
 <p>The Mesos master and agent can take a variety of configuration options
 through command-line arguments or environment variables. A list of the
@@ -133,2965 +133,41 @@ name with a <code>MESOS_</code> prefix added to it).</p></li>
 <p>Configuration values are searched for first in the environment, then
 on the command-line.</p>
 
-<p><strong>Important Options</strong></p>
-
-<p>If you have special compilation requirements, please refer to
-<code>./configure --help</code> when configuring Mesos. Additionally, this
-documentation lists only a recent snapshot of the options in Mesos. A
-definitive source for which flags your version of Mesos supports can
-be found by running the binary with the flag <code>--help</code>, for example
-<code>mesos-master --help</code>.</p>
+<p>Additionally, this documentation lists only a recent snapshot of the options in
+Mesos. A definitive source for which flags your version of Mesos supports can be
+found by running the binary with the flag <code>--help</code>, for example <code>mesos-master
+--help</code>.</p>
 
 <h2>Master and Agent Options</h2>
 
-<p><em>These options can be supplied to both masters and agents.</em></p>
-
-<table class="table table-striped">
-  <thead>
-    <tr>
-      <th width="30%">
-        Flag
-      </th>
-      <th>
-        Explanation
-      </th>
-    </tr>
-  </thead>
-<tr>
-  <td>
-    --advertise_ip=VALUE
-  </td>
-  <td>
-IP address advertised to reach this Mesos master/agent.
-The master/agent does not bind to this IP address.
-However, this IP address may be used to access this master/agent.
-  </td>
-</tr>
-<tr>
-  <td>
-    --advertise_port=VALUE
-  </td>
-  <td>
-Port advertised to reach this Mesos master/agent (along with
-<code>advertise_ip</code>). The master/agent does not bind using this port.
-However, this port (along with <code>advertise_ip</code>) may be used to
-access Mesos master/agent.
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]authenticate_http_readonly
-  </td>
-  <td>
-If <code>true</code>, only authenticated requests for read-only HTTP endpoints
-supporting authentication are allowed. If <code>false</code>, unauthenticated
-requests to such HTTP endpoints are also allowed.
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]authenticate_http_readwrite
-  </td>
-  <td>
-If <code>true</code>, only authenticated requests for read-write HTTP endpoints
-supporting authentication are allowed. If <code>false</code>, unauthenticated
-requests to such HTTP endpoints are also allowed.
-  </td>
-</tr>
-<tr>
-  <td>
-    --firewall_rules=VALUE
-  </td>
-  <td>
-The value could be a JSON-formatted string of rules or a
-file path containing the JSON-formatted rules used in the endpoints
-firewall. Path must be of the form <code>file:///path/to/file</code>
-or <code>/path/to/file</code>.
-<p/>
-See the <code>Firewall</code> message in <code>flags.proto</code> for the expected format.
-<p/>
-Example:
-<pre><code>{
-  "disabled_endpoints" : {
-    "paths" : [
-      "/files/browse",
-      "/metrics/snapshot"
-    ]
-  }
-}</code></pre>
-  </td>
-</tr>
-<tr>
-  <td>
-    --domain=VALUE
-  </td>
-  <td>
-Domain that the master or agent belongs to. Mesos currently only supports
-fault domains, which identify groups of hosts with similar failure
-characteristics. A fault domain consists of a region and a zone. All masters
-in the same Mesos cluster must be in the same region (they can be in
-different zones). Agents configured to use a different region than the
-master's region will not appear in resource offers to frameworks that have
-not enabled the <code>REGION_AWARE</code> capability. This value can be
-specified as either a JSON-formatted string or a file path containing JSON.
-<p/>
-Example:
-<pre><code>{
-  "fault_domain":
-    {
-      "region":
-        {
-          "name": "aws-us-east-1"
-        },
-      "zone":
-        {
-          "name": "aws-us-east-1a"
-        }
-    }
-}</code></pre>
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]help
-  </td>
-  <td>
-Show the help message and exit. (default: false)
-  </td>
-</tr>
-<tr>
-  <td>
-    --hooks=VALUE
-  </td>
-  <td>
-A comma-separated list of hook modules to be installed inside master/agent.
-  </td>
-</tr>
-<tr>
-  <td>
-    --hostname=VALUE
-  </td>
-  <td>
-The hostname the agent node should report, or that the master
-should advertise in ZooKeeper.
-If left unset, the hostname is resolved from the IP address
-that the master/agent binds to; unless the user explicitly prevents
-that, using <code>--no-hostname_lookup</code>, in which case the IP itself
-is used.
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]hostname_lookup
-  </td>
-  <td>
-Whether we should execute a lookup to find out the server's hostname,
-if not explicitly set (via, e.g., <code>--hostname</code>).
-True by default; if set to <code>false</code> it will cause Mesos
-to use the IP address, unless the hostname is explicitly set. (default: true)
-  </td>
-</tr>
-<tr>
-  <td>
-    --http_authenticators=VALUE
-  </td>
-  <td>
-HTTP authenticator implementation to use when handling requests to
-authenticated endpoints. Use the default <code>basic</code>, or load an
-alternate HTTP authenticator module using <code>--modules</code>.
-(default: basic, or basic and JWT if executor authentication is enabled)
-  </td>
-</tr>
-<tr>
-  <td>
-    --ip=VALUE
-  </td>
-  <td>
-IP address to listen on. This cannot be used in conjunction
-with <code>--ip_discovery_command</code>.
-  </td>
-</tr>
-<tr>
-  <td>
-    --ip_discovery_command=VALUE
-  </td>
-  <td>
-Optional IP discovery binary: if set, it is expected to emit
-the IP address which the master/agent will try to bind to.
-Cannot be used in conjunction with <code>--ip</code>.
-  </td>
-</tr>
-<tr>
-  <td>
-    --ip6=VALUE
-  </td>
-  <td>
-IPv6 address to listen on. This cannot be used in conjunction
-with <code>--ip6_discovery_command</code>.
-<p/>
-NOTE: Currently Mesos doesn't listen on IPv6 sockets and hence
-this IPv6 address is only used to advertise IPv6 addresses for
-containers running on the host network.
-  </td>
-</tr>
-<tr>
-  <td>
-    --ip6_discovery_command=VALUE
-  </td>
-  <td>
-Optional IPv6 discovery binary: if set, it is expected to emit
-the IPv6 address on which Mesos will try to bind when IPv6 socket
-support is enabled in Mesos.
-<p/>
-NOTE: Currently Mesos doesn't listen on IPv6 sockets and hence
-this IPv6 address is only used to advertise IPv6 addresses for
-containers running on the host network.
-  </td>
-</tr>
-<tr>
-  <td>
-    --modules=VALUE
-  </td>
-  <td>
-List of modules to be loaded and be available to the internal
-subsystems.
-<p/>
-Use <code>--modules=filepath</code> to specify the list of modules via a
-file containing a JSON-formatted string. <code>filepath</code> can be
-of the form <code>file:///path/to/file</code> or <code>/path/to/file</code>.
-<p/>
-Use <code>--modules="{...}"</code> to specify the list of modules inline.
-<p/>
-Example:
-<pre><code>{
-  "libraries": [
-    {
-      "file": "/path/to/libfoo.so",
-      "modules": [
-        {
-          "name": "org_apache_mesos_bar",
-          "parameters": [
-            {
-              "key": "X",
-              "value": "Y"
-            }
-          ]
-        },
-        {
-          "name": "org_apache_mesos_baz"
-        }
-      ]
-    },
-    {
-      "name": "qux",
-      "modules": [
-        {
-          "name": "org_apache_mesos_norf"
-        }
-      ]
-    }
-  ]
-}</code></pre>
-<p/> Cannot be used in conjunction with --modules_dir.
-  </td>
-</tr>
-<tr>
-  <td>
-    --modules_dir=VALUE
-  </td>
-  <td>
-Directory path of the module manifest files. The manifest files are processed in
-alphabetical order. (See <code>--modules</code> for more information on module
-manifest files). Cannot be used in conjunction with <code>--modules</code>.
-  </td>
-</tr>
-<tr>
-  <td>
-    --port=VALUE
-  </td>
-  <td>
-Port to listen on. (master default: 5050; agent default: 5051)
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]version
-  </td>
-  <td>
-Show version and exit. (default: false)
-  </td>
-</tr>
-<tr>
-  <td>
-    --zk_session_timeout=VALUE
-  </td>
-  <td>
-ZooKeeper session timeout. (default: 10secs)
-  </td>
-</tr>
-</table>
-
-
-<p><em>These logging options can also be supplied to both masters and agents.</em>
-For more about logging, see the <a href="/documentation/latest/./logging/">logging documentation</a>.</p>
-
-<table class="table table-striped">
-  <thead>
-    <tr>
-      <th width="30%">
-        Flag
-      </th>
-      <th>
-        Explanation
-      </th>
-    </tr>
-  </thead>
-<tr>
-  <td>
-    --[no-]quiet
-  </td>
-  <td>
-Disable logging to stderr. (default: false)
-  </td>
-</tr>
-<tr>
-  <td>
-    --log_dir=VALUE
-  </td>
-  <td>
-Location to put log files.  By default, nothing is written to disk.
-Does not affect logging to stderr.
-If specified, the log file will appear in the Mesos WebUI.
-<b>NOTE</b>: 3rd party log messages (e.g. ZooKeeper) are
-only written to stderr!
-  </td>
-</tr>
-<tr>
-  <td>
-    --logbufsecs=VALUE
-  </td>
-  <td>
-Maximum number of seconds that logs may be buffered for.
-By default, logs are flushed immediately. (default: 0)
-  </td>
-</tr>
-<tr>
-  <td>
-    --logging_level=VALUE
-  </td>
-  <td>
-Log message at or above this level.
-Possible values: <code>INFO</code>, <code>WARNING</code>, <code>ERROR</code>.
-If <code>--quiet</code> is specified, this will only affect the logs
-written to <code>--log_dir</code>, if specified. (default: INFO)
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]initialize_driver_logging
-  </td>
-  <td>
-Whether the master/agent should initialize Google logging for the
-scheduler and executor drivers, in the same way as described here.
-The scheduler/executor drivers have separate logs and do not get
-written to the master/agent logs.
-<p/>
-This option has no effect when using the HTTP scheduler/executor APIs.
-(default: true)
-  </td>
-</tr>
-<tr>
-  <td>
-    --external_log_file=VALUE
-  </td>
-  <td>
-Location of the externally managed log file.  Mesos does not write to
-this file directly and merely exposes it in the WebUI and HTTP API.
-This is only useful when logging to stderr in combination with an
-external logging mechanism, like syslog or journald.
-<p/>
-This option is meaningless when specified along with <code>--quiet</code>.
-<p/>
-This option takes precedence over <code>--log_dir</code> in the WebUI.
-However, logs will still be written to the <code>--log_dir</code> if
-that option is specified.
-  </td>
-</tr>
-</table>
+<p><em>These are options common to both the Mesos master and agent.</em></p>
 
+<p>See <a href="/documentation/latest/./configuration/master-and-agent/">configuration/master-and-agent.md</a>.</p>
 
 <h2>Master Options</h2>
 
-<p><em>Required Flags</em></p>
-
-<table class="table table-striped">
-  <thead>
-    <tr>
-      <th width="30%">
-        Flag
-      </th>
-      <th>
-        Explanation
-      </th>
-    </tr>
-  </thead>
-<tr>
-  <td>
-    --quorum=VALUE
-  </td>
-  <td>
-The size of the quorum of replicas when using <code>replicated_log</code> based
-registry. It is imperative to set this value to be a majority of
-masters i.e., <code>quorum > (number of masters)/2</code>.
-<b>NOTE</b>: Not required if master is run in standalone mode (non-HA).
-  </td>
-</tr>
-<tr>
-  <td>
-    --work_dir=VALUE
-  </td>
-  <td>
-Path of the master work directory. This is where the persistent
-information of the cluster will be stored. Note that locations like
-<code>/tmp</code> which are cleaned automatically are not suitable for the work
-directory when running in production, since long-running masters could
-lose data when cleanup occurs. (Example: <code>/var/lib/mesos/master</code>)
-  </td>
-</tr>
-<tr>
-  <td>
-    --zk=VALUE
-  </td>
-  <td>
-ZooKeeper URL (used for leader election amongst masters).
-May be one of:
-<pre><code>zk://host1:port1,host2:port2,.../path
-zk://username:password@host1:port1,host2:port2,.../path
-file:///path/to/file (where file contains one of the above)</code></pre>
-<b>NOTE</b>: Not required if master is run in standalone mode (non-HA).
-  </td>
-</tr>
-</table>
-
-
-<p><em>Optional Flags</em></p>
-
-<table class="table table-striped">
-  <thead>
-    <tr>
-      <th width="30%">
-        Flag
-      </th>
-      <th>
-        Explanation
-      </th>
-    </tr>
-  </thead>
-<tr>
-  <td>
-    --acls=VALUE
-  </td>
-  <td>
-The value could be a JSON-formatted string of ACLs
-or a file path containing the JSON-formatted ACLs used
-for authorization. Path could be of the form <code>file:///path/to/file</code>
-or <code>/path/to/file</code>.
-<p/>
-Note that if the flag <code>--authorizers</code> is provided with a value
-different than <code>local</code>, the ACLs contents will be
-ignored.
-<p/>
-See the ACLs protobuf in acls.proto for the expected format.
-<p/>
-Example:
-<pre><code>{
-  "register_frameworks": [
-    {
-      "principals": { "type": "ANY" },
-      "roles": { "values": ["a"] }
-    }
-  ],
-  "run_tasks": [
-    {
-      "principals": { "values": ["a", "b"] },
-      "users": { "values": ["c"] }
-    }
-  ],
-  "teardown_frameworks": [
-    {
-      "principals": { "values": ["a", "b"] },
-      "framework_principals": { "values": ["c"] }
-    }
-  ],
-  "set_quotas": [
-    {
-      "principals": { "values": ["a"] },
-      "roles": { "values": ["a", "b"] }
-    }
-  ],
-  "remove_quotas": [
-    {
-      "principals": { "values": ["a"] },
-      "quota_principals": { "values": ["a"] }
-    }
-  ],
-  "get_endpoints": [
-    {
-      "principals": { "values": ["a"] },
-      "paths": { "values": ["/flags"] }
-    }
-  ]
-}</code></pre>
-  </td>
-</tr>
-<tr>
-  <td>
-    --agent_ping_timeout=VALUE,
-    <p/>
-    --slave_ping_timeout=VALUE
-  </td>
-  <td>
-The timeout within which an agent is expected to respond to a
-ping from the master. Agents that do not respond within
-max_agent_ping_timeouts ping retries will be asked to shutdown.
-<b>NOTE</b>: The total ping timeout (<code>agent_ping_timeout</code> multiplied by
-<code>max_agent_ping_timeouts</code>) should be greater than the ZooKeeper
-session timeout to prevent useless re-registration attempts.
-(default: 15secs)
-  </td>
-</tr>
-<tr>
-  <td>
-    --agent_removal_rate_limit=VALUE
-    <p/>
-    --slave_removal_rate_limit=VALUE
-  </td>
-  <td>
-The maximum rate (e.g., <code>1/10mins</code>, <code>2/3hrs</code>, etc) at which agents
-will be removed from the master when they fail health checks.
-By default, agents will be removed as soon as they fail the health
-checks. The value is of the form <code>(Number of agents)/(Duration)</code>.
-  </td>
-</tr>
-<tr>
-  <td>
-    --agent_reregister_timeout=VALUE
-    <p/>
-    --slave_reregister_timeout=VALUE
-  </td>
-  <td>
-The timeout within which an agent is expected to re-register.
-Agents re-register when they become disconnected from the master
-or when a new master is elected as the leader. Agents that do not
-re-register within the timeout will be marked unreachable in the
-registry; if/when the agent re-registers with the master, any
-non-partition-aware tasks running on the agent will be terminated.
-<b>NOTE</b>: This value has to be at least 10mins. (default: 10mins)
-  </td>
-</tr>
-<tr>
-  <td>
-    --allocation_interval=VALUE
-  </td>
-  <td>
-Amount of time to wait between performing
-(batch) allocations (e.g., 500ms, 1sec, etc). (default: 1secs)
-  </td>
-</tr>
-<tr>
-  <td>
-    --allocator=VALUE
-  </td>
-  <td>
-Allocator to use for resource allocation to frameworks.
-Use the default <code>HierarchicalDRF</code> allocator, or
-load an alternate allocator module using <code>--modules</code>.
-(default: HierarchicalDRF)
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]authenticate_agents,
-    <p/>
-    --[no-]authenticate_slaves
-  </td>
-  <td>
-If <code>true</code> only authenticated agents are allowed to register.
-If <code>false</code> unauthenticated agents are also allowed to register. (default: false)
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]authenticate_frameworks,
-    <p/>
-    --[no-]authenticate
-  </td>
-  <td>
-If <code>true</code>, only authenticated frameworks are allowed to register. If
-<code>false</code>, unauthenticated frameworks are also allowed to register. For
-HTTP based frameworks use the <code>--authenticate_http_frameworks</code> flag. (default: false)
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]authenticate_http_frameworks
-  </td>
-  <td>
-If <code>true</code>, only authenticated HTTP based frameworks are allowed to
-register. If <code>false</code>, HTTP frameworks are not authenticated. (default: false)
-  </td>
-</tr>
-<tr>
-  <td>
-    --authenticators=VALUE
-  </td>
-  <td>
-Authenticator implementation to use when authenticating frameworks
-and/or agents. Use the default <code>crammd5</code>, or
-load an alternate authenticator module using <code>--modules</code>. (default: crammd5)
-  </td>
-</tr>
-<tr>
-  <td>
-    --authorizers=VALUE
-  </td>
-  <td>
-Authorizer implementation to use when authorizing actions that
-require it.
-Use the default <code>local</code>, or
-load an alternate authorizer module using <code>--modules</code>.
-<p/>
-Note that if the flag <code>--authorizers</code> is provided with a value
-different than the default <code>local</code>, the ACLs
-passed through the <code>--acls</code> flag will be ignored.
-<p/>
-Currently there is no support for multiple authorizers. (default: local)
-  </td>
-</tr>
-<tr>
-  <td>
-    --cluster=VALUE
-  </td>
-  <td>
-Human readable name for the cluster, displayed in the webui.
-  </td>
-</tr>
-<tr>
-  <td>
-    --credentials=VALUE
-  </td>
-  <td>
-Path to a JSON-formatted file containing credentials.
-Path can be of the form <code>file:///path/to/file</code> or <code>/path/to/file</code>.
-Example:
-<pre><code>{
-  "credentials": [
-    {
-      "principal": "sherman",
-      "secret": "kitesurf"
-    }
-  ]
-}</code></pre>
-  </td>
-</tr>
-<tr>
-  <td>
-    --fair_sharing_excluded_resource_names=VALUE
-  </td>
-  <td>
-A comma-separated list of the resource names (e.g. 'gpus') that will be excluded
-from fair sharing constraints. This may be useful in cases where the fair
-sharing implementation currently has limitations. E.g. See the problem of
-"scarce" resources:
-    <a href="http://www.mail-archive.com/dev@mesos.apache.org/msg35631.html">msg35631</a>
-    <a href="https://issues.apache.org/jira/browse/MESOS-5377">MESOS-5377</a>
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no_]filter_gpu_resources
-  </td>
-  <td>
-When set to true, this flag will cause the mesos master to filter all offers
-from agents with GPU resources by only sending them to frameworks that opt into
-the 'GPU_RESOURCES' framework capability. When set to false, this flag will
-cause the master to not filter offers from agents with GPU resources, and
-indiscriminately send them to all frameworks whether they set the
-'GPU_RESOURCES' capability or not.  This flag is meant as a temporary workaround
-towards the eventual deprecation of the 'GPU_RESOURCES' capability. Please see
-the following for more information:
-    <a href="https://www.mail-archive.com/dev@mesos.apache.org/msg37571.html">msg37571</a>
-    <a href="https://issues.apache.org/jira/browse/MESOS-7576">MESOS-7576</a>
-  </td>
-</tr>
-<tr>
-  <td>
-    --framework_sorter=VALUE
-  </td>
-  <td>
-Policy to use for allocating resources between a given user's
-frameworks. Options are the same as for <code>--user_sorter</code>.
-(default: drf)
-  </td>
-</tr>
-<tr>
-  <td>
-    --http_framework_authenticators=VALUE
-  </td>
-  <td>
-HTTP authenticator implementation to use when authenticating HTTP frameworks.
-Use the <code>basic</code> authenticator or load an alternate HTTP authenticator
-module using <code>--modules</code>. This must be used in conjunction with
-<code>--authenticate_http_frameworks</code>.
-<p/>
-Currently there is no support for multiple HTTP authenticators.
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]log_auto_initialize
-  </td>
-  <td>
-Whether to automatically initialize the [replicated log](/documentation/latest/./replicated-log-internals/)
-used for the registry. If this is set to false, the log has to be manually
-initialized when used for the very first time. (default: true)
-  </td>
-</tr>
-<tr>
-  <td>
-    --master_contender=VALUE
-  </td>
-  <td>
-The symbol name of the master contender to use. This symbol should exist in a
-module specified through the <code>--modules</code> flag. Cannot be used in
-conjunction with <code>--zk</code>. Must be used in conjunction with
-<code>--master_detector</code>.
-  </td>
-</tr>
-<tr>
-  <td>
-    --master_detector=VALUE
-  </td>
-  <td>
-The symbol name of the master detector to use. This symbol should exist in a
-module specified through the <code>--modules</code> flag. Cannot be used in
-conjunction with <code>--zk</code>. Must be used in conjunction with
-<code>--master_contender</code>.
-  </td>
-</tr>
-<tr>
-  <td>
-    --max_agent_ping_timeouts=VALUE,
-    <p/>
-    --max_slave_ping_timeouts=VALUE
-  </td>
-  <td>
-The number of times an agent can fail to respond to a
-ping from the master. Agents that do not respond within
-<code>max_agent_ping_timeouts</code> ping retries will be asked to shutdown.
-(default: 5)
-  </td>
-</tr>
-<tr>
-  <td>
-    --max_completed_frameworks=VALUE
-  </td>
-  <td>
-Maximum number of completed frameworks to store in memory. (default: 50)
-  </td>
-</tr>
-<tr>
-  <td>
-    --max_completed_tasks_per_framework=VALUE
-  </td>
-  <td>
-Maximum number of completed tasks per framework to store in memory. (default: 1000)
-  </td>
-</tr>
-<tr>
-  <td>
-    --max_unreachable_tasks_per_framework=VALUE
-  </td>
-  <td>
-Maximum number of unreachable tasks per framework to store in memory. (default: 1000)
-  </td>
-</tr>
-<tr>
-  <td>
-    --offer_timeout=VALUE
-  </td>
-  <td>
-Duration of time before an offer is rescinded from a framework.
-This helps fairness when running frameworks that hold on to offers,
-or frameworks that accidentally drop offers.
-If not set, offers do not timeout.
-  </td>
-</tr>
-<tr>
-  <td>
-    --rate_limits=VALUE
-  </td>
-  <td>
-The value could be a JSON-formatted string of rate limits
-or a file path containing the JSON-formatted rate limits used
-for framework rate limiting.
-Path could be of the form <code>file:///path/to/file</code>
-or <code>/path/to/file</code>.
-<p/>
-See the RateLimits protobuf in mesos.proto for the expected format.
-<p/>
-Example:
-<pre><code>{
-  "limits": [
-    {
-      "principal": "foo",
-      "qps": 55.5
-    },
-    {
-      "principal": "bar"
-    }
-  ],
-  "aggregate_default_qps": 33.3
-}</code></pre>
-  </td>
-</tr>
-<tr>
-  <td>
-    --recovery_agent_removal_limit=VALUE,
-    <p/>
-    --recovery_slave_removal_limit=VALUE
-  </td>
-  <td>
-For failovers, limit on the percentage of agents that can be removed
-from the registry *and* shutdown after the re-registration timeout
-elapses. If the limit is exceeded, the master will fail over rather
-than remove the agents.
-This can be used to provide safety guarantees for production
-environments. Production environments may expect that across master
-failovers, at most a certain percentage of agents will fail
-permanently (e.g. due to rack-level failures).
-Setting this limit would ensure that a human needs to get
-involved should an unexpected widespread failure of agents occur
-in the cluster.
-Values: [0%-100%] (default: 100%)
-  </td>
-</tr>
-<tr>
-  <td>
-    --registry=VALUE
-  </td>
-  <td>
-Persistence strategy for the registry; available options are
-<code>replicated_log</code>, <code>in_memory</code> (for testing). (default: replicated_log)
-  </td>
-</tr>
-<tr>
-  <td>
-    --registry_fetch_timeout=VALUE
-  </td>
-  <td>
-Duration of time to wait in order to fetch data from the registry
-after which the operation is considered a failure. (default: 1mins)
-  </td>
-</tr>
-<tr>
-  <td>
-    --registry_store_timeout=VALUE
-  </td>
-  <td>
-Duration of time to wait in order to store data in the registry
-after which the operation is considered a failure. (default: 20secs)
-  </td>
-</tr>
-<tr>
-  <td>
-    --roles=VALUE
-  </td>
-  <td>
-A comma-separated list of the allocation roles that frameworks
-in this cluster may belong to. This flag is deprecated;
-if it is not specified, any role name can be used.
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]root_submissions
-  </td>
-  <td>
-Can root submit frameworks? (default: true)
-  </td>
-</tr>
-<tr>
-  <td>
-    --user_sorter=VALUE
-  </td>
-  <td>
-Policy to use for allocating resources between users. May be one of:
-  dominant_resource_fairness (drf) (default: drf)
-  </td>
-</tr>
-<tr>
-  <td>
-    --webui_dir=VALUE
-  </td>
-  <td>
-Directory path of the webui files/assets (default: /usr/local/share/mesos/webui)
-  </td>
-</tr>
-<tr>
-  <td>
-    --weights=VALUE
-  </td>
-  <td>
-A comma-separated list of role/weight pairs of the form
-<code>role=weight,role=weight</code>. Weights can be used to control the
-relative share of cluster resources that is offered to different roles. This
-flag is deprecated. Instead, operators should configure weights dynamically
-using the <code>/weights</code> HTTP endpoint.
-  </td>
-</tr>
-<tr>
-  <td>
-    --whitelist=VALUE
-  </td>
-  <td>
-Path to a file which contains a list of agents (one per line) to
-advertise offers for. The file is watched and periodically re-read to
-refresh the agent whitelist. By default there is no whitelist: all
-machines are accepted. Path can be of the form
-<code>file:///path/to/file</code> or <code>/path/to/file</code>.
-  </td>
-</tr>
-</table>
-
-
-<p><em>Flags available when configured with <code>--with-network-isolator</code></em></p>
-
-<table class="table table-striped">
-  <thead>
-    <tr>
-      <th width="30%">
-        Flag
-      </th>
-      <th>
-        Explanation
-      </th>
-    </tr>
-  </thead>
-<tr>
-  <td>
-    --max_executors_per_agent=VALUE,
-    <p/>
-     --max_executors_per_slave=VALUE
-  </td>
-  <td>
-Maximum number of executors allowed per agent. The network
-monitoring/isolation technique imposes an implicit resource
-acquisition on each executor (# ephemeral ports), as a result
-one can only run a certain number of executors on each agent.
-  </td>
-</tr>
-</table>
-
+<p>See <a href="/documentation/latest/./configuration/master/">configuration/master.md</a>.</p>
 
 <h2>Agent Options</h2>
 
-<p><em>Required Flags</em></p>
-
-<table class="table table-striped">
-  <thead>
-    <tr>
-      <th width="30%">
-        Flag
-      </th>
-      <th>
-        Explanation
-      </th>
-    </tr>
-  </thead>
-<tr>
-  <td>
-    --master=VALUE
-  </td>
-  <td>
-May be one of:
-  <code>host:port</code>
-  <code>zk://host1:port1,host2:port2,.../path</code>
-  <code>zk://username:password@host1:port1,host2:port2,.../path</code>
-  <code>file:///path/to/file</code> (where file contains one of the above)
-  </td>
-</tr>
-<tr>
-  <td>
-    --work_dir=VALUE
-  </td>
-  <td>
-Path of the agent work directory. This is where executor sandboxes
-will be placed, as well as the agent's checkpointed state in case of
-failover. Note that locations like <code>/tmp</code> which are cleaned
-automatically are not suitable for the work directory when running in
-production, since long-running agents could lose data when cleanup
-occurs. (Example: <code>/var/lib/mesos/agent</code>)
-  </td>
-</tr>
-</table>
-
-
-<p><em>Optional Flags</em></p>
-
-<table class="table table-striped">
-  <thead>
-    <tr>
-      <th width="30%">
-        Flag
-      </th>
-      <th>
-        Explanation
-      </th>
-    </tr>
-  </thead>
-<tr>
-  <td>
-    --acls=VALUE
-  </td>
-  <td>
-The value could be a JSON-formatted string of ACLs
-or a file path containing the JSON-formatted ACLs used
-for authorization. Path could be of the form <code>file:///path/to/file</code>
-or <code>/path/to/file</code>.
-<p/>
-Note that if the <code>--authorizer</code> flag is provided with a value
-other than <code>local</code>, the ACLs contents will be
-ignored.
-<p/>
-See the ACLs protobuf in acls.proto for the expected format.
-<p/>
-Example:
-<pre><code>{
-  "get_endpoints": [
-    {
-      "principals": { "values": ["a"] },
-      "paths": { "values": ["/flags", "/monitor/statistics"] }
-    }
-  ]
-}</code></pre>
-  </td>
-</tr>
-<tr>
-  <td>
-    --agent_subsystems=VALUE,
-    <p/>
-    --slave_subsystems=VALUE
-  </td>
-  <td>
-List of comma-separated cgroup subsystems to run the agent binary
-in, e.g., <code>memory,cpuacct</code>. The default is none.
-Present functionality is intended for resource monitoring and
-no cgroup limits are set, they are inherited from the root mesos
-cgroup.
-  </td>
-
-</tr>
-<tr>
-  <td>
-    --effective_capabilities=VALUE
-  </td>
-  <td>
-JSON representation of the Linux capabilities that the agent will
-grant to a task that will be run in containers launched by the
-containerizer (currently only supported by the Mesos Containerizer).
-This set overrides the default capabilities for the user but not
-the capabilities requested by the framework.
-<p/>
-To set capabilities the agent should have the <code>SETPCAP</code> capability.
-<p/>
-This flag is effective iff <code>linux/capabilities</code> isolation is enabled.
-When <code>linux/capabilities</code> isolation is enabled, the absence of this flag
-implies that the operator intends to allow ALL capabilities.
-<p/>
-Example:
-<pre><code>
-{
-  "capabilities": [
-    "NET_RAW",
-    "SYS_ADMIN"
-  ]
-}
-</code></pre>
-  </td>
-</tr>
-
-</tr>
-<tr>
-  <td>
-    --bounding_capabilities=VALUE
-  </td>
-  <td>
-JSON representation of the Linux capabilities that the operator
-will allow as the maximum level of privilege that a task launched
-by the containerizer may acquire (currently only supported by the
-Mesos Containerizer).
-<p/>
-This flag is effective iff <code>linux/capabilities</code> isolation is enabled.
-When <code>linux/capabilities</code> isolation is enabled, the absence of this flag
-implies that the operator intends to allow ALL capabilities.
-<p/>
-This flag has the same syntax as <code>--effective_capabilities</code>.
-  </td>
-</tr>
-
-<tr>
-  <td>
-    --appc_simple_discovery_uri_prefix=VALUE
-  </td>
-  <td>
-URI prefix to be used for simple discovery of appc images,
-e.g., <code>http://</code>, <code>https://</code>,
-<code>hdfs://<hostname>:9000/user/abc/cde</code>.
-(default: http://)
-  </td>
-</tr>
-<tr>
-  <td>
-    --appc_store_dir=VALUE
-  </td>
-  <td>
-Directory the appc provisioner will store images in.
-(default: /tmp/mesos/store/appc)
-  </td>
-</tr>
-<tr>
-  <td>
-    --attributes=VALUE
-  </td>
-  <td>
-Attributes of the agent machine, in the form:
-<code>rack:2</code> or <code>rack:2;u:1</code>
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]authenticate_http_executors
-  </td>
-  <td>
-If <code>true</code>, only authenticated requests for the HTTP executor API are
-allowed. If <code>false</code>, unauthenticated requests are also allowed. This
-flag is only available when Mesos is built with SSL support.
-(default: false)
-  </td>
-</tr>
-<tr>
-  <td>
-    --authenticatee=VALUE
-  </td>
-  <td>
-Authenticatee implementation to use when authenticating against the
-master. Use the default <code>crammd5</code>, or
-load an alternate authenticatee module using <code>--modules</code>. (default: crammd5)
-  </td>
-</tr>
-<tr>
-  <td>
-    --authentication_backoff_factor=VALUE
-  </td>
-  <td>
-After a failed authentication the agent picks a random amount of time between
-<code>[0, b]</code>, where <code>b = authentication_backoff_factor</code>, to
-authenticate with a new master. Subsequent retries are exponentially backed
-off based on this interval (e.g., 1st retry uses a random value between
-<code>[0, b * 2^1]</code>, 2nd retry between <code>[0, b * 2^2]</code>, 3rd
-retry between <code>[0, b * 2^3]</code>, etc up to a maximum of 1mins
-(default: 1secs)
-  </td>
-</tr>
-<tr>
-  <td>
-    --authorizer=VALUE
-  </td>
-  <td>
-Authorizer implementation to use when authorizing actions that
-require it.
-Use the default <code>local</code>, or
-load an alternate authorizer module using <code>--modules</code>.
-<p/>
-Note that if the <code>--authorizer</code> flag is provided with a value
-other than the default <code>local</code>, the ACLs
-passed through the <code>--acls</code> flag will be ignored.
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no]-cgroups_cpu_enable_pids_and_tids_count
-  </td>
-  <td>
-Cgroups feature flag to enable counting of processes and threads
-inside a container. (default: false)
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no]-cgroups_enable_cfs
-  </td>
-  <td>
-Cgroups feature flag to enable hard limits on CPU resources
-via the CFS bandwidth limiting subfeature. (default: false)
-  </td>
-</tr>
-<tr>
-  <td>
-    --cgroups_hierarchy=VALUE
-  </td>
-  <td>
-The path to the cgroups hierarchy root. (default: /sys/fs/cgroup)
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no]-cgroups_limit_swap
-  </td>
-  <td>
-Cgroups feature flag to enable memory limits on both memory and
-swap instead of just memory. (default: false)
-  </td>
-</tr>
-<tr>
-  <td>
-    --cgroups_net_cls_primary_handle
-  </td>
-  <td>
-A non-zero, 16-bit handle of the form `0xAAAA`. This will be used as
-the primary handle for the net_cls cgroup.
-  </td>
-</tr>
-<tr>
-  <td>
-    --cgroups_net_cls_secondary_handles
-  </td>
-  <td>
-A range of the form 0xAAAA,0xBBBB, specifying the valid secondary
-handles that can be used with the primary handle. This will take
-effect only when the <code>--cgroups_net_cls_primary_handle</code> is set.
-  </td>
-</tr>
-<tr>
-  <td>
-    --allowed_devices
-  </td>
-  <td>
-JSON object representing the devices that will be additionally
-whitelisted by cgroups devices subsystem. Noted that the following
-devices always be whitelisted by default:
-<pre><code>  * /dev/console
-  * /dev/tty0
-  * /dev/tty1
-  * /dev/pts/*
-  * /dev/ptmx
-  * /dev/net/tun
-  * /dev/null
-  * /dev/zero
-  * /dev/full
-  * /dev/tty
-  * /dev/urandom
-  * /dev/random
-</code></pre>
-This flag will take effect only when <code>cgroups/devices</code> is set in
-<code>--isolation</code> flag.
-<p/>
-Example:
-<pre><code>{
-  "allowed_devices": [
-    {
-      "device": {
-        "path": "/path/to/device"
-      },
-      "access": {
-        "read": true,
-        "write": false,
-        "mknod": false
-      }
-    }
-  ]
-}
-</code></pre>
-  </td>
-</tr>
-<tr>
-  <td>
-    --cgroups_root=VALUE
-  </td>
-  <td>
-Name of the root cgroup. (default: mesos)
-  </td>
-</tr>
-<tr>
-  <td>
-    --container_disk_watch_interval=VALUE
-  </td>
-  <td>
-The interval between disk quota checks for containers. This flag is
-used for the <code>disk/du</code> isolator. (default: 15secs)
-  </td>
-</tr>
-<tr>
-  <td>
-    --container_logger=VALUE
-  </td>
-  <td>
-The name of the container logger to use for logging container
-(i.e., executor and task) stdout and stderr. The default
-container logger writes to <code>stdout</code> and <code>stderr</code> files
-in the sandbox directory.
-  </td>
-</tr>
-<tr>
-  <td>
-    --containerizers=VALUE
-  </td>
-  <td>
-Comma-separated list of containerizer implementations
-to compose in order to provide containerization.
-Available options are <code>mesos</code> and
-<code>docker</code> (on Linux). The order the containerizers
-are specified is the order they are tried.
-(default: mesos)
-  </td>
-</tr>
-<tr>
-  <td>
-    --credential=VALUE
-  </td>
-  <td>
-Path to a JSON-formatted file containing the credential
-to use to authenticate with the master.
-Path could be of the form <code>file:///path/to/file</code> or <code>/path/to/file</code>.
-Example:
-<pre><code>{
-  "principal": "username",
-  "secret": "secret"
-}</code></pre>
-  </td>
-</tr>
-<tr>
-  <td>
-    --default_container_dns=VALUE
-  </td>
-  <td>
-JSON-formatted DNS information for CNI networks (Mesos containerizer)
-and CNM networks (Docker containerizer). For CNI networks, this flag
-can be used to configure `nameservers`, `domain`, `search` and
-`options`, and its priority is lower than the DNS information returned
-by a CNI plugin, but higher than the DNS information in agent host's
-/etc/resolv.conf. For CNM networks, this flag can be used to configure
-`nameservers`, `search` and `options`, it will only be used if there
-is no DNS information provided in the ContainerInfo.docker.parameters
-message.
-<p/>
-See the ContainerDNS message in `flags.proto` for the expected format.
-<p/>
-Example:
-<pre><code>{
-  "mesos": [
-    {
-      "network_mode": "CNI",
-      "network_name": "net1",
-      "dns": {
-        "nameservers": [ "8.8.8.8", "8.8.4.4" ]
-      }
-    }
-  ],
-  "docker": [
-    {
-      "network_mode": "BRIDGE",
-      "dns": {
-        "nameservers": [ "8.8.8.8", "8.8.4.4" ]
-      }
-    },
-    {
-      "network_mode": "USER",
-      "network_name": "net2",
-      "dns": {
-        "nameservers": [ "8.8.8.8", "8.8.4.4" ]
-      }
-    }
-  ]
-}</code></pre>
-  </td>
-</tr>
-<tr>
-  <td>
-    --default_container_info=VALUE
-  </td>
-  <td>
-JSON-formatted ContainerInfo that will be included into
-any ExecutorInfo that does not specify a ContainerInfo.
-<p/>
-See the ContainerInfo protobuf in mesos.proto for
-the expected format.
-<p/>
-Example:
-<pre><code>{
-  "type": "MESOS",
-  "volumes": [
-    {
-      "host_path": ".private/tmp",
-      "container_path": "/tmp",
-      "mode": "RW"
-    }
-  ]
-}</code></pre>
-  </td>
-</tr>
-<tr>
-  <td>
-    --default_role=VALUE
-  </td>
-  <td>
-Any resources in the <code>--resources</code> flag that
-omit a role, as well as any resources that
-are not present in <code>--resources</code> but that are
-automatically detected, will be assigned to
-this role. (default: *)
-  </td>
-</tr>
-<tr>
-  <td>
-    --disk_watch_interval=VALUE
-  </td>
-  <td>
-Periodic time interval (e.g., 10secs, 2mins, etc)
-to check the overall disk usage managed by the agent.
-This drives the garbage collection of archived
-information and sandboxes. (default: 1mins)
-  </td>
-</tr>
-<tr>
-  <td>
-    --docker=VALUE
-  </td>
-  <td>
-The absolute path to the docker executable for docker
-containerizer.
-(default: docker)
-  </td>
-</tr>
-<tr>
-  <td>
-    --docker_config=VALUE
-  </td>
-  <td>
-The default docker config file for agent. Can be provided either as an
-absolute path pointing to the agent local docker config file, or as a
-JSON-formatted string. The format of the docker config file should be
-identical to docker's default one (e.g., either
-<code>$HOME/.docker/config.json</code> or <code>$HOME/.dockercfg</code>).
-Example JSON (<code>$HOME/.docker/config.json</code>):
-<pre><code>{
-  "auths": {
-    "https://index.docker.io/v1/": {
-      "auth": "xXxXxXxXxXx=",
-      "email": "username@example.com"
-    }
-  }
-}
-</code></pre>
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]docker_kill_orphans
-  </td>
-  <td>
-Enable docker containerizer to kill orphaned containers.
-You should consider setting this to false when you launch multiple
-agents in the same OS, to avoid one of the DockerContainerizer
-removing docker tasks launched by other agents.
-(default: true)
-  </td>
-</tr>
-<tr>
-  <td>
-    --docker_mesos_image=VALUE
-  </td>
-  <td>
-The Docker image used to launch this Mesos agent instance.
-If an image is specified, the docker containerizer assumes the agent
-is running in a docker container, and launches executors with
-docker containers in order to recover them when the agent restarts and
-recovers.
-  </td>
-</tr>
-<tr>
-  <td>
-    --docker_registry=VALUE
-  </td>
-  <td>
-The default url for Mesos containerizer to pull Docker images. It could
-either be a Docker registry server url (i.e: <code>https://registry.docker.io</code>),
-or a local path (i.e: <code>/tmp/docker/images</code>) in which Docker
-image archives (result of <code>docker save</code>) are stored. Note
-that this option won't change the default registry server for Docker
-containerizer. (default: https://registry-1.docker.io)
-  </td>
-</tr>
-<tr>
-  <td>
-    --docker_remove_delay=VALUE
-  </td>
-  <td>
-The amount of time to wait before removing docker containers
-(e.g., <code>3days</code>, <code>2weeks</code>, etc).
-(default: 6hrs)
-  </td>
-</tr>
-<tr>
-  <td>
-    --docker_socket=VALUE
-  </td>
-  <td>
-Resource used by the agent and the executor to provide CLI access to the
-Docker daemon. On Unix, this is typically a path to a socket, such as
-<code>/var/run/docker.sock</code>. On Windows this must be a named pipe,
-such as <code>//./pipe/docker_engine</code>. <b>NOTE</b>: This must be the path
-used by the Docker image used to run the agent. (default:
-//./pipe/docker_engine on Windows; /var/run/docker.sock on other
-platforms).
-  </td>
-</tr>
-<tr>
-  <td>
-    --docker_stop_timeout=VALUE
-  </td>
-  <td>
-The time docker daemon waits after stopping a container before killing
-that container. This flag is deprecated; use task's kill policy instead.
-(default: 0ns)
-  </td>
-</tr>
-<tr>
-  <td>
-    --docker_store_dir=VALUE
-  </td>
-  <td>
-Directory the Docker provisioner will store images in (default: /tmp/mesos/store/docker)
-  </td>
-</tr>
-<tr>
-  <td>
-    --docker_volume_checkpoint_dir=VALUE
-  </td>
-  <td>
-The root directory where we checkpoint the information about docker
-volumes that each container uses.
-(default: /var/run/mesos/isolators/docker/volume)
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]enforce_container_disk_quota
-  </td>
-  <td>
-Whether to enable disk quota enforcement for containers. This flag
-is used by the <code>disk/du</code> and <code>disk/xfs</code> isolators. (default: false)
-  </td>
-</tr>
-<tr>
-  <td>
-    --executor_environment_variables=VALUE
-  </td>
-  <td>
-JSON object representing the environment variables that should be
-passed to the executor, and thus subsequently task(s). By default this
-flag is none. Users have to define executor environment explicitly.
-Example:
-<pre><code>{
-  "PATH": "/bin:/usr/bin",
-  "LD_LIBRARY_PATH": "/usr/local/lib"
-}</code></pre>
-  </td>
-</tr>
-<tr>
-  <td>
-    --executor_registration_timeout=VALUE
-  </td>
-  <td>
-Amount of time to wait for an executor
-to register with the agent before considering it hung and
-shutting it down (e.g., 60secs, 3mins, etc) (default: 1mins)
-  </td>
-</tr>
-<tr>
-  <td>
-    --executor_reregistration_timeout=VALUE
-  </td>
-  <td>
-The timeout within which an executor is expected to re-register after
-the agent has restarted, before the agent considers it gone and shuts
-it down. Note that currently, the agent will not re-register with the
-master until this timeout has elapsed (see MESOS-7539). (default: 2secs)
-  </td>
-</tr>
-<tr>
-  <td>
-    --executor_reregistration_retry_interval=VALUE
-  </td>
-  <td>
-For PID-based executors, how long the agent waits before retrying
-the reconnect message sent to the executor during recovery.
-NOTE: Do not use this unless you understand the following
-(see MESOS-5332): PID-based executors using Mesos libraries &gt;= 1.1.2
-always re-link with the agent upon receiving the reconnect message.
-This avoids the executor replying on a half-open TCP connection to
-the old agent (possible if netfilter is dropping packets,
-see: MESOS-7057). However, PID-based executors using Mesos
-libraries &lt; 1.1.2 do not re-link and are therefore prone to
-replying on a half-open connection after the agent restarts. If we
-only send a single reconnect message, these "old" executors will
-reply on their half-open connection and receive a RST; without any
-retries, they will fail to reconnect and be killed by the agent once
-the executor re-registration timeout elapses. To ensure these "old"
-executors can reconnect in the presence of netfilter dropping
-packets, we introduced optional retries of the reconnect message.
-This results in "old" executors correctly establishing a link
-when processing the second reconnect message. (default: no retries)
-  </td>
-</tr>
-<tr>
-  <td>
-    --max_completed_executors_per_framework=VALUE
-  </td>
-  <td>
-Maximum number of completed executors per framework to store
-in memory. (default: 150)
-  </td>
-</tr>
-<tr>
-  <td>
-    --executor_secret_key=VALUE
-  </td>
-  <td>
-Path to a file containing the key used when generating executor
-secrets. This flag is only available when Mesos is built with SSL
-support.
-  </td>
-</tr>
-<tr>
-  <td>
-    --executor_shutdown_grace_period=VALUE
-  </td>
-  <td>
-Default amount of time to wait for an executor to shut down
-(e.g. 60secs, 3mins, etc). ExecutorInfo.shutdown_grace_period
-overrides this default. Note that the executor must not assume
-that it will always be allotted the full grace period, as the
-agent may decide to allot a shorter period, and failures / forcible
-terminations may occur.
-(default: 5secs)
-  </td>
-</tr>
-<tr>
-  <td>
-    --fetcher_cache_dir=VALUE
-  </td>
-  <td>
-Parent directory for fetcher cache directories
-(one subdirectory per agent). (default: /tmp/mesos/fetch)
-
-Directory for the fetcher cache. The agent will clear this directory
-on startup. It is recommended to set this value to a separate volume
-for several reasons:
-<ul>
-<li> The cache directories are transient and not meant to be
-     backed up. Upon restarting the agent, the cache is always empty. </li>
-<li> The cache and container sandboxes can potentially interfere with
-     each other when occupying a shared space (i.e. disk contention). </li>
-</ul>
-  </td>
-</tr>
-<tr>
-  <td>
-    --fetcher_cache_size=VALUE
-  </td>
-  <td>
-Size of the fetcher cache in Bytes. (default: 2GB)
-  </td>
-</tr>
-<tr>
-  <td>
-    --frameworks_home=VALUE
-  </td>
-  <td>
-Directory path prepended to relative executor URIs (default: )
-  </td>
-</tr>
-<tr>
-  <td>
-    --gc_delay=VALUE
-  </td>
-  <td>
-Maximum amount of time to wait before cleaning up
-executor directories (e.g., 3days, 2weeks, etc).
-Note that this delay may be shorter depending on
-the available disk usage. (default: 1weeks)
-  </td>
-</tr>
-<tr>
-  <td>
-    <a name="gc_disk_headroom"></a>
-    --gc_disk_headroom=VALUE
-  </td>
-  <td>
-Adjust disk headroom used to calculate maximum executor
-directory age. Age is calculated by:
-<code>gc_delay * max(0.0, (1.0 - gc_disk_headroom - disk usage))</code>
-every <code>--disk_watch_interval</code> duration. <code>gc_disk_headroom</code> must
-be a value between 0.0 and 1.0 (default: 0.1)
-  </td>
-</tr>
-<tr>
-  <td>
-    --hadoop_home=VALUE
-  </td>
-  <td>
-Path to find Hadoop installed (for
-fetching framework executors from HDFS)
-(no default, look for <code>HADOOP_HOME</code> in
-environment or find hadoop on <code>PATH</code>) (default: )
-  </td>
-</tr>
-<tr>
-  <td>
-    --http_credentials=VALUE
-  </td>
-  <td>
-Path to a JSON-formatted file containing credentials. These
-credentials are used to authenticate HTTP endpoints on the agent.
-Path can be of the form <code>file:///path/to/file</code> or <code>/path/to/file</code>.
-<p/>
-Example:
-<pre><code>{
-  "credentials": [
-    {
-      "principal": "yoda",
-      "secret": "usetheforce"
-    }
-  ]
-}
-</code></pre>
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]http_command_executor
-  </td>
-  <td>
-The underlying executor library to be used for the command executor.
-If set to <code>true</code>, the command executor would use the HTTP based
-executor library to interact with the Mesos agent. If set to <code>false</code>,
-the driver based implementation would be used.
-<b>NOTE</b>: This flag is *experimental* and should not be used in
-production yet. (default: false)
-  </td>
-</tr>
-<tr>
-  <td>
-    --http_heartbeat_interval=VALUE
-  </td>
-  <td>
-This flag sets a heartbeat interval (e.g. '5secs', '10mins') for
-messages to be sent over persistent connections made against
-the agent HTTP API. Currently, this only applies to the
-<code>LAUNCH_NESTED_CONTAINER_SESSION</code> and <code>ATTACH_CONTAINER_OUTPUT</code> calls.
-(default: 30secs)
-  </td>
-</tr>
-<tr>
-  <td>
-    --image_providers=VALUE
-  </td>
-  <td>
-Comma-separated list of supported image providers,
-e.g., <code>APPC,DOCKER</code>.
-  </td>
-</tr>
-<tr>
-  <td>
-    --image_provisioner_backend=VALUE
-  </td>
-  <td>
-Strategy for provisioning container rootfs from images, e.g., <code>aufs</code>,
-<code>bind</code>, <code>copy</code>, <code>overlay</code>.
-  </td>
-</tr>
-<tr>
-  <td>
-    --isolation=VALUE
-  </td>
-  <td>
-Isolation mechanisms to use, e.g., <code>posix/cpu,posix/mem</code>, or
-<code>cgroups/cpu,cgroups/mem</code>, or <code>network/port_mapping</code>
-(configure with flag: <code>--with-network-isolator</code> to enable),
-or <code>gpu/nvidia</code> for nvidia specific gpu isolation, or load an alternate
-isolator module using the <code>--modules</code> flag. Note that this
-flag is only relevant for the Mesos Containerizer.
-(default: posix/cpu,posix/mem)
-  </td>
-</tr>
-<tr>
-  <td>
-    --launcher=VALUE
-  </td>
-  <td>
-The launcher to be used for Mesos containerizer. It could either be
-<code>linux</code> or <code>posix</code>. The Linux launcher is required for cgroups
-isolation and for any isolators that require Linux namespaces such as
-network, pid, etc. If unspecified, the agent will choose the Linux
-launcher if it's running as root on Linux.
-  </td>
-</tr>
-<tr>
-  <td>
-    --launcher_dir=VALUE
-  </td>
-  <td>
-Directory path of Mesos binaries. Mesos looks for the health-check,
-fetcher, containerizer, and executor binary files under this
-directory. (default: /usr/local/libexec/mesos)
-  </td>
-</tr>
-<tr>
-  <td>
-  --master_detector=VALUE
-  </td>
-  <td>
-The symbol name of the master detector to use. This symbol should exist in a
-module specified through the <code>--modules</code> flag. Cannot be used in
-conjunction with <code>--master</code>.
-  </td>
-</tr>
-<tr>
-  <td>
-    --nvidia_gpu_devices=VALUE
-  </td>
-  <td>
-A comma-separated list of Nvidia GPU devices. When <code>gpus</code> is specified
-in the <code>--resources</code> flag, this flag determines which GPU devices will
-be made available. The devices should be listed as numbers that
-correspond to Nvidia's NVML device enumeration (as seen by running the
-command <code>nvidia-smi</code> on an Nvidia GPU equipped system). The GPUs
-listed will only be isolated if the <code>--isolation</code> flag contains the
-string <code>gpu/nvidia</code>.
-  </td>
-</tr>
-<tr>
-  <td>
-    --network_cni_plugins_dir=VALUE
-  </td>
-  <td>
-Directory path of the CNI plugin binaries. The <code>network/cni</code>
-isolator will find CNI plugins under this directory so that it can execute
-the plugins to add/delete container from the CNI networks. It is the operator's
-responsibility to install the CNI plugin binaries in the specified directory.
-  </td>
-</tr>
-<tr>
-  <td>
-    --network_cni_config_dir=VALUE
-  </td>
-  <td>
-Directory path of the CNI network configuration files. For each network that
-containers launched in Mesos agent can connect to, the operator should install
-a network configuration file in JSON format in the specified directory.
-  </td>
-</tr>
-<tr>
-  <td>
-    --oversubscribed_resources_interval=VALUE
-  </td>
-  <td>
-The agent periodically updates the master with the current estimation
-about the total amount of oversubscribed resources that are allocated
-and available. The interval between updates is controlled by this flag.
-(default: 15secs)
-  </td>
-</tr>
-<tr>
-  <td>
-    --perf_duration=VALUE
-  </td>
-  <td>
-Duration of a perf stat sample. The duration must be less
-than the <code>perf_interval</code>. (default: 10secs)
-  </td>
-</tr>
-<tr>
-  <td>
-    --perf_events=VALUE
-  </td>
-  <td>
-List of command-separated perf events to sample for each container
-when using the perf_event isolator. Default is none.
-Run command <code>perf list</code> to see all events. Event names are
-sanitized by downcasing and replacing hyphens with underscores
-when reported in the PerfStatistics protobuf, e.g., <code>cpu-cycles</code>
-becomes <code>cpu_cycles</code>; see the PerfStatistics protobuf for all names.
-  </td>
-</tr>
-<tr>
-  <td>
-    --perf_interval=VALUE
-  </td>
-  <td>
-Interval between the start of perf stat samples. Perf samples are
-obtained periodically according to <code>perf_interval</code> and the most
-recently obtained sample is returned rather than sampling on
-demand. For this reason, <code>perf_interval</code> is independent of the
-resource monitoring interval. (default: 60secs)
-  </td>
-</tr>
-<tr>
-  <td>
-    --qos_controller=VALUE
-  </td>
-  <td>
-The name of the QoS Controller to use for oversubscription.
-  </td>
-</tr>
-<tr>
-  <td>
-    --qos_correction_interval_min=VALUE
-  </td>
-  <td>
-The agent polls and carries out QoS corrections from the QoS
-Controller based on its observed performance of running tasks.
-The smallest interval between these corrections is controlled by
-this flag. (default: 0secs)
-  </td>
-</tr>
-<tr>
-  <td>
-    --recover=VALUE
-  </td>
-  <td>
-Whether to recover status updates and reconnect with old executors.
-Valid values for <code>recover</code> are
-reconnect: Reconnect with any old live executors.
-cleanup  : Kill any old live executors and exit.
-           Use this option when doing an incompatible agent
-           or executor upgrade!). (default: reconnect)
-  </td>
-</tr>
-<tr>
-  <td>
-    --recovery_timeout=VALUE
-  </td>
-  <td>
-Amount of time allotted for the agent to recover. If the agent takes
-longer than recovery_timeout to recover, any executors that are
-waiting to reconnect to the agent will self-terminate.
-(default: 15mins)
-  </td>
-</tr>
-<tr>
-  <td>
-    --registration_backoff_factor=VALUE
-  </td>
-  <td>
-Agent initially picks a random amount of time between <code>[0, b]</code>, where
-<code>b = registration_backoff_factor</code>, to (re-)register with a new master.
-Subsequent retries are exponentially backed off based on this
-interval (e.g., 1st retry uses a random value between <code>[0, b * 2^1]</code>,
-2nd retry between <code>[0, b * 2^2]</code>, 3rd retry between <code>[0, b * 2^3]</code>,
-etc) up to a maximum of 1mins (default: 1secs)
-  </td>
-</tr>
-<tr>
-  <td>
-    --resource_estimator=VALUE
-  </td>
-  <td>
-The name of the resource estimator to use for oversubscription.
-  </td>
-</tr>
-<tr>
-  <td>
-    --resources=VALUE
-  </td>
-  <td>
-Total consumable resources per agent. Can be provided in JSON format
-or as a semicolon-delimited list of key:value pairs, with the role
-optionally specified.
-<p/>
-As a key:value list:
-<code>name(role):value;name:value...</code>
-<p/>
-To use JSON, pass a JSON-formatted string or use
-<code>--resources=filepath</code> to specify the resources via a file containing
-a JSON-formatted string. 'filepath' can be of the form
-<code>file:///path/to/file</code> or <code>/path/to/file</code>.
-<p/>
-Example JSON:
-<pre><code>[
-  {
-    "name": "cpus",
-    "type": "SCALAR",
-    "scalar": {
-      "value": 24
-    }
-  },
-  {
-    "name": "mem",
-    "type": "SCALAR",
-    "scalar": {
-      "value": 24576
-    }
-  }
-]</code></pre>
-  </td>
-</tr>
-<tr>
-  <td>
-    --resource_provider_config_dir=VALUE
-  </td>
-  <td>
-Path to a directory that contains local resource provider configs.
-Each file in the config dir should contain a JSON object representing
-a <code>ResourceProviderInfo</code> object. Each local resource
-provider provides resources that are local to the agent. It is also
-responsible for handling operations on the resources it provides.
-Please note that <code>resources</code> field might not need to be
-specified if the resource provider determines the resources
-automatically.
-<p/>
-Example config file in this directory:
-<pre><code>{
-  "type": "org.mesos.apache.rp.local.storage",
-  "name": "lvm"
-}</code></pre>
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]revocable_cpu_low_priority
-  </td>
-  <td>
-Run containers with revocable CPU at a lower priority than
-normal containers (non-revocable cpu). Currently only
-supported by the cgroups/cpu isolator. (default: true)
-  </td>
-</tr>
-<tr>
-  <td>
-    --runtime_dir
-  </td>
-  <td>
-Path of the agent runtime directory. This is where runtime data
-is stored by an agent that it needs to persist across crashes (but
-not across reboots). This directory will be cleared on reboot.
-(Example: <code>/var/run/mesos</code>)
-  </td>
-</tr>
-<tr>
-  <td>
-    --sandbox_directory=VALUE
-  </td>
-  <td>
-The absolute path for the directory in the container where the
-sandbox is mapped to.
-(default: /mnt/mesos/sandbox)
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]disallow_sharing_agent_pid_namespace
-  </td>
-  <td>
-If set to <code>true</code>, each top-level container will have its own pid
-namespace, and if the framework requests to share the agent pid namespace for
-the top level container, the container launch will be rejected. If set to
-<code>false</code>, the top-level containers will share the pid namespace with
-agent if the framework requests it. This flag will be ignored if the
-`namespaces/pid` isolator is not enabled.
-(default: false)
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]strict
-  </td>
-  <td>
-If <code>strict=true</code>, any and all recovery errors are considered fatal.
-If <code>strict=false</code>, any expected errors (e.g., agent cannot recover
-information about an executor, because the agent died right before
-the executor registered.) during recovery are ignored and as much
-state as possible is recovered.
-(default: true)
-  </td>
-</tr>
-<tr>
-  <td>
-    --secret_resolver=VALUE
-  </td>
-  <td>
-The name of the secret resolver module to use for resolving
-environment and file-based secrets. If this flag is not specified,
-the default behavior is to resolve value-based secrets and error on
-reference-based secrets.
-  </td>
-</tr>
-
-<tr>
-  <td>
-    --[no-]switch_user
-  </td>
-  <td>
-If set to <code>true</code>, the agent will attempt to run tasks as
-the <code>user</code> who submitted them (as defined in <code>FrameworkInfo</code>)
-(this requires <code>setuid</code> permission and that the given <code>user</code>
-exists on the agent).
-If the user does not exist, an error occurs and the task will fail.
-If set to <code>false</code>, tasks will be run as the same user as the Mesos
-agent process.
-<b>NOTE</b>: This feature is not yet supported on Windows agent, and
-therefore the flag currently does not exist on that platform. (default: true)
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]systemd_enable_support
-  </td>
-  <td>
-Top level control of systemd support. When enabled, features such as
-executor life-time extension are enabled unless there is an explicit
-flag to disable these (see other flags). This should be enabled when
-the agent is launched as a systemd unit.
-(default: true)
-  </td>
-</tr>
-<tr>
-  <td>
-    --systemd_runtime_directory=VALUE
-  </td>
-  <td>
-The path to the systemd system run time directory.
-(default: /run/systemd/system)
-  </td>
-</tr>
-</table>
-
-
-<p><em>Flags available when configured with <code>--with-network-isolator</code></em></p>
-
-<table class="table table-striped">
-  <thead>
-    <tr>
-      <th width="30%">
-        Flag
-      </th>
-      <th>
-        Explanation
-      </th>
-    </tr>
-  </thead>
-<tr>
-  <td>
-    --ephemeral_ports_per_container=VALUE
-  </td>
-  <td>
-Number of ephemeral ports allocated to a container by the network
-isolator. This number has to be a power of 2. This flag is used
-for the <code>network/port_mapping</code> isolator. (default: 1024)
-  </td>
-</tr>
-<tr>
-  <td>
-    --eth0_name=VALUE
-  </td>
-  <td>
-The name of the public network interface (e.g., <code>eth0</code>). If it is
-not specified, the network isolator will try to guess it based
-on the host default gateway. This flag is used for the
-<code>network/port_mapping</code> isolator.
-  </td>
-</tr>
-<tr>
-  <td>
-    --lo_name=VALUE
-  </td>
-  <td>
-The name of the loopback network interface (e.g., lo). If it is
-not specified, the network isolator will try to guess it. This
-flag is used for the <code>network/port_mapping</code> isolator.
-  </td>
-</tr>
-<tr>
-  <td>
-    --egress_rate_limit_per_container=VALUE
-  </td>
-  <td>
-The limit of the egress traffic for each container, in Bytes/s.
-If not specified or specified as zero, the network isolator will
-impose no limits to containers' egress traffic throughput.
-This flag uses the Bytes type (defined in stout) and is used for
-the <code>network/port_mapping</code> isolator.
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]egress_unique_flow_per_container
-  </td>
-  <td>
-Whether to assign an individual flow for each container for the
-egress traffic. This flag is used for the <code>network/port_mapping</code>
-isolator. (default: false)
-  </td>
-</tr>
-<tr>
-  <td>
-    --egress_flow_classifier_parent=VALUE
-  </td>
-  <td>
-When <code>egress_unique_flow_per_container</code> is enabled, we need to install
-a flow classifier (fq_codel) qdisc on egress side. This flag specifies
-where to install it in the hierarchy. By default, we install it at root.
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]network_enable_socket_statistics_summary
-  </td>
-  <td>
-Whether to collect socket statistics summary for each container.
-This flag is used for the <code>network/port_mapping</code> isolator.
-(default: false)
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]network_enable_socket_statistics_details
-  </td>
-  <td>
-Whether to collect socket statistics details (e.g., TCP RTT) for
-each container. This flag is used for the <code>network/port_mapping</code>
-isolator. (default: false)
-  </td>
-</tr>
-<tr>
-  <td>
-    --[no-]network_enable_snmp_statistics
-  </td>
-  <td>
-Whether to collect SNMP statistics details (e.g., TCPRetransSegs) for
-each container. This flag is used for the 'network/port_mapping'
-isolator. (default: false)
-  </td>
-</tr>
-</table>
-
-
-<p><em>XFS disk isolator flags available when configured with
-<code>--enable-xfs-disk-isolator</code></em></p>
-
-<table class="table table-striped">
-  <thead>
-    <tr>
-      <th width="30%">
-        Flag
-      </th>
-      <th>
-        Explanation
-      </th>
-    </tr>
-  </thead>
-<tr>
-  <td>
-    --xfs_project_range=VALUE
-  </td>
-<td>
-The ranges of XFS project IDs that the isolator can use to track disk
-quotas for container sandbox directories. Valid project IDs range from
-1 to max(uint32). (default `[5000-10000]`)
-</td>
-</tr>
-</table>
-
+<p>See <a href="/documentation/latest/./configuration/agent/">configuration/agent.md</a>.</p>
 
 <h2>Libprocess Options</h2>
 
-<p><em>The bundled libprocess library can be controlled with the following environment variables.</em></p>
-
-<table class="table table-striped">
-  <thead>
-    <tr>
-      <th width="30%">
-        Variable
-      </th>
-      <th>
-        Explanation
-      </th>
-    </tr>
-  </thead>
-  <tr>
-    <td>
-      LIBPROCESS_IP
-    </td>
-    <td>
-      Sets the IP address for communication to and from libprocess.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      LIBPROCESS_PORT
-    </td>
-    <td>
-      Sets the port for communication to and from libprocess.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      LIBPROCESS_ADVERTISE_IP
-    </td>
-    <td>
-      If set, this provides the IP address that will be advertised to
-      the outside world for communication to and from libprocess.
-      This is useful, for example, for containerized tasks in which
-      communication is bound locally to a non-public IP that will be
-      inaccessible to the master.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      LIBPROCESS_ADVERTISE_PORT
-    </td>
-    <td>
-      If set, this provides the port that will be advertised to the
-      outside world for communication to and from libprocess. Note that
-      this port will not actually be bound (the local LIBPROCESS_PORT
-      will be), so redirection to the local IP and port must be
-      provided separately.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      LIBPROCESS_REQUIRE_PEER_ADDRESS_IP_MATCH
-    </td>
-    <td>
-      If set, the IP address portion of the libprocess UPID in
-      incoming messages is required to match the IP address
-      of the socket from which the message was sent. This can be a
-      security enhancement since it prevents unauthorized senders
-      impersonating other libprocess actors. This check may
-      break configurations that require setting LIBPROCESS_IP,
-      or LIBPROCESS_ADVERTISE_IP. Additionally, multi-homed
-      configurations may be affected since the address on
-      which libprocess is listening may not match the address from
-      which libprocess connects to other actors.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      LIBPROCESS_ENABLE_PROFILER
-    </td>
-    <td>
-      To enable the profiler, this variable must be set to 1. Note that this
-      variable will only work if Mesos has been configured with
-      <code>--enable-perftools</code>.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      LIBPROCESS_METRICS_SNAPSHOT_ENDPOINT_RATE_LIMIT
-    </td>
-    <td>
-      If set, this variable can be used to configure the rate limit
-      applied to the /metrics/snapshot endpoint. The format is
-      `<number of requests>/<interval duration>`.
-      Examples: `10/1secs`, `100/10secs`, etc.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      LIBPROCESS_NUM_WORKER_THREADS
-    </td>
-    <td>
-      If set to an integer value in the range 1 to 1024, it overrides
-      the default setting of the number of libprocess worker threads,
-      which is the maximum of 8 and the number of cores on the machine.
-    </td>
-  </tr>
-</table>
-
-
-<h2>Mesos Autotools Build Configuration Options</h2>
-
-<h3>Autotools <code>configure</code> script options</h3>
-
-<table class="table table-striped">
-  <thead>
-    <tr>
-      <th width="30%">
-        Flag
-      </th>
-      <th>
-        Explanation
-      </th>
-    </tr>
-  </thead>
-  <tr>
-    <td>
-      --enable-static[=PKGS]
-    </td>
-    <td>
-      Build static libraries. [default=yes]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --enable-dependency-tracking
-    </td>
-    <td>
-      Do not reject slow dependency extractors.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --disable-dependency-tracking
-    </td>
-    <td>
-      Speeds up one-time build.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --enable-silent-rules
-    </td>
-    <td>
-      Less verbose build output (undo: "make V=1").
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --disable-silent-rules
-    </td>
-    <td>
-      Verbose build output (undo: "make V=0").
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --disable-maintainer-mode
-    </td>
-    <td>
-      Disable make rules and dependencies not useful (and sometimes confusing)
-      to the casual installer.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --enable-shared[=PKGS]
-    </td>
-    <td>
-      Build shared libraries. [default=yes]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --enable-fast-install[=PKGS]
-    </td>
-    <td>
-      Optimize for fast installation. [default=yes]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --disable-libtool-lock
-    </td>
-    <td>
-      Avoid locking. Note that this might break parallel builds.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --disable-bundled
-    </td>
-    <td>
-      Configures Mesos to build against preinstalled dependencies
-      instead of bundled libraries.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --disable-bundled-pip
-    </td>
-    <td>
-      Excludes building and using the bundled pip package in lieu of an
-      installed version in <code>PYTHONPATH</code>.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --disable-bundled-setuptools
-    </td>
-    <td>
-      Excludes building and using the bundled setuptools package in lieu of an
-      installed version in <code>PYTHONPATH</code>.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --disable-bundled-wheel
-    </td>
-    <td>
-      Excludes building and using the bundled wheel package in lieu of an
-      installed version in <code>PYTHONPATH</code>.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --enable-debug
-    </td>
-    <td>
-      Whether debugging is enabled. If CFLAGS/CXXFLAGS are set, this
-      option won't change them. [default=no]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --disable-java
-    </td>
-    <td>
-      Don't build Java bindings.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --enable-libevent
-    </td>
-    <td>
-      Use <a href="https://github.com/libevent/libevent">libevent</a>
-      instead of libev for the libprocess event loop. Note that the libevent
-      version 2+ development package is required. [default=no]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --enable-install-module-dependencies
-    </td>
-    <td>
-      Install third-party bundled dependencies required for module development.
-      [default=no]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --enable-optimize
-    </td>
-    <td>
-      Whether optimizations are enabled. If CFLAGS/CXXFLAGS are set,
-      this option won't change them. [default=no]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --enable-perftools
-    </td>
-    <td>
-      Whether profiling with Google perftools is enabled. [default=no]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --enable-parallel-test-execution
-    </td>
-    <td>
-      Whether to attempt to run tests in parallel.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --disable-python
-    </td>
-    <td>
-      Don't build Python bindings.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --disable-python-dependency-install
-    </td>
-    <td>
-      When the python packages are installed during make install, no external
-      dependencies will be downloaded or installed.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --enable-ssl
-    </td>
-    <td>
-      Enable <a href="/documentation/latest/ssl">SSL</a> for libprocess
-      communication. Note that <code>--enable-libevent</code> is currently
-      required for SSL functionality. [default=no]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --enable-static-unimplemented
-    </td>
-    <td>
-      Generate static assertion errors for unimplemented functions. [default=no]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --enable-tests-install
-    </td>
-    <td>
-      Build and install tests and their helper tools. [default=no]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --enable-xfs-disk-isolator
-    </td>
-    <td>
-      Builds the XFS disk isolator. [default=no]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --disable-zlib
-    </td>
-    <td>
-      Disables zlib compression, which means the webui will be far less
-      responsive; not recommended.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --enable-lock-free-event-queue
-    </td>
-    <td>
-      Enables the lock-free event queue to be used in libprocess which
-      greatly improves message passing performance!
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --disable-werror
-    </td>
-    <td>
-      Disables treating compiler warnings as fatal errors.
-    </td>
-  </tr>
-</table>
-
-
-<h3>Autotools <code>configure</code> script optional package flags</h3>
+<p>See <a href="/documentation/latest/./configuration/libprocess/">configuration/libprocess.md</a>.</p>
 
-<table class="table table-striped">
-  <thead>
-    <tr>
-      <th width="30%">
-        Flag
-      </th>
-      <th>
-        Explanation
-      </th>
-    </tr>
-  </thead>
-  <tr>
-    <td>
-      --with-gnu-ld
-    </td>
-    <td>
-      Assume the C compiler uses GNU <code>ld</code>. [default=no]
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-sysroot=DIR
-    </td>
-    <td>
-      Search for dependent libraries within <code>DIR</code>
-      (or the compiler's sysroot if not specified).
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-apr=[=DIR]
-    </td>
-    <td>
-      Specify where to locate the apr-1 library.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-boost[=DIR]
-    </td>
-    <td>
-      Excludes building and using the bundled Boost package in lieu of an
-      installed version at a location prefixed by the given path.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-concurrentqueue[=DIR]
-    </td>
-    <td>
-      Excludes building and using the bundled concurrentqueue package in lieu
-      of an installed version at a location prefixed by the given path.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-curl=[=DIR]
-    </td>
-    <td>
-      Specify where to locate the curl library.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-elfio[=DIR]
-    </td>
-    <td>
-      Excludes building and using the bundled ELFIO package in lieu of an
-      installed version at a location prefixed by the given path.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-glog[=DIR]
-    </td>
-    <td>
-      excludes building and using the bundled glog package in lieu of an
-      installed version at a location prefixed by the given path.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-gmock[=DIR]
-    </td>
-    <td>
-      Excludes building and using the bundled gmock package in lieu of an
-      installed version at a location prefixed by the given path.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-http-parser[=DIR]
-    </td>
-    <td>
-      Excludes building and using the bundled http-parser package in lieu of an
-      installed version at a location prefixed by the given path.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-leveldb[=DIR]
-    </td>
-    <td>
-      Excludes building and using the bundled LevelDB package in lieu of an
-      installed version at a location prefixed by the given path.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-libev[=DIR]
-    </td>
-    <td>
-      Excludes building and using the bundled libev package in lieu of an
-      installed version at a location prefixed by the given path.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-libevent=[=DIR]
-    </td>
-    <td>
-      Specify where to locate the libevent library.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-libprocess=[=DIR]
-    </td>
-    <td>
-      Specify where to locate the libprocess library.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-network-isolator
-    </td>
-    <td>
-      Builds the network isolator.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-nl=[DIR]
-    </td>
-    <td>
-      Specify where to locate the
-      <a href="https://www.infradead.org/~tgr/libnl/">libnl3</a> library,
-      which is required for the network isolator.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-nvml[=DIR]
-    </td>
-    <td>
-      Excludes building and using the bundled NVML headers in lieu of an
-      installed version at a location prefixed by the given path.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-picojson[=DIR]
-    </td>
-    <td>
-      Excludes building and using the bundled picojson package in lieu of an
-      installed version at a location prefixed by the given path.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-protobuf[=DIR]
-    </td>
-    <td>
-      Excludes building and using the bundled protobuf package in lieu of an
-      installed version at a location prefixed by the given path.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-sasl=[=DIR]
-    </td>
-    <td>
-      Specify where to locate the sasl2 library.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-ssl=[=DIR]
-    </td>
-    <td>
-      Specify where to locate the ssl library.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-stout=[=DIR]
-    </td>
-    <td>
-      Specify where to locate stout library.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-svn=[=DIR]
-    </td>
-    <td>
-      Specify where to locate the svn-1 library.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-zlib=[=DIR]
-    </td>
-    <td>
-      Specify where to locate the zlib library.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      --with-zookeeper[=DIR]
-    </td>
-    <td>
-      Excludes building and using the bundled ZooKeeper package in lieu of an
-      installed version at a location prefixed by the given path.
-    </td>
-  </tr>
-</table>
+<h1>Mesos Build Configuration</h1>
 
+<h2>Autotools Options</h2>
 
-<h3>Environment variables which affect the Autotools <code>configure</code> script</h3>
+<p>If you have special compilation requirements, please refer to <code>./configure
+--help</code> when configuring Mesos.</p>
 
-<p>Use these variables to override the choices made by <code>configure</code> or to help
-it to find libraries and programs with nonstandard names/locations.</p>
+<p>See <a href="/documentation/latest/./configuration/autotools/">configuration/autotools.md</a>.</p>
 
-<table class="table table-striped">
-  <thead>
-    <tr>
-      <th width="30%">
-        Variable
-      </th>
-      <th>
-        Explanation
-      </th>
-    </tr>
-  </thead>
-  <tr>
-    <td>
-      JAVA_HOME
-    </td>
-    <td>
-      Location of Java Development Kit (JDK).
-    </td>
-  </tr>
-  <tr>
-    <td>
-      JAVA_CPPFLAGS
-    </td>
-    <td>
-      Preprocessor flags for JNI.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      JAVA_JVM_LIBRARY
-    </td>
-    <td>
-      Full path to <code>libjvm.so</code>.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      MAVEN_HOME
-    </td>
-    <td>
-      Looks for <code>mvn</code> at <code>MAVEN_HOME/bin/mvn</code>.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      PROTOBUF_JAR
-    </td>
-    <td>
-      Full path to protobuf jar on prefixed builds.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      PYTHON
-    </td>
-    <td>
-      Which Python interpreter to use.
-    </td>
-  </tr>
-  <tr>
-    <td>
-      PYTHON_VERSION
-    </td>
-    <td>
-      The installed Python version to use, for example '2.3'. This string will
-      be appended to the Python interpreter canonical name.
-    </td>
-  </tr>
-</table>
+<h2>CMake Options</h2>
 
+<p>See <a href="/documentation/latest/./configuration/cmake/">configuration/cmake.md</a>.</p>
 
   </div>
 </div>

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/a5fb0e1c/content/documentation/latest/configuration/libprocess/index.html
----------------------------------------------------------------------
diff --git a/content/documentation/latest/configuration/libprocess/index.html b/content/documentation/latest/configuration/libprocess/index.html
new file mode 100644
index 0000000..4321d3f
--- /dev/null
+++ b/content/documentation/latest/configuration/libprocess/index.html
@@ -0,0 +1,261 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <title>Apache Mesos - Libprocess Options</title>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+    <meta property="og:locale" content="en_US"/>
+    <meta property="og:type" content="website"/>
+    <meta property="og:title" content="Apache Mesos"/>
+    <meta property="og:site_name" content="Apache Mesos"/>
+    <meta property="og:url" content="http://mesos.apache.org/"/>
+    <meta property="og:image" content="http://mesos.apache.org/assets/img/mesos_logo_fb_preview.png"/>
+    <meta property="og:description"
+          content="Apache Mesos abstracts resources away from machines,
+                   enabling fault-tolerant and elastic distributed systems
+                   to easily be built and run effectively."/>
+
+    <meta name="twitter:card" content="summary"/>
+    <meta name="twitter:site" content="@ApacheMesos"/>
+    <meta name="twitter:title" content="Apache Mesos"/>
+    <meta name="twitter:image" content="http://mesos.apache.org/assets/img/mesos_logo_fb_preview.png"/>
+    <meta name="twitter:description"
+          content="Apache Mesos abstracts resources away from machines,
+                   enabling fault-tolerant and elastic distributed systems
+                   to easily be built and run effectively."/>
+
+    <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
+    <link rel="alternate" type="application/atom+xml" title="Apache Mesos Blog" href="/blog/feed.xml">
+    <link href="../../../../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" />
+
+    
+
+    <!-- Google Analytics Magic -->
+    <script type="text/javascript">
+    var _gaq = _gaq || [];
+    _gaq.push(['_setAccount', 'UA-20226872-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>
+    <!-- magical breadcrumbs -->
+    <div class="topnav">
+      <div class="container">
+        <ul class="breadcrumb">
+          <li>
+            <div class="dropdown">
+              <a data-toggle="dropdown" href="#">Apache Software Foundation <span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
+                <li><a href="http://www.apache.org">Apache Homepage</a></li>
+                <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>
+          </li>
+
+          <li><a href="http://mesos.apache.org">Apache Mesos</a></li>
+          
+          
+          <li><a href="/documentation
+/">Documentation
+</a></li>
+          
+          
+        </ul><!-- /.breadcrumb -->
+      </div><!-- /.container -->
+    </div><!-- /.topnav -->
+
+    <!-- navbar excitement -->
+<div class="navbar navbar-default navbar-static-top" role="navigation">
+  <div class="container">
+    <div class="navbar-header">
+      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#mesos-menu" aria-expanded="false">
+      <span class="sr-only">Toggle navigation</span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      </button>
+      <a class="navbar-brand" href="/"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo"/></a>
+    </div><!-- /.navbar-header -->
+
+    <div class="navbar-collapse collapse" id="mesos-menu">
+      <ul class="nav navbar-nav navbar-right">
+        <li><a href="/gettingstarted/">Getting Started</a></li>
+        <li><a href="/blog/">Blog</a></li>
+        <li><a href="/documentation/latest/">Documentation</a></li>
+        <li><a href="/downloads/">Downloads</a></li>
+        <li><a href="/community/">Community</a></li>
+      </ul>
+    </div><!-- /#mesos-menu -->
+  </div><!-- /.container -->
+</div><!-- /.navbar -->
+
+<div class="content">
+  <div class="container">
+    <div class="row-fluid">
+  <div class="col-md-4">
+    <h4>If you're new to Mesos</h4>
+    <p>See the <a href="/gettingstarted/">getting started</a> page for more
+       information about downloading, building, and deploying Mesos.</p>
+
+    <h4>If you'd like to get involved or you're looking for support</h4>
+    <p>See our <a href="/community/">community</a> page for more details.</p>
+  </div>
+  <div class="col-md-8">
+    <h1>Libprocess Options</h1>
+
+<p><em>The bundled libprocess library can be controlled with the following environment variables.</em></p>
+
+<table class="table table-striped">
+  <thead>
+    <tr>
+      <th width="30%">
+        Variable
+      </th>
+      <th>
+        Explanation
+      </th>
+    </tr>
+  </thead>
+  <tr>
+    <td>
+      LIBPROCESS_IP
+    </td>
+    <td>
+      Sets the IP address for communication to and from libprocess.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      LIBPROCESS_PORT
+    </td>
+    <td>
+      Sets the port for communication to and from libprocess.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      LIBPROCESS_ADVERTISE_IP
+    </td>
+    <td>
+      If set, this provides the IP address that will be advertised to
+      the outside world for communication to and from libprocess.
+      This is useful, for example, for containerized tasks in which
+      communication is bound locally to a non-public IP that will be
+      inaccessible to the master.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      LIBPROCESS_ADVERTISE_PORT
+    </td>
+    <td>
+      If set, this provides the port that will be advertised to the
+      outside world for communication to and from libprocess. Note that
+      this port will not actually be bound (the local LIBPROCESS_PORT
+      will be), so redirection to the local IP and port must be
+      provided separately.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      LIBPROCESS_REQUIRE_PEER_ADDRESS_IP_MATCH
+    </td>
+    <td>
+      If set, the IP address portion of the libprocess UPID in
+      incoming messages is required to match the IP address
+      of the socket from which the message was sent. This can be a
+      security enhancement since it prevents unauthorized senders
+      impersonating other libprocess actors. This check may
+      break configurations that require setting LIBPROCESS_IP,
+      or LIBPROCESS_ADVERTISE_IP. Additionally, multi-homed
+      configurations may be affected since the address on
+      which libprocess is listening may not match the address from
+      which libprocess connects to other actors.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      LIBPROCESS_ENABLE_PROFILER
+    </td>
+    <td>
+      To enable the profiler, this variable must be set to 1. Note that this
+      variable will only work if Mesos has been configured with
+      <code>--enable-perftools</code>.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      LIBPROCESS_METRICS_SNAPSHOT_ENDPOINT_RATE_LIMIT
+    </td>
+    <td>
+      If set, this variable can be used to configure the rate limit
+      applied to the /metrics/snapshot endpoint. The format is
+      `<number of requests>/<interval duration>`.
+      Examples: `10/1secs`, `100/10secs`, etc.
+    </td>
+  </tr>
+  <tr>
+    <td>
+      LIBPROCESS_NUM_WORKER_THREADS
+    </td>
+    <td>
+      If set to an integer value in the range 1 to 1024, it overrides
+      the default setting of the number of libprocess worker threads,
+      which is the maximum of 8 and the number of cores on the machine.
+    </td>
+  </tr>
+</table>
+
+
+  </div>
+</div>
+
+  </div><!-- /.container -->
+</div><!-- /.content -->
+
+<hr>
+
+
+
+    <!-- footer -->
+    <div class="footer">
+      <div class="container">
+        <div class="col-md-4 social-blk">
+          <span class="social">
+            <a href="https://twitter.com/ApacheMesos"
+              class="twitter-follow-button"
+              data-show-count="false" data-size="large">Follow @ApacheMesos</a>
+            <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
+            <a href="https://twitter.com/intent/tweet?button_hashtag=mesos"
+              class="twitter-hashtag-button"
+              data-size="large"
+              data-related="ApacheMesos">Tweet #mesos</a>
+            <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
+          </span>
+        </div>
+
+        <div class="col-md-8 trademark">
+          <p>&copy; 2012-2017 <a href="http://apache.org">The Apache Software Foundation</a>.
+            Apache Mesos, the Apache feather logo, and the Apache Mesos project logo are trademarks of The Apache Software Foundation.
+          <p>
+        </div>
+      </div><!-- /.container -->
+    </div><!-- /.footer -->
+
+    <!-- JS -->
+    <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script>
+    <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script>
+  </body>
+</html>