File: hot_packages.rst

package info (click to toggle)
murano 1%3A6.0.0-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 10,644 kB
  • sloc: python: 34,127; sh: 717; pascal: 269; makefile: 83
file content (147 lines) | stat: -rw-r--r-- 5,121 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
.. _hot-packages:

============
HOT packages
============

.. _compose_package:

Compose a package
~~~~~~~~~~~~~~~~~

Murano is an Application catalog which intends to support applications defined in different formats. As a first step to universality, support of a heat orchestration template was added.
It means that any heat template could be added as a separate application into the Application Catalog. This could be done in two ways: manual and automatic.

Automatic package composing
---------------------------

Before uploading an application into the catalog, it should be prepared and archived.
A Murano command line will do all preparation for you.
Just choose the desired Heat Orchestration Template and perform the following command:

::

  murano package-create  --template wordpress/template.yaml

Note, that optional parameters could be specified:

:--name: an application name, copied from a template by default
:--logo: an application square logo, by default the heat logo will be used
:--description: text information about an application, by default copied from a template
:--author: a name of an application author
:--output: a name of an output file archive to save locally
:--full-name:  a fully qualified domain name that specifies exact application location
:--resources-dir: a path to the directory containing application resources

.. note::
    To performing this command python-muranoclient should be installed in the system

As the result, an application definition archive will be ready for uploading.

Manual package composing
------------------------

Application package could be composed manually. Follow the 5 steps below.

* *Step 1. Choose the desired heat orchestration template*

  For this example
  `chef-server.yaml <https://github.com/openstack/heat-templates/blob/master/hot/chef-server.yaml>`_
  template will be used.

* *Step 2. Rename it to template.yaml*
* *Step 3. Prepare an application logo (optional step)*

  It could be any picture associated with the application.

* *Step 4. Create manifest.yaml file*

  All service information about the application is contained here. Specify the following parameters:

   :Format: defines an application definition format; should be set to ``Heat.HOT/1.0``
   :Type: defines a manifest type, should be set to ``Application``
   :FullName: a unique name which will be used to identify the application in Murano Catalog
   :Description: text information about an application
   :Author: a name of an application author or a company
   :Tags: keywords associated with the application
   :Logo: a name of a logo file for an application

   Take a look at the example:

    .. code-block:: yaml

        Format: Heat.HOT/1.0
        Type: Application
        FullName: com.example.Chef-Server
        Name: Chef Server
        Description: "Heat template to deploy Open Source CHEF server on a VM"
        Author: Kate
        Tags:
          - hot-based
        Logo: logo.png

* *Step 5. Create a zip archive, containing the specified files:* ``template.yaml``, ``manifest.yaml``, ``logo.png``

`Browse` page looks like:

.. image:: figures/chef_server.png

The configuration form, where you can enter template parameters, will be generated automatically and looks as follows:

.. image:: figures/chef_server_form.png

After filling the form the application is ready to be deployed.

Hot packages with nested Heat templates
---------------------------------------

In Murano HOT packages it is possible to allow Heat nested templates to be
saved and deployed as part of a Murano Heat applications. Such templates
should be placed in package under '/Resources/HotFiles'. Adding additional
templates to a package is optional. When a Heat generated package is being
deployed, if there are any Heat nested templates located in the package under
'/Resources/HotFiles', they are sent to Heat together with the main template
and params during stack creation.

These nested templates can be referenced by putting the template name into the
``type`` attribute of resource definition, in the main template. This
mechanism then compose one logical stack with these multiple templates. The
following examples illustrate how you can use a custom template to define new
types of resources. These examples use a custom template stored in a
``sub_template.yaml`` file

 .. code-block:: yaml

     heat_template_version: 2015-04-30

     parameters:
       key_name:
           type: string
           description: Name of a KeyPair

     resources:
       server:
         type: OS::Nova::Server
         properties:
           key_name: {get_param: key_name}
           flavor: m1.small
           image: ubuntu-trusty

Use the template filename as type
---------------------------------

The following main template defines the ``sub_template.yaml`` file as value for
the type property of a resource

  .. code-block:: yaml

      heat_template_version: 2015-04-30

      resources:
        my_server:
          type: sub_template.yaml
          properties:
            key_name: my_key

.. note::
    This feature is supported Liberty onwards.