Uploaded image for project: 'OASIS Topology and Orchestration Specification for Cloud Applications (TOSCA) TC'
  1. OASIS Topology and Orchestration Specification for Cloud Applications (TOSCA) TC
  2. TOSCA-141

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

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: CSD04
    • Component/s: Profile-YAML
    • Labels:
      None
    • Proposal:
      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.

      Description

      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

        Attachments

          Activity

            People

            • Assignee:
              dpalma Derek Palma (Inactive)
              Reporter:
              dpalma Derek Palma (Inactive)
            • Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated: