OPEN - CSD04 - Specifying Environment Constraints for Node Templates (Policy related)

    • Type: Bug
    • Resolution: Unresolved
    • Priority: Major
    • CSD04
    • Affects Version/s: None
    • Component/s: Profile-YAML
    • None
    • Hide

      To capture these semantics I propose:
      1) Defining a family of capability types tosca.caps.runtime.XXX for TOSCA runtimes which we can formally describe the provided capabilities. This makes it trivial for a Runtime or Service Template authoring tool to know what is possible.
      2) A way to express subjects of a capability provided by a separate entity. Specifically, we must specify the node templates that we want the TOSCA runtime's capability constraints to apply to.

      A simple proposal would be:
      runtime_requirements: # the name is not important, it's just its own section in the document

      • tosca.caps.runtime.Colocation: # capability type of the TOSCA runtime we want to constrain
        subjects: [ apache, mysql ] # the node templates which TOSCA runtime capability applies to
        contraints:
        colocate: false

      Note that the types of the subjects could be specified in the capability type definition but in general it is the capabilities of the types we are probably after. However, this feature is not currently available.

      Show
      To capture these semantics I propose: 1) Defining a family of capability types tosca.caps.runtime.XXX for TOSCA runtimes which we can formally describe the provided capabilities. This makes it trivial for a Runtime or Service Template authoring tool to know what is possible. 2) A way to express subjects of a capability provided by a separate entity. Specifically, we must specify the node templates that we want the TOSCA runtime's capability constraints to apply to. A simple proposal would be: runtime_requirements: # the name is not important, it's just its own section in the document tosca.caps.runtime.Colocation: # capability type of the TOSCA runtime we want to constrain subjects: [ apache, mysql ] # the node templates which TOSCA runtime capability applies to contraints: colocate: false Note that the types of the subjects could be specified in the capability type definition but in general it is the capabilities of the types we are probably after. However, this feature is not currently available.

      In section 12 Grouping Node Templates, a membership construct is used to associate a TOSCA runtime constraint (a capability not provided by the nodes in the service template but by the environment that is processing it) to a set of node templates, the subjects of the constraint.

      The specific use cases is an anti-colocation constraint to ensure two SoftwareComponents are not placed on the same Compute node which is certainly a valid and common use case.

      My concern with the proposed syntax is that is that it is not able to support strong validation. This construct should capture the following semantics:
      1) The capability of the TOSCA Runtime to be applied (constrained)
      2) The subjects of the action implied by the declarative constraint

            Assignee:
            Derek Palma (Inactive)
            Reporter:
            Derek Palma (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: