Skip to content

Commit b0351a4

Browse files
committed
Add MYRTUS TOSCA node types for community standardization
1 parent 2da2ddb commit b0351a4

File tree

3 files changed

+270
-0
lines changed

3 files changed

+270
-0
lines changed

tosca-types/myrtus/README.md

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
# MYRTUS TOSCA Node Types
2+
3+
This directory contains 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+
## Usage
55+
56+
To use these node types in your TOSCA service templates:
57+
58+
1. Import the node type definitions:
59+
```yaml
60+
imports:
61+
- myrtus/node-types.yaml
62+
```
63+
64+
2. Reference the types in your topology template as shown in the examples above.
65+
66+
## Contributing to TOSCA Standardization
67+
68+
These node types are being proposed for inclusion in TOSCA community standards. If you have suggestions or improvements:
69+
70+
1. Review the type definitions in `node-types.yaml`
71+
2. Submit feedback or proposed changes through the appropriate TOSCA community channels
72+
3. Reference this work in standardization discussions
73+
74+
## Version History
75+
76+
- **1.0.0** (2025-11-18): Initial release with MyrtusSWComponent and Myrtus-Compute node types
77+
78+
## License
79+
80+
See the main project LICENSE file for licensing information.
81+
82+
## Contact
83+
84+
For questions or contributions, please refer to the main ToscaDesigner project documentation.

tosca-types/myrtus/node-types.yaml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
tosca_definitions_version: tosca_simple_yaml_1_3
2+
3+
metadata:
4+
template_name: MYRTUS Node Types
5+
template_author: MYRTUS Project Contributors
6+
template_version: 1.0.0
7+
8+
description: >
9+
MYRTUS custom node types for containerized software components
10+
and computing infrastructure in edge/IoT scenarios.
11+
12+
These types have been developed as part of the MYRTUS project
13+
and are contributed to the TOSCA community for standardization.
14+
15+
node_types:
16+
example.eu.myrtus.MyrtusSWComponent:
17+
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.
18+
metadata:
19+
targetNamespace: "example.eu.myrtus.nodetypes"
20+
abstract: "false"
21+
final: "false"
22+
properties:
23+
dockerImage:
24+
type: string
25+
description: An URI pointing to the docker image to be deployed.
26+
required: false
27+
port:
28+
type: integer
29+
description: The port to be opened in the container
30+
required: false
31+
default: 1234
32+
requirements:
33+
- connects:
34+
capability: tosca.capabilities.Endpoint
35+
relationship: tosca.relationships.ConnectsTo
36+
occurrences: [ 0, UNBOUNDED ]
37+
capabilities:
38+
service:
39+
occurrences: [ 0, UNBOUNDED ]
40+
type: tosca.capabilities.Endpoint
41+
42+
example.eu.myrtus.Myrtus-Compute:
43+
description: Representation of a computing node in the Myrtus systems.
44+
metadata:
45+
targetNamespace: "example.eu.myrtus.nodetypes"
46+
abstract: "false"
47+
final: "false"
48+
derived_from: tosca.nodes.Compute

wiki/TOSCA-Node-Types.md

Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
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

Comments
 (0)