1 ##############################################################################
2 # Copyright (c) 2018 Enea AB and others.
3 # All rights reserved. This program and the accompanying materials
4 # are made available under the terms of the Apache License, Version 2.0
5 # which accompanies this distribution, and is available at
6 # http://www.apache.org/licenses/LICENSE-2.0
7 ##############################################################################
9 $schema: 'http://json-schema.org/schema#'
10 $id: 'https://github.com/opnfv/pharos/blob/master/config/pdf/pod1.yaml'
15 # NOTE: I hope this is going away soon, so I won't model it yet
20 # NOTE: To be properly modeled by Compass4NFV maintainers
24 # NOTE: To be properly modeled by Daisy maintainers
36 type: ['string', 'null']
38 type: ['string', 'null']
40 type: ['string', 'null']
42 type: ['string', 'null']
43 required: ['admin', 'mgmt', 'private', 'public']
44 additionalProperties: false
51 additionalProperties: false
53 additionalProperties: false
61 required: ['timeout_comissioning', 'timeout_deploying']
62 additionalProperties: false
78 type: ['string', 'null']
82 type: ['string', 'null']
83 required: ['interfaces', 'busaddr']
84 additionalProperties: false
86 additionalProperties: false
100 properties: &compute_params_common_properties
101 nova_cpu_pinning: # Optional
103 compute_hugepages_size:
106 compute_hugepages_count:
108 compute_hugepages_mount:
110 compute_kernel_isolcpu: # Optional
112 compute_ovs_pmd_cpu_mask: # Optional
113 type: ['string', 'number']
114 compute_ovs_memory_channels: # Optional
115 type: ['string', 'number']
116 required: ['compute_hugepages_size', 'compute_hugepages_count',
117 'compute_hugepages_mount']
118 additionalProperties: false
122 <<: *compute_params_common_properties
125 compute_ovs_dpdk_socket_mem:
126 type: ['string', 'number']
127 compute_ovs_dpdk_lcore_mask:
128 type: ['string', 'number']
133 required: ['compute_dpdk_driver', 'dpdk0_driver', 'dpdk0_n_rxq',
134 'compute_ovs_dpdk_socket_mem',
135 'compute_ovs_dpdk_lcore_mask']
136 additionalProperties: false
137 additionalProperties: false
138 required: ['compute_params']
139 additionalProperties: false
141 additionalProperties: false
142 required: ['jumphost', 'network']
143 additionalProperties: false
156 required: ['nodes_roles', 'groups', 'hostnames', 'network']
157 additionalProperties: false
160 type: ['object', 'null']
161 # NOTE: To be properly modeled by XCI maintainers
163 ##############################################################################
164 # Top-level structure:
165 # - define all possible top-level and second-level keys, without enforcing a
166 # schema for second-level, just so we can disallow additional properties;
167 # - require 'version' and allow dynamically generated 'version_x.y' key;
171 # version_x.y keys are auto-added by `validate_schema.py` based on 'version'
181 enum: ['apex', 'compass4nfv', 'daisy', 'fuel', 'joid', 'osa', 'kubespray']
191 type: ['object', 'null']
193 type: ['object', 'null']
194 required: ['version']
195 additionalProperties: false
196 ############################################################################
198 # - based on dynamically added 'version_x.y', require additional IDF blocks
199 # and validate them against the proper schema version;
204 $ref: '#/definitions/net_config/v0.1'
206 $ref: '#/definitions/compass/v0.1'
208 $ref: '#/definitions/daisy/v0.1'
210 $ref: '#/definitions/fuel/v0.1'
212 $ref: '#/definitions/osa/v0.1'
214 $ref: '#/definitions/kubespray/v0.1'
216 required: ['net_config']
218 required: ['net_config']
220 required: ['net_config']
222 required: ['net_config']
225 # NOTE: To be properly modeled by XCI maintainers
227 # Do not allow any properties not defined here. This lets us catch typos.
228 additionalProperties: false