<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>DevStack - Overview</title>
    <meta name="description" content="">
    <meta name="author" content="">

    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
    <!--[if lt IE 9]>
      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->

    <!-- Le styles -->
    <link href="assets/css/bootstrap.css" rel="stylesheet">
    <link href="assets/css/local.css" rel="stylesheet">
    <style type="text/css">
      body { padding-top: 60px; }
      dd { padding: 10px; }
    </style>
    
    <!-- Le javascripts -->
    <script src="assets/js/jquery-1.7.1.min.js" type="text/javascript" charset="utf-8"></script>
    <script src="assets/js/bootstrap.js" type="text/javascript" charset="utf-8"></script>
  </head>

  <body>

    <div class="navbar navbar-fixed-top">
      <div class="navbar-inner">
        <div class="container">
          <a class="brand" href="/">DevStack</a>
          <ul class="nav pull-right">
            <li><a href="overview.html">Overview</a></li>
            <li><a href="changes.html">Changes</a></li>
            <li><a href="faq.html">FAQ</a></li>
            <li><a href="http://github.com/openstack-dev/devstack">GitHub</a></li>
            <li><a href="https://review.openstack.org/#/q/status:open+project:openstack-dev/devstack,n,z">Gerrit</a></li>
          </ul>
        </div>
      </div>
    </div>

    <div class="container" id="home">
      
      <section id="overview" class="span12">

        <div class='row pull-left'>
          <h2>Overview <small>DevStack from a cloud-height view</small></h2>
          <p>DevStack is not and has never been intended to be a general OpenStack installer.  It has evolved to support a large number of configuration options and alternative platforms and support services.  However, that evolution has grown well beyond what was originally intended and the majority of configuration combinations are rarely, if ever, tested.  DevStack was never meant to be everything to everyone and can not continue in that direction.</p>
          <p>Below is a list of what is specifically is supported (read that as "tested and assumed to work") going forward.</p>

          <h2>Supported Components</h2>

          <h3>Base OS</h3>
          <p><em>The OpenStack Technical Committee (TC) has defined the current CI strategy to include the latest Ubuntu release and the latest RHEL release (for Python 2.6 testing).</em></p>
          <ul>
            <li>Ubuntu: current LTS release plus current development release</li>
            <li>Fedora: current release plus previous release</li>
            <li>RHEL: current major release</li>
            <li>Other OS platforms may continue to be included but the maintenance of those platforms shall not be assumed simply due to their presence.  Having a listed point-of-contact for each additional OS will greatly increase its chance of being well-maintained.</li>
            <li>Patches for Ubuntu and/or Fedora will not be held up due to side-effects on other OS platforms.</li>
          </ul>

          <h3>Databases</h3>
          <p><em>As packaged by the host OS</em></p>
          <ul>
            <li>MySQL</li>
            <li>PostgreSQL</li>
          </ul>

          <h3>Queues</h3>
          <p><em>As packaged by the host OS</em></p>
          <ul>
            <li>Rabbit</li>
            <li>Qpid</li>
<!--
            <li>ZeroMQ</li>
-->
          </ul>

          <h3>Web Server</h3>
          <p><em>As packaged by the host OS</em></p>
          <ul>
            <li>Apache</li>
          </ul>

          <h3>OpenStack Network</h3>
          <p><em>Default to Nova Network, optionally use Neutron</em></p>
          <ul>
            <li>Nova Network: FlatDHCP</li>
            <li>Neutron: A basic configuration approximating the original FlatDHCP mode using linuxbridge or OpenVSwitch.</li>
          </ul>

          <h3>Services</h3>
          <p>The default services configured by DevStack are Identity (Keystone), Object Storage (Swift), Image Storage (Glance), Block Storage (Cinder), Compute (Nova), Network (Nova), Dashboard (Horizon)</p>
          <p>Additional services not included directly in DevStack can be tied in to <code>stack.sh</code> using the <a href="plugins.html">plugin mechanism</a> to call scripts that perform the configuration and startup of the service.</p>

          <h3>Node Configurations</h3>
          <ul>
            <li>single node</li>
            <li>multi-node is not tested regularly by the core team, and even then only minimal configurations are reviewed</li>
          </ul>

          <h3>Exercises</h3>
          <p>The DevStack exercise scripts have been replaced as integration and gating test with Tempest.  They will continue to be maintained as they are valuable as demonstrations of using OpenStack from the command line and for quick operational testing.</p>

        </div>        

      </section>

      <footer>
        <p>&copy; Openstack Foundation 2011-2014 &mdash; An <a href="https://www.openstack.org/">OpenStack</a> <a href="https://wiki.openstack.org/wiki/Programs">program</a></p>
      </footer>

    </div> <!-- /container -->
  </body>
</html>
