summaryrefslogtreecommitdiffstats
path: root/openecomp-be/tools/install/database/schemaTemplates/questionnaire/component.ftl
blob: 062bf55928553bd6095f71d187533aac7798053a (plain)
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "general": {
      "type": "object",
      "properties": {
        "hypervisor": {
          "type": "object",
          "properties": {
            "hypervisor": {
              "type": "string",
              "enum": [
                "KVM",
                "VMWare ESXi"
              ],
              "default": "KVM"
            },
            "drivers": {
              "type": "string",
              "maxLength": 300,
              "pattern": "^[A-Za-z0-9_,-]*$"
            },
            "containerFeaturesDescription": {
              "type": "string",
              "maxLength": 1000,
              "pattern": "^[A-Za-z0-9_, -]*$"
            }
          },
          "additionalProperties": false
        },
        "image": {
          "type": "object",
          "properties": {
            "providedBy": {
              "type": "string",
              "enum": [
                "Vendor"
              ],
              "default": "Vendor"
            }
          },
          "additionalProperties": false
        },
        "disk": {
          "type": "object" ,
          "properties": {
              "bootDiskSizePerVM": {
                "type": "number",
                "maximum": 100
              },
             "ephemeralDiskSizePerVM": {
               "type": "number",
               "maximum": 400
              }
           },
           "additionalProperties": false
         },
        "recovery": {
          "type": "object",
          "properties": {
            "pointObjective": {
              "type": "number",
              "minimum": 0,
              "exclusiveMinimum": true,
              "maximum": 15,
              "exclusiveMaximum ": true
            },
            "timeObjective": {
              "type": "number",
              "minimum": 0,
              "exclusiveMinimum": true,
              "maximum": 300,
              "exclusiveMaximum ": true
            },
            "vmProcessFailuresHandling": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "dnsConfiguration": {
          "type": "string"
        },
        "vmCloneUsage": {
          "type": "string",
          "maxLength": 300
        }
      },
      "additionalProperties": false
    },
    "compute": {
      "type": "object",
      "properties": {
        "numOfVMs": {
          "type": "object",
          "properties": {
            "minimum": {
              "type": "number",
              "minimum": 0,
              "maximum": 100
            },
            "maximum": {
              "type": "number",
            "minimum": <#if (componentQuestionnaireData.compute.numOfVMs.minimum)??
            && (componentQuestionnaireData.compute.numOfVMs.minimum)?is_number
            && ((componentQuestionnaireData.compute.numOfVMs.minimum) > 0
            && (componentQuestionnaireData.compute.numOfVMs.minimum) <= 100)>
            ${componentQuestionnaireData.compute.numOfVMs.minimum}<#else>
            0</#if> ,
              "exclusiveMinimum": true,
              "maximum": 100
            }
          },
          "additionalProperties": false
        },
        "guestOS": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "maxLength": 50
            },
            "bitSize": {
              "type": "number",
              "enum": [
                64,
                32
              ],
              "default": 64

            },
            "tools": {
              "type": "string"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    },
    "highAvailabilityAndLoadBalancing": {
      "type": "object",
      "properties": {
        "isComponentMandatory": {
          "type": "string",
          "enum": ["","YES", "NO"],
          "default": ""
        },
        "highAvailabilityMode": {
          "type": "string",
          "enum": ["","geo-activeactive", "geo-activestandby", "local-activeactive", "local-activestandby"],
          "default": ""
        },
        "failureLoadDistribution": {
          "type": "string",
          "maxLength": 1000
        },
        "nkModelImplementation": {
          "type": "string",
          "maxLength": 1000
        },
        "architectureChoice": {
          "type": "string",
          "maxLength": 1000
        },
        "slaRequirements": {
          "type": "string",
          "maxLength": 1000
        },
        "horizontalScaling": {
          "type": "string",
          "maxLength": 1000
        },
        "loadDistributionMechanism": {
          "type": "string",
          "maxLength": 1000
        }
      },
      "additionalProperties": false
    },
    "network": {
      "type": "object",
      "properties": {
        "networkCapacity": {
          "type": "object",
          "properties": {
            "protocolWithHighestTrafficProfileAcrossAllNICs": {
              "type": "string",
              "enum": [
                "",
                "TCP",
                "UDP",
                "SCTP",
                "IPsec"
              ],
              "default": ""
            },
            "networkTransactionsPerSecond": {
              "type": "number"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    },
    "storage": {
      "type": "object",
      "properties": {
        "backup": {
          "type": "object",
          "properties": {
            "backupType": {
              "type": "string",
              "enum": [
                "On Site",
                "Off Site"
              ],
              "default": "On Site"
            },
            "backupStorageSize": {
              "type": "number"
            },
            "backupSolution": {
              "type": "string"
            },
            "backupNIC": {
              "type": "string",
              "enum": [
                ""<#if nicNames??><#list nicNames as nicName>
                , "${nicName}"</#list></#if>
              ],
              "default": ""
            }
          },
          "additionalProperties": false
        },
        "snapshotBackup": {
          "type": "object",
          "properties": {
            "snapshotFrequency": {
              "type": "number",
              "default": 24,
              "minimum": 1,
              "exclusiveMinimum": true
            }
          },
          "additionalProperties": false
        },
        "logBackup": {
          "type": "object",
          "properties": {
            "sizeOfLogFiles": {
              "type": "number",
              "maximum": 5,
              "exclusiveMaximum": true
            },
            "logBackupFrequency": {
              "type": "number",
              "maximum": 4,
              "exclusiveMaximum": true
            },
            "logRetentionPeriod": {
              "type": "number",
              "maximum": 15,
              "exclusiveMaximum": true
            },
            "logFileLocation": {
              "type": "string",
              "maxLength": 300
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}