Define dependencies for Murano apps

Registered by Serg Melikyan

If your application depends on some particular base image or on other packages, you can state these dependencies adding dependsOn section to application definition.

Example

     dependsOn:
        apps:
          - io.murano.databases.MySql
          - io.murano.apps.apache.ApacheHttpServer
          - io.murano.apps.ZabbixAgent
        image:
          name: Debian 8 x64 (pre-installed murano-agent)
          uri: http://storage.catalog.mirantis.com/images/debian-8-m-agent.qcow2

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
Serg Melikyan
Direction:
Needs approval
Assignee:
Serg Melikyan
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

kfox1111 - The resource type should probably match the resource types in the app catalog so that when new types get added they automatically work with dependsOn. Image should not be a name/url but a ref to an image in the catalog. This probably should wait until the all the types are merged to one file too. This would allow the depends on stuff to be merged in the ui into a bash script that can import all the pieces.

docaedo - IMO the app catalog should not be in the business of managing dependencies. Murano can already do that with bundles I think? At any rate, trying to manage detecting missing dependencies and fetching them when necessary seems far out of scope for a catalog of assets.

kfox1111 - Its already in the app catalog today. I'm just recommending we clean it up so that it allows other types of dependencies other then other murano apps or glance images specifically. For example, solum language packs, etc. Also, the web site shouldn't care about it. But it can be helpful to the horizon plugin to allow you to easily load in the dependencies. I think it makes sense for cases like one where the Chef Heat template depends on Chef Glance Image. We'll see more of those sorts of things as time goes on.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.