Improve Murano plugins to contain MuranoPL parts
Currently Murano plugins only provide ability to expose one or more python classes to MuranoPL. However in MuranoPL python-based classes are very limited in capabilities that can exposed. For example they cannot expose properties, make use of MuranoPL inheritance, contracts, attributes
and resources. As we see in core library it it typical for a class to have either parts split into YAML part and Python part (comprising together a single class) or have Python class written specially
for another YAML class. In all cases there is a need for a package to have both YAML and Python parts distributed and provisioned together.
It us proposed to have alternate plugin loader that will combine functionality of existing loader
with modified DirectoryPackag
of regular Python I/O to access package file. Then YAMLs, Python scripts and resource files
could be distributed as a regular Python packages on PyPI and have structure similar to that
in murano-apps. As a result there will be regular packages (that cannot contain Python code)
in app catalog and special packages that can be installed by admin only and thus assumed to
be trusted that do allowed to have Python parts but still have all the power of regular YAML packages (including versioning that we currently missing in plugins).
As a next step we may consider for Murano core library to become such (mandatory) plugin
so that we could release it independently from the rest of Murano code
Blueprint information
- Status:
- Not started
- Approver:
- Serg Melikyan
- Priority:
- Medium
- Drafter:
- Ekaterina Chernova
- Direction:
- Needs approval
- Assignee:
- Stan Lagun
- Definition:
- Pending Approval
- Series goal:
- Accepted for future
- Implementation:
- Not started
- Milestone target:
- None
- Started by
- Completed by