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>© 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>© 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’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’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’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’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’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’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 “link” 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’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’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’s due to the difference between so-called “single-configuration generators”
+(such as GNU Make) and “multi-configuration generators” (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>© 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’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’s dependency graph are <em>much richer</em> compared to other
+build systems. CMake targets have the notion of ‘interfaces’, 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>’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` -> `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><INTERFACE|PUBLIC|PRIVATE></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><target>-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
+“global” 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’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">“Building debug or release configurations”</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>$<$<CONFIG:Debug>:DEBUG_MODE></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’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>’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’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: “Assertion failed, hunk, file patch.c, line
+343”. 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>© 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>© 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 >= 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 < 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>© 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>© 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>© 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’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’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’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’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 “link” 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’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’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’s due to the difference between so-called “single-configuration generators”
+(such as GNU Make) and “multi-configuration generators” (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>© 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’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’s dependency graph are <em>much richer</em> compared to other
+build systems. CMake targets have the notion of ‘interfaces’, 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>’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` -> `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><INTERFACE|PUBLIC|PRIVATE></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><target>-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
+“global” 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’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">“Building debug or release configurations”</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>$<$<CONFIG:Debug>:DEBUG_MODE></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’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>’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’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: “Assertion failed, hunk, file patch.c, line
+343”. 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>© 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>© 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 >= 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 < 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 >= 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 < 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>© 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>