Merge "Murano documentation update"
This commit is contained in:
commit
47d8455620
@ -13,6 +13,8 @@
|
|||||||
License for the specific language governing permissions and limitations
|
License for the specific language governing permissions and limitations
|
||||||
under the License.
|
under the License.
|
||||||
|
|
||||||
|
.. _app_pkg:
|
||||||
|
|
||||||
====================================
|
====================================
|
||||||
Composing application package manual
|
Composing application package manual
|
||||||
====================================
|
====================================
|
||||||
@ -145,6 +147,7 @@ General application metadata should be described in the application manifest fil
|
|||||||
* **Author** - person or company name which created an application package
|
* **Author** - person or company name which created an application package
|
||||||
* **Classes** - MuranoPL class list, on which application deployment is based
|
* **Classes** - MuranoPL class list, on which application deployment is based
|
||||||
* **Tags** - list of words, associated with this application. Will be helpful during the search. *Optional* parameter
|
* **Tags** - list of words, associated with this application. Will be helpful during the search. *Optional* parameter
|
||||||
|
* **Require** - list of applications with versions, required by this application. Currently only used by repository importing mechanism. *Optional* parameter
|
||||||
|
|
||||||
.. _Telnet Manifest:
|
.. _Telnet Manifest:
|
||||||
|
|
||||||
@ -164,8 +167,39 @@ Example *manifest.yaml*
|
|||||||
io.murano.apps.linux.Telnet: telnet.yaml
|
io.murano.apps.linux.Telnet: telnet.yaml
|
||||||
UI: telnet.yaml
|
UI: telnet.yaml
|
||||||
Logo: telnet.png
|
Logo: telnet.png
|
||||||
|
Require:
|
||||||
|
io.murano.apps.TelnetHelper: 0.0.1
|
||||||
|
|
||||||
Step 6. Compose a zip archive
|
Step 6. Prepare images.lst file
|
||||||
|
================================
|
||||||
|
|
||||||
|
This step is optional. If you plan on providing images required by your
|
||||||
|
application, you can include ``images.lst`` file with image specifications
|
||||||
|
|
||||||
|
Example *images.lst*
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
Images:
|
||||||
|
- Name: 'my_image.qcow2'
|
||||||
|
Hash: '64d7c1cd2b6f60c92c14662941cb7913'
|
||||||
|
Meta:
|
||||||
|
title: 'tef'
|
||||||
|
type: 'linux'
|
||||||
|
DiskFormat: qcow2
|
||||||
|
ContainerFormat: bare
|
||||||
|
- Name: 'my_other_image.qcow2'
|
||||||
|
Hash: '64d7c1cd2b6f60c92c14662941cb7913'
|
||||||
|
Meta:
|
||||||
|
title: 'tef'
|
||||||
|
type: 'linux'
|
||||||
|
DiskFormat: qcow2
|
||||||
|
ContainerFormat: bare
|
||||||
|
Url: 'http://path.to/images/file.qcow2'
|
||||||
|
|
||||||
|
If *Url* is omitted - the images would be searched for in the Murano Repository.
|
||||||
|
|
||||||
|
Step 7. Compose a zip archive
|
||||||
==============================
|
==============================
|
||||||
|
|
||||||
An application archive should have the following structure
|
An application archive should have the following structure
|
||||||
@ -184,5 +218,7 @@ An application archive should have the following structure
|
|||||||
Image file should be placed in the root folder. It can have any name, just specify it in the manifest file or skip to use default *logo.png* name
|
Image file should be placed in the root folder. It can have any name, just specify it in the manifest file or skip to use default *logo.png* name
|
||||||
* *manifest.yaml*
|
* *manifest.yaml*
|
||||||
Application manifest file. It's an application entry point. The file name is fixed.
|
Application manifest file. It's an application entry point. The file name is fixed.
|
||||||
|
* *images.lst*
|
||||||
|
List of required images. Optional file.
|
||||||
|
|
||||||
Congratulations! Your application is ready to be uploaded to an Application Catalog.
|
Congratulations! Your application is ready to be uploaded to an Application Catalog.
|
||||||
|
217
doc/source/articles/client.rst
Normal file
217
doc/source/articles/client.rst
Normal file
@ -0,0 +1,217 @@
|
|||||||
|
..
|
||||||
|
Copyright 2015 Mirantis, Inc.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
not use this file except in compliance with the License. You may obtain
|
||||||
|
a copy of the License at
|
||||||
|
|
||||||
|
http//www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
License for the specific language governing permissions and limitations
|
||||||
|
under the License.
|
||||||
|
|
||||||
|
.. _client:
|
||||||
|
|
||||||
|
=============
|
||||||
|
Murano client
|
||||||
|
=============
|
||||||
|
|
||||||
|
Module python-muranoclient comes with CLI *murano* utility, that interacts with
|
||||||
|
Murano application catalog
|
||||||
|
|
||||||
|
Installation
|
||||||
|
============
|
||||||
|
|
||||||
|
To install latest murano CLI client run the following command in your shell::
|
||||||
|
|
||||||
|
pip install python-muranoclient
|
||||||
|
|
||||||
|
Alternatively you can checkout the latest version from
|
||||||
|
https://github.com/stackforge/python-muranoclient
|
||||||
|
|
||||||
|
|
||||||
|
Using CLI client
|
||||||
|
================
|
||||||
|
|
||||||
|
In order to use the CLI, you must provide your OpenStack username, password,
|
||||||
|
tenant name or id, and auth endpoint. Use the corresponding arguments
|
||||||
|
(``--os-username``, ``--os-password``, ``--os-tenant-name`` or
|
||||||
|
``--os-tenant-id``, ``--os-auth-url`` and ``--murano-url``) or
|
||||||
|
set corresponding environment variables::
|
||||||
|
|
||||||
|
export OS_USERNAME=user
|
||||||
|
export OS_PASSWORD=password
|
||||||
|
export OS_TENANT_NAME=tenant
|
||||||
|
export OS_AUTH_URL=http://auth.example.com:5000/v2.0
|
||||||
|
export MURANO_URL=http://murano.example.com:8082/
|
||||||
|
|
||||||
|
Once you've configured your authentication parameters, you can run ``murano
|
||||||
|
help`` to see a complete listing of available commands and arguments and
|
||||||
|
``murano help <sub_command>`` to get help on specific subcommand.
|
||||||
|
|
||||||
|
|
||||||
|
Bash completion
|
||||||
|
===============
|
||||||
|
|
||||||
|
To get the latest bash completion script download `murano.bash_completion`_
|
||||||
|
from the source repository and add it to your completion scripts.
|
||||||
|
|
||||||
|
|
||||||
|
.. _murano.bash_completion: https://raw.githubusercontent.com/stackforge/python-muranoclient/master/tools/murano.bash_completion
|
||||||
|
|
||||||
|
|
||||||
|
Listing currently installed packages
|
||||||
|
====================================
|
||||||
|
|
||||||
|
To get list of currently installed packages run::
|
||||||
|
|
||||||
|
murano package-list
|
||||||
|
|
||||||
|
To show details about specific package run::
|
||||||
|
|
||||||
|
murano package-show <PKG_ID>
|
||||||
|
|
||||||
|
Importing packages in Murano
|
||||||
|
============================
|
||||||
|
|
||||||
|
``package-import`` subcommand can install packages in several different ways:
|
||||||
|
* from a locall file
|
||||||
|
* from a http url
|
||||||
|
* from murano app repository
|
||||||
|
|
||||||
|
When creating a package you can specify it's categories with
|
||||||
|
``-c/--categories`` and set it's publicity with ``--public``
|
||||||
|
|
||||||
|
To import a local package run::
|
||||||
|
|
||||||
|
murano package-import /path/to/package.zip
|
||||||
|
|
||||||
|
To import a package from http url run::
|
||||||
|
|
||||||
|
murano package-import http://example.com/path/to/package.zip
|
||||||
|
|
||||||
|
And finally you can import a package from Murano repository. To do so you have
|
||||||
|
to specify base url for the repository with ``--murano-repo-url`` or with the
|
||||||
|
corresponding ``MURANO_REPO_URL`` environment variable. After doing so,
|
||||||
|
running::
|
||||||
|
|
||||||
|
murano --murano-repo-url="http://example.com/" package-import io.app.foo
|
||||||
|
|
||||||
|
would access specified repository and download app ``io.app.foo`` from it's
|
||||||
|
app directory. This option supports an optional ``--version`` parameter, that
|
||||||
|
would instruct murano client to download package of a specific version.
|
||||||
|
|
||||||
|
``package-import`` inspects package requirements specified in the package's
|
||||||
|
manifest under `Require` section and attempts to import them from
|
||||||
|
Murano Repository.
|
||||||
|
``package-import`` also inspects any image prerequisites, mentioned in the
|
||||||
|
`images.lst` file in the package. If there are any image requirements client
|
||||||
|
would inspect images already present in the image database. Unless image with
|
||||||
|
the specific name and hash is present client would attempt to download it.
|
||||||
|
|
||||||
|
For more info about specifiying images and requirements for the package see
|
||||||
|
package creation docs: :ref:`app_pkg`.
|
||||||
|
|
||||||
|
If any of the packages, being installed is already registerd in Murano, client
|
||||||
|
would ask you what do do with it. You can specify the default action with
|
||||||
|
``--exists-action``, passing `s` for skip, `u` for update, and `a` for abort.
|
||||||
|
|
||||||
|
Importing bundles of packages in Murano
|
||||||
|
=======================================
|
||||||
|
|
||||||
|
``package-import`` subcommand can install packages in several different ways:
|
||||||
|
* from a locall file
|
||||||
|
* from a http url
|
||||||
|
* from murano app repository
|
||||||
|
|
||||||
|
When creating a package you can specify it's categories with
|
||||||
|
``-c/--categories`` and set it's publicity with ``--public``
|
||||||
|
|
||||||
|
To import a local bundle run::
|
||||||
|
|
||||||
|
murano bundle-import /path/to/bundle
|
||||||
|
|
||||||
|
To import a bundle from http url run::
|
||||||
|
|
||||||
|
murano bundle-import http://example.com/path/to/bundle
|
||||||
|
|
||||||
|
To import a bundle from murano repository run::
|
||||||
|
|
||||||
|
murano bundle-import bundle_name
|
||||||
|
|
||||||
|
Note: When importing from a local file packages would first be searched in a
|
||||||
|
directory, relative to the directory containing the bundle file itself. This
|
||||||
|
is done to facilitate installing bundles in an environment with no access to
|
||||||
|
the repository itself.
|
||||||
|
|
||||||
|
Deleting packages from murano
|
||||||
|
=============================
|
||||||
|
|
||||||
|
To delete a package run::
|
||||||
|
|
||||||
|
murano package-delete <PKG_ID>
|
||||||
|
|
||||||
|
|
||||||
|
Downloading package file
|
||||||
|
========================
|
||||||
|
|
||||||
|
Running::
|
||||||
|
|
||||||
|
murano package-download <PKG_ID> > file.zip
|
||||||
|
|
||||||
|
would download the zip arhive with specified package
|
||||||
|
|
||||||
|
Creating a package
|
||||||
|
==================
|
||||||
|
|
||||||
|
Murano client is able to create application packages from package source
|
||||||
|
files/directories. To find out more about this command run::
|
||||||
|
|
||||||
|
murano help package-create
|
||||||
|
|
||||||
|
This command is useful, when application package files are spread across
|
||||||
|
several directories, and for auto-generating packages from heat templates
|
||||||
|
For more info about package composition please see package creation docs:
|
||||||
|
:ref:`app_pkg`.
|
||||||
|
|
||||||
|
|
||||||
|
Managing Environments
|
||||||
|
=====================
|
||||||
|
|
||||||
|
It is possible to create/update/delete environments with following commands::
|
||||||
|
|
||||||
|
murano environment-create <NAME>
|
||||||
|
murano environment-delete <NAME_OR_ID>
|
||||||
|
murano environment-list
|
||||||
|
murano environment-rename <OLD_NAME_OR_ID> <NEW_NAME>
|
||||||
|
murano environment-show <NAME_OR_ID>
|
||||||
|
|
||||||
|
You can get list of deployments for environmet with::
|
||||||
|
|
||||||
|
murano deployment-list <NAME_OR_ID>
|
||||||
|
|
||||||
|
Managing Categories
|
||||||
|
===================
|
||||||
|
|
||||||
|
It is possible to create/update/delete categories with following commands::
|
||||||
|
|
||||||
|
murano category-create <NAME>
|
||||||
|
murano category-delete <ID> [<ID> ...]
|
||||||
|
murano category-list
|
||||||
|
murano category-show <ID>
|
||||||
|
|
||||||
|
Managing Environmet Templates
|
||||||
|
=============================
|
||||||
|
|
||||||
|
It is possible to manage environment templates with following commands::
|
||||||
|
|
||||||
|
murano env-template-create <NAME>
|
||||||
|
murano env-template-add-app <NAME> <FILE>
|
||||||
|
murano env-template-del-app <NAME> <FILE>
|
||||||
|
murano env-template-delete <ID>
|
||||||
|
murano env-template-list
|
||||||
|
murano env-template-show <ID>
|
||||||
|
murano env-template-update <ID> <NEW_NAME>
|
63
doc/source/articles/repository.rst
Normal file
63
doc/source/articles/repository.rst
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
..
|
||||||
|
Copyright 2015 Mirantis, Inc.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
not use this file except in compliance with the License. You may obtain
|
||||||
|
a copy of the License at
|
||||||
|
|
||||||
|
http//www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
License for the specific language governing permissions and limitations
|
||||||
|
under the License.
|
||||||
|
|
||||||
|
.. _repository:
|
||||||
|
|
||||||
|
=========================
|
||||||
|
Murano package repository
|
||||||
|
=========================
|
||||||
|
|
||||||
|
Murano client and dashboard are both capable of installing packages and
|
||||||
|
bundles of packages from murano repository. To do so you should set
|
||||||
|
``MURANO_REPO_URL`` settings in murano dashboard or ``MURANO_REPO_URL`` env
|
||||||
|
variable for the CLI client and use the respective command for package import.
|
||||||
|
These commands would then automatically import all the prerequisites for the
|
||||||
|
app being installed along with any images, mentioned in said apps.
|
||||||
|
|
||||||
|
For more info about importing from repository see :ref:`client`.
|
||||||
|
|
||||||
|
Setting up your own repository
|
||||||
|
==============================
|
||||||
|
|
||||||
|
It's fairly easy to set up your own murano package repository.
|
||||||
|
To do so you need a web server, that would serve 3 directories:
|
||||||
|
* /apps/
|
||||||
|
* /bundles/
|
||||||
|
* /images/
|
||||||
|
|
||||||
|
When importing an app by name client would append any version info, if present
|
||||||
|
to the app name, ``.zip`` file extension and search for that file in the
|
||||||
|
``apps`` directory.
|
||||||
|
|
||||||
|
When importing a bundle by name client would append ``.bundle`` file
|
||||||
|
extension to the bundle name and search it in the ``bundles`` directory.
|
||||||
|
Bundle file is a json or a yaml file with the following structure:
|
||||||
|
|
||||||
|
.. code-block:: json
|
||||||
|
|
||||||
|
{"Packages":
|
||||||
|
[
|
||||||
|
{"Name": "io.murano.apps.ApacheHttpServer"},
|
||||||
|
{"Version": "", "Name": "io.murano.apps.Nginx"},
|
||||||
|
{"Version": "0.0.1", "Name": "io.murano.apps.Lighttpd"}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
Glance images can be auto-imported by client, when mentioned in ``images.lst``
|
||||||
|
inside the package. Please see :ref:`app_pkg` for more info about pakcage
|
||||||
|
composition.
|
||||||
|
When importing images from ``image.lst`` file client simply searches for a
|
||||||
|
file with the same name as the ``Name`` attribute of the image in the
|
||||||
|
``images`` directory of the repository.
|
@ -31,18 +31,20 @@ Key goal is to provide UI and API which allows to compose and deploy composite
|
|||||||
environments on the Application abstraction level and then manage their
|
environments on the Application abstraction level and then manage their
|
||||||
lifecycle.
|
lifecycle.
|
||||||
|
|
||||||
Murano consists of three source code repositories:
|
Murano consists of several source code repositories:
|
||||||
* `murano`_ - is the main repository. It contains code for Murano API
|
* `murano`_ - is the main repository. It contains code for Murano API
|
||||||
server, Murano engine and MuranoPL
|
server, Murano engine and MuranoPL
|
||||||
* `murano-agent`_ - agent which runs on guest VMs and executes deployment
|
* `murano-agent`_ - agent which runs on guest VMs and executes deployment
|
||||||
plan
|
plan
|
||||||
* `murano-dashboard`_ - Murano UI implemented as a plugin for OpenStack
|
* `murano-dashboard`_ - Murano UI implemented as a plugin for OpenStack
|
||||||
Dashboard
|
Dashboard
|
||||||
|
* `python-muranoclient`_ - Client library and CLI client for Murano
|
||||||
|
|
||||||
|
|
||||||
.. _murano: https://git.openstack.org/cgit/stackforge/murano/
|
.. _murano: https://git.openstack.org/cgit/stackforge/murano/
|
||||||
.. _murano-agent: https://git.openstack.org/cgit/stackforge/murano-agent/
|
.. _murano-agent: https://git.openstack.org/cgit/stackforge/murano-agent/
|
||||||
.. _murano-dashboard: https://git.openstack.org/cgit/stackforge/murano-dashboard/
|
.. _murano-dashboard: https://git.openstack.org/cgit/stackforge/murano-dashboard/
|
||||||
|
.. _python-muranoclient: https://git.openstack.org/cgit/stackforge/python-muranoclient/
|
||||||
|
|
||||||
|
|
||||||
This documentation offers information on how Murano works and how to
|
This documentation offers information on how Murano works and how to
|
||||||
@ -77,6 +79,20 @@ contribute to the project.
|
|||||||
image_builders/index
|
image_builders/index
|
||||||
articles/test_docs
|
articles/test_docs
|
||||||
|
|
||||||
|
**Client**
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
articles/client
|
||||||
|
|
||||||
|
**Repository**
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
articles/repository
|
||||||
|
|
||||||
**Guidelines**
|
**Guidelines**
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
..
|
..
|
||||||
Copyright 2014 2014 Mirantis, Inc.
|
Copyright 2014 Mirantis, Inc.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may
|
Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
not use this file except in compliance with the License. You may obtain
|
not use this file except in compliance with the License. You may obtain
|
||||||
|
Loading…
Reference in New Issue
Block a user