Metadata-Version: 2.0
Name: clusterdock
Version: 1.0.2
Summary: clusterdock is a framework for creating Docker-based container clusters
Home-page: https://github.com/clusterdock/clusterdock
Author: Dima Spivak
Author-email: dima@spivak.ch
License: Apache Software License 2.0
Keywords: clusterdock
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Requires-Dist: PyYAML
Requires-Dist: docker
Requires-Dist: requests

===========
clusterdock
===========

.. image:: https://img.shields.io/pypi/l/clusterdock.svg
    :target: https://pypi.python.org/pypi/clusterdock

.. image:: https://img.shields.io/pypi/v/clusterdock.svg
        :target: https://pypi.python.org/pypi/clusterdock

.. image:: https://readthedocs.org/projects/clusterdock/badge/?version=latest
        :target: https://clusterdock.readthedocs.io/en/latest/?badge=latest
        :alt: Documentation Status

.. image:: https://img.shields.io/pypi/pyversions/clusterdock.svg
    :target: https://pypi.python.org/pypi/clusterdock

-------------------

**clusterdock** is a Python 3 project that enables users to build,
start, and manage Docker container-based clusters. It uses a pluggable
system for defining new types of clusters using folders called *topologies* and
is a swell project, if I may say so myself.

-------------------

"I hate reading, make this quick."
==================================

Before doing anything, install a recent version of `Docker`_ to your machine. Next,
clone a clusterdock topology to your machine. For this example,
we'll use the `nodebase topology`_.
Assuming that you've already installed **clusterdock**, you could start a 2-node cluster:

.. _Docker: https://www.docker.com/
.. _nodebase topology: https://github.com/clusterdock/topology_nodebase

.. code-block:: console

    $ git clone https://github.com/clusterdock/topology_nodebase.git
    $ clusterdock start topology_nodebase
    2017-08-03 10:04:18 PM clusterdock.models   INFO     Starting cluster on network (cluster) ...
    2017-08-03 10:04:18 PM clusterdock.models   INFO     Starting node node-1.cluster ...
    2017-08-03 10:04:19 PM clusterdock.models   INFO     Starting node node-2.cluster ...
    2017-08-03 10:04:20 PM clusterdock.models   INFO     Cluster started successfully (total time: 00:00:01.621).

To SSH into a node and look around:

.. code-block:: console

    $ clusterdock ssh node-1.cluster
    [root@node-1 ~]# ls -l / | head
    total 64
    dr-xr-xr-x   1 root root 4096 May 19 20:48 bin
    drwxr-xr-x   5 root root  360 Aug  4 05:04 dev
    drwxr-xr-x   1 root root 4096 Aug  4 05:04 etc
    drwxr-xr-x   2 root root 4096 Sep 23  2011 home
    dr-xr-xr-x   7 root root 4096 Mar  4  2015 lib
    dr-xr-xr-x   1 root root 4096 May 19 20:48 lib64
    drwx------   2 root root 4096 Mar  4  2015 lost+found
    drwxr-xr-x   2 root root 4096 Sep 23  2011 media
    drwxr-xr-x   2 root root 4096 Sep 23  2011 mnt
    [root@node-1 ~]# exit

To see the complete usage message for the topology:

.. code-block:: console

    $ clusterdock start topology_nodebase -h
    usage: clusterdock start [-h] [--node-disks map] [--always-pull]
                             [--namespace ns] [--network nw] [-o sys] [-r url]
                             [--nodes node [node ...]]
                             topology

    Start a nodebase cluster

    positional arguments:
      topology              A clusterdock topology directory

    optional arguments:
      -h, --help            show this help message and exit
      --always-pull         Pull latest images, even if they're available locally
                            (default: False)
      --namespace ns        Namespace to use when looking for images (default:
                            clusterdock)
      --network nw          Docker network to use (default: cluster)
      -o sys, --operating-system sys
                            Operating system to use for cluster nodes (default:
                            centos6.6)
      -r url, --registry url
                            Docker Registry from which to pull images (default:
                            None)

    nodebase arguments:
      --node-disks map      Map of node names to block devices (default: None)

    Node groups:
      --nodes node [node ...]
                            Nodes of the nodes group (default: ['node-1',
                            'node-2'])

When you're done and want to clean up:

.. code-block:: console

    $ clusterdock manage nuke
    2017-08-03 10:06:28 PM clusterdock.actions.manage INFO     Stopping and removing all containers ...
    2017-08-03 10:06:30 PM clusterdock.actions.manage INFO     Removing all user-defined networks ...


=======
History
=======

1.0.2 (2017-08-04)
------------------

* Updated how Cluster and Node objects are initialized.
* Added project logo.
* Doc improvements.

1.0.1 (2017-08-03)
------------------

* First release on PyPI.


