-
Notifications
You must be signed in to change notification settings - Fork 2
/
microTOSCA.yml
88 lines (73 loc) · 2.67 KB
/
microTOSCA.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
tosca_definitions_version: tosca_simple_yaml_1_3
description: Definition of the custom types of Micro TOSCA model
group_types:
micro.groups.Root:
derived_from: tosca.groups.Root
# group type for partitioning the nodes of an applications over Team(s)
micro.groups.Team:
derived_from: micro.groups.Root
members: [ micro.nodes.Root ]
# group type for defining the Edge of an architecture
micro.groups.Edge:
derived_from: micro.groups.Root
members: [ micro.nodes.Service, micro.nodes.CommunicationPattern ] # data stores cannot be in edge
relationship_types:
micro.relationships.Root:
derived_from: tosca.relationships.Root
# relationship type for modelling interactions
micro.relationships.InteractsWith:
derived_from: micro.relationships.Root
valid_target_types: [ micro.capabilities.Node ]
properties:
circuit_breaker: # is a circuit breaker used?
type: boolean
default: false
dynamic_discovery: # is the endpoint dynamically discovered (e.g., with a service discovery)
type: boolean
default: false
timeout: # is a timeout set?
type: boolean
default: false
capability_types:
micro.capabilities.Node:
derived_from: tosca.capabilities.Node
node_types:
micro.nodes.Root:
derived_from: tosca.nodes.Root
capabilities:
feature:
type: micro.capabilities.Node
valid_source_types: [ micro.nodes.Root ]
# node type for representing services
micro.nodes.Service:
derived_from: micro.nodes.Root
requirements:
- interaction:
capability: micro.capabilities.Node
occurrences: [ 0, UNBOUNDED ]
node: micro.nodes.Root
relationship: micro.relationships.InteractsWith
# node type for representing computing units
micro.nodes.Compute:
derived_from: micro.nodes.Service
# node type for representing communication patterns
micro.nodes.CommunicationPattern:
derived_from: micro.nodes.Root
# node type for representing data stores
micro.nodes.DataStore:
derived_from: micro.nodes.Root
capabilities:
feature:
type: micro.capabilities.Node
valid_source_types: [ micro.nodes.Service, micro.nodes.CommunicationPattern ]
# Type of CommunicationPatterns
micro.nodes.MessageBroker:
derived_from: micro.nodes.CommunicationPattern
micro.nodes.MessageRouter:
derived_from: micro.nodes.CommunicationPattern
requirements:
- interaction:
capability: micro.capabilities.Node
occurrences: [ 1, UNBOUNDED ] # at least one (outgoing) interaction
node: micro.nodes.Root
relationship: micro.relationships.InteractsWith