Replies: 3 comments 9 replies
-
|
I generally agree with your suggestion. The concept here has to do with how orchestrators manage relationships in regards to the source and target nodes. The simple solution is to add a keyname to the relationship type entity, something like But I think a better idea is to add The particular directive in this case can be "owns-target". But there can also be "owns-source", or "owns-mutual" (which signifies that if either source or target are deleted then the other would also have to be deleted). |
Beta Was this translation helpful? Give feedback.
-
|
I certainly agree that there are different types of relationship and orchestrator behavior is likely to differ depending on the type in the ways you have described. However I would point out that using metadata to indicate those types would appear to be contrary to the spec as 5.3.1 says "metadata ... MAY be ignored by TOSCA Orchestrators and SHOULD NOT affect runtime behavior" |
Beta Was this translation helpful? Give feedback.
-
|
Hi Chris, Tal, and all could this be managed by definining new Data Types as below? and then defining respectively 3 Relationship types and the corresponding Capability Types (derived from Root) for each of the values above (example below for container/containement): This approach follows the standard and does not enforce customizations on the Orchestrator. Proper handling of relationship behavior between source and target nodes is enforced through operations/notifications (ultimately, through custom artifacts outside of the orchestrator). Does it make sense? Am I missing something? If the approach works, definitions as those above may be a starting point for our common profile. Roberto |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
During yesterday's TOSCA Community Meeting, @tliron made a comment that while Kubernetes doesn’t formally define relationships, it does have the concept of ownership relationships, which as he mentioned is used primarily for garbage collection: if the owning entity is deleted, then the owned entities should be deleted as well. In UML, this type of relationship is referred to as composition containment where the containment semantics specify that the lifecycle of the contained entities is determined by the lifecycle of the containing entity. This type of relationship is very different from other types of relationships (such as simple dependencies) that don’t have the same lifecycle coupling as containment relationships.
For purposes of Orchestration, making a distinction between containment relationships vs simple dependency relationships is extremely helpful for Day-2 scenarios where orchestrators may need to make decisions about how to propagate events across the service topology graph. For example, if a containing node goes into an error state (or a deleted state), then by definition the contained nodes go into that same state as well. This may not be the case for nodes that have simple dependency relationships to the failed or deleted nodes.
Based on this, I firmly believe that we should reflect this distinction between relationship types in the TOSCA Relationship Type hierarchy. I use this in the Ubicity profiles, which is documented in https://github.com/oasis-open/tosca-community-contributions/blob/master/profiles/com/ubicity/core/1.0/README.md#relationship-types. I’m hoping we can adopt this approach in any community profiles we define.
Beta Was this translation helpful? Give feedback.
All reactions