Murano Data Source Driver

https://blueprints.launchpad.net/congress/+spec/murano-driver

This blueprint is to add a data source driver for Murano

Problem description

We need a data source to get the Murano environments and applications related data so that we can define policies during and after application service fulfillment

Proposed change

Add data source driver that integrates Congress with Murano with following data tables.

  • Data Tables

    • murano:objects(object_id, owner_id, type)

      This table holds every MuranoPL object instance in an environment.

      • object_id - uuid of the object as used in Murano

      • owner_id - uuid of the owner object as used in Murano

      • type - string with full type identification as used in Murano (e.g., io.murano.Environment,…)

    • murano:parent-types(id, parent_type)

      This table holds parent types of obj_id object.

      • id - uuid of the object as used in Murano

      • parent_type - string with full type identification of the parent object

      Note that Murano supports multiple inheritance, so there can be several parent types for one object

    • murano:properties(id, name, value)

      This table stores object’s properties. For multiple cardinality properties, there can be number of records here.

      • id - uuid of the object as used in Murano

      • name - property name

      • value - property value

      MuranoPL properties referencing class type (i.e., another object) are stored in murano:relationship. Properties with structure has not direct mapping here - it has to be stored here component by component.

    • murano:relationships(source_id, target_id, name)

      This table stores relationship between objects (i.e., MuranoPL property to class).

      • source_id - uuid of the source object

      • target_id - uuid of the target object

      • name - name of the relationship between source and target object

      For multiple cardinality relationships there is several records in the table.

    • murano:states(id, state)

      This table stores EnvironmentStatus of Murano environment

      • id - uuid of the environment

      • state - the state status of the environment

      The state status will be one of ‘READY’, ‘PENDING’, ‘DEPLOYING’, ‘DEPLOY_FAILURE’, ‘DELETING’, ‘DELETE_FAILURE’.

Alternatives

N/A

Policy

We will have pre and post deployment policies for Murano applications based on the data tables defined in the driver.

Pre deployment policies will cover policies during application service fulfillment and will leverage the Congress simulate feature.

Post deployment policies will cover monitoring policies on fulfilled service instances.

Policy actions

Actions will be added in the second phase.

Data sources

Murano

Data model impact

N/A

REST API impact

N/A

Security impact

N/A

Notifications impact

N/A

Other end user impact

N/A

Performance impact

N/A

Other deployer impact

N/A

Developer impact

N/A

Implementation

Assignee(s)

kishan-thomas kishan.thomas@hp.com

Work items

  • Implement driver and data tables

  • Implement unit tests

  • Integration tests with Murano

  • Add example policies

Dependencies

Murano API

Testing

  • Unit tests

  • Integration tests

  • Tempest tests

Documentation impact

Add new documents in standard documentation location