Added: mesos/site/publish/documentation/latest/mesos-containerizer/index.html URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/mesos-containerizer/index.html?rev=1638021&view=auto ============================================================================== --- mesos/site/publish/documentation/latest/mesos-containerizer/index.html (added) +++ mesos/site/publish/documentation/latest/mesos-containerizer/index.html Tue Nov 11 04:11:00 2014 @@ -0,0 +1,181 @@ +<!DOCTYPE html> +<!-- + + ______ __ + /\ _ \ /\ \ + \ \ \L\ \ _____ __ ___\ \ \___ __ + \ \ __ \/\ '__`\ /'__`\ /'___\ \ _ `\ /'__`\ + \ \ \/\ \ \ \L\ \/\ \L\.\_/\ \__/\ \ \ \ \/\ __/ + \ \_\ \_\ \ ,__/\ \__/.\_\ \____\\ \_\ \_\ \____\ + \/_/\/_/\ \ \/ \/__/\/_/\/____/ \/_/\/_/\/____/ + \ \_\ + \/_/ + + /'\_/`\ + /\ \ __ ____ ___ ____ + \ \ \__\ \ /'__`\ /',__\ / __`\ /',__\ + \ \ \_/\ \/\ __//\__, `\/\ \L\ \/\__, `\ + \ \_\\ \_\ \____\/\____/\ \____/\/\____/ + \/_/ \/_/\/____/\/___/ \/___/ \/___/ + +--> +<html> + <head> + <meta charset="utf-8"> + <title></title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta name="description" content=""> + <meta name="author" content=""> + + <!-- Le styles --> + <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet"> + + <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"> + <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> + + <!-- navbar excitement --> + <div class="navbar navbar-static-top" role="navigation"> + <div class="navbar-inner"> + <div class="container"> + <a href="/" class="logo"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo" /></a> + <div class="nav-collapse"> + <ul class="nav nav-pills navbar-right"> + <li><a href="/gettingstarted/">Getting Started</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> + </div> + </div> + </div><!-- /.navbar --> + + <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 Containerizer</h1> + +<p>The MesosContainerizer provides lightweight containerization and +resource isolation of executors using Linux-specific functionality +such as control cgroups and namespaces. It is composable so operators +can selectively enable different isolators.</p> + +<p>It also provides basic support for POSIX systems (e.g., OSX) but +without any actual isolation, only resource usage reporting.</p> + +<h3>Shared Filesystem</h3> + +<p>The SharedFilesystem isolator can optionally be used on Linux hosts to +enable modifications to each container’s view of the shared +filesystem.</p> + +<p>The modifications are specified in the ContainerInfo included in the +ExecutorInfo, either by a framework or by using the +–default_container_info slave flag.</p> + +<p>ContainerInfo specifies Volumes which map parts of the shared +filesystem (host_path) into the container’s view of the filesystem +(container_path), as read-write or read-only. The host_path can be +absolute, in which case it will make the filesystem subtree rooted at +host_path also accessible under container_path for each container. +If host_path is relative then it is considered as a directory +relative to the executor’s work directory. The directory will be +created and permissions copied from the corresponding directory (which +must exist) in the shared filesystem.</p> + +<p>The primary use-case for this isolator is to selectively make parts of +the shared filesystem private to each container. For example, a +private “/tmp” directory can be achieved with host_path=“tmp” and +container_path=“/tmp” which will create a directory “tmp” inside the +executor’s work directory (mode 1777) and simultaneously mount it as +/tmp inside the container. This is transparent to processes running +inside the container. Containers will not be able to see the host’s +/tmp or any other container’s /tmp.</p> + +<h3>Pid Namespace</h3> + +<p>The Pid Namespace isolator can be used to isolate each container in +a separate pid namespace with two main benefits: +1. Visibility: Processes running in the container (executor and + descendants) are unable to see or signal processes outside the + namespace. +2. Clean termination: Termination of the leading process in a pid + namespace will result in the kernel terminating all other processes + in the namespace.</p> + +<p>The Launcher will use (2) during destruction of a container in +preference to the freezer cgroup, avoiding known kernel issues related +to freezing cgroups under OOM conditions.</p> + +<p>/proc will be mounted for containers so tools such as ‘ps’ will work +correctly.</p> + + </div> +</div> + + + <hr> + + <!-- footer --> + <div class="footer"> + <p>© 2012-2014 <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><!-- /footer --> + + </div> <!-- /container --> + + <!-- 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> \ No newline at end of file
Added: mesos/site/publish/documentation/latest/modules/index.html URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/modules/index.html?rev=1638021&view=auto ============================================================================== --- mesos/site/publish/documentation/latest/modules/index.html (added) +++ mesos/site/publish/documentation/latest/modules/index.html Tue Nov 11 04:11:00 2014 @@ -0,0 +1,483 @@ +<!DOCTYPE html> +<!-- + + ______ __ + /\ _ \ /\ \ + \ \ \L\ \ _____ __ ___\ \ \___ __ + \ \ __ \/\ '__`\ /'__`\ /'___\ \ _ `\ /'__`\ + \ \ \/\ \ \ \L\ \/\ \L\.\_/\ \__/\ \ \ \ \/\ __/ + \ \_\ \_\ \ ,__/\ \__/.\_\ \____\\ \_\ \_\ \____\ + \/_/\/_/\ \ \/ \/__/\/_/\/____/ \/_/\/_/\/____/ + \ \_\ + \/_/ + + /'\_/`\ + /\ \ __ ____ ___ ____ + \ \ \__\ \ /'__`\ /',__\ / __`\ /',__\ + \ \ \_/\ \/\ __//\__, `\/\ \L\ \/\__, `\ + \ \_\\ \_\ \____\/\____/\ \____/\/\____/ + \/_/ \/_/\/____/\/___/ \/___/ \/___/ + +--> +<html> + <head> + <meta charset="utf-8"> + <title></title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta name="description" content=""> + <meta name="author" content=""> + + <!-- Le styles --> + <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet"> + + <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"> + <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> + + <!-- navbar excitement --> + <div class="navbar navbar-static-top" role="navigation"> + <div class="navbar-inner"> + <div class="container"> + <a href="/" class="logo"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo" /></a> + <div class="nav-collapse"> + <ul class="nav nav-pills navbar-right"> + <li><a href="/gettingstarted/">Getting Started</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> + </div> + </div> + </div><!-- /.navbar --> + + <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 Modules</h1> + +<p>Experimental support for Mesos modules was introduced in Mesos 0.21.0.</p> + +<h3>Disclaimer</h3> + +<ul> +<li><p>Use and development of Mesos modules is at own risk! Only graced modules +(modules that are part of Mesos distribution) are maintained by the Mesos +project.</p></li> +<li><p>Please direct all questions to the relevant module writer and/or write to [email protected]. Questions related to modules sent to user and dev list +will be redirected to the modules list.</p></li> +</ul> + + +<h2>What are Mesos modules?</h2> + +<p>Mesos modules provide a way to easily extend inner workings of Mesos by creating +and using shared libraries that are loaded on demand. Modules can be used to +customize Mesos without having to recompiling/relinking for each specific use +case. Modules can isolate external dependencies into separate libraries, thus +resulting into a smaller Mesos core. +Modules also make it easy to experiment with new features. +For example, imagine loadable allocators that contain a VM (Lua, Python, …) +which makes it possible to try out new allocator algorithms written in +scripting languages without forcing those dependencies into the project. +Finally, modules provide an easy way for third parties to easily extend Mesos +without having to know all the internal details.</p> + +<h2>Invoking Mesos modules</h2> + +<p>The command-line flag <code>--modules</code> is available for Mesos master, slave, and +tests to specify a list of modules to be loaded and be available to the internal +subsystems.</p> + +<p>Use <code>--modules=filepath</code> to specify the list of modules via a +file containing a JSON formatted string. ‘filepath’ can be +of the form ‘file:///path/to/file’ or ‘/path/to/file’.</p> + +<p>Use <code>--modules="{...}"</code> to specify the list of modules inline.</p> + +<h3>Example JSON strings:</h3> + +<ol> +<li><p>Load a library <code>libfoo.so</code> with two modules <code>org_apache_mesos_bar</code> and +<code>org_apache_mesos_baz</code>.</p> + +<pre><code>{ + "libraries": [ + { + "file": "/path/to/libfoo.so", + "modules": [ + { + "name": "org_apache_mesos_bar", + }, + { + "name": "org_apache_mesos_baz" + } + ] + } + ] +} +</code></pre></li> +<li><p>Load the module <code>org_apache_mesos_bar</code> from the library <code>foo</code> and pass +the command-line argument <code>X</code> with value <code>Y</code> (module <code>org_apache_mesos_baz</code> +is loaded without any command-line parameters):</p> + +<pre><code>{ + "libraries": [ + { + "name": "foo", + "modules": [ + { + "name": "org_apache_mesos_bar" + "parameters": [ + { + "key": "X", + "value": "Y", + } + ] + }, + { + "name": "org_apache_mesos_bar" + } + ] + } + ] +} +</code></pre></li> +<li><p>Specifying modules inline:</p> + +<pre><code>--modules='{"libraries":[{"file":"/path/to/libfoo.so", "modules":[{"name":"org_apache_mesos_bar"}]}]}' +</code></pre></li> +</ol> + + +<h3>Library names</h3> + +<p>For each library, at least one of the “file” or “path” parameter must be +specified. The “file” parameter may refer to a filename (e.g., “libfoo.so”), a +relative path (e.g., “myLibs/libfoo.so”), or an absolute path (e.g., +“/home/mesos/lib/libfoo.so”). The “name” parameter refers to a library name +(e.g., “foo”). If “name” is specified, it is automatically expanded to a proper +library name for the current platform (e.g., “foo” gets expanded to “libfoo.so” +on Linux, and “libfoo.dylib” on OS X).</p> + +<p>If a library path is not specified in the “file” parameter, the library is +searched in the standard library paths or directories pointed to by the +<code>LD_LIBRARY_PATH</code> (<code>DYLD_LIBRARY_PATH</code> on OS X) environment variable.</p> + +<p>If both “file” and “name” are specified, “name” is ignored.</p> + +<h2>What kinds of modules are supported?</h2> + +<p>Mesos currently only provides Isolator and Authentication modules. Additional +graced modules will be added in the near future.</p> + +<h2>Writing Mesos modules</h2> + +<h3>A HelloWorld module</h3> + +<p>The following snippet describes the implementation of a module named +“org_apache_mesos_bar” of “TestModule” kind:</p> + +<pre><code> #include <iostream> + #include "test_module.hpp" + + class TestModuleImpl : public TestModule + { + public: + TestModuleImpl() + { + std::cout << "HelloWorld!" << std::endl; + } + + virtual int foo(char a, long b) + { + return a + b; + } + + virtual int bar(float a, double b) + { + return a * b; + } + }; + + static TestModule* create() + { + return new TestModule(); + } + + static bool compatible() + { + return true; + } + + // Declares a module named 'example' of 'TestModule' kind. + // Mesos core binds the module instance pointer as needed. + // The compatible() hook is provided by the module for compatibility checks. + // The create() hook returns an object of type 'TestModule'. + mesos::modules::Module<TestModule> org_apache_mesos_TestModule( + MESOS_MODULE_API_VERSION, + MESOS_VERSION, + "Apache Mesos", + "[email protected]", + "This is a test module.", + compatible, + create); +</code></pre> + +<h3>Building a module</h3> + +<p> The following assumes that Mesos is installed in the standard location, i.e. + the Mesos dynamic library and header files are available. +<code> + g++ -lmesos -fpic -o test_module.o test_module.cpp + $ gcc -shared -o libtest_module.so test_module.o +</code></p> + +<h3>Testing a modules</h3> + +<p>Apart from testing the module by hand with explicit use of –modules flag, one +can run the entire mesos test suite with the given module. For example, the +following command will run the mesos test suite with the +<code>org_apache_mesos_TestCpuIsolator</code> module selected for isolation: +<code> +./bin/mesos-tests.sh --modules="/home/kapil/mesos/isolator-module/modules.json" --isolation="org_apache_mesos_TestCpuIsolator" +</code></p> + +<h3>Module naming convention</h3> + +<p>Each module name should be unique. Having duplicate module names in the Json +string will cause the process to abort.</p> + +<p>Therefore, we encourage module writers to name their modules according to Java +package naming scheme +(http://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html).</p> + +<p>For example:</p> + +<table> +<tr> +<th> Module Name </th> <th> Module Domain name </th> <th> Module Symbol Name </th> +</tr> + +<tr> +<td> foobar </td> <td> mesos.apache.org </td> <td> org_apache_mesos_foobar </td> +</tr> + +<tr> +<td> barBaz </td> <td> example.com </td> <td> com_example_barBaz </td> +</table> + + +<p>In short: +- Keep case of module name. +- Lower case and reverse domain. +- Separate with underscore. +- Do not simply use the kind name as module name. +- Different modules from the same organization still need different names.</p> + +<h2>Module Versioning and backwards compatibility</h2> + +<p>Before loading the above module, a dynamic library that contains the module +needs to be loaded into Mesos. This happens early in Mesos startup code. The +Mesos developer does not need to touch that code when introducing new module +kinds. However, the developer is responsible for registering what versions of +any given module are expected to remain compatible with Mesos as it progresses. +This information is maintained in a table in <code>src/module/manager.cpp</code>. It +contains an entry for every possible module kind that Mesos recognizes, each +with a corresponding Mesos release version number. This number needs to be +adjusted by the Mesos developer to reflect the current Mesos version whenever +compatibility between Mesos and modules that get compiled against it gets +broken. Given that module implementation for older Mesos versions can still be +written in the future, this may be impossible to tell and so in doubt it is best +to just bump the required module version to the current Mesos version. But if +one can be reasonably sure, assuming cooperative module developers, that a +certain kind of module will continue to function across several Mesos versions, +the table provides an easy way to specify this.</p> + +<p>For successfully loading the module, the following relationship +must exist between the various versions:</p> + +<p><code> kind version <= Library version <= Mesos version</code></p> + +<table> +<tr> +<td>Mesos </td> <td>kind version </td> <td> Library </td> <td>Is module loadable </td> <td>Reason </td> +</tr> + +<tr> +<td>0.18.0 </td> <td> 0.18.0 </td> <td> 0.18.0 </td> <td> yes </td> <td> </td> +</tr> + +<tr> +<td>0.29.0 </td> <td> 0.18.0 </td> <td> 0.18.0 </td> <td> yes </td> <td> </td> +</tr> + +<tr> +<td>0.29.0 </td> <td> 0.18.0 </td> <td> 0.21.0 </td> <td> yes </td> <td> </td> +</tr> + +<tr> +<td>0.18.0 </td> <td> 0.18.0 </td> <td> 0.29.0 </td> <td> NO </td> <td> Library compiled against a newer Mesos release. </td> +</tr> + +<tr> +<td>0.29.0 </td> <td> 0.21.0 </td> <td> 0.18.0 </td> <td> NO </td> <td> Module/Library older than the kind version supported by Mesos. </td> +<tr> +</tr> + +<tr> +<td>0.29.0 </td> <td> 0.29.0 </td> <td> 0.18.0 </td> <td> NO </td> <td> Module/Library older than the kind version supported by Mesos. </td> +</tr> +</table> + + +<h2>Mesos module API changes</h2> + +<p>Record of incompatible changes to the modules API.</p> + +<h3>Version 2</h3> + +<ul> +<li>Added support for module-specific command-line parameters.</li> +<li>Changed function signature for create().</li> +</ul> + + +<h3>Version 1</h3> + +<p>Initial version of the modules API.</p> + +<h2>Appendix:</h2> + +<h3>JSON Schema:</h3> + +<pre><code> { + "type":"object", + "required":false, + "properties":{ + "libraries": { + "type":"array", + "required":false, + "items": + { + "type":"object", + "required":false, + "properties":{ + "file": { + "type":"string", + "required":false + }, + "name": { + "type":"string", + "required":false + }, + "modules": { + "type":"array", + "required":false, + "items": + { + "type":"object", + "required":false, + "properties":{ + "name": { + "type":"string", + "required":true + }, + "parameters": { + "type":"array", + "required":false, + "items": + { + "type":"object", + "required":false, + "properties":{ + "key": { + "type":"string", + "required":true + }, + "value": { + "type":"string", + "required":true + } + } + } + } + } + } + } + } + } + } + } + } +</code></pre> + + </div> +</div> + + + <hr> + + <!-- footer --> + <div class="footer"> + <p>© 2012-2014 <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><!-- /footer --> + + </div> <!-- /container --> + + <!-- 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> \ No newline at end of file Modified: mesos/site/publish/documentation/latest/powered-by-mesos/index.html URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/powered-by-mesos/index.html?rev=1638021&r1=1638020&r2=1638021&view=diff ============================================================================== --- mesos/site/publish/documentation/latest/powered-by-mesos/index.html (original) +++ mesos/site/publish/documentation/latest/powered-by-mesos/index.html Tue Nov 11 04:11:00 2014 @@ -116,6 +116,8 @@ <li><a href="http://cloudphysics.com">CloudPhysics</a></li> <li><a href="http://www.conviva.com">Conviva</a></li> <li><a href="http://www.corvisacloud.com/">CorvisaCloud</a></li> +<li><a href="http://www.crpgl.lu">CRP-Gabriel Lippmann</a></li> +<li><a href="http://www.daemon.com.au">Daemon</a></li> <li><a href="http://www.devicescape.com">Devicescape</a></li> <li><a href="http://www.duedil.com">DueDil</a></li> <li><a href="http://www.ebay.com">eBay</a></li> @@ -140,6 +142,7 @@ <li><a href="http://www.pinkbike.com">Pinkbike</a></li> <li><a href="http://www.profitstars.com">ProfitStars</a></li> <li><a href="http://www.qubitproducts.com">Qubit</a></li> +<li><a href="http://revise.ly">Revisely</a></li> <li><a href="http://www.sailthru.com">Sailthru</a></li> <li><a href="http://www.sharethrough.com">Sharethrough</a></li> <li><a href="http://www.sigmoidanalytics.com/">Sigmoid Analytics</a></li> Modified: mesos/site/publish/documentation/latest/release-guide/index.html URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/release-guide/index.html?rev=1638021&r1=1638020&r2=1638021&view=diff ============================================================================== --- mesos/site/publish/documentation/latest/release-guide/index.html (original) +++ mesos/site/publish/documentation/latest/release-guide/index.html Tue Nov 11 04:11:00 2014 @@ -112,6 +112,39 @@ <h2>Prerequisites</h2> <ol> +<li><p>Ensure that you have a GPG key or generate a new one, e.g., using <code>gpg --gen-key</code>.</p></li> +<li><p>Add your GPG public key to the Apache Mesos dist repository in the KEYS file.</p></li> +<li>Fetch the svn repository <code>svn co https://dist.apache.org/repos/dist/release/mesos</code></li> +<li>Append your public key using one of methods described in KEYS, +e.g., <code>(gpg --list-sigs <your name> && gpg --armor --export <your name>) >> KEYS</code>.</li> +<li><p>Push the commit: <code>svn ci</code></p></li> +<li><p>Submit your GPG public key to a keyserver, e.g., <a href="https://pgp.mit.edu">MIT PGP Public Key Server</a>.</p></li> +<li><p>Add your GPG fingerprint to your <a href="https://id.apache.org/">Apache account</a>.</p></li> +<li><p>Create a Maven settings file (<code>~/.m2/settings.xml</code>) for the Apache +servers. Encrypt your Apache password using <code>mvn --encrypt-password</code>. +<code> +<settings> +<servers> + <server> + <id>apache.snapshots.https</id> + <username>APACHE USERNAME</username> + <password>APACHE ENCRYPTED PASSWORD</password> + </server> + <server> + <id>apache.releases.https</id> + <username>APACHE USERNAME</username> + <password>APACHE ENCRYPTED PASSWORD</password> + </server> +</servers> +</settings> +</code></p></li> +<li><p>Use <code>gpg-agent</code> to avoid typing your passphrase repeatedly.</p></li> +</ol> + + +<h2>Preparation</h2> + +<ol> <li><p>Go to <a href="https://issues.apache.org/jira/browse/MESOS">Apache Jira</a> and make sure that the CHANGELOG for the release version is up to date.</p> @@ -125,8 +158,10 @@ the CHANGELOG for the release version is <blockquote><p>NOTE: You should use JIRA to generate the CHANGELOG for you. Click on the release version in <a href="https://issues.apache.org/jira/browse/MESOS#selectedTab=com.atlassian.jira.plugin.system.project%3Aversions-panel">JIRA</a> and click on the <code>Release Notes</code>. Make sure to configure the release notes in text format.</p></blockquote></li> -<li><p>If not already done, update and commit ‘configure.ac’ for the release.</p></li> -<li><p>Update and commit the <code>docs/upgrades.md</code> with instructions about how to upgrade +<li><p>If not already done, update and commit <code>configure.ac</code> for the release.</p></li> +<li><p>Update and commit <code>docs/configuration.md</code> to reflect the current state of +the master, slave, and configure flags.</p></li> +<li><p>Update and commit <code>docs/upgrades.md</code> with instructions about how to upgrade a live cluster from the previous release version to this release version.</p></li> <li><p>If this is a major release please write and commit documentation for this feature.</p></li> </ol> @@ -156,6 +191,7 @@ It is recommended to use the <code>suppo instructions on how to set it up, please refer to <code>src/java/MESOS-MAVEN-README</code>.</p></blockquote></li> <li><p>It is not uncommon to release multiple release candidates, with increasing release candidate version, if there are bugs found.</p></li> +<li><p>Update to the <em>next</em> Mesos version in <code>configure.ac</code>: change <code>AC_INIT([mesos], [X.Y.Z]))</code> and commit.</p></li> </ol> Modified: mesos/site/publish/documentation/latest/upgrades/index.html URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/upgrades/index.html?rev=1638021&r1=1638020&r2=1638021&view=diff ============================================================================== --- mesos/site/publish/documentation/latest/upgrades/index.html (original) +++ mesos/site/publish/documentation/latest/upgrades/index.html Tue Nov 11 04:11:00 2014 @@ -107,6 +107,21 @@ <p>This document serves as a guide for users who wish to upgrade an existing mesos cluster. Some versions require particular upgrade techniques when upgrading a running cluster. Some upgrades will have incompatible changes.</p> +<h2>Upgrading from 0.20.x to 0.21.x</h2> + +<p><strong>NOTE</strong> Disabling slave checkpointing has been deprecated; the slave –checkpoint flag has been deprecated and will be removed in a future release.</p> + +<p>In order to upgrade a running cluster:</p> + +<ul> +<li>Install the new master binaries and restart the masters.</li> +<li>Install the new slave binaries and restart the slaves.</li> +<li>Upgrade the schedulers by linking the latest native library (mesos jar upgrade not necessary).</li> +<li>Restart the schedulers.</li> +<li>Upgrade the executors by linking the latest native library and mesos jar (if necessary).</li> +</ul> + + <h2>Upgrading from 0.19.x to 0.20.x.</h2> <p><strong>NOTE</strong>: The Mesos API has been changed slightly in this release. The CommandInfo has been changed (see below), which makes launching a command more flexible. The ‘value’ field has been changed from <em>required</em> to <em>optional</em>. However, it will not cause any issue during the upgrade (since the existing schedulers always set this field).</p> Added: mesos/site/publish/documentation/mesos-containerizer/index.html URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/mesos-containerizer/index.html?rev=1638021&view=auto ============================================================================== --- mesos/site/publish/documentation/mesos-containerizer/index.html (added) +++ mesos/site/publish/documentation/mesos-containerizer/index.html Tue Nov 11 04:11:00 2014 @@ -0,0 +1,181 @@ +<!DOCTYPE html> +<!-- + + ______ __ + /\ _ \ /\ \ + \ \ \L\ \ _____ __ ___\ \ \___ __ + \ \ __ \/\ '__`\ /'__`\ /'___\ \ _ `\ /'__`\ + \ \ \/\ \ \ \L\ \/\ \L\.\_/\ \__/\ \ \ \ \/\ __/ + \ \_\ \_\ \ ,__/\ \__/.\_\ \____\\ \_\ \_\ \____\ + \/_/\/_/\ \ \/ \/__/\/_/\/____/ \/_/\/_/\/____/ + \ \_\ + \/_/ + + /'\_/`\ + /\ \ __ ____ ___ ____ + \ \ \__\ \ /'__`\ /',__\ / __`\ /',__\ + \ \ \_/\ \/\ __//\__, `\/\ \L\ \/\__, `\ + \ \_\\ \_\ \____\/\____/\ \____/\/\____/ + \/_/ \/_/\/____/\/___/ \/___/ \/___/ + +--> +<html> + <head> + <meta charset="utf-8"> + <title></title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta name="description" content=""> + <meta name="author" content=""> + + <!-- Le styles --> + <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet"> + + <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"> + <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> + + <!-- navbar excitement --> + <div class="navbar navbar-static-top" role="navigation"> + <div class="navbar-inner"> + <div class="container"> + <a href="/" class="logo"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo" /></a> + <div class="nav-collapse"> + <ul class="nav nav-pills navbar-right"> + <li><a href="/gettingstarted/">Getting Started</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> + </div> + </div> + </div><!-- /.navbar --> + + <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 Containerizer</h1> + +<p>The MesosContainerizer provides lightweight containerization and +resource isolation of executors using Linux-specific functionality +such as control cgroups and namespaces. It is composable so operators +can selectively enable different isolators.</p> + +<p>It also provides basic support for POSIX systems (e.g., OSX) but +without any actual isolation, only resource usage reporting.</p> + +<h3>Shared Filesystem</h3> + +<p>The SharedFilesystem isolator can optionally be used on Linux hosts to +enable modifications to each container’s view of the shared +filesystem.</p> + +<p>The modifications are specified in the ContainerInfo included in the +ExecutorInfo, either by a framework or by using the +–default_container_info slave flag.</p> + +<p>ContainerInfo specifies Volumes which map parts of the shared +filesystem (host_path) into the container’s view of the filesystem +(container_path), as read-write or read-only. The host_path can be +absolute, in which case it will make the filesystem subtree rooted at +host_path also accessible under container_path for each container. +If host_path is relative then it is considered as a directory +relative to the executor’s work directory. The directory will be +created and permissions copied from the corresponding directory (which +must exist) in the shared filesystem.</p> + +<p>The primary use-case for this isolator is to selectively make parts of +the shared filesystem private to each container. For example, a +private “/tmp” directory can be achieved with host_path=“tmp” and +container_path=“/tmp” which will create a directory “tmp” inside the +executor’s work directory (mode 1777) and simultaneously mount it as +/tmp inside the container. This is transparent to processes running +inside the container. Containers will not be able to see the host’s +/tmp or any other container’s /tmp.</p> + +<h3>Pid Namespace</h3> + +<p>The Pid Namespace isolator can be used to isolate each container in +a separate pid namespace with two main benefits: +1. Visibility: Processes running in the container (executor and + descendants) are unable to see or signal processes outside the + namespace. +2. Clean termination: Termination of the leading process in a pid + namespace will result in the kernel terminating all other processes + in the namespace.</p> + +<p>The Launcher will use (2) during destruction of a container in +preference to the freezer cgroup, avoiding known kernel issues related +to freezing cgroups under OOM conditions.</p> + +<p>/proc will be mounted for containers so tools such as ‘ps’ will work +correctly.</p> + + </div> +</div> + + + <hr> + + <!-- footer --> + <div class="footer"> + <p>© 2012-2014 <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><!-- /footer --> + + </div> <!-- /container --> + + <!-- 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> \ No newline at end of file Added: mesos/site/publish/documentation/modules/index.html URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/modules/index.html?rev=1638021&view=auto ============================================================================== --- mesos/site/publish/documentation/modules/index.html (added) +++ mesos/site/publish/documentation/modules/index.html Tue Nov 11 04:11:00 2014 @@ -0,0 +1,483 @@ +<!DOCTYPE html> +<!-- + + ______ __ + /\ _ \ /\ \ + \ \ \L\ \ _____ __ ___\ \ \___ __ + \ \ __ \/\ '__`\ /'__`\ /'___\ \ _ `\ /'__`\ + \ \ \/\ \ \ \L\ \/\ \L\.\_/\ \__/\ \ \ \ \/\ __/ + \ \_\ \_\ \ ,__/\ \__/.\_\ \____\\ \_\ \_\ \____\ + \/_/\/_/\ \ \/ \/__/\/_/\/____/ \/_/\/_/\/____/ + \ \_\ + \/_/ + + /'\_/`\ + /\ \ __ ____ ___ ____ + \ \ \__\ \ /'__`\ /',__\ / __`\ /',__\ + \ \ \_/\ \/\ __//\__, `\/\ \L\ \/\__, `\ + \ \_\\ \_\ \____\/\____/\ \____/\/\____/ + \/_/ \/_/\/____/\/___/ \/___/ \/___/ + +--> +<html> + <head> + <meta charset="utf-8"> + <title></title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta name="description" content=""> + <meta name="author" content=""> + + <!-- Le styles --> + <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet"> + + <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"> + <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> + + <!-- navbar excitement --> + <div class="navbar navbar-static-top" role="navigation"> + <div class="navbar-inner"> + <div class="container"> + <a href="/" class="logo"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo" /></a> + <div class="nav-collapse"> + <ul class="nav nav-pills navbar-right"> + <li><a href="/gettingstarted/">Getting Started</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> + </div> + </div> + </div><!-- /.navbar --> + + <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 Modules</h1> + +<p>Experimental support for Mesos modules was introduced in Mesos 0.21.0.</p> + +<h3>Disclaimer</h3> + +<ul> +<li><p>Use and development of Mesos modules is at own risk! Only graced modules +(modules that are part of Mesos distribution) are maintained by the Mesos +project.</p></li> +<li><p>Please direct all questions to the relevant module writer and/or write to [email protected]. Questions related to modules sent to user and dev list +will be redirected to the modules list.</p></li> +</ul> + + +<h2>What are Mesos modules?</h2> + +<p>Mesos modules provide a way to easily extend inner workings of Mesos by creating +and using shared libraries that are loaded on demand. Modules can be used to +customize Mesos without having to recompiling/relinking for each specific use +case. Modules can isolate external dependencies into separate libraries, thus +resulting into a smaller Mesos core. +Modules also make it easy to experiment with new features. +For example, imagine loadable allocators that contain a VM (Lua, Python, …) +which makes it possible to try out new allocator algorithms written in +scripting languages without forcing those dependencies into the project. +Finally, modules provide an easy way for third parties to easily extend Mesos +without having to know all the internal details.</p> + +<h2>Invoking Mesos modules</h2> + +<p>The command-line flag <code>--modules</code> is available for Mesos master, slave, and +tests to specify a list of modules to be loaded and be available to the internal +subsystems.</p> + +<p>Use <code>--modules=filepath</code> to specify the list of modules via a +file containing a JSON formatted string. ‘filepath’ can be +of the form ‘file:///path/to/file’ or ‘/path/to/file’.</p> + +<p>Use <code>--modules="{...}"</code> to specify the list of modules inline.</p> + +<h3>Example JSON strings:</h3> + +<ol> +<li><p>Load a library <code>libfoo.so</code> with two modules <code>org_apache_mesos_bar</code> and +<code>org_apache_mesos_baz</code>.</p> + +<pre><code>{ + "libraries": [ + { + "file": "/path/to/libfoo.so", + "modules": [ + { + "name": "org_apache_mesos_bar", + }, + { + "name": "org_apache_mesos_baz" + } + ] + } + ] +} +</code></pre></li> +<li><p>Load the module <code>org_apache_mesos_bar</code> from the library <code>foo</code> and pass +the command-line argument <code>X</code> with value <code>Y</code> (module <code>org_apache_mesos_baz</code> +is loaded without any command-line parameters):</p> + +<pre><code>{ + "libraries": [ + { + "name": "foo", + "modules": [ + { + "name": "org_apache_mesos_bar" + "parameters": [ + { + "key": "X", + "value": "Y", + } + ] + }, + { + "name": "org_apache_mesos_bar" + } + ] + } + ] +} +</code></pre></li> +<li><p>Specifying modules inline:</p> + +<pre><code>--modules='{"libraries":[{"file":"/path/to/libfoo.so", "modules":[{"name":"org_apache_mesos_bar"}]}]}' +</code></pre></li> +</ol> + + +<h3>Library names</h3> + +<p>For each library, at least one of the “file” or “path” parameter must be +specified. The “file” parameter may refer to a filename (e.g., “libfoo.so”), a +relative path (e.g., “myLibs/libfoo.so”), or an absolute path (e.g., +“/home/mesos/lib/libfoo.so”). The “name” parameter refers to a library name +(e.g., “foo”). If “name” is specified, it is automatically expanded to a proper +library name for the current platform (e.g., “foo” gets expanded to “libfoo.so” +on Linux, and “libfoo.dylib” on OS X).</p> + +<p>If a library path is not specified in the “file” parameter, the library is +searched in the standard library paths or directories pointed to by the +<code>LD_LIBRARY_PATH</code> (<code>DYLD_LIBRARY_PATH</code> on OS X) environment variable.</p> + +<p>If both “file” and “name” are specified, “name” is ignored.</p> + +<h2>What kinds of modules are supported?</h2> + +<p>Mesos currently only provides Isolator and Authentication modules. Additional +graced modules will be added in the near future.</p> + +<h2>Writing Mesos modules</h2> + +<h3>A HelloWorld module</h3> + +<p>The following snippet describes the implementation of a module named +“org_apache_mesos_bar” of “TestModule” kind:</p> + +<pre><code> #include <iostream> + #include "test_module.hpp" + + class TestModuleImpl : public TestModule + { + public: + TestModuleImpl() + { + std::cout << "HelloWorld!" << std::endl; + } + + virtual int foo(char a, long b) + { + return a + b; + } + + virtual int bar(float a, double b) + { + return a * b; + } + }; + + static TestModule* create() + { + return new TestModule(); + } + + static bool compatible() + { + return true; + } + + // Declares a module named 'example' of 'TestModule' kind. + // Mesos core binds the module instance pointer as needed. + // The compatible() hook is provided by the module for compatibility checks. + // The create() hook returns an object of type 'TestModule'. + mesos::modules::Module<TestModule> org_apache_mesos_TestModule( + MESOS_MODULE_API_VERSION, + MESOS_VERSION, + "Apache Mesos", + "[email protected]", + "This is a test module.", + compatible, + create); +</code></pre> + +<h3>Building a module</h3> + +<p> The following assumes that Mesos is installed in the standard location, i.e. + the Mesos dynamic library and header files are available. +<code> + g++ -lmesos -fpic -o test_module.o test_module.cpp + $ gcc -shared -o libtest_module.so test_module.o +</code></p> + +<h3>Testing a modules</h3> + +<p>Apart from testing the module by hand with explicit use of –modules flag, one +can run the entire mesos test suite with the given module. For example, the +following command will run the mesos test suite with the +<code>org_apache_mesos_TestCpuIsolator</code> module selected for isolation: +<code> +./bin/mesos-tests.sh --modules="/home/kapil/mesos/isolator-module/modules.json" --isolation="org_apache_mesos_TestCpuIsolator" +</code></p> + +<h3>Module naming convention</h3> + +<p>Each module name should be unique. Having duplicate module names in the Json +string will cause the process to abort.</p> + +<p>Therefore, we encourage module writers to name their modules according to Java +package naming scheme +(http://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html).</p> + +<p>For example:</p> + +<table> +<tr> +<th> Module Name </th> <th> Module Domain name </th> <th> Module Symbol Name </th> +</tr> + +<tr> +<td> foobar </td> <td> mesos.apache.org </td> <td> org_apache_mesos_foobar </td> +</tr> + +<tr> +<td> barBaz </td> <td> example.com </td> <td> com_example_barBaz </td> +</table> + + +<p>In short: +- Keep case of module name. +- Lower case and reverse domain. +- Separate with underscore. +- Do not simply use the kind name as module name. +- Different modules from the same organization still need different names.</p> + +<h2>Module Versioning and backwards compatibility</h2> + +<p>Before loading the above module, a dynamic library that contains the module +needs to be loaded into Mesos. This happens early in Mesos startup code. The +Mesos developer does not need to touch that code when introducing new module +kinds. However, the developer is responsible for registering what versions of +any given module are expected to remain compatible with Mesos as it progresses. +This information is maintained in a table in <code>src/module/manager.cpp</code>. It +contains an entry for every possible module kind that Mesos recognizes, each +with a corresponding Mesos release version number. This number needs to be +adjusted by the Mesos developer to reflect the current Mesos version whenever +compatibility between Mesos and modules that get compiled against it gets +broken. Given that module implementation for older Mesos versions can still be +written in the future, this may be impossible to tell and so in doubt it is best +to just bump the required module version to the current Mesos version. But if +one can be reasonably sure, assuming cooperative module developers, that a +certain kind of module will continue to function across several Mesos versions, +the table provides an easy way to specify this.</p> + +<p>For successfully loading the module, the following relationship +must exist between the various versions:</p> + +<p><code> kind version <= Library version <= Mesos version</code></p> + +<table> +<tr> +<td>Mesos </td> <td>kind version </td> <td> Library </td> <td>Is module loadable </td> <td>Reason </td> +</tr> + +<tr> +<td>0.18.0 </td> <td> 0.18.0 </td> <td> 0.18.0 </td> <td> yes </td> <td> </td> +</tr> + +<tr> +<td>0.29.0 </td> <td> 0.18.0 </td> <td> 0.18.0 </td> <td> yes </td> <td> </td> +</tr> + +<tr> +<td>0.29.0 </td> <td> 0.18.0 </td> <td> 0.21.0 </td> <td> yes </td> <td> </td> +</tr> + +<tr> +<td>0.18.0 </td> <td> 0.18.0 </td> <td> 0.29.0 </td> <td> NO </td> <td> Library compiled against a newer Mesos release. </td> +</tr> + +<tr> +<td>0.29.0 </td> <td> 0.21.0 </td> <td> 0.18.0 </td> <td> NO </td> <td> Module/Library older than the kind version supported by Mesos. </td> +<tr> +</tr> + +<tr> +<td>0.29.0 </td> <td> 0.29.0 </td> <td> 0.18.0 </td> <td> NO </td> <td> Module/Library older than the kind version supported by Mesos. </td> +</tr> +</table> + + +<h2>Mesos module API changes</h2> + +<p>Record of incompatible changes to the modules API.</p> + +<h3>Version 2</h3> + +<ul> +<li>Added support for module-specific command-line parameters.</li> +<li>Changed function signature for create().</li> +</ul> + + +<h3>Version 1</h3> + +<p>Initial version of the modules API.</p> + +<h2>Appendix:</h2> + +<h3>JSON Schema:</h3> + +<pre><code> { + "type":"object", + "required":false, + "properties":{ + "libraries": { + "type":"array", + "required":false, + "items": + { + "type":"object", + "required":false, + "properties":{ + "file": { + "type":"string", + "required":false + }, + "name": { + "type":"string", + "required":false + }, + "modules": { + "type":"array", + "required":false, + "items": + { + "type":"object", + "required":false, + "properties":{ + "name": { + "type":"string", + "required":true + }, + "parameters": { + "type":"array", + "required":false, + "items": + { + "type":"object", + "required":false, + "properties":{ + "key": { + "type":"string", + "required":true + }, + "value": { + "type":"string", + "required":true + } + } + } + } + } + } + } + } + } + } + } + } +</code></pre> + + </div> +</div> + + + <hr> + + <!-- footer --> + <div class="footer"> + <p>© 2012-2014 <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><!-- /footer --> + + </div> <!-- /container --> + + <!-- 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> \ No newline at end of file Modified: mesos/site/publish/documentation/powered-by-mesos/index.html URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/powered-by-mesos/index.html?rev=1638021&r1=1638020&r2=1638021&view=diff ============================================================================== --- mesos/site/publish/documentation/powered-by-mesos/index.html (original) +++ mesos/site/publish/documentation/powered-by-mesos/index.html Tue Nov 11 04:11:00 2014 @@ -116,6 +116,8 @@ <li><a href="http://cloudphysics.com">CloudPhysics</a></li> <li><a href="http://www.conviva.com">Conviva</a></li> <li><a href="http://www.corvisacloud.com/">CorvisaCloud</a></li> +<li><a href="http://www.crpgl.lu">CRP-Gabriel Lippmann</a></li> +<li><a href="http://www.daemon.com.au">Daemon</a></li> <li><a href="http://www.devicescape.com">Devicescape</a></li> <li><a href="http://www.duedil.com">DueDil</a></li> <li><a href="http://www.ebay.com">eBay</a></li> @@ -140,6 +142,7 @@ <li><a href="http://www.pinkbike.com">Pinkbike</a></li> <li><a href="http://www.profitstars.com">ProfitStars</a></li> <li><a href="http://www.qubitproducts.com">Qubit</a></li> +<li><a href="http://revise.ly">Revisely</a></li> <li><a href="http://www.sailthru.com">Sailthru</a></li> <li><a href="http://www.sharethrough.com">Sharethrough</a></li> <li><a href="http://www.sigmoidanalytics.com/">Sigmoid Analytics</a></li> Modified: mesos/site/publish/documentation/release-guide/index.html URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/release-guide/index.html?rev=1638021&r1=1638020&r2=1638021&view=diff ============================================================================== --- mesos/site/publish/documentation/release-guide/index.html (original) +++ mesos/site/publish/documentation/release-guide/index.html Tue Nov 11 04:11:00 2014 @@ -112,6 +112,39 @@ <h2>Prerequisites</h2> <ol> +<li><p>Ensure that you have a GPG key or generate a new one, e.g., using <code>gpg --gen-key</code>.</p></li> +<li><p>Add your GPG public key to the Apache Mesos dist repository in the KEYS file.</p></li> +<li>Fetch the svn repository <code>svn co https://dist.apache.org/repos/dist/release/mesos</code></li> +<li>Append your public key using one of methods described in KEYS, +e.g., <code>(gpg --list-sigs <your name> && gpg --armor --export <your name>) >> KEYS</code>.</li> +<li><p>Push the commit: <code>svn ci</code></p></li> +<li><p>Submit your GPG public key to a keyserver, e.g., <a href="https://pgp.mit.edu">MIT PGP Public Key Server</a>.</p></li> +<li><p>Add your GPG fingerprint to your <a href="https://id.apache.org/">Apache account</a>.</p></li> +<li><p>Create a Maven settings file (<code>~/.m2/settings.xml</code>) for the Apache +servers. Encrypt your Apache password using <code>mvn --encrypt-password</code>. +<code> +<settings> +<servers> + <server> + <id>apache.snapshots.https</id> + <username>APACHE USERNAME</username> + <password>APACHE ENCRYPTED PASSWORD</password> + </server> + <server> + <id>apache.releases.https</id> + <username>APACHE USERNAME</username> + <password>APACHE ENCRYPTED PASSWORD</password> + </server> +</servers> +</settings> +</code></p></li> +<li><p>Use <code>gpg-agent</code> to avoid typing your passphrase repeatedly.</p></li> +</ol> + + +<h2>Preparation</h2> + +<ol> <li><p>Go to <a href="https://issues.apache.org/jira/browse/MESOS">Apache Jira</a> and make sure that the CHANGELOG for the release version is up to date.</p> @@ -125,8 +158,10 @@ the CHANGELOG for the release version is <blockquote><p>NOTE: You should use JIRA to generate the CHANGELOG for you. Click on the release version in <a href="https://issues.apache.org/jira/browse/MESOS#selectedTab=com.atlassian.jira.plugin.system.project%3Aversions-panel">JIRA</a> and click on the <code>Release Notes</code>. Make sure to configure the release notes in text format.</p></blockquote></li> -<li><p>If not already done, update and commit ‘configure.ac’ for the release.</p></li> -<li><p>Update and commit the <code>docs/upgrades.md</code> with instructions about how to upgrade +<li><p>If not already done, update and commit <code>configure.ac</code> for the release.</p></li> +<li><p>Update and commit <code>docs/configuration.md</code> to reflect the current state of +the master, slave, and configure flags.</p></li> +<li><p>Update and commit <code>docs/upgrades.md</code> with instructions about how to upgrade a live cluster from the previous release version to this release version.</p></li> <li><p>If this is a major release please write and commit documentation for this feature.</p></li> </ol> @@ -156,6 +191,7 @@ It is recommended to use the <code>suppo instructions on how to set it up, please refer to <code>src/java/MESOS-MAVEN-README</code>.</p></blockquote></li> <li><p>It is not uncommon to release multiple release candidates, with increasing release candidate version, if there are bugs found.</p></li> +<li><p>Update to the <em>next</em> Mesos version in <code>configure.ac</code>: change <code>AC_INIT([mesos], [X.Y.Z]))</code> and commit.</p></li> </ol> Modified: mesos/site/publish/documentation/upgrades/index.html URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/upgrades/index.html?rev=1638021&r1=1638020&r2=1638021&view=diff ============================================================================== --- mesos/site/publish/documentation/upgrades/index.html (original) +++ mesos/site/publish/documentation/upgrades/index.html Tue Nov 11 04:11:00 2014 @@ -107,6 +107,21 @@ <p>This document serves as a guide for users who wish to upgrade an existing mesos cluster. Some versions require particular upgrade techniques when upgrading a running cluster. Some upgrades will have incompatible changes.</p> +<h2>Upgrading from 0.20.x to 0.21.x</h2> + +<p><strong>NOTE</strong> Disabling slave checkpointing has been deprecated; the slave –checkpoint flag has been deprecated and will be removed in a future release.</p> + +<p>In order to upgrade a running cluster:</p> + +<ul> +<li>Install the new master binaries and restart the masters.</li> +<li>Install the new slave binaries and restart the slaves.</li> +<li>Upgrade the schedulers by linking the latest native library (mesos jar upgrade not necessary).</li> +<li>Restart the schedulers.</li> +<li>Upgrade the executors by linking the latest native library and mesos jar (if necessary).</li> +</ul> + + <h2>Upgrading from 0.19.x to 0.20.x.</h2> <p><strong>NOTE</strong>: The Mesos API has been changed slightly in this release. The CommandInfo has been changed (see below), which makes launching a command more flexible. The ‘value’ field has been changed from <em>required</em> to <em>optional</em>. However, it will not cause any issue during the upgrade (since the existing schedulers always set this field).</p>
