<div dir="ltr"><div><div><div><div><div><div><div><div><div>Hi Everyone,<br><br></div>While looking through Heat templates generation code in Murano I've realized it has a major design flaw: there is no isolation between Heat resources generated by different apps.<br>

<br></div>Every app manifest can access and modify its environment stack in any way. For example it can delete instances and other resources belonging to other applications. This may be not so bad for Murano 0.4 but it becomes critical for AppCatalog (0.5) as there is no trust relations between applications and it may be unacceptable that untrusted application can gain complete write access over the whole stack.<br>

<br></div>There is also a problem of name collisions - resources generated by different applications may have the same names. This is especially probable between resources generated by different instances of the same app. This also affects Parameters/Output of Heat templates as each application instance must generate unique names for them (and do not forget them later as they are needed to read output results).<br>

<br></div>I think we need at least to know how we going to solve it before 0.5<br><br></div>Here is possible directions i can think of:<br><br></div>1. Use nested Heat stacks. I'm not sure it solves naming collisions and that nested stacks can have their own Output<br>

<br></div>2. Control all stack template modifications and track which resource was created by which app. Give applications read-only access to resources they don't own<br><br></div>3. Auto-generate resource names. Auto-add prefixes/suffixes to resource/output etc names indicating owning app instance ID and remove them upon read access from workflow so that generated names would be invisible to workflow. That would also mean all VMs  would have generated names<br>

<br></div>Hope to see better ideas and suggestions in this thread<br clear="all"><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><br>-- <br><div dir="ltr"><span style="border-collapse:separate;color:rgb(0,0,0);font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-size:medium"><span style="font-family:arial;font-size:small">Sincerely yours<br>

Stanislav (Stan) Lagun<br>Senior Developer<br>Mirantis</span></span><br><span style="border-collapse:separate;color:rgb(0,0,0);font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-size:medium"><span style="font-family:arial;font-size:small"><span style="font-size:10.0pt;font-family:"Arial","sans-serif"" lang="EN-US">35b/3, Vorontsovskaya
St.</span><br>Moscow, Russia<br>Skype: stanlagun<br><a href="http://www.mirantis.com/" target="_blank">www.mirantis.com</a><br><a href="mailto:slagun@mirantis.com" target="_blank">slagun@mirantis.com</a></span></span></div>


</div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>