Revision 73ebcd68
b/docs/admin-guide.rst | ||
---|---|---|
1086 | 1086 |
|
1087 | 1087 |
$ kamaki config list |
1088 | 1088 |
|
1089 |
To chage a setting use ``kamaki config set``: |
|
1089 |
To change a setting use ``kamaki config set``:
|
|
1090 | 1090 |
|
1091 | 1091 |
.. code-block:: console |
1092 | 1092 |
|
1093 |
$ kamaki config set image.url https://cyclades.example.com/plankton
|
|
1093 |
$ kamaki config set image.url https://cyclades.example.com/image
|
|
1094 | 1094 |
$ kamaki config set file.url https://pithos.example.com/v1 |
1095 | 1095 |
$ kamaki config set user.url https://accounts.example.com |
1096 | 1096 |
$ kamaki config set token ... |
b/docs/dev-guide.rst | ||
---|---|---|
11 | 11 |
have been written for advanced operations wherever needed, and minor changes |
12 | 12 |
for things that were missing or change frequently. |
13 | 13 |
|
14 |
All Synnefo services have the analogous OpenStack API:
|
|
14 |
Most Synnefo services have a corresponding OpenStack API:
|
|
15 | 15 |
|
16 | 16 |
| Cyclades/Compute Service -> OpenStack Compute API |
17 | 17 |
| Cyclades/Network Service -> OpenStack Compute/Network API (not Quantum yet) |
18 |
| Cyclades/Image Service -> OpenStack Compute/Image API |
|
19 |
| Cyclades/Plankton/Image Service -> OpenStack Glance API |
|
18 |
| Cyclades/Image Service -> OpenStack Glance API |
|
20 | 19 |
| Pithos/Storage Service -> OpenStack Object Store API |
21 | 20 |
| Astakos/Identity Service -> Proprietary, moving to OpenStack Keystone API |
21 |
| Astakos/Quota Service -> Proprietary API |
|
22 |
| Astakos/Resource Service -> Proprietary API |
|
22 | 23 |
|
23 | 24 |
Below, we will describe all Synnefo APIs with conjuction to the OpenStack APIs. |
24 | 25 |
|
... | ... | |
37 | 38 |
Identity API <astakos-api-guide> |
38 | 39 |
|
39 | 40 |
|
40 |
Resource and Quota API (Astakos) |
|
41 |
================================ |
|
41 |
Resource and Quota Service API (Astakos)
|
|
42 |
========================================
|
|
42 | 43 |
|
43 | 44 |
.. toctree:: |
44 | 45 |
:maxdepth: 2 |
... | ... | |
71 | 72 |
details. |
72 | 73 |
|
73 | 74 |
|
74 |
Images Service API (Cyclades/Plankton)
|
|
75 |
======================================
|
|
75 |
Image Service API (Cyclades)
|
|
76 |
============================ |
|
76 | 77 |
|
77 |
Plankton is the Image Service of Synnefo, currently implemented inside |
|
78 |
Cyclades. Plankton exposes the OpenStack Glance API with minor changes wherever |
|
79 |
needed. |
|
78 |
The Image Service is implemented inside Cyclades. It exposes the OpenStack |
|
79 |
Glance API with minor changes wherever needed. |
|
80 | 80 |
|
81 |
This is the Cyclades/Plankton Image API:
|
|
81 |
This is the Cyclades/Image API: |
|
82 | 82 |
|
83 | 83 |
.. toctree:: |
84 | 84 |
:maxdepth: 2 |
b/docs/index.rst | ||
---|---|---|
20 | 20 |
Object Storage Service (codename: pithos) <pithos> |
21 | 21 |
Compute Service (codename: cyclades) <cyclades> |
22 | 22 |
Network Service (part of Cyclades) <networks> |
23 |
Image Service (codename: plankton) <plankton>
|
|
23 |
Image Service (part of Cyclades) <plankton>
|
|
24 | 24 |
Volume Storage Service (codename: archipelago) <archipelago> |
25 | 25 |
|
26 | 26 |
.. image:: images/synnefo-overview.png |
b/docs/plankton.rst | ||
---|---|---|
1 | 1 |
.. _plankton: |
2 | 2 |
|
3 |
Image Registry Service (plankton)
|
|
4 |
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
3 |
Image Registry Service |
|
4 |
^^^^^^^^^^^^^^^^^^^^^^ |
|
5 | 5 |
|
6 | 6 |
Introduction |
7 | 7 |
============ |
8 | 8 |
|
9 |
Plankton is the synnefo Image Registry Service. It is implemented as a very thin
|
|
10 |
layer on top of Pithos+; every Image on Plankton is a file on a Pithos+ backend,
|
|
11 |
with special metadata. At the frontend, Plankton implements the OpenStack
|
|
12 |
Glance API; at the backend it queries an existing Pithos+ backend. In the
|
|
13 |
current implementation the service runs Plankton and Pithos+ on a single,
|
|
14 |
unified backend: users may synchronize their Images, using the Pithos+ clients,
|
|
15 |
then register them with Plankton, with zero data movement. Then spawn new VMs
|
|
16 |
from those images with Cyclades.
|
|
9 |
The Image Registry Service is a part of Cyclades. It is implemented as a very
|
|
10 |
thin layer on top of Pithos; every Image on the Image Service is a file on
|
|
11 |
Pithos, with special metadata which are stored on Cyclades. At the frontend,
|
|
12 |
Cyclades implement the OpenStack Glance API; at the backend it queries an
|
|
13 |
existing Pithos backend. In the current implementation the service runs the
|
|
14 |
Image Service and Pithos on a single, unified backend: users may synchronize
|
|
15 |
their Images, using the Pithos clients, then register them with Cyclades, with
|
|
16 |
zero data movement. Then spawn new VMs from those Images with Cyclades.
|
|
17 | 17 |
|
18 | 18 |
Let's see below: |
19 | 19 |
|
20 |
|
|
21 | 20 |
.. image:: images/synnefo-clonepath.png |
22 | 21 |
|
23 | 22 |
The figure shows a sailor bundling his physical machine with the |
24 |
``snf-image-creator`` tool, uploading the file to pithos+, registering the file |
|
25 |
as a new image with plankton and then spawning two new VMs with Cyclades from |
|
26 |
this image. |
|
27 |
|
|
28 |
The :ref:`Plankton API <plankton-api-guide>` is implemented inside Cyclades, so please consult the |
|
29 |
:ref:`Cyclades Documentation <cyclades>` for more details. |
|
23 |
``snf-image-creator`` tool, uploading the file to Pithos, registering the file |
|
24 |
as a new Image, and then spawning two new VMs with Cyclades from this Image. |
|
30 | 25 |
|
26 |
The :ref:`Image API <plankton-api-guide>` is implemented inside Cyclades, so |
|
27 |
please consult the :ref:`Cyclades Documentation <cyclades>` for more details. |
b/docs/quick-install-admin-guide.rst | ||
---|---|---|
13 | 13 |
* Identity Management (Astakos) |
14 | 14 |
* Object Storage Service (Pithos+) |
15 | 15 |
* Compute Service (Cyclades) |
16 |
* Image Registry Service (Plankton) |
|
16 |
* Image Service (part of Cyclades) |
|
17 |
* Network Service (part of Cyclades) |
|
17 | 18 |
|
18 | 19 |
and a single unified Web UI to manage them all. |
19 | 20 |
|
... | ... | |
27 | 28 |
Installation of Synnefo / Introduction |
28 | 29 |
====================================== |
29 | 30 |
|
30 |
We will install the services with the above list's order. Cyclades and Plankton
|
|
31 |
will be installed in a single step (at the end), because at the moment they are
|
|
32 |
contained in the same software component. Furthermore, we will install all
|
|
33 |
services in the first physical node, except Pithos+ which will be installed in
|
|
34 |
the second, due to a conflict between the snf-pithos-app and snf-cyclades-app
|
|
35 |
component (scheduled to be fixed in the next version). |
|
31 |
We will install the services with the above list's order. The last three
|
|
32 |
services will be installed in a single step (at the end), because at the moment
|
|
33 |
they are contained in the same software component (Cyclades). Furthermore, we
|
|
34 |
will install all services in the first physical node, except Pithos+ which will
|
|
35 |
be installed in the second, due to a conflict between the snf-pithos-app and
|
|
36 |
snf-cyclades-app component (scheduled to be fixed in the next version).
|
|
36 | 37 |
|
37 | 38 |
For the rest of the documentation we will refer to the first physical node as |
38 | 39 |
"node1" and the second as "node2". We will also assume that their domain names |
... | ... | |
53 | 54 |
===================== |
54 | 55 |
|
55 | 56 |
These are the general synnefo prerequisites, that you need on node1 and node2 |
56 |
and are related to all the services (Astakos, Pithos+, Cyclades, Plankton).
|
|
57 |
and are related to all the services (Astakos, Pithos+, Cyclades). |
|
57 | 58 |
|
58 | 59 |
To be able to download all synnefo components you need to add the following |
59 | 60 |
lines in your ``/etc/apt/sources.list`` file: |
... | ... | |
1035 | 1036 |
please continue with the rest of the guide. |
1036 | 1037 |
|
1037 | 1038 |
|
1038 |
Cyclades (and Plankton) Prerequisites
|
|
1039 |
=====================================
|
|
1039 |
Cyclades Prerequisites |
|
1040 |
====================== |
|
1040 | 1041 |
|
1041 |
Before proceeding with the Cyclades (and Plankton) installation, make sure you
|
|
1042 |
have successfully set up Astakos and Pithos+ first, because Cyclades depends
|
|
1043 |
on them. If you don't have a working Astakos and Pithos+ installation yet,
|
|
1044 |
please return to the :ref:`top <quick-install-admin-guide>` of this guide.
|
|
1042 |
Before proceeding with the Cyclades installation, make sure you have
|
|
1043 |
successfully set up Astakos and Pithos+ first, because Cyclades depends on
|
|
1044 |
them. If you don't have a working Astakos and Pithos+ installation yet, please
|
|
1045 |
return to the :ref:`top <quick-install-admin-guide>` of this guide. |
|
1045 | 1046 |
|
1046 | 1047 |
Besides Astakos and Pithos+, you will also need a number of additional working |
1047 | 1048 |
prerequisites, before you start the Cyclades installation. |
... | ... | |
1636 | 1637 |
More about Ganeti's RAPI users `here. |
1637 | 1638 |
<http://docs.ganeti.org/ganeti/2.5/html/rapi.html#introduction>`_ |
1638 | 1639 |
|
1639 |
You have now finished with all needed Prerequisites for Cyclades (and
|
|
1640 |
Plankton). Let's move on to the actual Cyclades installation.
|
|
1640 |
You have now finished with all needed Prerequisites for Cyclades. Let's move on
|
|
1641 |
to the actual Cyclades installation. |
|
1641 | 1642 |
|
1642 | 1643 |
|
1643 |
Installation of Cyclades (and Plankton) on node1
|
|
1644 |
================================================
|
|
1644 |
Installation of Cyclades on node1 |
|
1645 |
================================= |
|
1645 | 1646 |
|
1646 | 1647 |
This section describes the installation of Cyclades. Cyclades is Synnefo's |
1647 |
Compute service. Plankton (the Image Registry service) will get installed |
|
1648 |
automatically along with Cyclades, because it is contained in the same Synnefo |
|
1649 |
component right now. |
|
1648 |
Compute service. The Image Service will get installed automatically along with |
|
1649 |
Cyclades, because it is contained in the same Synnefo component. |
|
1650 | 1650 |
|
1651 |
We will install Cyclades (and Plankton) on node1. To do so, we install the
|
|
1652 |
corresponding package by running on node1:
|
|
1651 |
We will install Cyclades on node1. To do so, we install the corresponding
|
|
1652 |
package by running on node1: |
|
1653 | 1653 |
|
1654 | 1654 |
.. code-block:: console |
1655 | 1655 |
|
1656 | 1656 |
# apt-get install snf-cyclades-app memcached python-memcache |
1657 | 1657 |
|
1658 |
If all packages install successfully, then Cyclades and Plankton are installed
|
|
1659 |
and we proceed with their configuration.
|
|
1658 |
If all packages install successfully, then Cyclades are installed and we
|
|
1659 |
proceed with their configuration. |
|
1660 | 1660 |
|
1661 | 1661 |
Since version 0.13, Synnefo uses the VMAPI in order to prevent sensitive data |
1662 | 1662 |
needed by 'snf-image' to be stored in Ganeti configuration (e.g. VM password). |
... | ... | |
1665 | 1665 |
request. Synnefo uses `memcached <http://memcached.org/>`_ as a |
1666 | 1666 |
`Django <https://www.djangoproject.com/>`_ cache backend. |
1667 | 1667 |
|
1668 |
Configuration of Cyclades (and Plankton)
|
|
1669 |
========================================
|
|
1668 |
Configuration of Cyclades |
|
1669 |
========================= |
|
1670 | 1670 |
|
1671 | 1671 |
Conf files |
1672 | 1672 |
---------- |
... | ... | |
1733 | 1733 |
BACKEND_DB_CONNECTION = 'postgresql://synnefo:example_passw0rd@node1.example.com:5432/snf_pithos' |
1734 | 1734 |
BACKEND_BLOCK_PATH = '/srv/pithos/data/' |
1735 | 1735 |
|
1736 |
In this file we configure the Plankton Service. ``BACKEND_DB_CONNECTION``
|
|
1736 |
In this file we configure the Image Service. ``BACKEND_DB_CONNECTION``
|
|
1737 | 1737 |
denotes the Pithos+ database (where the Image files are stored). So we set that |
1738 | 1738 |
to point to our Pithos+ database. ``BACKEND_BLOCK_PATH`` denotes the actual |
1739 | 1739 |
Pithos+ data location. |
... | ... | |
1774 | 1774 |
|
1775 | 1775 |
CHUID="nobody:www-data" |
1776 | 1776 |
|
1777 |
We have now finished with the basic Cyclades and Plankton configuration.
|
|
1777 |
We have now finished with the basic Cyclades configuration. |
|
1778 | 1778 |
|
1779 | 1779 |
Database Initialization |
1780 | 1780 |
----------------------- |
... | ... | |
1989 | 1989 |
node1 # snf-manage reconcile-resources-cyclades --fix |
1990 | 1990 |
|
1991 | 1991 |
If all the above return successfully, then you have finished with the Cyclades |
1992 |
and Plankton installation and setup.
|
|
1992 |
installation and setup. |
|
1993 | 1993 |
|
1994 | 1994 |
Let's test our installation now. |
1995 | 1995 |
|
1996 | 1996 |
|
1997 |
Testing of Cyclades (and Plankton)
|
|
1998 |
==================================
|
|
1997 |
Testing of Cyclades |
|
1998 |
=================== |
|
1999 | 1999 |
|
2000 | 2000 |
Cyclades Web UI |
2001 | 2001 |
--------------- |
... | ... | |
2019 | 2019 |
Cyclades Images |
2020 | 2020 |
--------------- |
2021 | 2021 |
|
2022 |
To test our Cyclades (and Plankton) installation, we will use an Image stored on
|
|
2023 |
Pithos+ to spawn a new VM from the Cyclades interface. We will describe all
|
|
2024 |
steps, even though you may already have uploaded an Image on Pithos+ from a
|
|
2025 |
:ref:`previous <snf-image-images>` section:
|
|
2022 |
To test our Cyclades installation, we will use an Image stored on Pithos+ to
|
|
2023 |
spawn a new VM from the Cyclades interface. We will describe all steps, even
|
|
2024 |
though you may already have uploaded an Image on Pithos+ from a :ref:`previous
|
|
2025 |
<snf-image-images>` section: |
|
2026 | 2026 |
|
2027 | 2027 |
* Upload an Image file to Pithos+ |
2028 |
* Register that Image file to Plankton
|
|
2028 |
* Register that Image file to Cyclades
|
|
2029 | 2029 |
* Spawn a new VM from that Image from the Cyclades Web UI |
2030 | 2030 |
|
2031 | 2031 |
We will use the `kamaki <http://www.synnefo.org/docs/kamaki/latest/index.html>`_ |
... | ... | |
2055 | 2055 |
|
2056 | 2056 |
$ kamaki config set user.url "https://node1.example.com" |
2057 | 2057 |
$ kamaki config set compute.url "https://node1.example.com/api/v1.1" |
2058 |
$ kamaki config set image.url "https://node1.example.com/plankton"
|
|
2058 |
$ kamaki config set image.url "https://node1.example.com/image"
|
|
2059 | 2059 |
$ kamaki config set file.url "https://node2.example.com/v1" |
2060 | 2060 |
$ kamaki config set token USER_TOKEN |
2061 | 2061 |
|
... | ... | |
2121 | 2121 |
|
2122 | 2122 |
Alternatively check if the new container and file appear on the Pithos+ Web UI. |
2123 | 2123 |
|
2124 |
Register an existing Image file to Plankton
|
|
2124 |
Register an existing Image file to Cyclades
|
|
2125 | 2125 |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
2126 | 2126 |
|
2127 | 2127 |
For the purposes of the following example, we assume that the user UUID is |
2128 | 2128 |
``u53r-un1qu3-1d``. |
2129 | 2129 |
|
2130 | 2130 |
Once the Image file has been successfully uploaded on Pithos+ then we register |
2131 |
it to Plankton (so that it becomes visible to Cyclades), by running:
|
|
2131 |
it to Cyclades, by running:
|
|
2132 | 2132 |
|
2133 | 2133 |
.. code-block:: console |
2134 | 2134 |
|
... | ... | |
2143 | 2143 |
|
2144 | 2144 |
This command registers the Pithos+ file |
2145 | 2145 |
``pithos://u53r-un1qu3-1d/images/debian_base-6.0-7-x86_64.diskdump`` as an |
2146 |
Image in Plankton. This Image will be public (``--public``), so all users will
|
|
2146 |
Image in Cyclades. This Image will be public (``--public``), so all users will
|
|
2147 | 2147 |
be able to spawn VMs from it and is of type ``diskdump``. The first two |
2148 | 2148 |
properties (``OSFAMILY`` and ``ROOT_PARTITION``) are mandatory. All the rest |
2149 | 2149 |
properties are optional, but recommended, so that the Images appear nicely on |
... | ... | |
2152 | 2152 |
inside the ``20-snf-cyclades-app-ui.conf`` configuration file. |
2153 | 2153 |
|
2154 | 2154 |
``OSFAMILY`` and ``ROOT_PARTITION`` are mandatory because they will be passed |
2155 |
from Plankton to Cyclades and then to Ganeti and `snf-image` (also see
|
|
2155 |
from Cyclades to Ganeti and then `snf-image` (also see
|
|
2156 | 2156 |
:ref:`previous section <ganeti-with-pithos-images>`). All other properties are |
2157 | 2157 |
used to show information on the Cyclades UI. |
2158 | 2158 |
|
b/docs/quick-install-intgrt-guide.rst | ||
---|---|---|
17 | 17 |
* Identity Management (Astakos) |
18 | 18 |
* Object Storage Service (Pithos+) |
19 | 19 |
* Compute Service (Cyclades) |
20 |
* Image Registry Service (Plankton) |
|
20 |
* Image Service (part of Cyclades) |
|
21 |
* Network Service (part of Cyclades) |
|
21 | 22 |
|
22 | 23 |
and a single unified Web UI to manage them all. |
23 | 24 |
|
b/docs/scale/i-kamaki.rst | ||
---|---|---|
40 | 40 |
|
41 | 41 |
# kamaki config set astakos.url "https://accounts.example.com" |
42 | 42 |
# kamaki config set compute.url "https://cyclades.example.com/api/v1.1" |
43 |
# kamaki config set image.url "https://cyclades.example.com/plankton"
|
|
43 |
# kamaki config set image.url "https://cyclades.example.com/image"
|
|
44 | 44 |
# kamaki config set store.enable on |
45 | 45 |
# kamaki config set store.pithos_extensions on |
46 | 46 |
# kamaki config set store.url "https://pithos.example.com/v1" |
... | ... | |
63 | 63 |
# kamaki store create images |
64 | 64 |
# kamaki store upload --container images /tmp/debian_base.diskdump debian_base.diskdump |
65 | 65 |
|
66 |
and register it to plankton:
|
|
66 |
and register it with Cyclades:
|
|
67 | 67 |
|
68 | 68 |
.. code-block:: console |
69 | 69 |
|
b/docs/scale/i-synnefo.rst | ||
---|---|---|
26 | 26 |
* Identity Management (Astakos) |
27 | 27 |
* Object Storage Service (Pithos+) |
28 | 28 |
* Compute Service (Cyclades) |
29 |
* Image Registry Service (Plankton) |
|
29 |
* Image Service (part of Cyclades) |
|
30 |
* Network Service (part of Cyclades) |
|
30 | 31 |
|
31 | 32 |
and a single unified Web UI to manage them all. |
32 | 33 |
|
Also available in: Unified diff