Jump to: navigation, search

Difference between revisions of "Murano/ReleaseNotes v0.3"

(Created page with "Please see [https://launchpad.net/murano/+milestone/0.3 the complete list of changes] in this release. ===What's new=== ====Workflow diagnostics in Murano Conductor==== New t...")
 
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
This version of Murano contains several features and improvement, where ability to manage Linux instances is major one. Murano was always capable to manage instances with any Operation System, but only now, after first moves towards [https://wiki.openstack.org/wiki/Murano/ApplicationCatalog our new mission] we added full-featured support for managing Linux instances. This release also introduce direct support for Quantum, ability to mark images uploaded to Glance with Murano specific metadata and many other improvements.
 
Please see [https://launchpad.net/murano/+milestone/0.3 the complete list of changes] in this release.
 
Please see [https://launchpad.net/murano/+milestone/0.3 the complete list of changes] in this release.
  
===What's new===
+
===What's New===
====Workflow diagnostics in Murano Conductor====
+
====Linux Services====
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.
+
This release of Murano has full-featured support for managing Linux services, as a reference two new Linux based services was added: telnet and Apache Webserver. Please, find in sources all necessary bits was needed to build this services: [https://github.com/stackforge/murano-conductor/blob/release-0.3/data/workflows/LinuxTelnet.xml workflow], [https://github.com/stackforge/murano-dashboard/blob/release-0.3/muranodashboard/services/LinuxTelnet.yaml UI definition].  
Workflow rules has got description, excessive logging have been added to provide detailed execution plan of any workflow.
 
  
====Dynamic UI====
+
Murano Agent was built specially for Windows using .NET Framework as a platform and PowerShell as execution engine. To support configuration management on GNU/Linux was required to rewrite Agent on Python. We re-designed, extended and improved ideas that we had before, and only after that we rewrote Agent using Python. Now Murano can work with any implementation of a agent as long as it is complies to the new [[https://wiki.openstack.org/wiki/Murano/UnifiedAgent|specification]]. Please find [https://github.com/stackforge/murano-agent/tree/release-0.3/python-agent sources] for the new Agent implementation.  
Dynamic UI means moving form definitions, data processing logic and texts from
 
Python code and Django templates into separate service definitions in
 
human-readable YAML format. Service definitions
 
separated from Python code provide much greater flexibility in adding,
 
modifying and removing services. The format simplicity allows non-programmers
 
to use it: even if there are some errors in service definition, it
 
simply won't be shown in services list (and won't crash the whole
 
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.
 
  
====Support for SSL both in REST API and RabbitMQ communications====
+
To create own services based on Linux you may be also interested in documentation about [http://murano-docs.github.io/0.3/administrators-guide/content/ch05.html how to build image with GNU/Linux].  
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.
 
  
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.
+
====Leveraging Quantum====
 +
Previous releases of Murano was designed and tested against nova-network and even if it could be run over Quantum there was no difference in behavior from users point-of-view. All instances created by Murano was running in the same network as instances created directly from nova. Or, in case of Quantum simply in the default tenant network.  
  
====Ability to select Windows image, Availability Zone and instance flavor====
+
In this release limited support for Quantum is added. Each environment created in own network and separated from others on L2 level. This feature adding additional security and separation between services running in environments. Limited support means that user has not direct control over networks that managed by Murano, but in next versions, targeting Openstack Havana with Neutron, we have plans to add ability to manage networks in Murano by the user.
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).  
 
Windows Image field is mandatory for selection, while others may be left unset, so conductor will use configurable default values instead
 
  
==== External Active Directory====
+
This feature is not enabled by default, please find [http://murano-docs.github.io/0.3/administrators-guide/content/ch03.html how to enable support for Quantum].
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).
+
====Marking Images====
 +
In this release we introducing new UI for marking images with Murano specific metadata, previously this was done only via CLI.  
  
====Additional Services====
+
Marking images is required for close integration between services capabilities and base-image that should support this capabilities. At first this feature was used only to identify images with Murano Agent baked in. Currently this feature is used for separation supported images by Operation System. For example, for windows services, only windows images can be chosen.
Murano v0.2 supports deployment of several new services: MS SQL Server single instance and MS SQL Server Always On Cluster.
 
  
=====MS SQL Server=====
+
This feature is a base for support of fine-grained, hierarchical filters in in workflows for selecting base image for the application.
This type of service provides deployment of the MS SQL Server 2012 in standalone mode per instance.
 
 
 
=====MS SQL Server AlwaysOn Cluster=====
 
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 />
 
At high-level the service structure features the following components:
 
* Active Directory windows domain.
 
* Windows Server Failover Cluster.
 
* MS SQL Server standalone install per instance.
 
* MS SQL AlwaysOn Availability Group functionality.
 
 
 
===Improvements===
 
====Detailed documentation for writing XML Workflows====
 
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.
 
 
 
This DSL should be used when writing new workflows and modifying existing ones.
 
 
 
====Improved HA for Murano Conductor====
 
All components of Murano are High-Available now.
 
Murano-API is stateless, so it can be placed behind a load balancer.
 
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.
 
 
 
====REST API Changes====
 
Several changes are introduced to API specification to support extensible and pluggable architecture:
 
* Universal endpoint for services
 
* Tree traversing and set syntax
 
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/*”.
 
 
 
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.
 
 
 
More details about this feature can be found in the [[Murano/Blueprints/APIv0.2|blueprint]].
 
  
 
===Bugs Fixed===
 
===Bugs Fixed===
 +
A complete list of bugs fixed in Murano v0.3 can be found [https://launchpad.net/murano/1.0/0.3 here].
  
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].
+
* User could not create two ''* Farms'' services in one environment
 +
* User is unable to deploy MS SQL Cluster
 +
* Need to add 'python-MySQLdb' in requirements list for Murano API service
  
 +
===Improvements===
 +
In this release was added many improvements related to work with SSL. Murano now can use SSL to secure communication on all levels.
  
 
===Known Issues===
 
===Known Issues===
 
Actual bug state can be found in Murano [https://bugs.launchpad.net/murano Launchpad page]
 
Actual bug state can be found in Murano [https://bugs.launchpad.net/murano Launchpad page]
  
* Due to current Heat limitation services that involve load-balancer creation (farms) can be deployed only by tenant administrators.
+
* Internet Information Services Web Farm & ASP.NET Application Web Farm services does not work in tenants with many networks
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:
+
This services are based on Heat, particularly on resource called AWS::ElasticLoadBalancing::LoadBalancer, that currently does not support specification of any network related params. Without support for network specification LoadBalancer does not work on OpenStack deployments with Quantum deployment schemes that allow multiple networks inside tenant.
2013-08-06 09:10:07 - Unable to deploy instance ipkrmhk0vzq4b6 (asp-farm_instance_0) due to Unexpected state
+
 
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
 
 
* 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:
 
* 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:
 
  Unable to deploy instance demo (demo.com_instance_0) due to Unexpected stack state NOT_FOUND
 
  Unable to deploy instance demo (demo.com_instance_0) due to Unexpected stack state NOT_FOUND
* 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.
 
This situation could be handled in these ways:
 
* For the Nova-Network there are shell scripts, could be downloaded [https://www.dropbox.com/sh/zthldcxnp6r4flm/gTq3BxYnMy/wsfc_ip_helper.tar.gz here]
 
* For the Neutron there is a [https://review.openstack.org/#/c/38230/ patch]. It is already merged, however it will be available only as part of Havana release.
 

Latest revision as of 04:46, 25 November 2013

This version of Murano contains several features and improvement, where ability to manage Linux instances is major one. Murano was always capable to manage instances with any Operation System, but only now, after first moves towards our new mission we added full-featured support for managing Linux instances. This release also introduce direct support for Quantum, ability to mark images uploaded to Glance with Murano specific metadata and many other improvements. Please see the complete list of changes in this release.

What's New

Linux Services

This release of Murano has full-featured support for managing Linux services, as a reference two new Linux based services was added: telnet and Apache Webserver. Please, find in sources all necessary bits was needed to build this services: workflow, UI definition.

Murano Agent was built specially for Windows using .NET Framework as a platform and PowerShell as execution engine. To support configuration management on GNU/Linux was required to rewrite Agent on Python. We re-designed, extended and improved ideas that we had before, and only after that we rewrote Agent using Python. Now Murano can work with any implementation of a agent as long as it is complies to the new [[1]]. Please find sources for the new Agent implementation.

To create own services based on Linux you may be also interested in documentation about how to build image with GNU/Linux.

Leveraging Quantum

Previous releases of Murano was designed and tested against nova-network and even if it could be run over Quantum there was no difference in behavior from users point-of-view. All instances created by Murano was running in the same network as instances created directly from nova. Or, in case of Quantum simply in the default tenant network.

In this release limited support for Quantum is added. Each environment created in own network and separated from others on L2 level. This feature adding additional security and separation between services running in environments. Limited support means that user has not direct control over networks that managed by Murano, but in next versions, targeting Openstack Havana with Neutron, we have plans to add ability to manage networks in Murano by the user.

This feature is not enabled by default, please find how to enable support for Quantum.

Marking Images

In this release we introducing new UI for marking images with Murano specific metadata, previously this was done only via CLI.

Marking images is required for close integration between services capabilities and base-image that should support this capabilities. At first this feature was used only to identify images with Murano Agent baked in. Currently this feature is used for separation supported images by Operation System. For example, for windows services, only windows images can be chosen.

This feature is a base for support of fine-grained, hierarchical filters in in workflows for selecting base image for the application.

Bugs Fixed

A complete list of bugs fixed in Murano v0.3 can be found here.

  • User could not create two * Farms services in one environment
  • User is unable to deploy MS SQL Cluster
  • Need to add 'python-MySQLdb' in requirements list for Murano API service

Improvements

In this release was added many improvements related to work with SSL. Murano now can use SSL to secure communication on all levels.

Known Issues

Actual bug state can be found in Murano Launchpad page

  • Internet Information Services Web Farm & ASP.NET Application Web Farm services does not work in tenants with many networks

This services are based on Heat, particularly on resource called AWS::ElasticLoadBalancing::LoadBalancer, that currently does not support specification of any network related params. Without support for network specification LoadBalancer does not work on OpenStack deployments with Quantum deployment schemes that allow multiple networks inside tenant.

  • 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:
Unable to deploy instance demo (demo.com_instance_0) due to Unexpected stack state NOT_FOUND