|
| 1 | +# MYRTUS TOSCA Node Types |
| 2 | + |
| 3 | +This page documents the TOSCA node type definitions developed as part of the MYRTUS project and contributed to the TOSCA community for standardization. |
| 4 | + |
| 5 | +## Overview |
| 6 | + |
| 7 | +The MYRTUS node types are designed for edge computing and IoT scenarios, particularly focusing on containerized software deployments in distributed systems. |
| 8 | + |
| 9 | +## Node Types |
| 10 | + |
| 11 | +### `example.eu.myrtus.MyrtusSWComponent` |
| 12 | + |
| 13 | +A specialized node type representing containerized MYRTUS software components. |
| 14 | + |
| 15 | +**Purpose**: Represents software modules packaged as Docker containers that can be deployed in edge/IoT environments. |
| 16 | + |
| 17 | +**Key Properties**: |
| 18 | +- `dockerImage` (string, optional): URI pointing to the Docker image to be deployed |
| 19 | +- `port` (integer, optional): Port to be opened in the container (default: 1234) |
| 20 | + |
| 21 | +**Requirements**: |
| 22 | +- `connects`: Can connect to any node offering a `tosca.capabilities.Endpoint` capability (0 to unbounded occurrences) |
| 23 | + |
| 24 | +**Capabilities**: |
| 25 | +- `service`: Provides an endpoint capability for other components to connect to (0 to unbounded occurrences) |
| 26 | + |
| 27 | +**Example Usage**: |
| 28 | +```yaml |
| 29 | +topology_template: |
| 30 | + node_templates: |
| 31 | + my_face_detection_service: |
| 32 | + type: example.eu.myrtus.MyrtusSWComponent |
| 33 | + properties: |
| 34 | + dockerImage: "registry.example.com/myrtus/face-detection:latest" |
| 35 | + port: 8080 |
| 36 | +``` |
| 37 | +
|
| 38 | +### `example.eu.myrtus.Myrtus-Compute` |
| 39 | + |
| 40 | +A specialized compute node type representing computing infrastructure in MYRTUS systems. |
| 41 | + |
| 42 | +**Purpose**: Represents edge computing nodes or workstations that host MYRTUS components. |
| 43 | + |
| 44 | +**Derived From**: `tosca.nodes.Compute` |
| 45 | + |
| 46 | +**Example Usage**: |
| 47 | +```yaml |
| 48 | +topology_template: |
| 49 | + node_templates: |
| 50 | + edge_camera_node: |
| 51 | + type: example.eu.myrtus.Myrtus-Compute |
| 52 | +``` |
| 53 | + |
| 54 | +## Complete TOSCA Definition |
| 55 | + |
| 56 | +```yaml |
| 57 | +tosca_definitions_version: tosca_simple_yaml_1_3 |
| 58 | +
|
| 59 | +metadata: |
| 60 | + template_name: MYRTUS Node Types |
| 61 | + template_author: MYRTUS Project Contributors |
| 62 | + template_version: 1.0.0 |
| 63 | +
|
| 64 | +description: > |
| 65 | + MYRTUS custom node types for containerized software components |
| 66 | + and computing infrastructure in edge/IoT scenarios. |
| 67 | + |
| 68 | + These types have been developed as part of the MYRTUS project |
| 69 | + and are contributed to the TOSCA community for standardization. |
| 70 | +
|
| 71 | +node_types: |
| 72 | + example.eu.myrtus.MyrtusSWComponent: |
| 73 | + description: This is an example of a specialization made to represent Myrtus SW components. This component assumes the SW modules are containerized in Docker containers. |
| 74 | + metadata: |
| 75 | + targetNamespace: "example.eu.myrtus.nodetypes" |
| 76 | + abstract: "false" |
| 77 | + final: "false" |
| 78 | + properties: |
| 79 | + dockerImage: |
| 80 | + type: string |
| 81 | + description: An URI pointing to the docker image to be deployed. |
| 82 | + required: false |
| 83 | + port: |
| 84 | + type: integer |
| 85 | + description: The port to be opened in the container |
| 86 | + required: false |
| 87 | + default: 1234 |
| 88 | + requirements: |
| 89 | + - connects: |
| 90 | + capability: tosca.capabilities.Endpoint |
| 91 | + relationship: tosca.relationships.ConnectsTo |
| 92 | + occurrences: [ 0, UNBOUNDED ] |
| 93 | + capabilities: |
| 94 | + service: |
| 95 | + occurrences: [ 0, UNBOUNDED ] |
| 96 | + type: tosca.capabilities.Endpoint |
| 97 | + |
| 98 | + example.eu.myrtus.Myrtus-Compute: |
| 99 | + description: Representation of a computing node in the Myrtus systems. |
| 100 | + metadata: |
| 101 | + targetNamespace: "example.eu.myrtus.nodetypes" |
| 102 | + abstract: "false" |
| 103 | + final: "false" |
| 104 | + derived_from: tosca.nodes.Compute |
| 105 | +``` |
| 106 | + |
| 107 | +## Usage in Service Templates |
| 108 | + |
| 109 | +To use these node types in your TOSCA service templates: |
| 110 | + |
| 111 | +1. Import the node type definitions: |
| 112 | +```yaml |
| 113 | +imports: |
| 114 | + - myrtus/node-types.yaml |
| 115 | +``` |
| 116 | + |
| 117 | +2. Reference the types in your topology template as shown in the examples above. |
| 118 | + |
| 119 | +## Contributing to TOSCA Standardization |
| 120 | + |
| 121 | +These node types are being proposed for inclusion in TOSCA community standards. If you have suggestions or improvements: |
| 122 | + |
| 123 | +1. Review the type definitions above |
| 124 | +2. Submit feedback or proposed changes through the appropriate TOSCA community channels |
| 125 | +3. Reference this work in standardization discussions |
| 126 | + |
| 127 | +## Version History |
| 128 | + |
| 129 | +- **1.0.0** (2025-11-18): Initial release with MyrtusSWComponent and Myrtus-Compute node types |
| 130 | + |
| 131 | +## Source Files |
| 132 | + |
| 133 | +The complete type definitions can be found in the repository at: |
| 134 | +- `tosca-types/myrtus/node-types.yaml` |
| 135 | + |
| 136 | +## License |
| 137 | + |
| 138 | +See the main project LICENSE file for licensing information. |
0 commit comments