https://wiki.openstack.org/w/api.php?action=feedcontributions&user=IYozhikov&feedformat=atomOpenStack - User contributions [en]2024-03-28T12:26:43ZUser contributionsMediaWiki 1.28.2https://wiki.openstack.org/w/index.php?title=Rpm-packaging&diff=151320Rpm-packaging2017-02-20T16:25:29Z<p>IYozhikov: </p>
<hr />
<div>[[Category:Packaging]]<br />
<br />
== Introduction ==<br />
<br />
RPM Packaging for OpenStack is an cross-distribution and cross-vendor effort to create common templates for building OpenStack packages for RPM based Linux and OpenStack distributions. The project was started with the goal of unifying the independent packaging efforts of RDO and SUSE, but is really open for anyone who wants to contribute RPM packaging spec files for any distribution.<br />
<br />
== Goals ==<br />
<br />
The goal of the project is to build up a central repository for RPM .spec files and in the longer run unify the downstream packaging efforts into one jointly maintained upstream project. <br />
We intend to also maintain the packaging of the stable/ branch lifecycle of the OpenStack Mitaka release.<br />
<br />
== Projects ==<br />
<br />
=== rpm-packaging ===<br />
{| border="1" cellpadding="2"<br />
| Official name<br />
| '''rpm-packaging'''<br />
|-<br />
| Source code<br />
| https://github.com/openstack/rpm-packaging and https://github.com/openstack/rpm-packaging-tools<br />
|-<br />
| Bug tracker<br />
| https://bugs.launchpad.net/rpm-packaging<br />
|-<br />
| Feature tracker<br />
| https://blueprints.launchpad.net/rpm-packaging<br />
|-<br />
| Attached CIs <br />
| [[ThirdPartySystems/SUSE_Cloud_CI|SUSE]] [[ThirdPartySystems/Fuel_Packaging_CI|Mirantis]]<br />
|}<br />
<br />
=== renderspec ===<br />
{| border="1" cellpadding="2"<br />
| Official name<br />
| '''renderspec'''<br />
|-<br />
| Documentation<br />
| http://docs.openstack.org/developer/renderspec/<br />
|-<br />
| Source code<br />
| https://github.com/openstack/renderspec<br />
|-<br />
| Bug tracker<br />
| https://bugs.launchpad.net/renderspec<br />
|}<br />
<br />
=== pymod2pkg ===<br />
{| border="1" cellpadding="2"<br />
| Official name<br />
| '''pymod2pkg'''<br />
|-<br />
| Source code<br />
| https://github.com/openstack/pymod2pkg<br />
|-<br />
| Bug tracker<br />
| https://bugs.launchpad.net/pymod2pkg<br />
|}<br />
<br />
== Contact ==<br />
<br />
Most of the core team is reachable on the Freenode IRC channel #openstack-rpm-packaging. if in doubt, please ping<br />
number80 or dirk. <br><br />
The PTL for the Pike cycle is Igor Yozhikov (IRC nick: IgorYozhikov)<br><br />
The PTL for the Ocata cycle is Haïkel Guémar (IRC nick: number80)<br><br />
The PTL for the Newton Cycle is Dirk Mueller (IRC nick: dirk)<br><br />
The PTL for the Mitaka Cycle was Dirk Mueller (IRC nick: dirk)<br><br />
<br />
Preferred way to interact with the contributors is by joining the weekly [https://wiki.openstack.org/wiki/Rpm-packaging/Meetings IRC Meeting].<br />
<br />
== Subpages ==<br />
<br />
{{Special:PrefixIndex/:Rpm-packaging/|hideredirects=1 }}</div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=Rpm-packaging/packages-bootstrapping&diff=133030Rpm-packaging/packages-bootstrapping2016-09-15T13:02:17Z<p>IYozhikov: add new line</p>
<hr />
<div>Short description:<br />
<br />
Very often a project which is going to be packaged has in its source code tree additional things not required or used in run-time.<br />
For example:<br />
* documentation sources<br />
* tests (unit, functional, etc)<br />
To handle mentioned above things package should contain additional build time requirements. These requirements are not always exist as a built earlier rpm package.<br />
To be able to do initial packaging of source code sometimes it is require to skip build of documentation and run tests from %check section. Also absence of these requirements could lead to circular dependency loops and this is another problem which should be solved by using minimal build.</div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=Rpm-packaging/packages-bootstrapping&diff=133029Rpm-packaging/packages-bootstrapping2016-09-15T13:01:45Z<p>IYozhikov: Initial page describing package bootstrapping</p>
<hr />
<div>Short description:<br />
Very often a project which is going to be packaged has in its source code tree additional things not required or used in run-time.<br />
For example:<br />
* documentation sources<br />
* tests (unit, functional, etc)<br />
To handle mentioned above things package should contain additional build time requirements. These requirements are not always exist as a built earlier rpm package.<br />
To be able to do initial packaging of source code sometimes it is require to skip build of documentation and run tests from %check section. Also absence of these requirements could lead to circular dependency loops and this is another problem which should be solved by using minimal build.</div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=DEB-packaging/Meetings&diff=132216DEB-packaging/Meetings2016-08-29T13:40:09Z<p>IYozhikov: letter change in page name</p>
<hr />
<div>= Weekly DEB Packaging for OpenStack team meeting =<br />
'''MEETING TIME: Monday 13:00 UTC (#openstack-meeting-alt)'''<br />
<br />
This meeting is a weekly gathering of developers working on [[DEB-packaging|DEB Packaging for OpenStack]]. <br />
<br />
Add your IRC nick to this list to be pinged at the start of the meeting:<br />
<code><br />
zigo, mordred, tlbr, IgorYozhikov<br />
</code><br />
<br />
The agenda for the next meeting is collected in Etherpad:<br />
https://etherpad.openstack.org/p/openstack-deb-packaging<br />
<br />
<br />
[[category: meetings]]</div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=DEB-packaging&diff=132204DEB-packaging2016-08-29T11:09:24Z<p>IYozhikov: add subpages</p>
<hr />
<div>[[Category:Packaging]]<br />
<br />
==Introduction==<br />
<br />
We want to be able to work on DEB packages for OpenStack create working deb packages.<br />
This will allow us to work on Ubuntu/Debian compatible packages with community and DEB packages maintainers who are already doing the same work separate.<br />
<br />
== Goals ==<br />
<br />
The goal of the project is to create and develop further a central place for DEB packages specifications. Here we will maintain Linux packages for the OpenStack.<br />
This will allow to involve to development process as maintainers of Linux packages as developers of various types OpenStack projects. Together, we will do better packages.<br />
<br />
== Contact ==<br />
<br />
The team can be found on the Freenode IRC channel #openstack-pkg.<br><br />
he PTL for the Newton Cycle is Monty Taylor (IRC nick: mordred)<br />
<br />
<br />
== Subpages ==<br />
<br />
{{Special:PrefixIndex/:DEB-packaging/|hideredirects=1 }}</div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=DEB-packaging/Meetings&diff=132203DEB-packaging/Meetings2016-08-29T11:08:18Z<p>IYozhikov: Initial meeting page</p>
<hr />
<div>= Weekly DEB Packaging for OpenStack team meeting =<br />
'''MEETING TIME: Monday 13:00 UTC (#openstack-meeting-alt)'''<br />
<br />
This meeting is a weekly gathering of developers working on [[DEB-Packaging|DEB Packaging for OpenStack]]. <br />
<br />
Add your IRC nick to this list to be pinged at the start of the meeting:<br />
<code><br />
zigo, mordred, tlbr, IgorYozhikov<br />
</code><br />
<br />
The agenda for the next meeting is collected in Etherpad:<br />
https://etherpad.openstack.org/p/openstack-deb-packaging<br />
<br />
<br />
[[category: meetings]]</div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=DEB-packaging&diff=132202DEB-packaging2016-08-29T11:02:11Z<p>IYozhikov: Initial page for DEB packaging team</p>
<hr />
<div>[[Category:Packaging]]<br />
<br />
==Introduction==<br />
<br />
We want to be able to work on DEB packages for OpenStack create working deb packages.<br />
This will allow us to work on Ubuntu/Debian compatible packages with community and DEB packages maintainers who are already doing the same work separate.<br />
<br />
== Goals ==<br />
<br />
The goal of the project is to create and develop further a central place for DEB packages specifications. Here we will maintain Linux packages for the OpenStack.<br />
This will allow to involve to development process as maintainers of Linux packages as developers of various types OpenStack projects. Together, we will do better packages.<br />
<br />
== Contact ==<br />
<br />
The team can be found on the Freenode IRC channel #openstack-pkg.<br><br />
he PTL for the Newton Cycle is Monty Taylor (IRC nick: mordred)</div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=Rpm-packaging/ContentStyle&diff=127539Rpm-packaging/ContentStyle2016-06-30T17:04:49Z<p>IYozhikov: change vertical indentation according to linter setup</p>
<hr />
<div>=Code style definition=<br />
Code should be written in common manner and in the way easy to read.<br />
==Head==<br />
* All ''%global'' variables must be declared at the very beginning<br />
* Name: value, which is used within ''py2name'' context function, must equals ''pypi'' name!<br />
* Version: value is almost equals to git tag. For non trivial versions containing dev, alpha, beta, rc in version should be used ''tilda''='''~''' as delimiter from numerical version part .<br />
<br />
==Indentation==<br />
* Horizontal indentation - the values goes right after the BuildRequires: and 2 spaces.<br />
* Vertical indentation - all logical blocks like %pre, %build, %install, %files, etc should be separated with 1 newline.<br />
<br />
==Example==<br />
<pre><nowiki><br />
%global sname py_name<br />
Name: {{ py2name('py_name') }}<br />
Version: X.Y.Z<br />
Release: 0<br />
Summary: A for .... functionality for OpenStack projects<br />
License: {{ 'Apache-2.0' | license }}<br />
Group: Development/Languages/Python<br />
Url: http://www.homepage.org/<br />
Source: https://pypi.python.org/packages/source/o/%{sname}/%{sname}-%{version}.tar.gz<br />
BuildRequires: openstack-macros<br />
BuildRequires: {{ py2pkg('devel') }}<br />
BuildRequires: {{ py2pkg('build_req0') }}<br />
BuildRequires: {{ py2pkg('build_req1') }}<br />
Requires: {{ py2pkg('runtume_req0') }}<br />
Requires: {{ py2pkg('runtume_req1') }}<br />
BuildArch: noarch<br />
<br />
%description<br />
A py_name ......... for OpenStack projects<br />
* Documentation: http://docs.openstack.org/developer/py_name<br />
* Source: http://git.openstack.org/cgit/openstack/py_name<br />
* Bugs: http://bugs.launchpad.net/py_name<br />
<br />
%package doc<br />
Summary: Documentation for the py_name<br />
Group: Documentation<br />
BuildRequires: {{ py2pkg('doc builld req0') }}<br />
BuildRequires: {{ py2pkg('doc builld req0') }}<br />
Requires: %{name} = ${version}<br />
<br />
%description doc<br />
Documentation for py_name .........<br />
<br />
%prep<br />
%setup -q -n %{sname}-%{version}<br />
<br />
%build<br />
%{__python2} setup.py build<br />
# generate html docs<br />
%{__python2} setup.py build_sphinx<br />
# remove the sphinx-build leftovers<br />
rm -rf doc/build/html/.{doctrees,buildinfo}<br />
<br />
%install<br />
%{__python2} setup.py install --prefix=%{_prefix} --root=%{buildroot}<br />
<br />
%check<br />
export PATH="$PATH:%{buildroot}/%{_bindir}"<br />
export PYTHONPATH="%{python2_sitearch}:%{python2_sitelib}:%{buildroot}%{python2_sitelib}"<br />
%{__python2} setup.py testr<br />
<br />
%files<br />
%defattr(-,root,root,-)<br />
%license LICENSE<br />
%doc README.rst ChangeLog<br />
%{_bindir}/py_name_cli<br />
%{python2_sitelib}/py_name<br />
%{python2_sitelib}/py_name*egg-info<br />
<br />
%files doc<br />
%license LICENSE<br />
%doc doc/build/html<br />
<br />
%changelog <br />
<br />
</nowiki></pre></div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=Rpm-packaging/ContentStyle&diff=124280Rpm-packaging/ContentStyle2016-04-21T13:36:22Z<p>IYozhikov: /* Example */</p>
<hr />
<div>=Code style definition=<br />
Code should be written in common manner and in the way easy to read.<br />
==Head==<br />
* All ''%global'' variables must be declared at the very beginning<br />
* Name: value, which is used within ''py2name'' context function, must equals ''pypi'' name!<br />
* Version: value is almost equals to git tag. For non trivial versions containing dev, alpha, beta, rc in version should be used ''tilda''='''~''' as delimiter from numerical version part .<br />
<br />
==Indentation==<br />
* Horizontal indentation - the values goes right after the BuildRequires: and 2 spaces.<br />
* Vertical indentation - all logical blocks like %pre, %build, %install, %files, etc should be separated with 2 newlines.<br />
<br />
==Example==<br />
<pre><nowiki><br />
%global sname py_name<br />
Name: {{ py2name('py_name') }}<br />
Version: X.Y.Z<br />
Release: 0<br />
Summary: A for .... functionality for OpenStack projects<br />
License: {{ 'Apache-2.0' | license }}<br />
Group: Development/Languages/Python<br />
Url: http://www.homepage.org/<br />
Source: https://pypi.python.org/packages/source/o/%{sname}/%{sname}-%{version}.tar.gz<br />
BuildRequires: openstack-macros<br />
BuildRequires: {{ py2pkg('devel') }}<br />
BuildRequires: {{ py2pkg('build_req0') }}<br />
BuildRequires: {{ py2pkg('build_req1') }}<br />
Requires: {{ py2pkg('runtume_req0') }}<br />
Requires: {{ py2pkg('runtume_req1') }}<br />
BuildArch: noarch<br />
<br />
<br />
%description<br />
A py_name ......... for OpenStack projects<br />
* Documentation: http://docs.openstack.org/developer/py_name<br />
* Source: http://git.openstack.org/cgit/openstack/py_name<br />
* Bugs: http://bugs.launchpad.net/py_name<br />
<br />
<br />
%package doc<br />
Summary: Documentation for the py_name<br />
Group: Documentation<br />
BuildRequires: {{ py2pkg('doc builld req0') }}<br />
BuildRequires: {{ py2pkg('doc builld req0') }}<br />
<br />
<br />
%description doc<br />
Documentation for the testr wrapper.<br />
<br />
<br />
%prep<br />
%setup -q -n %{sname}-%{version}<br />
<br />
<br />
%build<br />
%{__python2} setup.py build<br />
# generate html docs<br />
%{__python2} setup.py build_sphinx<br />
# remove the sphinx-build leftovers<br />
rm -rf doc/build/html/.{doctrees,buildinfo}<br />
<br />
<br />
%install<br />
%{__python2} setup.py install --prefix=%{_prefix} --root=%{buildroot}<br />
<br />
<br />
%check<br />
export PATH="$PATH:%{buildroot}/%{_bindir}"<br />
export PYTHONPATH="%{python2_sitearch}:%{python2_sitelib}:%{buildroot}%{python2_sitelib}"<br />
%{__python2} setup.py testr<br />
<br />
<br />
%files<br />
%defattr(-,root,root,-)<br />
%license LICENSE<br />
%doc README.rst ChangeLog<br />
%{_bindir}/py_name_cli<br />
%{python2_sitelib}/py_name<br />
%{python2_sitelib}/py_name*egg-info<br />
<br />
<br />
%files doc<br />
%license LICENSE<br />
%doc doc/build/html<br />
<br />
<br />
%changelog <br />
</nowiki></pre></div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=Rpm-packaging/ContentStyle&diff=124278Rpm-packaging/ContentStyle2016-04-21T11:46:38Z<p>IYozhikov: /* Example */</p>
<hr />
<div>=Code style definition=<br />
Code should be written in common manner and in the way easy to read.<br />
==Head==<br />
* All ''%global'' variables must be declared at the very beginning<br />
* Name: value, which is used within ''py2name'' context function, must equals ''pypi'' name!<br />
* Version: value is almost equals to git tag. For non trivial versions containing dev, alpha, beta, rc in version should be used ''tilda''='''~''' as delimiter from numerical version part .<br />
<br />
==Indentation==<br />
* Horizontal indentation - the values goes right after the BuildRequires: and 2 spaces.<br />
* Vertical indentation - all logical blocks like %pre, %build, %install, %files, etc should be separated with 2 newlines.<br />
<br />
==Example==<br />
<pre><nowiki><br />
%global sname py_name<br />
Name: {{ py2name('py_name') }}<br />
Version: X.Y.Z<br />
Release: 0<br />
Summary: A for .... functionality for OpenStack projects<br />
License: {{ 'Apache-2.0' | license }}<br />
Group: Development/Languages/Python<br />
Url: http://www.homepage.org/<br />
Source: https://pypi.python.org/packages/source/o/%{sname}/%{sname}-%{version}.tar.gz<br />
BuildRequires: openstack-macros<br />
BuildRequires: {{ py2pkg('devel') }}<br />
BuildRequires: {{ py2pkg('build_req0') }}<br />
BuildRequires: {{ py2pkg('build_req1') }}<br />
Requires: {{ py2pkg('runtume_req0') }}<br />
Requires: {{ py2pkg('runtume_req1') }}<br />
BuildArch: noarch<br />
<br />
<br />
%description<br />
A py_name ......... for OpenStack projects<br />
* Documentation: http://docs.openstack.org/developer/py_name<br />
* Source: http://git.openstack.org/cgit/openstack/py_name<br />
* Bugs: http://bugs.launchpad.net/py_name<br />
<br />
<br />
%package doc<br />
Summary: Documentation for the py_name<br />
Group: Documentation<br />
BuildRequires: {{ py2pkg('doc builld req0') }}<br />
BuildRequires: {{ py2pkg('doc builld req0') }}<br />
<br />
<br />
%description doc<br />
Documentation for the testr wrapper.<br />
<br />
<br />
%prep<br />
%setup -q -n %{sname}-%{version}<br />
<br />
<br />
%build<br />
%{__python2} setup.py build<br />
# generate html docs<br />
%{__python2} setup.py build_sphinx<br />
# remove the sphinx-build leftovers<br />
rm -rf doc/build/html/.{doctrees,buildinfo}<br />
<br />
<br />
%install<br />
%{__python2} setup.py install --prefix=%{_prefix} --root=%{buildroot}<br />
<br />
<br />
%check<br />
export PATH="$PATH:%{buildroot}/%{_bindir}"<br />
export PYTHONPATH="%{python2_sitearch}:%{python2_sitelib}:%{buildroot}%{python2_sitelib}"<br />
%{__python2} setup.py testr<br />
<br />
<br />
%files<br />
%defattr(-,root,root,-)<br />
%license LICENSE<br />
%doc README.rst ChangeLog<br />
%{_bindir}/py_name_cli<br />
%{python2_sitelib}/py_name<br />
%{python2_sitelib}/py_name*egg-info<br />
<br />
<br />
%files doc<br />
%license LICENSE<br />
%doc doc/build/html<br />
<br />
<br />
%changelog <br />
</nowiki></pre></div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=Rpm-packaging/ContentStyle&diff=124277Rpm-packaging/ContentStyle2016-04-21T11:45:21Z<p>IYozhikov: Add style guide and example</p>
<hr />
<div>=Code style definition=<br />
Code should be written in common manner and in the way easy to read.<br />
==Head==<br />
* All ''%global'' variables must be declared at the very beginning<br />
* Name: value, which is used within ''py2name'' context function, must equals ''pypi'' name!<br />
* Version: value is almost equals to git tag. For non trivial versions containing dev, alpha, beta, rc in version should be used ''tilda''='''~''' as delimiter from numerical version part .<br />
<br />
==Indentation==<br />
* Horizontal indentation - the values goes right after the BuildRequires: and 2 spaces.<br />
* Vertical indentation - all logical blocks like %pre, %build, %install, %files, etc should be separated with 2 newlines.<br />
<br />
==Example==<br />
<pre><nowiki><br />
%global sname py_name<br />
Name: {{ py2name('py_name') }}<br />
Version: X.Y.Z<br />
Release: 0<br />
Summary: A for .... functionality for OpenStack projects<br />
License: {{ 'Apache-2.0' | license }}<br />
Group: Development/Languages/Python<br />
Url: http://www.homepage.org/<br />
Source: https://pypi.python.org/packages/source/o/%{sname}/%{sname}-%{version}.tar.gz<br />
BuildRequires: openstack-macros<br />
BuildRequires: python-devel<br />
BuildRequires: {{ py2pkg('build_req0') }}<br />
BuildRequires: {{ py2pkg('build_req1') }}<br />
Requires: {{ py2pkg('runtume_req0') }}<br />
Requires: {{ py2pkg('runtume_req1') }}<br />
BuildArch: noarch<br />
<br />
<br />
%description<br />
A py_name ......... for OpenStack projects<br />
* Documentation: http://docs.openstack.org/developer/py_name<br />
* Source: http://git.openstack.org/cgit/openstack/py_name<br />
* Bugs: http://bugs.launchpad.net/py_name<br />
<br />
<br />
%package doc<br />
Summary: Documentation for the py_name<br />
Group: Documentation<br />
BuildRequires: {{ py2pkg('doc builld req0') }}<br />
BuildRequires: {{ py2pkg('doc builld req0') }}<br />
<br />
<br />
%description doc<br />
Documentation for the testr wrapper.<br />
<br />
<br />
%prep<br />
%setup -q -n %{sname}-%{version}<br />
<br />
<br />
%build<br />
%{__python2} setup.py build<br />
# generate html docs<br />
%{__python2} setup.py build_sphinx<br />
# remove the sphinx-build leftovers<br />
rm -rf doc/build/html/.{doctrees,buildinfo}<br />
<br />
<br />
%install<br />
%{__python2} setup.py install --prefix=%{_prefix} --root=%{buildroot}<br />
<br />
<br />
%check<br />
export PATH="$PATH:%{buildroot}/%{_bindir}"<br />
export PYTHONPATH="%{python2_sitearch}:%{python2_sitelib}:%{buildroot}%{python2_sitelib}"<br />
%{__python2} setup.py testr<br />
<br />
<br />
%files<br />
%defattr(-,root,root,-)<br />
%license LICENSE<br />
%doc README.rst ChangeLog<br />
%{_bindir}/py_name_cli<br />
%{python2_sitelib}/py_name<br />
%{python2_sitelib}/py_name*egg-info<br />
<br />
<br />
%files doc<br />
%license LICENSE<br />
%doc doc/build/html<br />
<br />
<br />
%changelog <br />
</nowiki></pre></div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=Rpm-packaging/ReviewGuidelines&diff=123927Rpm-packaging/ReviewGuidelines2016-04-13T20:13:33Z<p>IYozhikov: Add workflow for branches and change Head with Groups</p>
<hr />
<div>=Purpose=<br />
The main goal to use templates instead of SPEC - flexibility and unification. Templates made in Jinja2 format.<br /><br />
It means that templates made in one way after processing by renderspec tool will fit all supported Linux vendors(SUSE, Fedora, CentOS).<br />
<br />
=Tool-set=<br />
[https://github.com/openstack/rpm-packaging/tree/master/openstack/openstack-macros openstack-macros] - sub-project which allows to add or substitute required RPM macro used in SPEC template.<br /><br />
[https://github.com/openstack/pymod2pkg pymod2pkg] - project used for translation of python source name aka pypi name into Linux package name.<br /><br />
[https://github.com/openstack/renderspec renderspec] - main tool used for transformation from SPEC template into SPEC file. [http://docs.openstack.org/developer/renderspec/ documentaion]<br /><br />
<br />
=Workflow for branches=<br />
* '''Current work'''<br />
All work must be done in the '''master''' branch of the particular project.<br />
* '''Back-ports/Cherry-picks'''<br />
In case of necessity changes proposed earlier to the '''master''' branch could be cherry-picked into ''stable'' branch.<br />
* '''Cases for back-port/cherry-picks:'''<br />
** Introduction of a new package if its metadata is valid as for master as for stable<br />
** There is no difference in amount of run-time and built-time dependencies<br />
** There is no difference in Version: between ''master'' and ''stable''<br />
** There are changes which are fixing %install or %files sections for a particular package<br />
In '''other cases''' updates should be proposed to a particular branch which requires an update!<br />
<br />
=Common rules=<br />
==Head==<br />
* '''Group''':<br />
Setting up proper group for package is a requirement.<br><br />
* '''Source0''':<br />
Source0 must points to existing tarball location, even if url constructed using macro.<br /><br />
''Example:''<br /><br />
Group: Development/Libraries<br />
Source0: https://pypi.python.org/packages/source/o/%{sname}/%{sname}-%{version}.tar.gz<br />
<br />
==Documentation==<br />
For ''*-doc'' package should be specified additional section which describes all meta-data for doc package.<br /><br />
'''BuildRequires:''' - populated only with projects required for documentation build.<br /><br />
Please use ''%bcond_with docs'' in case of necessity!<br /><br />
''Exmaple:''<br /><br />
%if %{with docs}<br />
%package doc<br />
....<br />
%endif<br />
<br />
%if %{with docs}<br />
%files doc<br />
...<br />
%endif<br />
==Tests==<br />
Useful but not mandatory. All directives for unit tests must be set under '''%check''' section.<br /><br />
All required for tests projects should be specified as '''BuildRequires:''' in the top of template.<br /><br />
Please use ''%bcond_with test'' in case of necessity!<br /><br />
''Exmaple:''<br /><br />
%if %{with test}<br />
BuildRequires: required for test projects<br />
....<br />
%endif<br />
<br />
%if %{with test}<br />
%check<br />
...<br />
%endif<br />
==Misc but important!==<br />
Under %files section for each package in SPEC template:<br /><br />
* Section '''%doc''' should not include: ''HACKING*'', ''CONTRIBUTING*'' and ''AUTHORS''<br /><br />
* Section '''%license''' should be specified in case of ''LICENCE'' file availability in source code<br /></div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=Rpm-packaging/ReviewGuidelines&diff=123918Rpm-packaging/ReviewGuidelines2016-04-13T19:54:49Z<p>IYozhikov: /* Head */</p>
<hr />
<div>=Purpose=<br />
The main goal to use templates instead of SPEC - flexibility and unification. Templates made in Jinja2 format.<br /><br />
It means that templates made in one way after processing by renderspec tool will fit all supported Linux vendors(SUSE, Fedora, CentOS).<br />
<br />
=Tool-set=<br />
[https://github.com/openstack/rpm-packaging/tree/master/openstack/openstack-macros openstack-macros] - sub-project which allows to add or substitute required RPM macro used in SPEC template.<br /><br />
[https://github.com/openstack/pymod2pkg pymod2pkg] - project used for translation of python source name aka pypi name into Linux package name.<br /><br />
[https://github.com/openstack/renderspec renderspec] - main tool used for transformation from SPEC template into SPEC file. [http://docs.openstack.org/developer/renderspec/ documentaion]<br /><br />
<br />
<br />
=Common rules=<br />
==Head==<br />
* '''Group''':<br />
Setting up proper group for package is a requirement.<br><br />
* '''Source0''':<br />
Source0 must points to existing tarball location, even if url constructed using macro.<br /><br />
''Example:''<br /><br />
Group: Development/Libraries<br />
Source0: https://pypi.python.org/packages/source/o/%{sname}/%{sname}-%{version}.tar.gz<br />
<br />
==Documentation==<br />
For ''*-doc'' package should be specified additional section which describes all meta-data for doc package.<br /><br />
'''BuildRequires:''' - populated only with projects required for documentation build.<br /><br />
Please use ''%bcond_with docs'' in case of necessity!<br /><br />
''Exmaple:''<br /><br />
%if %{with docs}<br />
%package doc<br />
....<br />
%endif<br />
<br />
%if %{with docs}<br />
%files doc<br />
...<br />
%endif<br />
==Tests==<br />
Useful but not mandatory. All directives for unit tests must be set under '''%check''' section.<br /><br />
All required for tests projects should be specified as '''BuildRequires:''' in the top of template.<br /><br />
Please use ''%bcond_with test'' in case of necessity!<br /><br />
''Exmaple:''<br /><br />
%if %{with test}<br />
BuildRequires: required for test projects<br />
....<br />
%endif<br />
<br />
%if %{with test}<br />
%check<br />
...<br />
%endif<br />
==Misc but important!==<br />
Under %files section for each package in SPEC template:<br /><br />
* Section '''%doc''' should not include: ''HACKING*'', ''CONTRIBUTING*'' and ''AUTHORS''<br /><br />
* Section '''%license''' should be specified in case of ''LICENCE'' file availability in source code<br /></div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=Rpm-packaging&diff=123916Rpm-packaging2016-04-13T19:39:53Z<p>IYozhikov: Add CI links for rpm-packaging, update info for current PTL</p>
<hr />
<div>[[Category:Packaging]]<br />
<br />
== Introduction ==<br />
<br />
RPM Packaging for OpenStack is an cross-distribution and cross-vendor effort to create common templates for building OpenStack packages for RPM based Linux and OpenStack distributions. The project was started with the goal of unifying the independent packaging efforts of RDO and SUSE, but is really open for anyone who wants to contribute RPM packaging spec files for any distribution.<br />
<br />
== Goals ==<br />
<br />
The goal of the project is to build up a central repository for RPM .spec files and in the longer run unify the downstream packaging efforts into one jointly maintained upstream project. <br />
We intend to also maintain the packaging of the stable/ branch lifecycle of the OpenStack Mitaka release.<br />
<br />
== Projects ==<br />
<br />
=== rpm-packaging ===<br />
{| border="1" cellpadding="2"<br />
| Official name<br />
| '''rpm-packaging'''<br />
|-<br />
| Source code<br />
| https://github.com/openstack/rpm-packaging and https://github.com/openstack/rpm-packaging-tools<br />
|-<br />
| Bug tracker<br />
| https://bugs.launchpad.net/rpm-packaging<br />
|-<br />
| Feature tracker<br />
| https://blueprints.launchpad.net/rpm-packaging<br />
|-<br />
| Attached CIs <br />
| [[ThirdPartySystems/SUSE_Cloud_CI|SUSE]] [[ThirdPartySystems/Fuel_Packaging_CI|Mirantis]]<br />
|}<br />
<br />
=== renderspec ===<br />
{| border="1" cellpadding="2"<br />
| Official name<br />
| '''renderspec'''<br />
|-<br />
| Documentation<br />
| http://docs.openstack.org/developer/renderspec/<br />
|-<br />
| Source code<br />
| https://github.com/openstack/renderspec<br />
|-<br />
| Bug tracker<br />
| https://bugs.launchpad.net/renderspec<br />
|}<br />
<br />
=== pymod2pkg ===<br />
{| border="1" cellpadding="2"<br />
| Official name<br />
| '''pymod2pkg'''<br />
|-<br />
| Source code<br />
| https://github.com/openstack/pymod2pkg<br />
|-<br />
| Bug tracker<br />
| https://bugs.launchpad.net/pymod2pkg<br />
|}<br />
<br />
== Contact ==<br />
<br />
The team can be found on the Freenode IRC channel #openstack-rpm-packaging.<br><br />
The PTL for the Mitaka Cycle was Dirk Mueller (IRC nick: dirk)<br><br />
The PTL for the Newton Cycle is Dirk Mueller (IRC nick: dirk)<br />
<br />
Preferred way to interact with the contributors is by joining the weekly [https://wiki.openstack.org/wiki/Rpm-packaging/Meetings IRC Meeting].<br />
<br />
== Subpages ==<br />
<br />
{{Special:PrefixIndex/:Rpm-packaging/|hideredirects=1 }}</div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=ThirdPartySystems&diff=123911ThirdPartySystems2016-04-13T18:34:21Z<p>IYozhikov: Add link to Fuel Packaging CI</p>
<hr />
<div>== Third Party CI Systems ==<br />
<br />
{| border="1" cellpadding="2" cellspacing="0" class="wikitable"<br />
|+<br />
!colspan="2"|3rd Party CI Systems<br />
|-<br />
!Name<br />
!Link<br />
|-<br />
{{ThirdPartySystemTableEntry|6WIND Networking CI}}<br />
{{ThirdPartySystemTableEntry|A10 Networks CI}}<br />
{{ThirdPartySystemTableEntry|Arista-CI}}<br />
{{ThirdPartySystemTableEntry|Blockbridge EPS CI}}<br />
{{ThirdPartySystemTableEntry|Brocade LBaaS CI}}<br />
{{ThirdPartySystemTableEntry|Brocade Openstack CI}}<br />
{{ThirdPartySystemTableEntry|Brocade VDX CI}}<br />
{{ThirdPartySystemTableEntry|Brocade Vyatta CI}}<br />
{{ThirdPartySystemTableEntry|Big Switch CI}}<br />
{{ThirdPartySystemTableEntry|Canonical Charm CI}}<br />
{{ThirdPartySystemTableEntry|Cisco Ironic CI}}<br />
{{ThirdPartySystemTableEntry|Cisco ml2 CI}}<br />
{{ThirdPartySystemTableEntry|Cisco N1kV CI}}<br />
{{ThirdPartySystemTableEntry|Cisco UCSm CI}}<br />
{{ThirdPartySystemTableEntry|cisco_pnr_ci}}<br />
{{ThirdPartySystemTableEntry|Cisco Tail-f CI}}<br />
{{ThirdPartySystemTableEntry|Citrix NetScaler CI}}<br />
{{ThirdPartySystemTableEntry|CloudByte CI}}<br />
{{ThirdPartySystemTableEntry|CloudFounders OpenvStorage CI}}<br />
{{ThirdPartySystemTableEntry|Coho Data CI}}<br />
{{ThirdPartySystemTableEntry|Coraid CI}}<br />
{{ThirdPartySystemTableEntry|datera-ci}}<br />
{{ThirdPartySystemTableEntry|DB Datasets CI}}<br />
{{ThirdPartySystemTableEntryDown|Designate CI}}<br />
{{ThirdPartySystemTableEntry|Dell Ironic CI}}<br />
{{ThirdPartySystemTableEntry|Dell Storage CI}}<br />
{{ThirdPartySystemTableEntryDown|Dot Hill CI}}<br />
{{ThirdPartySystemTableEntry|emc-vmax-ci}}<br />
{{ThirdPartySystemTableEntry|emc-vnx-ci}}<br />
{{ThirdPartySystemTableEntry|emc-vnx-manila-ci}}<br />
{{ThirdPartySystemTableEntry|emc-xio-ci}}<br />
{{ThirdPartySystemTableEntry|emc-scaleio-ci}}<br />
{{ThirdPartySystemTableEntry|emc-vipr-ci}}<br />
{{ThirdPartySystemTableEntry|emc-isilon-ci}}<br />
{{ThirdPartySystemTableEntry|FalconStor CI}}<br />
{{ThirdPartySystemTableEntry|Freescale CI}}<br />
{{ThirdPartySystemTableEntry|Fuel CI}}<br />
{{ThirdPartySystemTableEntry|Fuel Packaging CI}}<br />
{{ThirdPartySystemTableEntry|Fujitsu C-Fabric CI}}<br />
{{ThirdPartySystemTableEntry|Fujitsu ETERNUS CI}}<br />
{{ThirdPartySystemTableEntry|Fujitsu iRMC CI}}<br />
{{ThirdPartySystemTableEntry|Fujitsu ISM CI}}<br />
{{ThirdPartySystemTableEntry|HGST Solutions CI}}<br />
{{ThirdPartySystemTableEntry|Hitachi HBSD CI}}<br />
{{ThirdPartySystemTableEntry|Hitachi HBSD2 CI}}<br />
{{ThirdPartySystemTableEntry|Hitachi HNAS CI}}<br />
{{ThirdPartySystemTableEntry|Hitachi Manila HNAS CI}}<br />
{{ThirdPartySystemTableEntry|Vedams-HPMSA FCISCSIDriver CI}}<br />
{{ThirdPartySystemTableEntry|HP Octavia Sonar CI}}<br />
{{ThirdPartySystemTableEntry|HPE Storage CI}}<br />
{{ThirdPartySystemTableEntry|HP Networking CI}}<br />
{{ThirdPartySystemTableEntryDown|HPE Proliant iLO drivers CI}}<br />
{{ThirdPartySystemTableEntry|Huawei Manila CI}}<br />
{{ThirdPartySystemTableEntry|Huawei ML2 CI}}<br />
{{ThirdPartySystemTableEntry|Huawei volume CI}}<br />
{{ThirdPartySystemTableEntry|Hyper-V CI}}<br />
{{ThirdPartySystemTableEntry|IBMPowerKVMCI}}<br />
{{ThirdPartySystemTableEntry|IBM FlashSystem CI}}<br />
{{ThirdPartySystemTableEntry|IBM GPFS CI}}<br />
{{ThirdPartySystemTableEntry|IBM PowerVM CI}}<br />
{{ThirdPartySystemTableEntry|IBM NAS CI}}<br />
{{ThirdPartySystemTableEntry|IBM SDN-VE CI}}<br />
{{ThirdPartySystemTableEntry|IBM STORWIZE CI}}<br />
{{ThirdPartySystemTableEntry|IBM XIV-DS8K CI}}<br />
{{ThirdPartySystemTableEntry|IBM xCAT CI}}<br />
{{ThirdPartySystemTableEntryDown|IBM z/VM CI}}<br />
{{ThirdPartySystemTableEntry|Intel-Networking-CI}}<br />
{{ThirdPartySystemTableEntry|Intel-NFV-CI}}<br />
{{ThirdPartySystemTableEntryDown|Intel_NGFW_CI}}<br />
{{ThirdPartySystemTableEntry|Intel-PCI-CI}}<br />
{{ThirdPartySystemTableEntryDown|Intel-SRIOV-CI}}<br />
{{ThirdPartySystemTableEntry|Infortrend Storage CI}}<br />
{{ThirdPartySystemTableEntry|ITRI DISCO CI}}<br />
{{ThirdPartySystemTableEntry|KEMPtechnologies CI}}<br />
{{ThirdPartySystemTableEntryDown|Linaro CI}}<br />
{{ThirdPartySystemTableEntryDown|Vedams-LenovoStorage FCISCSI CI}}<br />
{{ThirdPartySystemTableEntry|Maxta CI}}<br />
{{ThirdPartySystemTableEntry|Mellanox CI}}<br />
{{ThirdPartySystemTableEntry|Mellanox Cinder CI}}<br />
{{ThirdPartySystemTableEntry|Metaplugin CI}}<br />
{{ThirdPartySystemTableEntryDown|Microsoft iSCSI CI}}<br />
{{ThirdPartySystemTableEntryDown|Microsoft Manila CI}}<br />
{{ThirdPartySystemTableEntryDown|Midokura CI}}<br />
{{ThirdPartySystemTableEntry|Mirantis Rally CI}}<br />
{{ThirdPartySystemTableEntry|murano-ci}}<br />
{{ThirdPartySystemTableEntryDown|NEC CI}}<br />
{{ThirdPartySystemTableEntry|NetApp CI}}<br />
{{ThirdPartySystemTableEntry|Nexenta CI}}<br />
{{ThirdPartySystemTableEntry|Nexenta Edge CI}}<br />
{{ThirdPartySystemTableEntry|Nexenta Manila CI}}<br />
{{ThirdPartySystemTableEntry|Nimble Storage CI}}<br />
{{ThirdPartySystemTableEntry|Nuage CI}}<br />
{{ThirdPartySystemTableEntry|OFAgent CI}}<br />
{{ThirdPartySystemTableEntry|OpenDaylight CI}}<br />
{{ThirdPartySystemTableEntry|Oracle ZFSSA CI}}<br />
{{ThirdPartySystemTableEntryDown|PLUMgrid CI}}<br />
{{ThirdPartySystemTableEntry|ProphetStor CI}}<br />
{{ThirdPartySystemTableEntry|Pure Storage CI}}<br />
{{ThirdPartySystemTableEntry|Quobyte CI}}<br />
{{ThirdPartySystemTableEntry|Radware CI}}<br />
{{ThirdPartySystemTableEntry|RedHat CI}}<br />
{{ThirdPartySystemTableEntry|RedHat GlusterFS CI}}<br />
{{ThirdPartySystemTableEntryDown|RedHat̞ NFVPE CI}}<br />
{{ThirdPartySystemTableEntry|Ryu CI}}<br />
{{ThirdPartySystemTableEntry|Scality CI}}<br />
{{ThirdPartySystemTableEntry|Snabb-NFV CI}}<br />
{{ThirdPartySystemTableEntry|SolidFire CI}}<br />
{{ThirdPartySystemTableEntry|StorPool CI}}<br />
{{ThirdPartySystemTableEntry|SUSE Cloud CI}}<br />
{{ThirdPartySystemTableEntry|SwiftStack Cluster CI}}<br />
{{ThirdPartySystemTableEntry|Tail-f NCS CI}}<br />
{{ThirdPartySystemTableEntry|Tegile Storage CI}}<br />
{{ThirdPartySystemTableEntry|Tintri CI}}<br />
{{ThirdPartySystemTableEntry|UFCG OneView CI}}<br />
{{ThirdPartySystemTableEntry|Vanilla Stack CI}}<br />
{{ThirdPartySystemTableEntry|vArmour CI}}<br />
{{ThirdPartySystemTableEntry|Vedams SCST CI}}<br />
{{ThirdPartySystemTableEntry|Violin Memory CI}}<br />
{{ThirdPartySystemTableEntry|Virtuozzo CI}}<br />
{{ThirdPartySystemTableEntryDown|Virtuozzo Storage CI}}<br />
{{ThirdPartySystemTableEntry|VMware CI}}<br />
{{ThirdPartySystemTableEntry|Wherenow.org CI}}<br />
{{ThirdPartySystemTableEntry|XenProject CI}}<br />
{{ThirdPartySystemTableEntry|XenServer CI}}<br />
{{ThirdPartySystemTableEntry|X-IO technologies CI}}<br />
{{ThirdPartySystemTableEntry|ZadaraStorage VPSA CI}}<br />
{{ThirdPartySystemTableEntryDown|XP Storage CI}}<br />
{{ThirdPartySystemTableEntry|Rackspace GolangSwift CI}}<br />
{{ThirdPartySystemTableEntry|Vedams DotHillDriver CI}}<br />
{{ThirdPartySystemTableEntryDown|Example}}<br />
|-<br />
|}<br />
<br />
<br />
Instructions on how to add a new system to the above table:<br />
* Add an '''alphabetical''' entry in the above table: <code><nowiki>{{ThirdPartySystemTableEntry|Example}}</nowiki></code> where Example is the name of your system<br />
* Save the page and click on the link to the new page<br />
* Select the "edit the page" option and paste <code><nowiki>{{subst:ThirdPartySystemInfoSubst}}</nowiki></code> into your new page and then save it. This will expand to a table. Edit the table replacing the placeholder values with the correct values for your system<br />
* If your system is going down or having problems, change the entry to <code><nowiki>{{ThirdPartySystemTableEntryDown|<your ci system name>}}</nowiki></code><br />
----<br />
<br />
Do you have a Gerrit CI account created for you by the Infrastructure team and you want to update it? [https://wiki.openstack.org/wiki/OldtoNewGerritCIAccount Read how here].<br />
<br />
[[Category:ThirdPartySystems]]</div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=ThirdPartySystems/Fuel_Packaging_CI&diff=123910ThirdPartySystems/Fuel Packaging CI2016-04-13T18:13:49Z<p>IYozhikov: Add information about Fuel_Packaging_CI</p>
<hr />
<div>{{ThirdPartySystemInfo|name=Fuel Packaging CI<br />
|account=fuel-ci<br />
|contact=#fuel-infra, [[Fuel#People|Fuel Infra Liaison]]<br />
|intent=Run builds and tests for RPM packages using RPM spec templates and source code from released tarballs<br />
|structure=[https://packaging-ci.fuel-infra.org Jenkins] and [http://gate.fuel-infra.org/ Zuul]<br />
|method=Create vms via libvirt and run build using [https://github.com/dburm/docker-builder docker-builder]<br />
|programs=[[Rpm-packaging|non-voting on Rpm-packaging]]<br />
|status=testing}}</div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=Rpm-packaging/ReviewGuidelines&diff=122337Rpm-packaging/ReviewGuidelines2016-03-16T06:45:34Z<p>IYozhikov: add link to renderspec docs</p>
<hr />
<div>=Purpose=<br />
The main goal to use templates instead of SPEC - flexibility and unification. Templates made in Jinja2 format.<br /><br />
It means that templates made in one way after processing by renderspec tool will fit all supported Linux vendors(SUSE, Fedora, CentOS).<br />
<br />
=Tool-set=<br />
[https://github.com/openstack/rpm-packaging/tree/master/openstack/openstack-macros openstack-macros] - sub-project which allows to add or substitute required RPM macro used in SPEC template.<br /><br />
[https://github.com/openstack/pymod2pkg pymod2pkg] - project used for translation of python source name aka pypi name into Linux package name.<br /><br />
[https://github.com/openstack/renderspec renderspec] - main tool used for transformation from SPEC template into SPEC file. [http://docs.openstack.org/developer/renderspec/ documentaion]<br /><br />
<br />
<br />
=Common rules=<br />
==Head==<br />
* '''Versions''':<br />
Lower bounds should be specified in both cases - for ''Requires'' and for ''BuildRequires'' entries at least for projects with versions set in ''requirements.txt'' and ''test-requirements.txt'' files<br /><br />
''Example:''<br /><br />
BuildRequires: &#123;&#123; py2pkg('netaddr', ('>=', '0.7.12')) &#125;&#125;<br />
Requires: &#123;&#123; py2pkg('netaddr', ('>=', '0.7.12')) &#125;&#125;<br />
<br />
In case of unset - un-managed versions - rendering should be executed with ''--requirements global-requirements.txt'' cli arguments to fill up resulting spec file with proper versions. <br />
<br />
==Documentation==<br />
For ''*-doc'' package should be specified additional section which describes all meta-data for doc package.<br /><br />
'''BuildRequires:''' - populated only with projects required for documentation build.<br /><br />
Please use ''%bcond_with docs'' in case of necessity!<br /><br />
''Exmaple:''<br /><br />
%if %{with docs}<br />
%package doc<br />
....<br />
%endif<br />
<br />
%if %{with docs}<br />
%files doc<br />
...<br />
%endif<br />
==Tests==<br />
Useful but not mandatory. All directives for unit tests must be set under '''%check''' section.<br /><br />
All required for tests projects should be specified as '''BuildRequires:''' in the top of template.<br /><br />
Please use ''%bcond_with test'' in case of necessity!<br /><br />
''Exmaple:''<br /><br />
%if %{with test}<br />
BuildRequires: required for test projects<br />
....<br />
%endif<br />
<br />
%if %{with test}<br />
%check<br />
...<br />
%endif<br />
==Misc but important!==<br />
Under %files section for each package in SPEC template:<br /><br />
* Section '''%doc''' should not include: ''HACKING*'', ''CONTRIBUTING*'' and ''AUTHORS''<br /><br />
* Section '''%license''' should be specified in case of ''LICENCE'' file availability in source code<br /></div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=Rpm-packaging/ReviewGuidelines&diff=122333Rpm-packaging/ReviewGuidelines2016-03-16T06:32:58Z<p>IYozhikov: Removed syntax overview due update of documentation for renderspec</p>
<hr />
<div>=Purpose=<br />
The main goal to use templates instead of SPEC - flexibility and unification. Templates made in Jinja2 format.<br /><br />
It means that templates made in one way after processing by renderspec tool will fit all supported Linux vendors(SUSE, Fedora, CentOS).<br />
<br />
=Tool-set=<br />
[https://github.com/openstack/rpm-packaging/tree/master/openstack/openstack-macros openstack-macros] - sub-project which allows to add or substitute required RPM macro used in SPEC template.<br /><br />
[https://github.com/openstack/pymod2pkg pymod2pkg] - project used for translation of python source name aka pypi name into Linux package name.<br /><br />
[https://github.com/openstack/renderspec renderspec] - main tool used for transformation from SPEC template into SPEC file.<br /><br />
<br />
<br />
=Common rules=<br />
==Head==<br />
* '''Versions''':<br />
Lower bounds should be specified in both cases - for ''Requires'' and for ''BuildRequires'' entries at least for projects with versions set in ''requirements.txt'' and ''test-requirements.txt'' files<br /><br />
''Example:''<br /><br />
BuildRequires: &#123;&#123; py2pkg('netaddr', ('>=', '0.7.12')) &#125;&#125;<br />
Requires: &#123;&#123; py2pkg('netaddr', ('>=', '0.7.12')) &#125;&#125;<br />
<br />
In case of unset - un-managed versions - rendering should be executed with ''--requirements global-requirements.txt'' cli arguments to fill up resulting spec file with proper versions. <br />
<br />
==Documentation==<br />
For ''*-doc'' package should be specified additional section which describes all meta-data for doc package.<br /><br />
'''BuildRequires:''' - populated only with projects required for documentation build.<br /><br />
Please use ''%bcond_with docs'' in case of necessity!<br /><br />
''Exmaple:''<br /><br />
%if %{with docs}<br />
%package doc<br />
....<br />
%endif<br />
<br />
%if %{with docs}<br />
%files doc<br />
...<br />
%endif<br />
==Tests==<br />
Useful but not mandatory. All directives for unit tests must be set under '''%check''' section.<br /><br />
All required for tests projects should be specified as '''BuildRequires:''' in the top of template.<br /><br />
Please use ''%bcond_with test'' in case of necessity!<br /><br />
''Exmaple:''<br /><br />
%if %{with test}<br />
BuildRequires: required for test projects<br />
....<br />
%endif<br />
<br />
%if %{with test}<br />
%check<br />
...<br />
%endif<br />
==Misc but important!==<br />
Under %files section for each package in SPEC template:<br /><br />
* Section '''%doc''' should not include: ''HACKING*'', ''CONTRIBUTING*'' and ''AUTHORS''<br /><br />
* Section '''%license''' should be specified in case of ''LICENCE'' file availability in source code<br /></div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=Rpm-packaging/ReviewGuidelines&diff=116036Rpm-packaging/ReviewGuidelines2016-02-26T17:48:30Z<p>IYozhikov: Initial guideline for package specification template</p>
<hr />
<div>=Purpose=<br />
The main goal to use templates instead of SPEC - flexibility and unification. Templates made in Jinja2 format.<br /><br />
It means that templates made in one way after processing by renderspec tool will fit all supported Linux vendors(SUSE, Fedora, CentOS).<br />
<br />
=Tool-set=<br />
[https://github.com/openstack/rpm-packaging/tree/master/openstack/openstack-macros openstack-macros] - sub-project which allows to add or substitute required RPM macro used in SPEC template.<br /><br />
[https://github.com/openstack/pymod2pkg pymod2pkg] - project used for translation of python source name aka pypi name into Linux package name.<br /><br />
[https://github.com/openstack/renderspec renderspec] - main tool used for transformation from SPEC template into SPEC file.<br /><br />
<br />
=A little bit about syntax=<br />
As was mentioned above, Jinja2 format was chosen and used for templates. <br /><br />
''Example of syntax from template:''<br /><br />
Requires: &#123;&#123; 'pbr' &#124; py2pkg &#125;&#125; &gt;= 1.6<br />
'''pbr''' - python project name.<br /><br />
'''py2pkg''' - filter name used in the renderspec for transformation to system package name.<br /><br /><br />
License: &#123;&#123; 'Apache-2.0' &#124; license &#125;&#125;<br />
'''Apache-2.0''' - common licence name.<br /><br />
'''license''' - filter name used in the renderspec for transformation in required format(as an example - [https://spdx.org/spdx-license-list SPDX] for [https://www.suse.com/ SUSE]).<br /><br />
<br />
=Common rules=<br />
==Head==<br />
* '''Names''':<br />
Project ''names'' used in template and processed by filter - are '''source project''' names.<br /><br />
''Example:''<br /><br />
Name: &#123;&#123; 'oslo.utils' &#124; py2pkg &#125;&#125;<br />
'''oslo.utils''' - means that native name of python projects is - ''oslo.utils''.<br /><br />
* '''Sources''':<br />
Source code source and project url should be specified!<br /><br />
''Example:''<br /><br />
%global sname pysomething<br />Version: 1.2.3<br />Url: https:&#47;&#47;launchpad.net&#47;%{sname}<br />Source0: https:&#47;&#47;pypi.python.org&#47;packages&#47;source&#47;p&#47;%{sname}/%{sname}-%{version}.tar.gz<br />
* '''Versions''':<br />
Lower bounds should be specified in both cases - for ''Requires'' and for ''BuildRequires'' entries at least for projects with versions set in ''requirements.txt'' and ''test-requirements.txt'' files!<br /><br />
''Example:''<br /><br />
BuildRequires: &#123;&#123; 'netaddr' &#124; py2pkg &#125;&#125; >= 0.7.12<br />
Requires: &#123;&#123; 'netaddr' &#124; py2pkg &#125;&#125; >= 0.7.12<br />
<br />
==Documentation==<br />
For ''*-doc'' package should be specified additional section which describes all meta-data for doc package.<br /><br />
'''BuildRequires:''' - populated only with projects required for documentation build.<br /><br />
Please use ''%bcond_with docs'' in case of necessity!<br /><br />
''Exmaple:''<br /><br />
%if %{with docs}<br />
%package doc<br />
....<br />
%endif<br />
<br />
%if %{with docs}<br />
%files doc<br />
...<br />
%endif<br />
==Tests==<br />
Useful but not mandatory. All directives for unit tests must be set under '''%check''' section.<br /><br />
All required for tests projects should be specified as '''BuildRequires:''' in the top of template.<br /><br />
Please use ''%bcond_with test'' in case of necessity!<br /><br />
''Exmaple:''<br /><br />
%if %{with test}<br />
BuildRequires: required for test projects<br />
....<br />
%endif<br />
<br />
%if %{with test}<br />
%check<br />
...<br />
%endif<br />
==Misc but important!==<br />
Under %files section for each package in SPEC template:<br /><br />
* Section '''%doc''' should not include: ''HACKING*'', ''CONTRIBUTING*'' and ''AUTHORS''<br /><br />
* Section '''%license''' should be specified in case of ''LICENCE'' file availability in source code<br /></div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=Rpm-packaging/Meetings&diff=110613Rpm-packaging/Meetings2016-02-25T13:01:27Z<p>IYozhikov: add myself to pinglist</p>
<hr />
<div>= Weekly RPM Packaging for OpenStack team meeting =<br />
'''MEETING TIME: Thursdays 13:00 UTC (#openstack-meeting-alt)'''<br />
<br />
This meeting is a weekly gathering of developers working on [[RPM-Packaging|RPM Packaging for OpenStack]]. <br />
<br />
== Agenda for next meeting ==<br />
<br />
Next meetings scheduled for:<br />
* February 25th 2016 1300 UTC, #openstack-meeting-alt<br />
<br />
Add your IRC nick to this list to be pinged at the start of the meeting:<br />
<code><br />
toabctl, dirk, aplanas, IgorYozhikov<br />
</code><br />
<br />
The agenda for the next meeting is collected in Etherpad:<br />
<br />
https://etherpad.openstack.org/p/openstack-rpm-packaging<br />
<br />
== Previous meetings ==<br />
<br />
* [http://eavesdrop.openstack.org/meetings/XXX/ All other meetings are here]<br />
* [http://eavesdrop.openstack.org/meetings/rpm_packaging_weekly_meeting/2016/rpm_packaging_weekly_meeting.2016-02-18-14.04.html 2016-02-18]<br />
* [http://eavesdrop.openstack.org/meetings/openstack_rpm_packaging_weekly_meeting/2016/openstack_rpm_packaging_weekly_meeting.2016-02-11-14.01.html 2016-02-11]<br />
* [http://eavesdrop.openstack.org/meetings/rpm_packaging_weekly_meeting/2016/rpm_packaging_weekly_meeting.2016-02-04-14.22.html 2016-02-04]<br />
* [http://eavesdrop.openstack.org/meetings/openstack_rpm_packaging/2016/openstack_rpm_packaging.2016-01-21-14.02.html 2016-01-21]<br />
* [http://eavesdrop.openstack.org/meetings/rpm_packaging_meeting/2016/rpm_packaging_meeting.2016-01-14-14.11.html 2016-01-14]<br />
<br />
=== Meeting January 7rd, 2:00 PM UTC #openstack-rpm-packaging ===<br />
<br />
* Attendees: toabctl, dirk<br />
* Agenda:<br />
** Open merge requests review<br />
** Additional spec files<br />
<br />
=== Meeting December 17th, 1:00 PM UTC #openstack-rpm-packaging ===<br />
<br />
* Attendees: toabctl<br />
* Agenda:<br />
** FYI: wiki page https://wiki.openstack.org/wiki/Rpm-packaging updated (with renderspec and pymod2pkg projects)<br />
also bug tracker for pymod2pkg created on launchpad.<br />
** new renderspec pre-alpha release on pypi : https://pypi.python.org/pypi/renderspec<br />
** howto handle releases in the feature? I uploaded a sdist manually without any git tag for now<br />
<br />
=== Meeting November 26th, 1:00 PM UTC #openstack-rpm-packaging ===<br />
<br />
* Attendees: toabctl, dirk, IgorYozhikov<br />
* Agenda:<br />
** Fix/store syntax for templates<br />
** Further templates : http://paste.openstack.org/show/480122/<br />
** AI review: pymod2pkg core reviewers - done<br />
** pymod2pkg python gating jobs - done<br />
** enable rpm-renderspec testing on rpm-packaging - STILL OPEN<br />
<br />
<br />
[[category: meetings]]</div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=Murano/Requirements&diff=29985Murano/Requirements2013-09-12T15:05:05Z<p>IYozhikov: </p>
<hr />
<div>==== Software with it's versions used for each of the '''"murano"''' components ====<br />
<br />
* '''"murano-conductor"'''<br />
:{| border="1" cellpadding="2"<br />
| '''Package'''<br />
| '''Description'''<br />
| '''Version'''<br />
| '''Licence'''<br />
| '''Notes'''<br />
|-<br />
| anyjson<br />
| Wraps the best available JSON implementation available in a common interface<br />
|<br />
| BSD<br />
|<br />
|-<br />
| d2to1<br />
| Allows using distutils2-like setup.cfg files for a package's metadata with a distribute/setuptools setup.py<br />
| >= 0.2.10, < 0.3<br />
| BSD<br />
| Required for setup<br />
|-<br />
| deep<br />
| Easy, flexible deep comparison and testing of structured data<br />
| <br />
| GNU Lesser GPL<br />
| <br />
|-<br />
| eventlet<br />
| Highly concurrent networking library<br />
| >= 0.9.12<br />
| MIT<br />
| <br />
|-<br />
| iso8601<br />
| Simple module to parse ISO 8601 dates<br />
| >= 0.1.4<br />
| MIT<br />
| <br />
|-<br />
| jsonpath<br />
| An XPath for JSON<br />
| <br />
| MIT<br />
| <br />
|-<br />
| jsonschema<br />
| An implementation of JSON Schema validation for Python<br />
| 2.0.0<br />
| MIT<br />
| <br />
|-<br />
| netaddr<br />
| Pythonic manipulation of IPv4, IPv6, CIDR, EUI and MAC network addresses<br />
| <br />
| MIT<br />
| <br />
|-<br />
| oslo.config<br />
| Oslo configuration API<br />
| <br />
| Apache 2.0<br />
| <br />
|-<br />
| Paste<br />
| Tools for using a Web Server Gateway Interface stack<br />
| <br />
| MIT<br />
| <br />
|-<br />
| PasteDeploy<br />
| Web development toolkit for people who know what they are doing<br />
| <br />
| MIT<br />
| <br />
|-<br />
| pbr<br />
| Python Build Reasonableness<br />
| >=0.5, <0.6<br />
| Apache<br />
| Required for setup<br />
|-<br />
| python-heatclient<br />
| OpenStack Orchestration API Client Library<br />
| >=0.2.1<br />
| Apache<br />
| <br />
|}<br />
<br />
* '''"murano-api"'''<br />
:{| border="1" cellpadding="2"<br />
| '''Package'''<br />
| '''Description'''<br />
| '''Version'''<br />
| '''Licence'''<br />
| '''Notes'''<br />
|-<br />
| d2to1<br />
| Allows using distutils2-like setup.cfg files for a package's metadata with a distribute/setuptools setup.py<br />
| >= 0.2.10, < 0.3<br />
| BSD<br />
| <br />
|-<br />
| pbr<br />
| Python Build Reasonableness<br />
| >=0.5, <0.6<br />
| Apache<br />
| <br />
|-<br />
| Babel<br />
| Internationalization utilities<br />
| <br />
| BSD<br />
| <br />
|-<br />
| SQLAlchemy<br />
| Database Abstraction Library<br />
| >=0.7,<=0.7.9<br />
| MIT<br />
| <br />
|-<br />
| anyjson<br />
| Wraps the best available JSON implementation available in a common interface<br />
| <br />
| BSD<br />
| <br />
|-<br />
| eventlet<br />
| Highly concurrent networking library<br />
| >= 0.9.12<br />
| MIT<br />
| <br />
|-<br />
| PasteDeploy<br />
| Web development toolkit for people who know what they are doing<br />
| <br />
| MIT<br />
| <br />
|-<br />
| routes<br />
| Routing Recognition and Generation Tools<br />
| <br />
| MIT<br />
| <br />
|-<br />
| webOb<br />
| WSGI request and response object<br />
| <br />
| MIT<br />
| <br />
|-<br />
| wsgiref<br />
| WSGI (PEP 333) Reference Library<br />
| <br />
| PSFL or ZPL<br />
| <br />
|-<br />
| argparse<br />
| Python command-line parsing library<br />
| <br />
| PSFL<br />
| <br />
|-<br />
| boto<br />
| Amazon Web Services Library<br />
| <br />
| MIT<br />
| <br />
|-<br />
| sqlalchemy-migrate<br />
| Database schema migration for SQLAlchemy<br />
| >=0.7<br />
| MIT<br />
| <br />
|-<br />
| httplib2<br />
| A comprehensive HTTP client library.<br />
| <br />
| MIT<br />
| <br />
|-<br />
| pycrypto<br />
| Cryptographic modules for Python.<br />
| >=2.1.0alpha1<br />
| Public domain<br />
| <br />
|-<br />
| kombu<br />
| Messaging Framework for Python<br />
| <br />
| BSD<br />
| <br />
|-<br />
| iso8601<br />
| Simple module to parse ISO 8601 dates<br />
| >= 0.1.4<br />
| MIT<br />
| <br />
|-<br />
| six<br />
| Python 2 and 3 compatibility utilities<br />
| <br />
| MIT<br />
| <br />
|-<br />
| netaddr<br />
| Pythonic manipulation of IPv4, IPv6, CIDR, EUI and MAC network addresses<br />
| <br />
| MIT<br />
| <br />
|}<br />
<br />
* '''"python-muranoclient"'''<br />
:{| border="1" cellpadding="2"<br />
| '''Package'''<br />
| '''Description'''<br />
| '''Version'''<br />
| '''Licence'''<br />
| '''Notes'''<br />
|-<br />
| argparse<br />
| Python command-line parsing library<br />
| <br />
| PSFL<br />
| <br />
|-<br />
| prettytable<br />
| A simple Python library for easily displaying tabular data in a visually appealing ASCII table format.<br />
| >=0.6, <0.7<br />
| BSD<br />
| <br />
|-<br />
| python-keystoneclient<br />
| OpenStack<br />
| >=0.1.2<br />
| Apache<br />
| <br />
|-<br />
| httplib2<br />
| A comprehensive HTTP client library.<br />
| <br />
| MIT<br />
| <br />
|-<br />
| iso8601<br />
| Simple module to parse ISO 8601 dates<br />
| >= 0.1.4<br />
| MIT<br />
| <br />
|}<br />
<br />
* '''"murano-common"'''<br />
:{| border="1" cellpadding="2"<br />
| '''Package'''<br />
| '''Description'''<br />
| '''Version'''<br />
| '''Licence'''<br />
| '''Notes'''<br />
|-<br />
| d2to1<br />
| Allows using distutils2-like setup.cfg files for a package's metadata with a distribute/setuptools setup.py<br />
| >= 0.2.10, < 0.3<br />
| BSD<br />
| <br />
|-<br />
| pbr<br />
| Python Build Reasonableness<br />
| >=0.5, <0.6<br />
| Apache<br />
| <br />
|-<br />
| anyjson<br />
| Wraps the best available JSON implementation available in a common interface<br />
| <br />
| BSD<br />
| <br />
|-<br />
| eventlet<br />
| Highly concurrent networking library<br />
| >= 0.9.12<br />
| MIT<br />
| <br />
|-<br />
| puka<br />
| Puka - the opinionated RabbitMQ client<br />
| 1.0.7c<br />
| MIT<br />
| <br />
|}<br />
<br />
* '''"murano-dashboard"'''<br />
:{| border="1" cellpadding="2"<br />
| '''Package'''<br />
| '''Description'''<br />
| '''Version'''<br />
| '''Licence'''<br />
| '''Notes'''<br />
|-<br />
| horizon<br />
| The OpenStack Dashboard.<br />
| <br />
| Apache<br />
| <br />
|-<br />
| Django<br />
| A high-level Python Web framework that encourages rapid development and clean, pragmatic design.<br />
| >=1.4, <1.5<br />
| BSD<br />
| <br />
|-<br />
| anyjson<br />
| Wraps the best available JSON implementation available in a common interface<br />
| <br />
| BSD<br />
| <br />
|-<br />
| requests<br />
| Python HTTP for Humans.<br />
| 0.14.2<br />
| Apache<br />
| <br />
|-<br />
| bunch<br />
| A dot-accessible dictionary (a la JavaScript objects)<br />
| <br />
| MIT<br />
| <br />
|-<br />
| iso8601<br />
| Simple module to parse ISO 8601 dates<br />
| >= 0.1.4<br />
| MIT<br />
| <br />
|-<br />
| six<br />
| Python 2 and 3 compatibility utilities<br />
| <br />
| MIT<br />
| <br />
|-<br />
| django-pipeline<br />
| Pipeline is an asset packaging library for Django<br />
| <br />
| MIT<br />
| <br />
|-<br />
| django-floppyforms<br />
| Full control of form rendering in the templates<br />
| 1.1<br />
| BSD<br />
| <br />
|-<br />
| djblets<br />
| А set of utility classes and functions for web applications written using Django and Python.<br />
| 0.7.16<br />
| MIT<br />
| <br />
|}<br />
<br />
* '''OpenStack''' version:<br />
:Most of the components - '''Grizzly'''<br />
:Heat version >= 2013.1.2<br />
<br />
==== Deployment requirements: ====<br />
* Samba share:<br />
It should be accessible from a tenant networks where deployed instances resides. This shared resource used in the murano workflows during IIS and SQL services based deployments. <br />
Shared resource structure:<br />
<br />
/share<br />
:/Prerequisites<br />
::/IIS<br />
:::AspNetMVC4Setup.exe<br />
::::DeployWebApp.ps1<br />
::::InstallIIS.ps1<br />
::::WebApplications.exe<br />
::/SQL Server<br />
:::/2012<br />
::::/Exctracted "MS SQL Server 2012" DVD content.<br />
:::/Tools<br />
::::PowerShellTools.msi<br />
::::SharedManagementObjects.msi<br />
::::SQLSysClrTypes.msi<br />
<br />
:''smb.conf'' example<br />
:...<br />
:[share]<br />
: comment = Deployment Share<br />
: path = /opt/samba/share<br />
: read only = No<br />
: create mask = 0755<br />
: guest ok = Yes<br />
: browsable = Yes<br />
: guest account = nobody<br />
:...</div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=Murano/Requirements&diff=29984Murano/Requirements2013-09-12T15:03:20Z<p>IYozhikov: </p>
<hr />
<div>==== Software with it's versions used for each of the '''"murano"''' components ====<br />
<br />
* '''"murano-conductor"'''<br />
:{| border="1" cellpadding="2"<br />
| '''Package'''<br />
| '''Description'''<br />
| '''Version'''<br />
| '''Licence'''<br />
| '''Notes'''<br />
|-<br />
| anyjson<br />
| Wraps the best available JSON implementation available in a common interface<br />
|<br />
| BSD<br />
|<br />
|-<br />
| d2to1<br />
| Allows using distutils2-like setup.cfg files for a package's metadata with a distribute/setuptools setup.py<br />
| >= 0.2.10, < 0.3<br />
| BSD<br />
| Required for setup<br />
|-<br />
| deep<br />
| Easy, flexible deep comparison and testing of structured data<br />
| <br />
| GNU Lesser GPL<br />
| <br />
|-<br />
| eventlet<br />
| Highly concurrent networking library<br />
| >= 0.9.12<br />
| MIT<br />
| <br />
|-<br />
| iso8601<br />
| Simple module to parse ISO 8601 dates<br />
| >= 0.1.4<br />
| MIT<br />
| <br />
|-<br />
| jsonpath<br />
| An XPath for JSON<br />
| <br />
| MIT<br />
| <br />
|-<br />
| jsonschema<br />
| An implementation of JSON Schema validation for Python<br />
| 2.0.0<br />
| MIT<br />
| <br />
|-<br />
| netaddr<br />
| Pythonic manipulation of IPv4, IPv6, CIDR, EUI and MAC network addresses<br />
| <br />
| MIT<br />
| <br />
|-<br />
| oslo.config<br />
| Oslo configuration API<br />
| <br />
| Apache 2.0<br />
| <br />
|-<br />
| Paste<br />
| Tools for using a Web Server Gateway Interface stack<br />
| <br />
| MIT<br />
| <br />
|-<br />
| PasteDeploy<br />
| Web development toolkit for people who know what they are doing<br />
| <br />
| MIT<br />
| <br />
|-<br />
| pbr<br />
| Python Build Reasonableness<br />
| >=0.5, <0.6<br />
| Apache<br />
| Required for setup<br />
|-<br />
| python-heatclient<br />
| OpenStack Orchestration API Client Library<br />
| >=0.2.1<br />
| Apache<br />
| <br />
|}<br />
<br />
* '''"murano-api"'''<br />
:{| border="1" cellpadding="2"<br />
| '''Package'''<br />
| '''Description'''<br />
| '''Version'''<br />
| '''Licence'''<br />
| '''Notes'''<br />
|-<br />
| d2to1<br />
| Allows using distutils2-like setup.cfg files for a package's metadata with a distribute/setuptools setup.py<br />
| >= 0.2.10, < 0.3<br />
| BSD<br />
| <br />
|-<br />
| pbr<br />
| Python Build Reasonableness<br />
| >=0.5, <0.6<br />
| Apache<br />
| <br />
|-<br />
| Babel<br />
| Internationalization utilities<br />
| <br />
| BSD<br />
| <br />
|-<br />
| SQLAlchemy<br />
| Database Abstraction Library<br />
| >=0.7,<=0.7.9<br />
| MIT<br />
| <br />
|-<br />
| anyjson<br />
| Wraps the best available JSON implementation available in a common interface<br />
| <br />
| BSD<br />
| <br />
|-<br />
| eventlet<br />
| Highly concurrent networking library<br />
| >= 0.9.12<br />
| MIT<br />
| <br />
|-<br />
| PasteDeploy<br />
| Web development toolkit for people who know what they are doing<br />
| <br />
| MIT<br />
| <br />
|-<br />
| routes<br />
| Routing Recognition and Generation Tools<br />
| <br />
| MIT<br />
| <br />
|-<br />
| webOb<br />
| WSGI request and response object<br />
| <br />
| MIT<br />
| <br />
|-<br />
| wsgiref<br />
| WSGI (PEP 333) Reference Library<br />
| <br />
| PSFL or ZPL<br />
| <br />
|-<br />
| argparse<br />
| Python command-line parsing library<br />
| <br />
| PSFL<br />
| <br />
|-<br />
| boto<br />
| Amazon Web Services Library<br />
| <br />
| MIT<br />
| <br />
|-<br />
| sqlalchemy-migrate<br />
| Database schema migration for SQLAlchemy<br />
| >=0.7<br />
| MIT<br />
| <br />
|-<br />
| httplib2<br />
| A comprehensive HTTP client library.<br />
| <br />
| MIT<br />
| <br />
|-<br />
| pycrypto<br />
| Cryptographic modules for Python.<br />
| >=2.1.0alpha1<br />
| Public domain<br />
| <br />
|-<br />
| kombu<br />
| Messaging Framework for Python<br />
| <br />
| BSD<br />
| <br />
|-<br />
| iso8601<br />
| Simple module to parse ISO 8601 dates<br />
| >= 0.1.4<br />
| MIT<br />
| <br />
|-<br />
| six<br />
| Python 2 and 3 compatibility utilities<br />
| <br />
| MIT<br />
| <br />
|-<br />
| netaddr<br />
| Pythonic manipulation of IPv4, IPv6, CIDR, EUI and MAC network addresses<br />
| <br />
| MIT<br />
| <br />
|}<br />
<br />
* '''"python-muranoclient"'''<br />
:{| border="1" cellpadding="2"<br />
| '''Package'''<br />
| '''Description'''<br />
| '''Version'''<br />
| '''Licence'''<br />
| '''Notes'''<br />
|-<br />
| argparse<br />
| Python command-line parsing library<br />
| <br />
| PSFL<br />
| <br />
|-<br />
| prettytable<br />
| A simple Python library for easily displaying tabular data in a visually appealing ASCII table format.<br />
| >=0.6, <0.7<br />
| BSD<br />
| <br />
|-<br />
| python-keystoneclient<br />
| OpenStack<br />
| >=0.1.2<br />
| Apache<br />
| <br />
|-<br />
| httplib2<br />
| A comprehensive HTTP client library.<br />
| <br />
| MIT<br />
| <br />
|-<br />
| iso8601<br />
| Simple module to parse ISO 8601 dates<br />
| >= 0.1.4<br />
| MIT<br />
| <br />
|}<br />
<br />
* '''"murano-common"'''<br />
:{| border="1" cellpadding="2"<br />
| '''Package'''<br />
| '''Description'''<br />
| '''Version'''<br />
| '''Licence'''<br />
| '''Notes'''<br />
|-<br />
| d2to1<br />
| Allows using distutils2-like setup.cfg files for a package's metadata with a distribute/setuptools setup.py<br />
| >= 0.2.10, < 0.3<br />
| BSD<br />
| <br />
|-<br />
| pbr<br />
| Python Build Reasonableness<br />
| >=0.5, <0.6<br />
| Apache<br />
| <br />
|-<br />
| anyjson<br />
| Wraps the best available JSON implementation available in a common interface<br />
| <br />
| BSD<br />
| <br />
|-<br />
| eventlet<br />
| Highly concurrent networking library<br />
| >= 0.9.12<br />
| MIT<br />
| <br />
|-<br />
| puka<br />
| Puka - the opinionated RabbitMQ client<br />
| 1.0.7c<br />
| MIT<br />
| <br />
|}<br />
<br />
* '''"murano-dashboard"'''<br />
:{| border="1" cellpadding="2"<br />
| '''Package'''<br />
| '''Description'''<br />
| '''Version'''<br />
| '''Licence'''<br />
| '''Notes'''<br />
|-<br />
| horizon<br />
| The OpenStack Dashboard.<br />
| <br />
| Apache<br />
| <br />
|-<br />
| Django<br />
| A high-level Python Web framework that encourages rapid development and clean, pragmatic design.<br />
| >=1.4, <1.5<br />
| BSD<br />
| <br />
|-<br />
| anyjson<br />
| Wraps the best available JSON implementation available in a common interface<br />
| <br />
| BSD<br />
| <br />
|-<br />
| requests<br />
| Python HTTP for Humans.<br />
| 0.14.2<br />
| Apache<br />
| <br />
|-<br />
| bunch<br />
| A dot-accessible dictionary (a la JavaScript objects)<br />
| <br />
| MIT<br />
| <br />
|-<br />
| iso8601<br />
| Simple module to parse ISO 8601 dates<br />
| >= 0.1.4<br />
| MIT<br />
| <br />
|-<br />
| six<br />
| Python 2 and 3 compatibility utilities<br />
| <br />
| MIT<br />
| <br />
|-<br />
| django-pipeline<br />
| Pipeline is an asset packaging library for Django<br />
| <br />
| MIT<br />
| <br />
|-<br />
| django-floppyforms<br />
| Full control of form rendering in the templates<br />
| 1.1<br />
| BSD<br />
| <br />
|-<br />
| djblets<br />
| А set of utility classes and functions for web applications written using Django and Python.<br />
| 0.7.16<br />
| MIT<br />
| <br />
|}<br />
<br />
* '''OpenStack''' version:<br />
:Most of the components - '''Grizzly'''<br />
:Heat version >= 2013.1.2<br />
<br />
==== Deployment requirements: ====<br />
* Samba share:<br />
It should be accessible from a tenant networks where deployed instances resides. This shared resource used in the murano workflows during IIS and SQL services based deployments.<br />
Shared resource structure:<br />
<br />
/share<br />
:/Prerequisites<br />
::/IIS<br />
:::AspNetMVC4Setup.exe<br />
::::DeployWebApp.ps1<br />
::::InstallIIS.ps1<br />
::::WebApplications.exe<br />
::/SQL Server<br />
:::/2012<br />
::::/Exctracted "MS SQL Server 2012" DVD content.<br />
:::/Tools<br />
::::PowerShellTools.msi<br />
::::SharedManagementObjects.msi<br />
::::SQLSysClrTypes.msi<br />
<br />
:''smb.conf'' example<br />
:...<br />
:[share]<br />
: comment = Deployment Share<br />
: path = /opt/samba/share<br />
: read only = No<br />
: create mask = 0755<br />
: guest ok = Yes<br />
: browsable = Yes<br />
: guest account = nobody<br />
:...</div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=Murano/Requirements&diff=29982Murano/Requirements2013-09-12T14:47:59Z<p>IYozhikov: </p>
<hr />
<div>Software with it's versions used for each of the '''"murano"''' components:<br />
<br />
* '''"murano-conductor"'''<br />
:{| border="1" cellpadding="2"<br />
| '''Package'''<br />
| '''Description'''<br />
| '''Version'''<br />
| '''Licence'''<br />
| '''Notes'''<br />
|-<br />
| anyjson<br />
| Wraps the best available JSON implementation available in a common interface<br />
|<br />
| BSD<br />
|<br />
|-<br />
| d2to1<br />
| Allows using distutils2-like setup.cfg files for a package's metadata with a distribute/setuptools setup.py<br />
| >= 0.2.10, < 0.3<br />
| BSD<br />
| Required for setup<br />
|-<br />
| deep<br />
| Easy, flexible deep comparison and testing of structured data<br />
| <br />
| GNU Lesser GPL<br />
| <br />
|-<br />
| eventlet<br />
| Highly concurrent networking library<br />
| >= 0.9.12<br />
| MIT<br />
| <br />
|-<br />
| iso8601<br />
| Simple module to parse ISO 8601 dates<br />
| >= 0.1.4<br />
| MIT<br />
| <br />
|-<br />
| jsonpath<br />
| An XPath for JSON<br />
| <br />
| MIT<br />
| <br />
|-<br />
| jsonschema<br />
| An implementation of JSON Schema validation for Python<br />
| 2.0.0<br />
| MIT<br />
| <br />
|-<br />
| netaddr<br />
| Pythonic manipulation of IPv4, IPv6, CIDR, EUI and MAC network addresses<br />
| <br />
| MIT<br />
| <br />
|-<br />
| oslo.config<br />
| Oslo configuration API<br />
| <br />
| Apache 2.0<br />
| <br />
|-<br />
| Paste<br />
| Tools for using a Web Server Gateway Interface stack<br />
| <br />
| MIT<br />
| <br />
|-<br />
| PasteDeploy<br />
| Web development toolkit for people who know what they are doing<br />
| <br />
| MIT<br />
| <br />
|-<br />
| pbr<br />
| Python Build Reasonableness<br />
| >=0.5, <0.6<br />
| Apache<br />
| Required for setup<br />
|-<br />
| python-heatclient<br />
| OpenStack Orchestration API Client Library<br />
| >=0.2.1<br />
| Apache<br />
| <br />
|}<br />
<br />
* '''"murano-api"'''<br />
:{| border="1" cellpadding="2"<br />
| '''Package'''<br />
| '''Description'''<br />
| '''Version'''<br />
| '''Licence'''<br />
| '''Notes'''<br />
|-<br />
| d2to1<br />
| Allows using distutils2-like setup.cfg files for a package's metadata with a distribute/setuptools setup.py<br />
| >= 0.2.10, < 0.3<br />
| BSD<br />
| <br />
|-<br />
| pbr<br />
| Python Build Reasonableness<br />
| >=0.5, <0.6<br />
| Apache<br />
| <br />
|-<br />
| Babel<br />
| Internationalization utilities<br />
| <br />
| BSD<br />
| <br />
|-<br />
| SQLAlchemy<br />
| Database Abstraction Library<br />
| >=0.7,<=0.7.9<br />
| MIT<br />
| <br />
|-<br />
| anyjson<br />
| Wraps the best available JSON implementation available in a common interface<br />
| <br />
| BSD<br />
| <br />
|-<br />
| eventlet<br />
| Highly concurrent networking library<br />
| >= 0.9.12<br />
| MIT<br />
| <br />
|-<br />
| PasteDeploy<br />
| Web development toolkit for people who know what they are doing<br />
| <br />
| MIT<br />
| <br />
|-<br />
| routes<br />
| Routing Recognition and Generation Tools<br />
| <br />
| MIT<br />
| <br />
|-<br />
| webOb<br />
| WSGI request and response object<br />
| <br />
| MIT<br />
| <br />
|-<br />
| wsgiref<br />
| WSGI (PEP 333) Reference Library<br />
| <br />
| PSFL or ZPL<br />
| <br />
|-<br />
| argparse<br />
| Python command-line parsing library<br />
| <br />
| PSFL<br />
| <br />
|-<br />
| boto<br />
| Amazon Web Services Library<br />
| <br />
| MIT<br />
| <br />
|-<br />
| sqlalchemy-migrate<br />
| Database schema migration for SQLAlchemy<br />
| >=0.7<br />
| MIT<br />
| <br />
|-<br />
| httplib2<br />
| A comprehensive HTTP client library.<br />
| <br />
| MIT<br />
| <br />
|-<br />
| pycrypto<br />
| Cryptographic modules for Python.<br />
| >=2.1.0alpha1<br />
| Public domain<br />
| <br />
|-<br />
| kombu<br />
| Messaging Framework for Python<br />
| <br />
| BSD<br />
| <br />
|-<br />
| iso8601<br />
| Simple module to parse ISO 8601 dates<br />
| >= 0.1.4<br />
| MIT<br />
| <br />
|-<br />
| six<br />
| Python 2 and 3 compatibility utilities<br />
| <br />
| MIT<br />
| <br />
|-<br />
| netaddr<br />
| Pythonic manipulation of IPv4, IPv6, CIDR, EUI and MAC network addresses<br />
| <br />
| MIT<br />
| <br />
|}<br />
<br />
* '''"python-muranoclient"'''<br />
:{| border="1" cellpadding="2"<br />
| '''Package'''<br />
| '''Description'''<br />
| '''Version'''<br />
| '''Licence'''<br />
| '''Notes'''<br />
|-<br />
| argparse<br />
| Python command-line parsing library<br />
| <br />
| PSFL<br />
| <br />
|-<br />
| prettytable<br />
| A simple Python library for easily displaying tabular data in a visually appealing ASCII table format.<br />
| >=0.6, <0.7<br />
| BSD<br />
| <br />
|-<br />
| python-keystoneclient<br />
| OpenStack<br />
| >=0.1.2<br />
| Apache<br />
| <br />
|-<br />
| httplib2<br />
| A comprehensive HTTP client library.<br />
| <br />
| MIT<br />
| <br />
|-<br />
| iso8601<br />
| Simple module to parse ISO 8601 dates<br />
| >= 0.1.4<br />
| MIT<br />
| <br />
|}<br />
<br />
* '''"murano-common"'''<br />
:{| border="1" cellpadding="2"<br />
| '''Package'''<br />
| '''Description'''<br />
| '''Version'''<br />
| '''Licence'''<br />
| '''Notes'''<br />
|-<br />
| d2to1<br />
| Allows using distutils2-like setup.cfg files for a package's metadata with a distribute/setuptools setup.py<br />
| >= 0.2.10, < 0.3<br />
| BSD<br />
| <br />
|-<br />
| pbr<br />
| Python Build Reasonableness<br />
| >=0.5, <0.6<br />
| Apache<br />
| <br />
|-<br />
| anyjson<br />
| Wraps the best available JSON implementation available in a common interface<br />
| <br />
| BSD<br />
| <br />
|-<br />
| eventlet<br />
| Highly concurrent networking library<br />
| >= 0.9.12<br />
| MIT<br />
| <br />
|-<br />
| puka<br />
| Puka - the opinionated RabbitMQ client<br />
| 1.0.7c<br />
| MIT<br />
| <br />
|}<br />
<br />
* '''"murano-dashboard"'''<br />
:{| border="1" cellpadding="2"<br />
| '''Package'''<br />
| '''Description'''<br />
| '''Version'''<br />
| '''Licence'''<br />
| '''Notes'''<br />
|-<br />
| horizon<br />
| The OpenStack Dashboard.<br />
| <br />
| Apache<br />
| <br />
|-<br />
| Django<br />
| A high-level Python Web framework that encourages rapid development and clean, pragmatic design.<br />
| >=1.4, <1.5<br />
| BSD<br />
| <br />
|-<br />
| anyjson<br />
| Wraps the best available JSON implementation available in a common interface<br />
| <br />
| BSD<br />
| <br />
|-<br />
| requests<br />
| Python HTTP for Humans.<br />
| 0.14.2<br />
| Apache<br />
| <br />
|-<br />
| bunch<br />
| A dot-accessible dictionary (a la JavaScript objects)<br />
| <br />
| MIT<br />
| <br />
|-<br />
| iso8601<br />
| Simple module to parse ISO 8601 dates<br />
| >= 0.1.4<br />
| MIT<br />
| <br />
|-<br />
| six<br />
| Python 2 and 3 compatibility utilities<br />
| <br />
| MIT<br />
| <br />
|-<br />
| django-pipeline<br />
| Pipeline is an asset packaging library for Django<br />
| <br />
| MIT<br />
| <br />
|-<br />
| django-floppyforms<br />
| Full control of form rendering in the templates<br />
| 1.1<br />
| BSD<br />
| <br />
|-<br />
| djblets<br />
| А set of utility classes and functions for web applications written using Django and Python.<br />
| 0.7.16<br />
| MIT<br />
| <br />
|}<br />
<br />
<br />
Deployment requirements:<br />
* Samba share:<br />
:smb.conf example<br />
:...<br />
:[share]<br />
: comment = Deployment Share<br />
: path = /opt/samba/share<br />
: read only = No<br />
: create mask = 0755<br />
: guest ok = Yes<br />
: browsable = Yes<br />
: guest account = nobody<br />
:...</div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=Murano/Requirements&diff=29981Murano/Requirements2013-09-12T13:35:29Z<p>IYozhikov: Created page with "Package versions: Deployment requirements:"</p>
<hr />
<div>Package versions:<br />
<br />
Deployment requirements:</div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=Murano&diff=29980Murano2013-09-12T13:31:18Z<p>IYozhikov: /* Main Info */</p>
<hr />
<div>Murano Project introduces a new service which allows non-experienced users to deploy reliable Windows-based environments in “push-the-button” manner. Key goal is to provide UI and API which allows to deploy and operate Windows environments on the "Windows Services" abstraction level. The Service should be able to orchestrate complex circular dependent cases in order to setup complete Windows environments with many dependant services.<br />
<br />
The current stable version of Murano is '''v0.2'''. For more information please refer to the [[Murano/ReleaseNotes_v0.2|Release Notes]].<br />
__NOTOC__<br />
===Main Info===<br />
* [[Murano/ProjectOverview|Project Overview]]<br />
* [[Murano/Roadmap|Roadmap]]<br />
* [[Murano/SourceCode|Source Code]]<br />
* [[Murano/Requirements|Requirements]]<br />
* [https://bugs.launchpad.net/murano Bug Tracker]<br />
* [https://launchpad.net/murano The Project in Launchpad]<br />
<br />
===Documentation===<br />
{| border=0 width="45%"<br />
|-<br />
| <h5>Current stable version</h5><br />
| <h5>Development version</h5><br />
|-<br />
| <br />
* [http://murano-docs.github.io/0.2/getting-started/content Getting Started Guide]<br />
* [http://murano-docs.github.io/0.2/developers-guide/content/ch02.html Installation Guide] <br />
* [http://murano-docs.github.io/0.2/developers-guide/content/ch01.html Developer Guide]<br />
* [http://murano-docs.github.io/0.2/user-guide/content/ch01.html User Guide] <br />
* [http://murano-docs.github.io/0.2/administrators-guide/content/ch01.html Administrator Guide]<br />
|<br />
* [http://murano-docs.github.io/latest/getting-started/content/ch01.html Getting Started Guide]<br />
* [http://murano-docs.github.io/latest/developers-guide/content/ch02.html Installation Guide] <br />
* [http://murano-docs.github.io/latest/developers-guide/content/ch02.html Developer Guide] <br />
* [http://murano-docs.github.io/latest/user-guide/content/ch01.html User Guide] <br />
* [http://murano-docs.github.io/latest/murano-deployment-guide/content/ch01.html Administrator Guide]<br />
|}<br />
<br />
===Getting involved===<br />
If you would like to ask some questions or make proposals, feel free to reach us on #murano IRC channel at FreeNode. Typically somebody from our team will be online at IRC from 6:00 to 20:00 UTC. You can also contact Murano community directly by sending an email to [mailto:openstack-dev@lists.openstack.org OpenStack Development Mailing List] (please, use a [Murano] prefix in the 'Subject' field of the your email).<br />
<br />
We’re going to hold public weekly meetings on Mondays at 15:00 UTC on #openstack-meeting-alt IRC channel. Refer to [[Meetings]].<br />
<br />
If you want to contribute either to docs or to code, simply send us change request via [http://review.openstack.org review.openstack.org]. You can file bugs and register blueprints at Murano [https://launchpad.net/murano Launchpad page].</div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=Murano/ReleaseNotes_v0.2&diff=29537Murano/ReleaseNotes v0.22013-09-05T16:23:21Z<p>IYozhikov: /* Known Issues */</p>
<hr />
<div>Murano v0.2 is a second stable release of Murano. Check out "What’s New", "Improvements", "Bugs Fixed" and "Known Issues" for this version of Murano below. If interested, please see [https://launchpad.net/murano/+milestone/0.2 the complete list of changes] in this release.<br />
<br />
===What's new===<br />
====Workflow diagnostics in Murano Conductor====<br />
New tags were added to XML workflow definition language to provide more precise control over workflow execution, report various error conditions and warnings, make rules applicable only once etc.<br />
Workflow rules has got description, excessive logging have been added to provide detailed execution plan of any workflow.<br />
<br />
====Dynamic UI====<br />
Dynamic UI means moving form definitions, data processing logic and texts from<br />
Python code and Django templates into separate service definitions in<br />
human-readable YAML format. Service definitions<br />
separated from Python code provide much greater flexibility in adding,<br />
modifying and removing services. The format simplicity allows non-programmers<br />
to use it: even if there are some errors in service definition, it<br />
simply won't be shown in services list (and won't crash the whole<br />
dashboard). Dynamic UI employs YAML for forms markup and YAQL (Yet Another Query Language, developed specially for Murano Workflows) for form validation and initialization logic.<br />
<br />
====Support for SSL both in REST API and RabbitMQ communications====<br />
To improve security in Murano we have added support for SSL on all communication levels between our components. All components communicate with each other by RabbitMQ and this interaction can be encrypted now with SSL. How to [http://murano-docs.github.io/0.2/developers-guide/content/ch02s05.html configure SSL] encryption can be found in our developers guide.<br />
<br />
Additionally we have added ability to secure all communications with our API by adding support for SSL endpoint in our REST API service. API [http://murano-docs.github.io/0.2/developers-guide/content/ch02s05.html HTTPS configuration] can also be found in our developers guide.<br />
<br />
====Ability to select Windows image, Availability Zone and instance flavor====<br />
A new common dialog step has been added to "Create Service" UI, which allows to select Instance Flavor (hardware configuration), Windows Image (pre-create Glance image, marked with an appropriate metadata tag) and Availability Zone (one of those defined in OpenStack). <br />
Windows Image field is mandatory for selection, while others may be left unset, so conductor will use configurable default values instead<br />
<br />
==== External Active Directory====<br />
External Active Directory is implemented as conductor's functionality extension: it is available after enabling ExternalAD.xml workflow template in the murano-conductor service. This feature allows to use most of the murano supported services with existing windows domain (should be configured before).<br />
<br />
====Additional Services====<br />
Murano v0.2 supports deployment of several new services: MS SQL Server single instance and MS SQL Server Always On Cluster.<br />
<br />
=====MS SQL Server=====<br />
This type of service provides deployment of the MS SQL Server 2012 in standalone mode per instance.<br />
<br />
=====MS SQL Server AlwaysOn Cluster=====<br />
This type of service is the most complex one of all supported services. It actually contains 2 services under the hood, namely "Active Directory" and "MS SQL Server Cluster". <br />
<br /><br />
At high-level the service structure features the following components:<br />
* Active Directory windows domain.<br />
* Windows Server Failover Cluster.<br />
* MS SQL Server standalone install per instance.<br />
* MS SQL AlwaysOn Availability Group functionality.<br />
<br />
===Improvements===<br />
====Detailed documentation for writing XML Workflows====<br />
Murano Workflow XML DSL specification created and published at [http://murano-docs.github.io/0.2/developers-guide/content/ch05.html github.io]. The developer guide now includes this section.<br />
<br />
This DSL should be used when writing new workflows and modifying existing ones.<br />
<br />
====Improved HA for Murano Conductor====<br />
All components of Murano are High-Available now.<br />
Murano-API is stateless, so it can be placed behind a load balancer.<br />
The state of the Workflow is idempotent, so in case of the conductor failure secondary conductors will repeat the actions of the unfinished deployments without any unwanted side effects.<br />
<br />
====REST API Changes====<br />
Several changes are introduced to API specification to support extensible and pluggable architecture:<br />
* Universal endpoint for services<br />
* Tree traversing and set syntax<br />
Major change is universal endpoint for all services. Previously we had endpoints like: “/environment/<env_id>/activeDirectories/*” for each service, and now single endpoint for all services is introduced, like: “/environment/<env_id>/services/*”.<br />
<br />
In order to make our API more user-friendly and reduce amount of calls and data sent we also introducing two complementing features: tree traversing and set syntax.<br />
<br />
More details about this feature can be found in the [[Murano/Blueprints/APIv0.2|blueprint]].<br />
<br />
===Bugs Fixed===<br />
<br />
A complete list of bugs fixed in Murano v0.2 can be found [https://bugs.launchpad.net/murano/+bugs?field.searchtext=&orderby=-importance&field.status%3Alist=WONTFIX&field.status%3Alist=FIXCOMMITTED&field.status%3Alist=FIXRELEASED&assignee_option=any&field.assignee=&field.bug_reporter=&field.bug_commenter=&field.subscriber=&field.structural_subscriber=&field.milestone%3Alist=60161&field.tag=&field.tags_combinator=ANY&field.has_cve.used=&field.omit_dupes.used=&field.omit_dupes=on&field.affects_me.used=&field.has_patch.used=&field.has_branches.used=&field.has_branches=on&field.has_no_branches.used=&field.has_no_branches=on&field.has_blueprints.used=&field.has_blueprints=on&field.has_no_blueprints.used=&field.has_no_blueprints=on&search=Search here].<br />
<br />
===Known Issues===<br />
<br />
Actual bug state can be found in Murano [https://bugs.launchpad.net/murano Launchpad page]<br />
<br />
* Due to current Heat limitation services that involve load-balancer creation (farms) can be deployed only by tenant administrators.<br />
<br />
* When Heat creates different clients for Nova, Cinder and others it doesn't pass SSL-related options to clients' constructor. If Nova is configured to have SSL endpoints and self-signed certificates Heat will fail to create instances because there is no way to disable server certificate validation as there is no "insecure" flag passed etc.<br />
<br />
* Farm services can't be deployed without KeyPair. If KeyPair is not set load balancer won't be created ([https://bugs.launchpad.net/murano/+bug/1216882 link on bug description]). Deploy will hang up and these messages will show up in logs:<br />
2013-08-06 09:10:07 - Unable to deploy instance ipkrmhk0vzq4b6 (asp-farm_instance_0) due to Unexpected state<br />
2013-08-06 09:10:07 - Unable to create a Server Farm load balancer on unit ipkrmhk0vzq4b6 (asp-farm_instance_0) due to Unexpected state<br />
<br />
* User can select incorrect parameters for service, like incompatible flavor and VM image or if tenant resource quota exceeded. In this case user will see the following error in the log:<br />
Unable to deploy instance demo (demo.com_instance_0) due to Unexpected stack state NOT_FOUND<br />
<br />
* MS SQL Server Cluster using Virtual IP Addresses at the down layer. In the current release of the OpenStack (Grizzly) this functionality does not supported from the box.<br />
This situation could be handled in these ways:<br />
* For the Nova-Network there are shell scripts, could be downloaded [https://www.dropbox.com/sh/zthldcxnp6r4flm/gTq3BxYnMy/wsfc_ip_helper.tar.gz here]<br />
* For the Neutron there is patch,</div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=Murano/ReleaseNotes_v0.2&diff=29535Murano/ReleaseNotes v0.22013-09-05T15:51:42Z<p>IYozhikov: /* Known Issues */</p>
<hr />
<div>Murano v0.2 is a second stable release of Murano. Check out "What’s New", "Improvements", "Bugs Fixed" and "Known Issues" for this version of Murano below. If interested, please see [https://launchpad.net/murano/+milestone/0.2 the complete list of changes] in this release.<br />
<br />
===What's new===<br />
====Workflow diagnostics in Murano Conductor====<br />
New tags were added to XML workflow definition language to provide more precise control over workflow execution, report various error conditions and warnings, make rules applicable only once etc.<br />
Workflow rules has got description, excessive logging have been added to provide detailed execution plan of any workflow.<br />
<br />
====Dynamic UI====<br />
Dynamic UI means moving form definitions, data processing logic and texts from<br />
Python code and Django templates into separate service definitions in<br />
human-readable YAML format. Service definitions<br />
separated from Python code provide much greater flexibility in adding,<br />
modifying and removing services. The format simplicity allows non-programmers<br />
to use it: even if there are some errors in service definition, it<br />
simply won't be shown in services list (and won't crash the whole<br />
dashboard). Dynamic UI employs YAML for forms markup and YAQL (Yet Another Query Language, developed specially for Murano Workflows) for form validation and initialization logic.<br />
<br />
====Support for SSL both in REST API and RabbitMQ communications====<br />
To improve security in Murano we have added support for SSL on all communication levels between our components. All components communicate with each other by RabbitMQ and this interaction can be encrypted now with SSL. How to [http://murano-docs.github.io/0.2/developers-guide/content/ch02s05.html configure SSL] encryption can be found in our developers guide.<br />
<br />
Additionally we have added ability to secure all communications with our API by adding support for SSL endpoint in our REST API service. API [http://murano-docs.github.io/0.2/developers-guide/content/ch02s05.html HTTPS configuration] can also be found in our developers guide.<br />
<br />
====Ability to select Windows image, Availability Zone and instance flavor====<br />
A new common dialog step has been added to "Create Service" UI, which allows to select Instance Flavor (hardware configuration), Windows Image (pre-create Glance image, marked with an appropriate metadata tag) and Availability Zone (one of those defined in OpenStack). <br />
Windows Image field is mandatory for selection, while others may be left unset, so conductor will use configurable default values instead<br />
<br />
==== External Active Directory====<br />
External Active Directory is implemented as conductor's functionality extension: it is available after enabling ExternalAD.xml workflow template in the murano-conductor service. This feature allows to use most of the murano supported services with existing windows domain (should be configured before).<br />
<br />
====Additional Services====<br />
Murano v0.2 supports deployment of several new services: MS SQL Server single instance and MS SQL Server Always On Cluster.<br />
<br />
=====MS SQL Server=====<br />
This type of service provides deployment of the MS SQL Server 2012 in standalone mode per instance.<br />
<br />
=====MS SQL Server AlwaysOn Cluster=====<br />
This type of service is the most complex one of all supported services. It actually contains 2 services under the hood, namely "Active Directory" and "MS SQL Server Cluster". <br />
<br /><br />
At high-level the service structure features the following components:<br />
* Active Directory windows domain.<br />
* Windows Server Failover Cluster.<br />
* MS SQL Server standalone install per instance.<br />
* MS SQL AlwaysOn Availability Group functionality.<br />
<br />
===Improvements===<br />
====Detailed documentation for writing XML Workflows====<br />
Murano Workflow XML DSL specification created and published at [http://murano-docs.github.io/0.2/developers-guide/content/ch05.html github.io]. The developer guide now includes this section.<br />
<br />
This DSL should be used when writing new workflows and modifying existing ones.<br />
<br />
====Improved HA for Murano Conductor====<br />
All components of Murano are High-Available now.<br />
Murano-API is stateless, so it can be placed behind a load balancer.<br />
The state of the Workflow is idempotent, so in case of the conductor failure secondary conductors will repeat the actions of the unfinished deployments without any unwanted side effects.<br />
<br />
====REST API Changes====<br />
Several changes are introduced to API specification to support extensible and pluggable architecture:<br />
* Universal endpoint for services<br />
* Tree traversing and set syntax<br />
Major change is universal endpoint for all services. Previously we had endpoints like: “/environment/<env_id>/activeDirectories/*” for each service, and now single endpoint for all services is introduced, like: “/environment/<env_id>/services/*”.<br />
<br />
In order to make our API more user-friendly and reduce amount of calls and data sent we also introducing two complementing features: tree traversing and set syntax.<br />
<br />
More details about this feature can be found in the [[Murano/Blueprints/APIv0.2|blueprint]].<br />
<br />
===Bugs Fixed===<br />
<br />
A complete list of bugs fixed in Murano v0.2 can be found [https://bugs.launchpad.net/murano/+bugs?field.searchtext=&orderby=-importance&field.status%3Alist=WONTFIX&field.status%3Alist=FIXCOMMITTED&field.status%3Alist=FIXRELEASED&assignee_option=any&field.assignee=&field.bug_reporter=&field.bug_commenter=&field.subscriber=&field.structural_subscriber=&field.milestone%3Alist=60161&field.tag=&field.tags_combinator=ANY&field.has_cve.used=&field.omit_dupes.used=&field.omit_dupes=on&field.affects_me.used=&field.has_patch.used=&field.has_branches.used=&field.has_branches=on&field.has_no_branches.used=&field.has_no_branches=on&field.has_blueprints.used=&field.has_blueprints=on&field.has_no_blueprints.used=&field.has_no_blueprints=on&search=Search here].<br />
<br />
===Known Issues===<br />
<br />
Actual bug state can be found in Murano [https://bugs.launchpad.net/murano Launchpad page]<br />
<br />
* Due to current Heat limitation services that involve load-balancer creation (farms) can be deployed only by tenant administrators.<br />
<br />
* When Heat creates different clients for Nova, Cinder and others it doesn't pass SSL-related options to clients' constructor. If Nova is configured to have SSL endpoints and self-signed certificates Heat will fail to create instances because there is no way to disable server certificate validation as there is no "insecure" flag passed etc.<br />
<br />
* Murano-Conductor doesn't work with python-heatclient>0.2.1.<br />
<br />
* Farm services can't be deployed without KeyPair. If KeyPair is not set load balancer won't be created ([https://bugs.launchpad.net/murano/+bug/1216882 link on bug description]). Deploy will hang up and these messages will show up in logs:<br />
2013-08-06 09:10:07 - Unable to deploy instance ipkrmhk0vzq4b6 (asp-farm_instance_0) due to Unexpected state<br />
2013-08-06 09:10:07 - Unable to create a Server Farm load balancer on unit ipkrmhk0vzq4b6 (asp-farm_instance_0) due to Unexpected state<br />
<br />
* User can select incorrect parameters for service, like incompatible flavor and VM image or if tenant resource quota exceeded. In this case user will see the following error in the log:<br />
Unable to deploy instance demo (demo.com_instance_0) due to Unexpected stack state NOT_FOUND<br />
<br />
* MS SQL Server Cluster using Virtual IP Addresses at the down layer. In the current release of the OpenStack (Grizzly) this functionality does not supported from the box.<br />
This situation could be handled in these ways:<br />
* For the Nova-Network there ara shell scripts, could be downloaded [https://www.dropbox.com/sh/zthldcxnp6r4flm/gTq3BxYnMy/wsfc_ip_helper.tar.gz here]<br />
* For the Neutron there is patch,</div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=Murano/ReleaseNotes_v0.2&diff=29534Murano/ReleaseNotes v0.22013-09-05T15:50:59Z<p>IYozhikov: /* Known Issues */</p>
<hr />
<div>Murano v0.2 is a second stable release of Murano. Check out "What’s New", "Improvements", "Bugs Fixed" and "Known Issues" for this version of Murano below. If interested, please see [https://launchpad.net/murano/+milestone/0.2 the complete list of changes] in this release.<br />
<br />
===What's new===<br />
====Workflow diagnostics in Murano Conductor====<br />
New tags were added to XML workflow definition language to provide more precise control over workflow execution, report various error conditions and warnings, make rules applicable only once etc.<br />
Workflow rules has got description, excessive logging have been added to provide detailed execution plan of any workflow.<br />
<br />
====Dynamic UI====<br />
Dynamic UI means moving form definitions, data processing logic and texts from<br />
Python code and Django templates into separate service definitions in<br />
human-readable YAML format. Service definitions<br />
separated from Python code provide much greater flexibility in adding,<br />
modifying and removing services. The format simplicity allows non-programmers<br />
to use it: even if there are some errors in service definition, it<br />
simply won't be shown in services list (and won't crash the whole<br />
dashboard). Dynamic UI employs YAML for forms markup and YAQL (Yet Another Query Language, developed specially for Murano Workflows) for form validation and initialization logic.<br />
<br />
====Support for SSL both in REST API and RabbitMQ communications====<br />
To improve security in Murano we have added support for SSL on all communication levels between our components. All components communicate with each other by RabbitMQ and this interaction can be encrypted now with SSL. How to [http://murano-docs.github.io/0.2/developers-guide/content/ch02s05.html configure SSL] encryption can be found in our developers guide.<br />
<br />
Additionally we have added ability to secure all communications with our API by adding support for SSL endpoint in our REST API service. API [http://murano-docs.github.io/0.2/developers-guide/content/ch02s05.html HTTPS configuration] can also be found in our developers guide.<br />
<br />
====Ability to select Windows image, Availability Zone and instance flavor====<br />
A new common dialog step has been added to "Create Service" UI, which allows to select Instance Flavor (hardware configuration), Windows Image (pre-create Glance image, marked with an appropriate metadata tag) and Availability Zone (one of those defined in OpenStack). <br />
Windows Image field is mandatory for selection, while others may be left unset, so conductor will use configurable default values instead<br />
<br />
==== External Active Directory====<br />
External Active Directory is implemented as conductor's functionality extension: it is available after enabling ExternalAD.xml workflow template in the murano-conductor service. This feature allows to use most of the murano supported services with existing windows domain (should be configured before).<br />
<br />
====Additional Services====<br />
Murano v0.2 supports deployment of several new services: MS SQL Server single instance and MS SQL Server Always On Cluster.<br />
<br />
=====MS SQL Server=====<br />
This type of service provides deployment of the MS SQL Server 2012 in standalone mode per instance.<br />
<br />
=====MS SQL Server AlwaysOn Cluster=====<br />
This type of service is the most complex one of all supported services. It actually contains 2 services under the hood, namely "Active Directory" and "MS SQL Server Cluster". <br />
<br /><br />
At high-level the service structure features the following components:<br />
* Active Directory windows domain.<br />
* Windows Server Failover Cluster.<br />
* MS SQL Server standalone install per instance.<br />
* MS SQL AlwaysOn Availability Group functionality.<br />
<br />
===Improvements===<br />
====Detailed documentation for writing XML Workflows====<br />
Murano Workflow XML DSL specification created and published at [http://murano-docs.github.io/0.2/developers-guide/content/ch05.html github.io]. The developer guide now includes this section.<br />
<br />
This DSL should be used when writing new workflows and modifying existing ones.<br />
<br />
====Improved HA for Murano Conductor====<br />
All components of Murano are High-Available now.<br />
Murano-API is stateless, so it can be placed behind a load balancer.<br />
The state of the Workflow is idempotent, so in case of the conductor failure secondary conductors will repeat the actions of the unfinished deployments without any unwanted side effects.<br />
<br />
====REST API Changes====<br />
Several changes are introduced to API specification to support extensible and pluggable architecture:<br />
* Universal endpoint for services<br />
* Tree traversing and set syntax<br />
Major change is universal endpoint for all services. Previously we had endpoints like: “/environment/<env_id>/activeDirectories/*” for each service, and now single endpoint for all services is introduced, like: “/environment/<env_id>/services/*”.<br />
<br />
In order to make our API more user-friendly and reduce amount of calls and data sent we also introducing two complementing features: tree traversing and set syntax.<br />
<br />
More details about this feature can be found in the [[Murano/Blueprints/APIv0.2|blueprint]].<br />
<br />
===Bugs Fixed===<br />
<br />
A complete list of bugs fixed in Murano v0.2 can be found [https://bugs.launchpad.net/murano/+bugs?field.searchtext=&orderby=-importance&field.status%3Alist=WONTFIX&field.status%3Alist=FIXCOMMITTED&field.status%3Alist=FIXRELEASED&assignee_option=any&field.assignee=&field.bug_reporter=&field.bug_commenter=&field.subscriber=&field.structural_subscriber=&field.milestone%3Alist=60161&field.tag=&field.tags_combinator=ANY&field.has_cve.used=&field.omit_dupes.used=&field.omit_dupes=on&field.affects_me.used=&field.has_patch.used=&field.has_branches.used=&field.has_branches=on&field.has_no_branches.used=&field.has_no_branches=on&field.has_blueprints.used=&field.has_blueprints=on&field.has_no_blueprints.used=&field.has_no_blueprints=on&search=Search here].<br />
<br />
===Known Issues===<br />
<br />
Actual bug state can be found in Murano [https://bugs.launchpad.net/murano Launchpad page]<br />
<br />
* Due to current Heat limitation services that involve load-balancer creation (farms) can be deployed only by tenant administrators.<br />
<br />
* When Heat creates different clients for Nova, Cinder and others it doesn't pass SSL-related options to clients' constructor. If Nova is configured to have SSL endpoints and self-signed certificates Heat will fail to create instances because there is no way to disable server certificate validation as there is no "insecure" flag passed etc.<br />
<br />
* Murano-Conductor doesn't work with python-heatclient>0.2.1.<br />
<br />
* Farm services can't be deployed without KeyPair. If KeyPair is not set load balancer won't be created ([https://bugs.launchpad.net/murano/+bug/1216882 link on bug description]). Deploy will hang up and these messages will show up in logs:<br />
2013-08-06 09:10:07 - Unable to deploy instance ipkrmhk0vzq4b6 (asp-farm_instance_0) due to Unexpected state<br />
2013-08-06 09:10:07 - Unable to create a Server Farm load balancer on unit ipkrmhk0vzq4b6 (asp-farm_instance_0) due to Unexpected state<br />
<br />
* User can select incorrect parameters for service, like incompatible flavor and VM image or if tenant resource quota exceeded. In this case user will see the following error in the log:<br />
Unable to deploy instance demo (demo.com_instance_0) due to Unexpected stack state NOT_FOUND<br />
<br />
* MS SQL Server Cluster using Virtual IP Addresses at the down layer. In the current release of the OpenStack (Grizzly) this functionality does not supported from the box.<br />
This situation could be handled in these ways:<br />
* For the Nova-Network there ara shell scripts, could be downloaded here - https://www.dropbox.com/sh/zthldcxnp6r4flm/gTq3BxYnMy/wsfc_ip_helper.tar.gz<br />
* For the Neutron there is patch,</div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=Murano/ReleaseNotes_v0.2&diff=29531Murano/ReleaseNotes v0.22013-09-05T15:32:51Z<p>IYozhikov: /* Known Issues */</p>
<hr />
<div>Murano v0.2 is a second stable release of Murano. Check out "What’s New", "Improvements", "Bugs Fixed" and "Known Issues" for this version of Murano below. If interested, please see [https://launchpad.net/murano/+milestone/0.2 the complete list of changes] in this release.<br />
<br />
===What's new===<br />
====Workflow diagnostics in Murano Conductor====<br />
New tags were added to XML workflow definition language to provide more precise control over workflow execution, report various error conditions and warnings, make rules applicable only once etc.<br />
Workflow rules has got description, excessive logging have been added to provide detailed execution plan of any workflow.<br />
<br />
====Dynamic UI====<br />
Dynamic UI means moving form definitions, data processing logic and texts from<br />
Python code and Django templates into separate service definitions in<br />
human-readable YAML format. Service definitions<br />
separated from Python code provide much greater flexibility in adding,<br />
modifying and removing services. The format simplicity allows non-programmers<br />
to use it: even if there are some errors in service definition, it<br />
simply won't be shown in services list (and won't crash the whole<br />
dashboard). Dynamic UI employs YAML for forms markup and YAQL (Yet Another Query Language, developed specially for Murano Workflows) for form validation and initialization logic.<br />
<br />
====Support for SSL both in REST API and RabbitMQ communications====<br />
To improve security in Murano we have added support for SSL on all communication levels between our components. All components communicate with each other by RabbitMQ and this interaction can be encrypted now with SSL. How to [http://murano-docs.github.io/0.2/developers-guide/content/ch02s05.html configure SSL] encryption can be found in our developers guide.<br />
<br />
Additionally we have added ability to secure all communications with our API by adding support for SSL endpoint in our REST API service. API [http://murano-docs.github.io/0.2/developers-guide/content/ch02s05.html HTTPS configuration] can also be found in our developers guide.<br />
<br />
====Ability to select Windows image, Availability Zone and instance flavor====<br />
A new common dialog step has been added to "Create Service" UI, which allows to select Instance Flavor (hardware configuration), Windows Image (pre-create Glance image, marked with an appropriate metadata tag) and Availability Zone (one of those defined in OpenStack). <br />
Windows Image field is mandatory for selection, while others may be left unset, so conductor will use configurable default values instead<br />
<br />
==== External Active Directory====<br />
External Active Directory is implemented as conductor's functionality extension: it is available after enabling ExternalAD.xml workflow template in the murano-conductor service. This feature allows to use most of the murano supported services with existing windows domain (should be configured before).<br />
<br />
====Additional Services====<br />
Murano v0.2 supports deployment of several new services: MS SQL Server single instance and MS SQL Server Always On Cluster.<br />
<br />
=====MS SQL Server=====<br />
This type of service provides deployment of the MS SQL Server 2012 in standalone mode per instance.<br />
<br />
=====MS SQL Server AlwaysOn Cluster=====<br />
This type of service is the most complex one of all supported services. It actually contains 2 services under the hood, namely "Active Directory" and "MS SQL Server Cluster". <br />
<br /><br />
At high-level the service structure features the following components:<br />
* Active Directory windows domain.<br />
* Windows Server Failover Cluster.<br />
* MS SQL Server standalone install per instance.<br />
* MS SQL AlwaysOn Availability Group functionality.<br />
<br />
===Improvements===<br />
====Detailed documentation for writing XML Workflows====<br />
Murano Workflow XML DSL specification created and published at [http://murano-docs.github.io/0.2/developers-guide/content/ch05.html github.io]. The developer guide now includes this section.<br />
<br />
This DSL should be used when writing new workflows and modifying existing ones.<br />
<br />
====Improved HA for Murano Conductor====<br />
All components of Murano are High-Available now.<br />
Murano-API is stateless, so it can be placed behind a load balancer.<br />
The state of the Workflow is idempotent, so in case of the conductor failure secondary conductors will repeat the actions of the unfinished deployments without any unwanted side effects.<br />
<br />
====REST API Changes====<br />
Several changes are introduced to API specification to support extensible and pluggable architecture:<br />
* Universal endpoint for services<br />
* Tree traversing and set syntax<br />
Major change is universal endpoint for all services. Previously we had endpoints like: “/environment/<env_id>/activeDirectories/*” for each service, and now single endpoint for all services is introduced, like: “/environment/<env_id>/services/*”.<br />
<br />
In order to make our API more user-friendly and reduce amount of calls and data sent we also introducing two complementing features: tree traversing and set syntax.<br />
<br />
More details about this feature can be found in the [[Murano/Blueprints/APIv0.2|blueprint]].<br />
<br />
===Bugs Fixed===<br />
<br />
A complete list of bugs fixed in Murano v0.2 can be found [https://bugs.launchpad.net/murano/+bugs?field.searchtext=&orderby=-importance&field.status%3Alist=WONTFIX&field.status%3Alist=FIXCOMMITTED&field.status%3Alist=FIXRELEASED&assignee_option=any&field.assignee=&field.bug_reporter=&field.bug_commenter=&field.subscriber=&field.structural_subscriber=&field.milestone%3Alist=60161&field.tag=&field.tags_combinator=ANY&field.has_cve.used=&field.omit_dupes.used=&field.omit_dupes=on&field.affects_me.used=&field.has_patch.used=&field.has_branches.used=&field.has_branches=on&field.has_no_branches.used=&field.has_no_branches=on&field.has_blueprints.used=&field.has_blueprints=on&field.has_no_blueprints.used=&field.has_no_blueprints=on&search=Search here].<br />
<br />
===Known Issues===<br />
<br />
Actual bug state can be found in Murano [https://bugs.launchpad.net/murano Launchpad page]<br />
<br />
* Due to current Heat limitation services that involve load-balancer creation (farms) can be deployed only by tenant administrators.<br />
<br />
* When Heat creates different clients for Nova, Cinder and others it doesn't pass SSL-related options to clients' constructor. If Nova is configured to have SSL endpoints and self-signed certificates Heat will fail to create instances because there is no way to disable server certificate validation as there is no "insecure" flag passed etc.<br />
<br />
* Murano-Conductor doesn't work with python-heatclient>0.2.1.<br />
<br />
* Farm services can't be deployed without KeyPair. If KeyPair is not set load balancer won't be created ([https://bugs.launchpad.net/murano/+bug/1216882 link on bug description]). Deploy will hang up and these messages will show up in logs:<br />
2013-08-06 09:10:07 - Unable to deploy instance ipkrmhk0vzq4b6 (asp-farm_instance_0) due to Unexpected state<br />
2013-08-06 09:10:07 - Unable to create a Server Farm load balancer on unit ipkrmhk0vzq4b6 (asp-farm_instance_0) due to Unexpected state<br />
<br />
* User can select incorrect parameters for service, like incompatible flavor and VM image or if tenant resource quota exceeded. In this case user will see the following error in the log:<br />
Unable to deploy instance demo (demo.com_instance_0) due to Unexpected stack state NOT_FOUND<br />
<br />
* MS SQL Server Cluster using Virtual IP Addresses at the down layer. In the current release of the OpenStack (Grizzly) this functionality does not supported from the box.<br />
This situation could be handled in these ways:<br />
* For the Nova-Network there ara shell scripts, could be downloaded here<br />
* For the Neutron there is patch,</div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=Murano/ReleaseNotes_v0.2&diff=29530Murano/ReleaseNotes v0.22013-09-05T15:15:00Z<p>IYozhikov: /* Known Issues */</p>
<hr />
<div>Murano v0.2 is a second stable release of Murano. Check out "What’s New", "Improvements", "Bugs Fixed" and "Known Issues" for this version of Murano below. If interested, please see [https://launchpad.net/murano/+milestone/0.2 the complete list of changes] in this release.<br />
<br />
===What's new===<br />
====Workflow diagnostics in Murano Conductor====<br />
New tags were added to XML workflow definition language to provide more precise control over workflow execution, report various error conditions and warnings, make rules applicable only once etc.<br />
Workflow rules has got description, excessive logging have been added to provide detailed execution plan of any workflow.<br />
<br />
====Dynamic UI====<br />
Dynamic UI means moving form definitions, data processing logic and texts from<br />
Python code and Django templates into separate service definitions in<br />
human-readable YAML format. Service definitions<br />
separated from Python code provide much greater flexibility in adding,<br />
modifying and removing services. The format simplicity allows non-programmers<br />
to use it: even if there are some errors in service definition, it<br />
simply won't be shown in services list (and won't crash the whole<br />
dashboard). Dynamic UI employs YAML for forms markup and YAQL (Yet Another Query Language, developed specially for Murano Workflows) for form validation and initialization logic.<br />
<br />
====Support for SSL both in REST API and RabbitMQ communications====<br />
To improve security in Murano we have added support for SSL on all communication levels between our components. All components communicate with each other by RabbitMQ and this interaction can be encrypted now with SSL. How to [http://murano-docs.github.io/0.2/developers-guide/content/ch02s05.html configure SSL] encryption can be found in our developers guide.<br />
<br />
Additionally we have added ability to secure all communications with our API by adding support for SSL endpoint in our REST API service. API [http://murano-docs.github.io/0.2/developers-guide/content/ch02s05.html HTTPS configuration] can also be found in our developers guide.<br />
<br />
====Ability to select Windows image, Availability Zone and instance flavor====<br />
A new common dialog step has been added to "Create Service" UI, which allows to select Instance Flavor (hardware configuration), Windows Image (pre-create Glance image, marked with an appropriate metadata tag) and Availability Zone (one of those defined in OpenStack). <br />
Windows Image field is mandatory for selection, while others may be left unset, so conductor will use configurable default values instead<br />
<br />
==== External Active Directory====<br />
External Active Directory is implemented as conductor's functionality extension: it is available after enabling ExternalAD.xml workflow template in the murano-conductor service. This feature allows to use most of the murano supported services with existing windows domain (should be configured before).<br />
<br />
====Additional Services====<br />
Murano v0.2 supports deployment of several new services: MS SQL Server single instance and MS SQL Server Always On Cluster.<br />
<br />
=====MS SQL Server=====<br />
This type of service provides deployment of the MS SQL Server 2012 in standalone mode per instance.<br />
<br />
=====MS SQL Server AlwaysOn Cluster=====<br />
This type of service is the most complex one of all supported services. It actually contains 2 services under the hood, namely "Active Directory" and "MS SQL Server Cluster". <br />
<br /><br />
At high-level the service structure features the following components:<br />
* Active Directory windows domain.<br />
* Windows Server Failover Cluster.<br />
* MS SQL Server standalone install per instance.<br />
* MS SQL AlwaysOn Availability Group functionality.<br />
<br />
===Improvements===<br />
====Detailed documentation for writing XML Workflows====<br />
Murano Workflow XML DSL specification created and published at [http://murano-docs.github.io/0.2/developers-guide/content/ch05.html github.io]. The developer guide now includes this section.<br />
<br />
This DSL should be used when writing new workflows and modifying existing ones.<br />
<br />
====Improved HA for Murano Conductor====<br />
All components of Murano are High-Available now.<br />
Murano-API is stateless, so it can be placed behind a load balancer.<br />
The state of the Workflow is idempotent, so in case of the conductor failure secondary conductors will repeat the actions of the unfinished deployments without any unwanted side effects.<br />
<br />
====REST API Changes====<br />
Several changes are introduced to API specification to support extensible and pluggable architecture:<br />
* Universal endpoint for services<br />
* Tree traversing and set syntax<br />
Major change is universal endpoint for all services. Previously we had endpoints like: “/environment/<env_id>/activeDirectories/*” for each service, and now single endpoint for all services is introduced, like: “/environment/<env_id>/services/*”.<br />
<br />
In order to make our API more user-friendly and reduce amount of calls and data sent we also introducing two complementing features: tree traversing and set syntax.<br />
<br />
More details about this feature can be found in the [[Murano/Blueprints/APIv0.2|blueprint]].<br />
<br />
===Bugs Fixed===<br />
<br />
A complete list of bugs fixed in Murano v0.2 can be found [https://bugs.launchpad.net/murano/+bugs?field.searchtext=&orderby=-importance&field.status%3Alist=WONTFIX&field.status%3Alist=FIXCOMMITTED&field.status%3Alist=FIXRELEASED&assignee_option=any&field.assignee=&field.bug_reporter=&field.bug_commenter=&field.subscriber=&field.structural_subscriber=&field.milestone%3Alist=60161&field.tag=&field.tags_combinator=ANY&field.has_cve.used=&field.omit_dupes.used=&field.omit_dupes=on&field.affects_me.used=&field.has_patch.used=&field.has_branches.used=&field.has_branches=on&field.has_no_branches.used=&field.has_no_branches=on&field.has_blueprints.used=&field.has_blueprints=on&field.has_no_blueprints.used=&field.has_no_blueprints=on&search=Search here].<br />
<br />
===Known Issues===<br />
<br />
Actual bug state can be found in Murano [https://bugs.launchpad.net/murano Launchpad page]<br />
<br />
* Due to current Heat limitation services that involve load-balancer creation (farms) can be deployed only by tenant administrators.<br />
<br />
* When Heat creates different clients for Nova, Cinder and others it doesn't pass SSL-related options to clients' constructor. If Nova is configured to have SSL endpoints and self-signed certificates Heat will fail to create instances because there is no way to disable server certificate validation as there is no "insecure" flag passed etc.<br />
<br />
* Murano-Conductor doesn't work with python-heatclient>0.2.1.<br />
<br />
* Farm services can't be deployed without KeyPair. If KeyPair is not set load balancer won't be created ([https://bugs.launchpad.net/murano/+bug/1216882 link on bug description]). Deploy will hang up and these messages will show up in logs:<br />
2013-08-06 09:10:07 - Unable to deploy instance ipkrmhk0vzq4b6 (asp-farm_instance_0) due to Unexpected state<br />
2013-08-06 09:10:07 - Unable to create a Server Farm load balancer on unit ipkrmhk0vzq4b6 (asp-farm_instance_0) due to Unexpected state<br />
<br />
* User can select incorrect parameters for service, like incompatible flavor and VM image or if tenant resource quota exceeded. In this case user will see the following error in the log:<br />
Unable to deploy instance demo (demo.com_instance_0) due to Unexpected stack state NOT_FOUND</div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=Murano/ReleaseNotes_v0.2&diff=29504Murano/ReleaseNotes v0.22013-09-05T12:14:29Z<p>IYozhikov: /* MS SQL Server AlwaysOn Cluster */</p>
<hr />
<div>Murano v0.2 is a second stable release of Murano. Check out "What’s New", "Improvements", "Bugs Fixed" and "Known Issues" for this version of Murano below. If interested, please see [https://launchpad.net/murano/+milestone/0.2 the complete list of changes] in this release.<br />
<br />
===What's new===<br />
====Workflow diagnostics in Murano Conductor====<br />
New tags were added to XML workflow definition language to provide more precise control over workflow execution, report various error conditions and warnings, make rules applicable only once etc.<br />
Workflow rules has got description, excessive logging have been added to provide detailed execution plan of any workflow.<br />
<br />
====Dynamic UI====<br />
Dynamic UI means moving form definitions, data processing logic and texts from<br />
Python code and Django templates into separate service definitions in<br />
human-readable YAML format. Service definitions<br />
separated from Python code provide much greater flexibility in adding,<br />
modifying and removing services. The format simplicity allows non-programmers<br />
to use it: even if there are some errors in service definition, it<br />
simply won't be shown in services list (and won't crash the whole<br />
dashboard). Dynamic UI employs YAML for forms markup and YAQL (Yet Another Query Language, developed specially for Murano Workflows) for form validation and initialization logic.<br />
<br />
====Support for SSL both in REST API and RabbitMQ communications====<br />
To improve security in Murano we have added support for SSL on all communication levels between our components. All components communicate with each other by RabbitMQ and this interaction can be encrypted now with SSL. How to [http://murano-docs.github.io/0.2/developers-guide/content/ch02s05.html configure SSL] encryption can be found in our developers guide.<br />
<br />
Additionally we have added ability to secure all communications with our API by adding support for SSL endpoint in our REST API service. API [http://murano-docs.github.io/0.2/developers-guide/content/ch02s05.html HTTPS configuration] can also be found in our developers guide.<br />
<br />
====Ability to select Windows image, Availability Zone and instance flavor====<br />
A new common dialog step has been added to "Create Service" UI, which allows to select Instance Flavor (hardware configuration), Windows Image (pre-create Glance image, marked with an appropriate metadata tag) and Availability Zone (one of those defined in OpenStack). <br />
Windows Image field is mandatory for selection, while others may be left unset, so conductor will use configurable default values instead<br />
<br />
==== External Active Directory====<br />
External Active Directory is implemented as conductor's functionality extension: it is available after enabling ExternalAD.xml workflow template in the murano-conductor service. This feature allows to use most of the murano supported services with existing windows domain (should be configured before).<br />
<br />
====Additional Services====<br />
Murano v0.2 supports deployment of several new services: MS SQL Server single instance and MS SQL Server Always On Cluster.<br />
<br />
=====MS SQL Server=====<br />
This type of service provides deployment of the MS SQL Server 2012 in standalone mode per instance.<br />
<br />
=====MS SQL Server AlwaysOn Cluster=====<br />
This type of service is the most complex one of all supported services. It actually contains 2 services under the hood, namely "Active Directory" and "MS SQL Server Cluster". <br />
<br /><br />
List which describes service structure in the high-level:<br />
* Active Directory windows domain.<br />
* Windows Server Failover Cluster.<br />
* MS SQL Server stanalone install per instance.<br />
* MS SQL AlwaysOn Availability Group functionality.<br />
<br />
===Improvements===<br />
====Detailed documentation for writing XML Workflows====<br />
Murano Workflow XML DSL specification created and published at [http://murano-docs.github.io/0.2/developers-guide/content/ch05.html github.io] <br />
<br />
This DSL should be used when writing new workflows and modifing existing ones.<br />
<br />
====Improved HA for Murano Conductor====<br />
All components of Murano are High-Available now.<br />
Murano-API is stateless, so it can be placed behind a load balancer.<br />
The state of the Workflow is idempotent, so in case of the conductor failure secondary conductors will repeat the actions of the unfinished deployments without any unwanted side effects.<br />
<br />
====REST API Changes====<br />
Several changes are introduced to API specification to support extensible and pluggable architecture:<br />
* Universal endpoint for services<br />
* Tree traversing and set syntax<br />
Major change is universal endpoint for all services. Previously we had endpoints like: “/environment/<env_id>/activeDirectories/*” for each service, and now single endpoint for all services is introduced, like: “/environment/<env_id>/services/*”.<br />
<br />
In order to make our API more user-friendly and reduce amount of calls and sent data to API we also introducing two complementing features: tree traversing and set syntax.<br />
<br />
More details about this feature can be found in the [[Murano/Blueprints/APIv0.2|blueprint]].<br />
<br />
===Bugs Fixed===<br />
<br />
A complete list of bugs fixed in Murano v0.2 can be found [https://bugs.launchpad.net/murano/+bugs?field.searchtext=&orderby=-importance&field.status%3Alist=WONTFIX&field.status%3Alist=FIXCOMMITTED&field.status%3Alist=FIXRELEASED&assignee_option=any&field.assignee=&field.bug_reporter=&field.bug_commenter=&field.subscriber=&field.structural_subscriber=&field.milestone%3Alist=60161&field.tag=&field.tags_combinator=ANY&field.has_cve.used=&field.omit_dupes.used=&field.omit_dupes=on&field.affects_me.used=&field.has_patch.used=&field.has_branches.used=&field.has_branches=on&field.has_no_branches.used=&field.has_no_branches=on&field.has_blueprints.used=&field.has_blueprints=on&field.has_no_blueprints.used=&field.has_no_blueprints=on&search=Search here].<br />
<br />
===Known Issues===<br />
<br />
Actual bug state can be found in Murano [https://bugs.launchpad.net/murano Launchpad page]<br />
<br />
* Due to current Heat limitation services that involve load-balancer creation (farms) can be deployed only by tenant administrators.<br />
<br />
* When Heat creates different clients for Nova, Cinder and others it doesn't pass SSL-related options to clients' constructor. If Nova is configured to have SSL endpoints and self-signed certificates Heat will fail to create instances because there is no way to disable server certificate validation as there is no "insecure" flag passed etc.<br />
<br />
* Murano-Conductor doesn't work with python-heatclient>0.2.1.<br />
<br />
* Farm services can't be deployed without KeyPair. If KeyPair is not set load balancer won't be created ([https://bugs.launchpad.net/murano/+bug/1216882 link on bug description]). Deploy will hang up and these messages will show up in logs:<br />
2013-08-06 09:10:07 - Unable to deploy instance ipkrmhk0vzq4b6 (asp-farm_instance_0) due to Unexpected state<br />
2013-08-06 09:10:07 - Unable to create a Server Farm load balancer on unit ipkrmhk0vzq4b6 (asp-farm_instance_0) due to Unexpected state<br />
<br />
* User can select incorrect parameters for service, like incompatible flavor and VM image. In this case user will see the following error in the log:<br />
Unable to deploy instance demo (demo.com_instance_0) due to Unexpected stack state NOT_FOUND</div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=Murano/ReleaseNotes_v0.2&diff=29503Murano/ReleaseNotes v0.22013-09-05T12:13:23Z<p>IYozhikov: /* MS SQL Server AlwaysOn Cluster */</p>
<hr />
<div>Murano v0.2 is a second stable release of Murano. Check out "What’s New", "Improvements", "Bugs Fixed" and "Known Issues" for this version of Murano below. If interested, please see [https://launchpad.net/murano/+milestone/0.2 the complete list of changes] in this release.<br />
<br />
===What's new===<br />
====Workflow diagnostics in Murano Conductor====<br />
New tags were added to XML workflow definition language to provide more precise control over workflow execution, report various error conditions and warnings, make rules applicable only once etc.<br />
Workflow rules has got description, excessive logging have been added to provide detailed execution plan of any workflow.<br />
<br />
====Dynamic UI====<br />
Dynamic UI means moving form definitions, data processing logic and texts from<br />
Python code and Django templates into separate service definitions in<br />
human-readable YAML format. Service definitions<br />
separated from Python code provide much greater flexibility in adding,<br />
modifying and removing services. The format simplicity allows non-programmers<br />
to use it: even if there are some errors in service definition, it<br />
simply won't be shown in services list (and won't crash the whole<br />
dashboard). Dynamic UI employs YAML for forms markup and YAQL (Yet Another Query Language, developed specially for Murano Workflows) for form validation and initialization logic.<br />
<br />
====Support for SSL both in REST API and RabbitMQ communications====<br />
To improve security in Murano we have added support for SSL on all communication levels between our components. All components communicate with each other by RabbitMQ and this interaction can be encrypted now with SSL. How to [http://murano-docs.github.io/0.2/developers-guide/content/ch02s05.html configure SSL] encryption can be found in our developers guide.<br />
<br />
Additionally we have added ability to secure all communications with our API by adding support for SSL endpoint in our REST API service. API [http://murano-docs.github.io/0.2/developers-guide/content/ch02s05.html HTTPS configuration] can also be found in our developers guide.<br />
<br />
====Ability to select Windows image, Availability Zone and instance flavor====<br />
A new common dialog step has been added to "Create Service" UI, which allows to select Instance Flavor (hardware configuration), Windows Image (pre-create Glance image, marked with an appropriate metadata tag) and Availability Zone (one of those defined in OpenStack). <br />
Windows Image field is mandatory for selection, while others may be left unset, so conductor will use configurable default values instead<br />
<br />
==== External Active Directory====<br />
External Active Directory is implemented as conductor's functionality extension: it is available after enabling ExternalAD.xml workflow template in the murano-conductor service. This feature allows to use most of the murano supported services with existing windows domain (should be configured before).<br />
<br />
====Additional Services====<br />
Murano v0.2 supports deployment of several new services: MS SQL Server single instance and MS SQL Server Always On Cluster.<br />
<br />
=====MS SQL Server=====<br />
This type of service provides deployment of the MS SQL Server 2012 in standalone mode per instance.<br />
<br />
=====MS SQL Server AlwaysOn Cluster=====<br />
This type of service is the most complex one of all supported services. It actually contains 2 services under the hood, namely "Active Directory" and "MS SQL Server Cluster". <br />
<br /><br />
Steps which describes structure in the high-level:<br />
* Active Directory windows domain.<br />
* Windows Server Failover Cluster.<br />
* MS SQL Server stanalone install per instance.<br />
* MS SQL AlwaysOn Availability Group functionality.<br />
<br />
===Improvements===<br />
====Detailed documentation for writing XML Workflows====<br />
Murano Workflow XML DSL specification created and published at [http://murano-docs.github.io/0.2/developers-guide/content/ch05.html github.io] <br />
<br />
This DSL should be used when writing new workflows and modifing existing ones.<br />
<br />
====Improved HA for Murano Conductor====<br />
All components of Murano are High-Available now.<br />
Murano-API is stateless, so it can be placed behind a load balancer.<br />
The state of the Workflow is idempotent, so in case of the conductor failure secondary conductors will repeat the actions of the unfinished deployments without any unwanted side effects.<br />
<br />
====REST API Changes====<br />
Several changes are introduced to API specification to support extensible and pluggable architecture:<br />
* Universal endpoint for services<br />
* Tree traversing and set syntax<br />
Major change is universal endpoint for all services. Previously we had endpoints like: “/environment/<env_id>/activeDirectories/*” for each service, and now single endpoint for all services is introduced, like: “/environment/<env_id>/services/*”.<br />
<br />
In order to make our API more user-friendly and reduce amount of calls and sent data to API we also introducing two complementing features: tree traversing and set syntax.<br />
<br />
More details about this feature can be found in the [[Murano/Blueprints/APIv0.2|blueprint]].<br />
<br />
===Bugs Fixed===<br />
<br />
A complete list of bugs fixed in Murano v0.2 can be found [https://bugs.launchpad.net/murano/+bugs?field.searchtext=&orderby=-importance&field.status%3Alist=WONTFIX&field.status%3Alist=FIXCOMMITTED&field.status%3Alist=FIXRELEASED&assignee_option=any&field.assignee=&field.bug_reporter=&field.bug_commenter=&field.subscriber=&field.structural_subscriber=&field.milestone%3Alist=60161&field.tag=&field.tags_combinator=ANY&field.has_cve.used=&field.omit_dupes.used=&field.omit_dupes=on&field.affects_me.used=&field.has_patch.used=&field.has_branches.used=&field.has_branches=on&field.has_no_branches.used=&field.has_no_branches=on&field.has_blueprints.used=&field.has_blueprints=on&field.has_no_blueprints.used=&field.has_no_blueprints=on&search=Search here].<br />
<br />
===Known Issues===<br />
<br />
Actual bug state can be found in Murano [https://bugs.launchpad.net/murano Launchpad page]<br />
<br />
* Due to current Heat limitation services that involve load-balancer creation (farms) can be deployed only by tenant administrators.<br />
<br />
* When Heat creates different clients for Nova, Cinder and others it doesn't pass SSL-related options to clients' constructor. If Nova is configured to have SSL endpoints and self-signed certificates Heat will fail to create instances because there is no way to disable server certificate validation as there is no "insecure" flag passed etc.<br />
<br />
* Murano-Conductor doesn't work with python-heatclient>0.2.1.<br />
<br />
* Farm services can't be deployed without KeyPair. If KeyPair is not set load balancer won't be created ([https://bugs.launchpad.net/murano/+bug/1216882 link on bug description]). Deploy will hang up and these messages will show up in logs:<br />
2013-08-06 09:10:07 - Unable to deploy instance ipkrmhk0vzq4b6 (asp-farm_instance_0) due to Unexpected state<br />
2013-08-06 09:10:07 - Unable to create a Server Farm load balancer on unit ipkrmhk0vzq4b6 (asp-farm_instance_0) due to Unexpected state<br />
<br />
* User can select incorrect parameters for service, like incompatible flavor and VM image. In this case user will see the following error in the log:<br />
Unable to deploy instance demo (demo.com_instance_0) due to Unexpected stack state NOT_FOUND</div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=Murano/ReleaseNotes_v0.2&diff=29480Murano/ReleaseNotes v0.22013-09-05T11:05:02Z<p>IYozhikov: /* MS SQL Server AlwaysOn Cluster */</p>
<hr />
<div>Murano v0.2 is a second stable release of Murano. Check out "What’s New", "Improvements", "Fixed Bugs" and "Known Issues" for this version of Murano below. If interested, please see [https://launchpad.net/murano/+milestone/0.2 the complete list of changes] in this release.<br />
<br />
===What's new===<br />
====Workflow diagnostics in Murano Conductor====<br />
New tags were added to XML workflow definition language to provide more precise control over workflow execution, report various error conditions and warnings, make rules applicable only once etc.<br />
Worflow rules has got description, excessive logging have been added to have detailed execution plan of any workflow.<br />
<br />
====Dynamic UI====<br />
Dynamic UI means moving form definitions, data processing logic and texts from<br />
Python code and Django templates into separate service definitions in<br />
human-readable YAML format. Service definitions<br />
separated from Python code provide much greater flexibility in adding,<br />
modifying and removing services. The format simplicity allows non-programmers<br />
to use it: even if there are some errors in service definition, it<br />
simply won't be shown in services list (and won't crash the whole<br />
dashboard). Dynamic UI employs YAML for forms markup and YAQL (Yet Another Query Language, developed specially for Murano Workflows) for form validation and initialization logic.<br />
<br />
====Support for SSL both in REST API and RabbitMQ communications====<br />
[TODO: Add info]<br />
====Ability to select Windows image, Availability Zone and instance flavor====<br />
A new (common) dialog step was added to "Create Service" UI, which allows to select Instance Flavor (hardware configuration), Windows Image (pre-create Glance image, marked with an appropriate metadata tag) and Availability Zone (one of those defined in OpenStack). <br />
Windows Image field is mandatory for selection, while others may be left unset, so conductor will use configurable default values instead<br />
<br />
==== External Active Directory====<br />
External Active Directory - extended functionality, available through enabling ExternalAD.xml workflow template in the murano-conductor service. This feature allow use most of the murano supported services with existing windows domain, preconfigured previously.<br />
<br />
====Additional Services====<br />
Murano v0.2 supports deployment of several new services: MS SQL Server single instance and MS SQL Server Always On Cluster.<br />
<br />
=====MS SQL Server=====<br />
This type of service provides deployment of the MS SQL Server 2012 in standalone mode per instance.<br />
<br />
=====MS SQL Server AlwaysOn Cluster=====<br />
This type of service is the most complex of all supported services. It's actually contains 2 type of service under the hood, namely "Active Directory" and "MS SQL Server Cluster". <br />
<br /><br />
Steps which describes structure in the high-level:<br />
# Active Directory windows domain.<br />
# Windows Server Failover Cluster.<br />
# MS SQL Server stanalone installal per instance.<br />
# MS SQL AlwaysOn Availability Group functionality.<br />
<br />
===Improvements===<br />
====Detailed documentation for writing XML Workflows====<br />
[TODO: Add info]<br />
====Improved HA for Murano Conductor====<br />
[TODO: Add info]<br />
====REST API generalization====<br />
[TODO: Add info]<br />
<br />
===Fixed Bugs===<br />
<br />
A complete list of fixed bugs can be found [https://bugs.launchpad.net/murano/+bugs?field.searchtext=&orderby=-importance&field.status%3Alist=WONTFIX&field.status%3Alist=FIXCOMMITTED&field.status%3Alist=FIXRELEASED&assignee_option=any&field.assignee=&field.bug_reporter=&field.bug_commenter=&field.subscriber=&field.structural_subscriber=&field.milestone%3Alist=60161&field.tag=&field.tags_combinator=ANY&field.has_cve.used=&field.omit_dupes.used=&field.omit_dupes=on&field.affects_me.used=&field.has_patch.used=&field.has_branches.used=&field.has_branches=on&field.has_no_branches.used=&field.has_no_branches=on&field.has_blueprints.used=&field.has_blueprints=on&field.has_no_blueprints.used=&field.has_no_blueprints=on&search=Search here].<br />
<br />
===Known Issues===<br />
<br />
Actual bug state can be found in Murano [https://bugs.launchpad.net/murano Launchpad page]<br />
<br />
* Due to current Heat limitation services that involve load-balancer creation (farms) can be deployed only by tenant administrators.<br />
<br />
* When Heat creates different clients for Nova, Cinder and others it doesn't pass SSL-related options to clients' constructor. If Nova is configured to have SSL endpoints and self-signed certificates Heat will fail to create instances because there is no way to disable server certificate validation as there is no "insecure" flag passed etc.<br />
<br />
* Murano-Conductor doesn't work with python-heatclient>0.2.1.<br />
<br />
* Farm services can't be deployed without KeyPair. If KeyPair is not set load balancer won't be created ([https://bugs.launchpad.net/murano/+bug/1216882 link on bug description]). Deploy will hang up and these messages will show up in logs:<br />
2013-08-06 09:10:07 - Unable to deploy instance ipkrmhk0vzq4b6 (asp-farm_instance_0) due to Unexpected state<br />
2013-08-06 09:10:07 - Unable to create a Server Farm load balancer on unit ipkrmhk0vzq4b6 (asp-farm_instance_0) due to Unexpected state<br />
<br />
* User can select incorrect parameters for service, like incompatible flavor and VM image. In this case user will see the following error in the log:<br />
Unable to deploy instance demo (demo.com_instance_0) due to Unexpected stack state NOT_FOUND</div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=Murano/ReleaseNotes_v0.2&diff=29479Murano/ReleaseNotes v0.22013-09-05T11:04:35Z<p>IYozhikov: /* MS SQL Server AlwaysOn Cluster */</p>
<hr />
<div>Murano v0.2 is a second stable release of Murano. Check out "What’s New", "Improvements", "Fixed Bugs" and "Known Issues" for this version of Murano below. If interested, please see [https://launchpad.net/murano/+milestone/0.2 the complete list of changes] in this release.<br />
<br />
===What's new===<br />
====Workflow diagnostics in Murano Conductor====<br />
New tags were added to XML workflow definition language to provide more precise control over workflow execution, report various error conditions and warnings, make rules applicable only once etc.<br />
Worflow rules has got description, excessive logging have been added to have detailed execution plan of any workflow.<br />
<br />
====Dynamic UI====<br />
Dynamic UI means moving form definitions, data processing logic and texts from<br />
Python code and Django templates into separate service definitions in<br />
human-readable YAML format. Service definitions<br />
separated from Python code provide much greater flexibility in adding,<br />
modifying and removing services. The format simplicity allows non-programmers<br />
to use it: even if there are some errors in service definition, it<br />
simply won't be shown in services list (and won't crash the whole<br />
dashboard). Dynamic UI employs YAML for forms markup and YAQL (Yet Another Query Language, developed specially for Murano Workflows) for form validation and initialization logic.<br />
<br />
====Support for SSL both in REST API and RabbitMQ communications====<br />
[TODO: Add info]<br />
====Ability to select Windows image, Availability Zone and instance flavor====<br />
A new (common) dialog step was added to "Create Service" UI, which allows to select Instance Flavor (hardware configuration), Windows Image (pre-create Glance image, marked with an appropriate metadata tag) and Availability Zone (one of those defined in OpenStack). <br />
Windows Image field is mandatory for selection, while others may be left unset, so conductor will use configurable default values instead<br />
<br />
==== External Active Directory====<br />
External Active Directory - extended functionality, available through enabling ExternalAD.xml workflow template in the murano-conductor service. This feature allow use most of the murano supported services with existing windows domain, preconfigured previously.<br />
<br />
====Additional Services====<br />
Murano v0.2 supports deployment of several new services: MS SQL Server single instance and MS SQL Server Always On Cluster.<br />
<br />
=====MS SQL Server=====<br />
This type of service provides deployment of the MS SQL Server 2012 in standalone mode per instance.<br />
<br />
=====MS SQL Server AlwaysOn Cluster=====<br />
This type of service is the most complex of all supported services. It's actually contains 2 type of service under the hood, namely "Active Directory" and "MS SQL Server Cluster". <br />
Steps which describes structure in the high-level:<br />
# Active Directory windows domain.<br />
# Windows Server Failover Cluster.<br />
# MS SQL Server stanalone installal per instance.<br />
# MS SQL AlwaysOn Availability Group functionality.<br />
<br />
===Improvements===<br />
====Detailed documentation for writing XML Workflows====<br />
[TODO: Add info]<br />
====Improved HA for Murano Conductor====<br />
[TODO: Add info]<br />
====REST API generalization====<br />
[TODO: Add info]<br />
<br />
===Fixed Bugs===<br />
<br />
A complete list of fixed bugs can be found [https://bugs.launchpad.net/murano/+bugs?field.searchtext=&orderby=-importance&field.status%3Alist=WONTFIX&field.status%3Alist=FIXCOMMITTED&field.status%3Alist=FIXRELEASED&assignee_option=any&field.assignee=&field.bug_reporter=&field.bug_commenter=&field.subscriber=&field.structural_subscriber=&field.milestone%3Alist=60161&field.tag=&field.tags_combinator=ANY&field.has_cve.used=&field.omit_dupes.used=&field.omit_dupes=on&field.affects_me.used=&field.has_patch.used=&field.has_branches.used=&field.has_branches=on&field.has_no_branches.used=&field.has_no_branches=on&field.has_blueprints.used=&field.has_blueprints=on&field.has_no_blueprints.used=&field.has_no_blueprints=on&search=Search here].<br />
<br />
===Known Issues===<br />
<br />
Actual bug state can be found in Murano [https://bugs.launchpad.net/murano Launchpad page]<br />
<br />
* Due to current Heat limitation services that involve load-balancer creation (farms) can be deployed only by tenant administrators.<br />
<br />
* When Heat creates different clients for Nova, Cinder and others it doesn't pass SSL-related options to clients' constructor. If Nova is configured to have SSL endpoints and self-signed certificates Heat will fail to create instances because there is no way to disable server certificate validation as there is no "insecure" flag passed etc.<br />
<br />
* Murano-Conductor doesn't work with python-heatclient>0.2.1.<br />
<br />
* Farm services can't be deployed without KeyPair. If KeyPair is not set load balancer won't be created ([https://bugs.launchpad.net/murano/+bug/1216882 link on bug description]). Deploy will hang up and these messages will show up in logs:<br />
2013-08-06 09:10:07 - Unable to deploy instance ipkrmhk0vzq4b6 (asp-farm_instance_0) due to Unexpected state<br />
2013-08-06 09:10:07 - Unable to create a Server Farm load balancer on unit ipkrmhk0vzq4b6 (asp-farm_instance_0) due to Unexpected state<br />
<br />
* User can select incorrect parameters for service, like incompatible flavor and VM image. In this case user will see the following error in the log:<br />
Unable to deploy instance demo (demo.com_instance_0) due to Unexpected stack state NOT_FOUND</div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=Murano/ReleaseNotes_v0.2&diff=29473Murano/ReleaseNotes v0.22013-09-05T10:49:28Z<p>IYozhikov: /* External Active Directory */</p>
<hr />
<div>Murano v0.2 is a second stable release of Murano. Check out "What’s New", "Improvements", "Fixed Bugs" and "Known Issues" for this version of Murano below. If interested, please see [https://launchpad.net/murano/+milestone/0.2 the complete list of changes] in this release.<br />
<br />
===What's new===<br />
====Workflow diagnostics in Murano Conductor====<br />
New tags were added to XML workflow definition language to provide more precise control over workflow execution, report various error conditions and warnings, make rules applicable only once etc.<br />
Worflow rules has got description, excessive logging have been added to have detailed execution plan of any workflow.<br />
<br />
====Dynamic UI====<br />
Dynamic UI means moving form definitions, data processing logic and texts from<br />
Python code and Django templates into separate service definitions in<br />
human-readable YAML format. Service definitions<br />
separated from Python code provide much greater flexibility in adding,<br />
modifying and removing services. The format simplicity allows non-programmers<br />
to use it: even if there are some errors in service definition, it<br />
simply won't be shown in services list (and won't crash the whole<br />
dashboard). Dynamic UI employs YAML for forms markup and YAQL (Yet Another Query Language, developed specially for Murano Workflows) for form validation and initialization logic.<br />
<br />
====Support for SSL both in REST API and RabbitMQ communications====<br />
[TODO: Add info]<br />
====Ability to select Windows image, Availability Zone and instance flavor====<br />
[TODO: Add info]<br />
<br />
====Additional Services and new Features====<br />
Murano v0.2 supports deployment of several new services: External Active Directory, MS SQL Server single instance and MS SQL Server Always On Cluster.<br />
<br />
===== External Active Directory=====<br />
External Active Directory - extended functionality, available through enabling ExternalAD.xml workflow template in the murano-conductor service. This feature allow use most of the murano supported services with existing windows domain, preconfigured previously.<br />
<br />
=====MS SQL Server=====<br />
This type of service provides deployment of the MS SQL Server 2012 in standalone mode per instance.<br />
<br />
=====MS SQL Server AlwaysOn Cluster=====<br />
[TODO: Add info]<br />
<br />
===Improvements===<br />
====Detailed documentation for writing XML Workflows====<br />
[TODO: Add info]<br />
====Improved HA for Murano Conductor====<br />
[TODO: Add info]<br />
====REST API generalization====<br />
[TODO: Add info]<br />
<br />
===Fixed Bugs===<br />
<br />
A complete list of fixed bugs can be found [https://bugs.launchpad.net/murano/+bugs?field.searchtext=&orderby=-importance&field.status%3Alist=WONTFIX&field.status%3Alist=FIXCOMMITTED&field.status%3Alist=FIXRELEASED&assignee_option=any&field.assignee=&field.bug_reporter=&field.bug_commenter=&field.subscriber=&field.structural_subscriber=&field.milestone%3Alist=60161&field.tag=&field.tags_combinator=ANY&field.has_cve.used=&field.omit_dupes.used=&field.omit_dupes=on&field.affects_me.used=&field.has_patch.used=&field.has_branches.used=&field.has_branches=on&field.has_no_branches.used=&field.has_no_branches=on&field.has_blueprints.used=&field.has_blueprints=on&field.has_no_blueprints.used=&field.has_no_blueprints=on&search=Search here].<br />
<br />
===Known Issues===<br />
<br />
Actual bug state can be found in Murano [https://bugs.launchpad.net/murano Launchpad page]<br />
<br />
* Due to current Heat limitation services that involve load-balancer creation (farms) can be deployed only by tenant administrators.<br />
<br />
* When Heat creates different clients for Nova, Cinder and others it doesn't pass SSL-related options to clients' constructor. If Nova is configured to have SSL endpoints and self-signed certificates Heat will fail to create instances because there is no way to disable server certificate validation as there is no "insecure" flag passed etc.<br />
<br />
* Murano-Conductor doesn't work with python-heatclient>0.2.1.<br />
<br />
* Farm services can't be deployed without KeyPair. If KeyPair is not set load balancer won't be created. Deploy will hang up and these messages will show up in logs:<br />
2013-08-06 09:10:07 - Unable to deploy instance ipkrmhk0vzq4b6 (asp-farm_instance_0) due to Unexpected state<br />
2013-08-06 09:10:07 - Unable to create a Server Farm load balancer on unit ipkrmhk0vzq4b6 (asp-farm_instance_0) due to Unexpected state</div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=Murano/ReleaseNotes_v0.2&diff=29472Murano/ReleaseNotes v0.22013-09-05T10:48:40Z<p>IYozhikov: /* MS SQL Server */</p>
<hr />
<div>Murano v0.2 is a second stable release of Murano. Check out "What’s New", "Improvements", "Fixed Bugs" and "Known Issues" for this version of Murano below. If interested, please see [https://launchpad.net/murano/+milestone/0.2 the complete list of changes] in this release.<br />
<br />
===What's new===<br />
====Workflow diagnostics in Murano Conductor====<br />
New tags were added to XML workflow definition language to provide more precise control over workflow execution, report various error conditions and warnings, make rules applicable only once etc.<br />
Worflow rules has got description, excessive logging have been added to have detailed execution plan of any workflow.<br />
<br />
====Dynamic UI====<br />
Dynamic UI means moving form definitions, data processing logic and texts from<br />
Python code and Django templates into separate service definitions in<br />
human-readable YAML format. Service definitions<br />
separated from Python code provide much greater flexibility in adding,<br />
modifying and removing services. The format simplicity allows non-programmers<br />
to use it: even if there are some errors in service definition, it<br />
simply won't be shown in services list (and won't crash the whole<br />
dashboard). Dynamic UI employs YAML for forms markup and YAQL (Yet Another Query Language, developed specially for Murano Workflows) for form validation and initialization logic.<br />
<br />
====Support for SSL both in REST API and RabbitMQ communications====<br />
[TODO: Add info]<br />
====Ability to select Windows image, Availability Zone and instance flavor====<br />
[TODO: Add info]<br />
<br />
====Additional Services and new Features====<br />
Murano v0.2 supports deployment of several new services: External Active Directory, MS SQL Server single instance and MS SQL Server Always On Cluster.<br />
<br />
===== External Active Directory=====<br />
External Active Directory - new functionality, available through enabling ExternalAD.xml workflow template in the murano-conductor service. This feature allow use most of the murano supported services with existing windows domain, preconfigured previously.<br />
<br />
=====MS SQL Server=====<br />
This type of service provides deployment of the MS SQL Server 2012 in standalone mode per instance.<br />
<br />
=====MS SQL Server AlwaysOn Cluster=====<br />
[TODO: Add info]<br />
<br />
===Improvements===<br />
====Detailed documentation for writing XML Workflows====<br />
[TODO: Add info]<br />
====Improved HA for Murano Conductor====<br />
[TODO: Add info]<br />
====REST API generalization====<br />
[TODO: Add info]<br />
<br />
===Fixed Bugs===<br />
<br />
A complete list of fixed bugs can be found [https://bugs.launchpad.net/murano/+bugs?field.searchtext=&orderby=-importance&field.status%3Alist=WONTFIX&field.status%3Alist=FIXCOMMITTED&field.status%3Alist=FIXRELEASED&assignee_option=any&field.assignee=&field.bug_reporter=&field.bug_commenter=&field.subscriber=&field.structural_subscriber=&field.milestone%3Alist=60161&field.tag=&field.tags_combinator=ANY&field.has_cve.used=&field.omit_dupes.used=&field.omit_dupes=on&field.affects_me.used=&field.has_patch.used=&field.has_branches.used=&field.has_branches=on&field.has_no_branches.used=&field.has_no_branches=on&field.has_blueprints.used=&field.has_blueprints=on&field.has_no_blueprints.used=&field.has_no_blueprints=on&search=Search here].<br />
<br />
===Known Issues===<br />
<br />
Actual bug state can be found in Murano [https://bugs.launchpad.net/murano Launchpad page]<br />
<br />
* Due to current Heat limitation services that involve load-balancer creation (farms) can be deployed only by tenant administrators.<br />
<br />
* When Heat creates different clients for Nova, Cinder and others it doesn't pass SSL-related options to clients' constructor. If Nova is configured to have SSL endpoints and self-signed certificates Heat will fail to create instances because there is no way to disable server certificate validation as there is no "insecure" flag passed etc.<br />
<br />
* Murano-Conductor doesn't work with python-heatclient>0.2.1.<br />
<br />
* Farm services can't be deployed without KeyPair. If KeyPair is not set load balancer won't be created. Deploy will hang up and these messages will show up in logs:<br />
2013-08-06 09:10:07 - Unable to deploy instance ipkrmhk0vzq4b6 (asp-farm_instance_0) due to Unexpected state<br />
2013-08-06 09:10:07 - Unable to create a Server Farm load balancer on unit ipkrmhk0vzq4b6 (asp-farm_instance_0) due to Unexpected state</div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=Murano/ReleaseNotes_v0.2&diff=29471Murano/ReleaseNotes v0.22013-09-05T10:48:15Z<p>IYozhikov: /* MS SQL Server */</p>
<hr />
<div>Murano v0.2 is a second stable release of Murano. Check out "What’s New", "Improvements", "Fixed Bugs" and "Known Issues" for this version of Murano below. If interested, please see [https://launchpad.net/murano/+milestone/0.2 the complete list of changes] in this release.<br />
<br />
===What's new===<br />
====Workflow diagnostics in Murano Conductor====<br />
New tags were added to XML workflow definition language to provide more precise control over workflow execution, report various error conditions and warnings, make rules applicable only once etc.<br />
Worflow rules has got description, excessive logging have been added to have detailed execution plan of any workflow.<br />
<br />
====Dynamic UI====<br />
Dynamic UI means moving form definitions, data processing logic and texts from<br />
Python code and Django templates into separate service definitions in<br />
human-readable YAML format. Service definitions<br />
separated from Python code provide much greater flexibility in adding,<br />
modifying and removing services. The format simplicity allows non-programmers<br />
to use it: even if there are some errors in service definition, it<br />
simply won't be shown in services list (and won't crash the whole<br />
dashboard). Dynamic UI employs YAML for forms markup and YAQL (Yet Another Query Language, developed specially for Murano Workflows) for form validation and initialization logic.<br />
<br />
====Support for SSL both in REST API and RabbitMQ communications====<br />
[TODO: Add info]<br />
====Ability to select Windows image, Availability Zone and instance flavor====<br />
[TODO: Add info]<br />
<br />
====Additional Services and new Features====<br />
Murano v0.2 supports deployment of several new services: External Active Directory, MS SQL Server single instance and MS SQL Server Always On Cluster.<br />
<br />
===== External Active Directory=====<br />
External Active Directory - new functionality, available through enabling ExternalAD.xml workflow template in the murano-conductor service. This feature allow use most of the murano supported services with existing windows domain, preconfigured previously.<br />
<br />
=====MS SQL Server=====<br />
This type of service provides deployment of the MS MSQL Server 2012 in standalone mode per instance.<br />
<br />
=====MS SQL Server AlwaysOn Cluster=====<br />
[TODO: Add info]<br />
<br />
===Improvements===<br />
====Detailed documentation for writing XML Workflows====<br />
[TODO: Add info]<br />
====Improved HA for Murano Conductor====<br />
[TODO: Add info]<br />
====REST API generalization====<br />
[TODO: Add info]<br />
<br />
===Fixed Bugs===<br />
<br />
A complete list of fixed bugs can be found [https://bugs.launchpad.net/murano/+bugs?field.searchtext=&orderby=-importance&field.status%3Alist=WONTFIX&field.status%3Alist=FIXCOMMITTED&field.status%3Alist=FIXRELEASED&assignee_option=any&field.assignee=&field.bug_reporter=&field.bug_commenter=&field.subscriber=&field.structural_subscriber=&field.milestone%3Alist=60161&field.tag=&field.tags_combinator=ANY&field.has_cve.used=&field.omit_dupes.used=&field.omit_dupes=on&field.affects_me.used=&field.has_patch.used=&field.has_branches.used=&field.has_branches=on&field.has_no_branches.used=&field.has_no_branches=on&field.has_blueprints.used=&field.has_blueprints=on&field.has_no_blueprints.used=&field.has_no_blueprints=on&search=Search here].<br />
<br />
===Known Issues===<br />
<br />
Actual bug state can be found in Murano [https://bugs.launchpad.net/murano Launchpad page]<br />
<br />
* Due to current Heat limitation services that involve load-balancer creation (farms) can be deployed only by tenant administrators.<br />
<br />
* When Heat creates different clients for Nova, Cinder and others it doesn't pass SSL-related options to clients' constructor. If Nova is configured to have SSL endpoints and self-signed certificates Heat will fail to create instances because there is no way to disable server certificate validation as there is no "insecure" flag passed etc.<br />
<br />
* Murano-Conductor doesn't work with python-heatclient>0.2.1.<br />
<br />
* Farm services can't be deployed without KeyPair. If KeyPair is not set load balancer won't be created. Deploy will hang up and these messages will show up in logs:<br />
2013-08-06 09:10:07 - Unable to deploy instance ipkrmhk0vzq4b6 (asp-farm_instance_0) due to Unexpected state<br />
2013-08-06 09:10:07 - Unable to create a Server Farm load balancer on unit ipkrmhk0vzq4b6 (asp-farm_instance_0) due to Unexpected state</div>IYozhikovhttps://wiki.openstack.org/w/index.php?title=Murano/ReleaseNotes_v0.2&diff=29469Murano/ReleaseNotes v0.22013-09-05T10:44:53Z<p>IYozhikov: /* External Active Directory */</p>
<hr />
<div>Murano v0.2 is a second stable release of Murano. Check out "What’s New", "Improvements", "Fixed Bugs" and "Known Issues" for this version of Murano below. If interested, please see [https://launchpad.net/murano/+milestone/0.2 the complete list of changes] in this release.<br />
<br />
===What's new===<br />
====Workflow diagnostics in Murano Conductor====<br />
New tags were added to XML workflow definition language to provide more precise control over workflow execution, report various error conditions and warnings, make rules applicable only once etc.<br />
Worflow rules has got description, excessive logging have been added to have detailed execution plan of any workflow.<br />
<br />
====Dynamic UI====<br />
Dynamic UI means moving form definitions, data processing logic and texts from<br />
Python code and Django templates into separate service definitions in<br />
human-readable YAML format. Service definitions<br />
separated from Python code provide much greater flexibility in adding,<br />
modifying and removing services. The format simplicity allows non-programmers<br />
to use it: even if there are some errors in service definition, it<br />
simply won't be shown in services list (and won't crash the whole<br />
dashboard). Dynamic UI employs YAML for forms markup and YAQL (Yet Another Query Language, developed specially for Murano Workflows) for form validation and initialization logic.<br />
<br />
====Support for SSL both in REST API and RabbitMQ communications====<br />
[TODO: Add info]<br />
====Ability to select Windows image, Availability Zone and instance flavor====<br />
[TODO: Add info]<br />
<br />
====Additional Services and new Features====<br />
Murano v0.2 supports deployment of several new services: External Active Directory, MS SQL Server single instance and MS SQL Server Always On Cluster.<br />
<br />
===== External Active Directory=====<br />
External Active Directory - new functionality, available through enabling ExternalAD.xml workflow template in the murano-conductor service. This feature allow use most of the murano supported services with existing windows domain, preconfigured previously.<br />
<br />
=====MS SQL Server=====<br />
[TODO: Add info]<br />
=====MS SQL Server AlwaysOn Cluster=====<br />
[TODO: Add info]<br />
<br />
===Improvements===<br />
====Detailed documentation for writing XML Workflows====<br />
[TODO: Add info]<br />
====Improved HA for Murano Conductor====<br />
[TODO: Add info]<br />
====REST API generalization====<br />
[TODO: Add info]<br />
<br />
===Fixed Bugs===<br />
* Stabilize Core Services (bug fixing).<br />
<br />
===Known Issues===<br />
<br />
Actual bug state can be found in Murano [https://bugs.launchpad.net/murano Launchpad page]<br />
<br />
* Due to current Heat limitation services that involve load-balancer creation (farms) can be deployed only by tenant administrators.<br />
<br />
* When Heat creates different clients for Nova, Cinder and others it doesn't pass SSL-related options to clients' constructor. If Nova is configured to have SSL endpoints and self-signed certificates Heat will fail to create instances because there is no way to disable server certificate validation as there is no "insecure" flag passed etc.<br />
<br />
* Murano-Conductor doesn't work with python-heatclient>0.2.1.<br />
<br />
* Farm services can't be deployed without KeyPair. If KeyPair is not set load balancer won't be created. Deploy will hang up and these messages will show up in logs:<br />
2013-08-06 09:10:07 - Unable to deploy instance ipkrmhk0vzq4b6 (asp-farm_instance_0) due to Unexpected state<br />
2013-08-06 09:10:07 - Unable to create a Server Farm load balancer on unit ipkrmhk0vzq4b6 (asp-farm_instance_0) due to Unexpected state</div>IYozhikov