blob: c4307ebeb58a6d1c47933c57c98ebe168f32b1e2 [file] [log] [blame]
Oleksii Butenkoade9c6c2018-03-05 15:16:40 +02001# Set the repository suite, one of the: 'nightly', 'testing', 'stable', or any other required
2{% set REPOSITORY_SUITE = os_env('REPOSITORY_SUITE', 'testing') %}
3{% set LAB_CONFIG_NAME = os_env('LAB_CONFIG_NAME', 'cookied-bm-mcp-ovs-dpdk') %}
4{% set DOMAIN_NAME = os_env('DOMAIN_NAME', LAB_CONFIG_NAME + '.local') %}
5{% set HOSTNAME_CFG01 = os_env('HOSTNAME_CFG01', 'cfg01.' + DOMAIN_NAME) %}
6{% set HOSTNAME_KVM01 = os_env('HOSTNAME_KVM01', 'kvm01.' + DOMAIN_NAME) %}
7{% set HOSTNAME_KVM02 = os_env('HOSTNAME_KVM02', 'kvm02.' + DOMAIN_NAME) %}
8{% set HOSTNAME_KVM03 = os_env('HOSTNAME_KVM03', 'kvm03.' + DOMAIN_NAME) %}
9{% set HOSTNAME_CMP01 = os_env('HOSTNAME_CMP01', 'cmp01.' + DOMAIN_NAME) %}
10{% set HOSTNAME_CMP02 = os_env('HOSTNAME_CMP02', 'cmp02.' + DOMAIN_NAME) %}
11{% set HOSTNAME_GTW01 = os_env('HOSTNAME_GTW01', 'gtw01.' + DOMAIN_NAME) %}
12{% set HOSTNAME_GTW02 = os_env('HOSTNAME_GTW02', 'gtw02.' + DOMAIN_NAME) %}
13{% set ETH1_IP_ADDRESS_CFG01 = os_env('ETH1_IP_ADDRESS_CFG01', '172.16.49.2') %}
14{% set ETH0_IP_ADDRESS_KVM01 = os_env('ETH0_IP_ADDRESS_KVM01', '172.16.49.11') %}
15{% set ETH0_IP_ADDRESS_KVM02 = os_env('ETH0_IP_ADDRESS_KVM02', '172.16.49.12') %}
16{% set ETH0_IP_ADDRESS_KVM03 = os_env('ETH0_IP_ADDRESS_KVM03', '172.16.49.13') %}
17{% set ETH0_IP_ADDRESS_CMP01 = os_env('ETH0_IP_ADDRESS_CMP01', '172.16.49.3') %}
18{% set ETH0_IP_ADDRESS_CMP02 = os_env('ETH0_IP_ADDRESS_CMP02', '172.16.49.31') %}
19{% set ETH0_IP_ADDRESS_GTW01 = os_env('ETH0_IP_ADDRESS_GTW01', '172.16.49.5') %}
20{% set ETH0_IP_ADDRESS_GTW02 = os_env('ETH0_IP_ADDRESS_GTW02', '172.16.49.4') %}
21
22{% import 'cookied-bm-mcp-ovs-dpdk/underlay--meta-data.yaml' as CLOUDINIT_META_DATA with context %}
23{% import 'cookied-bm-mcp-ovs-dpdk/underlay--user-data-cfg01.yaml' as CLOUDINIT_USER_DATA_CFG01 with context %}
24{% import 'cookied-bm-mcp-ovs-dpdk/underlay--user-data1604.yaml' as CLOUDINIT_USER_DATA_1604 with context %}
25{% import 'cookied-bm-mcp-ovs-dpdk/underlay--user-data1604-hwe.yaml' as CLOUDINIT_USER_DATA_1604_HWE with context %}
26
27---
28aliases:
29 - &interface_model {{ os_env('INTERFACE_MODEL', 'virtio') }}
30 - &cloudinit_meta_data {{ CLOUDINIT_META_DATA }}
31 - &cloudinit_user_data_cfg01 {{ CLOUDINIT_USER_DATA_CFG01 }}
32 - &cloudinit_user_data_1604 {{ CLOUDINIT_USER_DATA_1604 }}
33 - &cloudinit_user_data_1604_hwe {{ CLOUDINIT_USER_DATA_1604_HWE }}
34
35template:
36 devops_settings:
37 env_name: {{ os_env('ENV_NAME', LAB_CONFIG_NAME + '_' + REPOSITORY_SUITE + "_" + os_env('BUILD_NUMBER', '')) }}
38
39 address_pools:
40 admin-pool01:
41 net: {{ os_env('ADMIN_ADDRESS_POOL01', '172.16.49.0/26:26') }}
42 params:
43 ip_reserved:
44 gateway: +62
45 l2_network_device: +61
46 virtual_{{ HOSTNAME_CFG01 }}: {{ ETH1_IP_ADDRESS_CFG01 }}
47 default_{{ HOSTNAME_KVM01 }}: {{ ETH0_IP_ADDRESS_KVM01 }}
48 default_{{ HOSTNAME_KVM02 }}: {{ ETH0_IP_ADDRESS_KVM02 }}
49 default_{{ HOSTNAME_KVM03 }}: {{ ETH0_IP_ADDRESS_KVM03 }}
50 default_{{ HOSTNAME_CMP01 }}: {{ ETH0_IP_ADDRESS_CMP01 }}
51 default_{{ HOSTNAME_CMP02 }}: {{ ETH0_IP_ADDRESS_CMP02 }}
52 default_{{ HOSTNAME_GTW01 }}: {{ ETH0_IP_ADDRESS_GTW01 }}
53 default_{{ HOSTNAME_GTW02 }}: {{ ETH0_IP_ADDRESS_GTW02 }}
54 ip_ranges:
55 dhcp: [+2, -4]
56 private-pool01:
57 net: {{ os_env('PRIVATE_ADDRESS_POOL01', '10.167.11.0/24:24') }}
58 params:
59 ip_reserved:
60 gateway: +1
61 l2_network_device: +1
62
63 tenant-pool01:
64 net: {{ os_env('TENANT_ADDRESS_POOL01', '10.167.12.0/24:24') }}
65 params:
66 ip_reserved:
67 gateway: +1
68 l2_network_device: +1
69
70 external-pool01:
71 net: {{ os_env('EXTERNAL_ADDRESS_POOL01', '172.17.42.128/26:26') }}
72 params:
73 ip_reserved:
74 gateway: +1
75 l2_network_device: -2
76
77
78 groups:
79 - name: virtual
80 driver:
81 name: devops.driver.libvirt
82 params:
83 connection_string: !os_env CONNECTION_STRING, qemu:///system
84 storage_pool_name: !os_env STORAGE_POOL_NAME, default
85 stp: False
86 hpet: False
87 enable_acpi: true
88 use_host_cpu: !os_env DRIVER_USE_HOST_CPU, true
89 use_hugepages: !os_env DRIVER_USE_HUGEPAGES, false
90
91 network_pools:
92 admin: admin-pool01
93
94 l2_network_devices:
95 # Ironic management interface
96 admin:
97 address_pool: admin-pool01
98 dhcp: false
99 parent_iface:
100 phys_dev: !os_env IRONIC_LAB_PXE_IFACE_0
101
102 group_volumes:
103 - name: cloudimage1604 # This name is used for 'backing_store' option for node volumes.
104 source_image: !os_env IMAGE_PATH1604 # https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img
105 format: qcow2
106 - name: cfg01_day01_image # Pre-configured day01 image
107 source_image: {{ os_env('IMAGE_PATH_CFG01_DAY01', os_env('IMAGE_PATH1604')) }} # http://images.mirantis.com/cfg01-day01.qcow2 or fallback to IMAGE_PATH1604
108 format: qcow2
109
110 nodes:
111 - name: {{ HOSTNAME_CFG01 }}
112 role: salt_master
113 params:
114 vcpu: !os_env SLAVE_NODE_CPU, 4
115 memory: !os_env SLAVE_NODE_MEMORY, 8192
116 boot:
117 - hd
118 cloud_init_volume_name: iso
119 cloud_init_iface_up: ens3
120 volumes:
121 - name: system
122 capacity: !os_env NODE_VOLUME_SIZE, 150
123 backing_store: cfg01_day01_image
124 format: qcow2
125 - name: iso # Volume with name 'iso' will be used
126 # for store image with cloud-init metadata.
127 capacity: 1
128 format: raw
129 device: cdrom
130 bus: ide
131 cloudinit_meta_data: *cloudinit_meta_data
132 cloudinit_user_data: *cloudinit_user_data_cfg01
133
134 interfaces:
135 - label: ens3
136 l2_network_device: admin
137 interface_model: *interface_model
138 mac_address: !os_env ETH1_MAC_ADDRESS_CFG01
139 #- label: ens4
140 # l2_network_device: private
141 # interface_model: *interface_model
142 network_config:
143 ens3:
144 networks:
145 - admin
146 #ens4:
147 # networks:
148 # - private
149
150
151 - name: default
152 driver:
153 name: devops_driver_ironic
154 params:
155 os_auth_token: fake-token
156 ironic_url: !os_env IRONIC_URL # URL that will be used by fuel-devops
157 # to access Ironic API
158 # Agent URL that is accessible from deploying node when nodes
159 # are bootstrapped with PXE. Usually PXE/provision network address is used.
160 agent_kernel_url: !os_env IRONIC_AGENT_KERNEL_URL
161 agent_ramdisk_url: !os_env IRONIC_AGENT_RAMDISK_URL
162
163 network_pools:
164 admin: admin-pool01
165
166 nodes:
167 - name: {{ HOSTNAME_KVM01 }}
168 role: salt_minion
169 params:
170 ipmi_user: !os_env IPMI_USER
171 ipmi_password: !os_env IPMI_PASSWORD
172 ipmi_previlegies: OPERATOR
173 ipmi_host: !os_env IPMI_HOST_KVM01 # hostname or IP address
174 ipmi_lan_interface: lanplus
175 ipmi_port: 623
176
177 root_volume_name: system # see 'volumes' below
178 cloud_init_volume_name: iso # see 'volumes' below
179 cloud_init_iface_up: enp3s0f0 # see 'interfaces' below.
180 volumes:
181 - name: system
182 capacity: !os_env NODE_VOLUME_SIZE, 200
183
184 # The same as for agent URL, here is an URL to the image that should be
185 # used for deploy the node. It should also be accessible from deploying
186 # node when nodes are provisioned by agent. Usually PXE/provision network address is used.
187 source_image: !os_env IRONIC_SOURCE_IMAGE_URL
188 source_image_checksum: !os_env IRONIC_SOURCE_IMAGE_CHECKSUM
189
190 - name: iso # Volume with name 'iso' will be used
191 # for store image with cloud-init metadata.
192
193 cloudinit_meta_data: *cloudinit_meta_data
194 cloudinit_user_data: *cloudinit_user_data_1604
195
196 interfaces:
197 - label: enp3s0f0
198 l2_network_device: admin
199 mac_address: !os_env ETH0_MAC_ADDRESS_KVM01
200 - label: enp3s0f1
201 mac_address: !os_env ETH1_MAC_ADDRESS_KVM01
202
203 network_config:
204 enp3s0f0:
205 networks:
206 - admin
207 bond0:
208 networks:
209 - control
210 aggregation: active-backup
211 parents:
212 - enp3s0f1
213
214 - name: {{ HOSTNAME_KVM02 }}
215 role: salt_minion
216 params:
217 ipmi_user: !os_env IPMI_USER
218 ipmi_password: !os_env IPMI_PASSWORD
219 ipmi_previlegies: OPERATOR
220 ipmi_host: !os_env IPMI_HOST_KVM02 # hostname or IP address
221 ipmi_lan_interface: lanplus
222 ipmi_port: 623
223
224 root_volume_name: system # see 'volumes' below
225 cloud_init_volume_name: iso # see 'volumes' below
226 cloud_init_iface_up: enp3s0f0 # see 'interfaces' below.
227 volumes:
228 - name: system
229 capacity: !os_env NODE_VOLUME_SIZE, 200
230
231 # The same as for agent URL, here is an URL to the image that should be
232 # used for deploy the node. It should also be accessible from deploying
233 # node when nodes are provisioned by agent. Usually PXE/provision network address is used.
234 source_image: !os_env IRONIC_SOURCE_IMAGE_URL
235 source_image_checksum: !os_env IRONIC_SOURCE_IMAGE_CHECKSUM
236
237 - name: iso # Volume with name 'iso' will be used
238 # for store image with cloud-init metadata.
239
240 cloudinit_meta_data: *cloudinit_meta_data
241 cloudinit_user_data: *cloudinit_user_data_1604
242
243 interfaces:
244 - label: enp3s0f0
245 l2_network_device: admin
246 mac_address: !os_env ETH0_MAC_ADDRESS_KVM02
247 - label: enp3s0f1
248 mac_address: !os_env ETH1_MAC_ADDRESS_KVM02
249
250 network_config:
251 enp3s0f0:
252 networks:
253 - admin
254 bond0:
255 networks:
256 - control
257 aggregation: active-backup
258 parents:
259 - enp3s0f1
260
261 - name: {{ HOSTNAME_KVM03 }}
262 role: salt_minion
263 params:
264 ipmi_user: !os_env IPMI_USER
265 ipmi_password: !os_env IPMI_PASSWORD
266 ipmi_previlegies: OPERATOR
267 ipmi_host: !os_env IPMI_HOST_KVM03 # hostname or IP address
268 ipmi_lan_interface: lanplus
269 ipmi_port: 623
270
271 root_volume_name: system # see 'volumes' below
272 cloud_init_volume_name: iso # see 'volumes' below
273 cloud_init_iface_up: enp3s0f0 # see 'interfaces' below.
274 volumes:
275 - name: system
276 capacity: !os_env NODE_VOLUME_SIZE, 200
277
278 # The same as for agent URL, here is an URL to the image that should be
279 # used for deploy the node. It should also be accessible from deploying
280 # node when nodes are provisioned by agent. Usually PXE/provision network address is used.
281 source_image: !os_env IRONIC_SOURCE_IMAGE_URL
282 source_image_checksum: !os_env IRONIC_SOURCE_IMAGE_CHECKSUM
283
284 - name: iso # Volume with name 'iso' will be used
285 # for store image with cloud-init metadata.
286
287 cloudinit_meta_data: *cloudinit_meta_data
288 cloudinit_user_data: *cloudinit_user_data_1604
289
290 interfaces:
291 - label: enp3s0f0
292 l2_network_device: admin
293 mac_address: !os_env ETH0_MAC_ADDRESS_KVM03
294 - label: enp3s0f1
295 mac_address: !os_env ETH1_MAC_ADDRESS_KVM03
296
297 network_config:
298 enp3s0f0:
299 networks:
300 - admin
301 bond0:
302 networks:
303 - control
304 aggregation: active-backup
305 parents:
306 - enp3s0f1
307
308
309 - name: {{ HOSTNAME_CMP01 }}
310 role: salt_minion
311 params:
312 ipmi_user: !os_env IPMI_USER
313 ipmi_password: !os_env IPMI_PASSWORD
314 ipmi_previlegies: OPERATOR
315 ipmi_host: !os_env IPMI_HOST_CMP01 # hostname or IP address
316 ipmi_lan_interface: lanplus
317 ipmi_port: 623
318
319 root_volume_name: system # see 'volumes' below
320 cloud_init_volume_name: iso # see 'volumes' below
321 cloud_init_iface_up: enp3s0f0 # see 'interfaces' below.
322 volumes:
323 - name: system
324 capacity: !os_env NODE_VOLUME_SIZE, 200
325
326 # The same as for agent URL, here is an URL to the image that should be
327 # used for deploy the node. It should also be accessible from deploying
328 # node when nodes are provisioned by agent. Usually PXE/provision network address is used.
329 source_image: !os_env IRONIC_SOURCE_IMAGE_URL
330 source_image_checksum: !os_env IRONIC_SOURCE_IMAGE_CHECKSUM
331
332 - name: iso # Volume with name 'iso' will be used
333 # for store image with cloud-init metadata.
334
335 cloudinit_meta_data: *cloudinit_meta_data
336 cloudinit_user_data: *cloudinit_user_data_1604_hwe
337
338 interfaces:
339 - label: enp3s0f0
340 l2_network_device: admin
341 mac_address: !os_env ETH0_MAC_ADDRESS_CMP01
342 - label: enp3s0f1
343 mac_address: !os_env ETH1_MAC_ADDRESS_CMP01
344 - label: enp5s0f0
345 mac_address: !os_env ETH2_MAC_ADDRESS_CMP01
346 features: ['dpdk', 'dpdk_pci: 0000:05:00.0']
347 - label: enp5s0f1
348 mac_address: !os_env ETH3_MAC_ADDRESS_CMP01
349 features: ['dpdk', 'dpdk_pci: 0000:05:00.1']
350
351 network_config:
352 enp3s0f0:
353 networks:
354 - admin
355 bond0:
356 networks:
357 - control
358 aggregation: active-backup
359 parents:
360 - enp3s0f0
361 - enp3s0f1
362
363
364
365 - name: {{ HOSTNAME_CMP02 }}
366 role: salt_minion
367 params:
368 ipmi_user: !os_env IPMI_USER
369 ipmi_password: !os_env IPMI_PASSWORD
370 ipmi_previlegies: OPERATOR
371 ipmi_host: !os_env IPMI_HOST_CMP02 # hostname or IP address
372 ipmi_lan_interface: lanplus
373 ipmi_port: 623
374
375 root_volume_name: system # see 'volumes' below
376 cloud_init_volume_name: iso # see 'volumes' below
377 cloud_init_iface_up: enp3s0f0 # see 'interfaces' below.
378 volumes:
379 - name: system
380 capacity: !os_env NODE_VOLUME_SIZE, 200
381
382 # The same as for agent URL, here is an URL to the image that should be
383 # used for deploy the node. It should also be accessible from deploying
384 # node when nodes are provisioned by agent. Usually PXE/provision network address is used.
385 source_image: !os_env IRONIC_SOURCE_IMAGE_URL
386 source_image_checksum: !os_env IRONIC_SOURCE_IMAGE_CHECKSUM
387
388 - name: iso # Volume with name 'iso' will be used
389 # for store image with cloud-init metadata.
390
391 cloudinit_meta_data: *cloudinit_meta_data
392 cloudinit_user_data: *cloudinit_user_data_1604_hwe
393
394 interfaces:
395 - label: enp3s0f0
396 l2_network_device: admin
397 mac_address: !os_env ETH0_MAC_ADDRESS_CMP02
398 - label: enp3s0f1
399 mac_address: !os_env ETH1_MAC_ADDRESS_CMP02
400 - label: enp5s0f0
401 mac_address: !os_env ETH2_MAC_ADDRESS_CMP02
402 features: ['dpdk', 'dpdk_pci: 0000:05:00.0']
403 - label: enp5s0f1
404 mac_address: !os_env ETH3_MAC_ADDRESS_CMP02
405 features: ['dpdk', 'dpdk_pci: 0000:05:00.1']
406 network_config:
407 enp3s0f0:
408 networks:
409 - admin
410 bond0:
411 networks:
412 - control
413 aggregation: active-backup
414 parents:
415 - enp3s0f0
416 - enp3s0f1
417
418
419 - name: {{ HOSTNAME_GTW01 }}
420 role: salt_minion
421 params:
422 ipmi_user: !os_env IPMI_USER
423 ipmi_password: !os_env IPMI_PASSWORD
424 ipmi_previlegies: OPERATOR
425 ipmi_host: !os_env IPMI_HOST_GTW01 # hostname or IP address
426 ipmi_lan_interface: lanplus
427 ipmi_port: 623
428
429 root_volume_name: system # see 'volumes' below
430 cloud_init_volume_name: iso # see 'volumes' below
431 cloud_init_iface_up: enp3s0f0 # see 'interfaces' below.
432 volumes:
433 - name: system
434 capacity: !os_env NODE_VOLUME_SIZE, 200
435
436 # The same as for agent URL, here is an URL to the image that should be
437 # used for deploy the node. It should also be accessible from deploying
438 # node when nodes are provisioned by agent. Usually PXE/provision network address is used.
439 source_image: !os_env IRONIC_SOURCE_IMAGE_URL
440 source_image_checksum: !os_env IRONIC_SOURCE_IMAGE_CHECKSUM
441
442 - name: iso # Volume with name 'iso' will be used
443 # for store image with cloud-init metadata.
444
445 cloudinit_meta_data: *cloudinit_meta_data
446 cloudinit_user_data: *cloudinit_user_data_1604_hwe
447
448 interfaces:
449 - label: enp3s0f0
450 l2_network_device: admin
451 mac_address: !os_env ETH0_MAC_ADDRESS_GTW01
452 - label: enp3s0f1
453 mac_address: !os_env ETH1_MAC_ADDRESS_GTW01
454
455 network_config:
456 enp3s0f0:
457 networks:
458 - admin
459 bond0:
460 networks:
461 - control
462 aggregation: active-backup
463 parents:
464 - enp3s0f1
465
466 - name: {{ HOSTNAME_GTW02 }}
467 role: salt_minion
468 params:
469 ipmi_user: !os_env IPMI_USER
470 ipmi_password: !os_env IPMI_PASSWORD
471 ipmi_previlegies: OPERATOR
472 ipmi_host: !os_env IPMI_HOST_GTW02 # hostname or IP address
473 ipmi_lan_interface: lanplus
474 ipmi_port: 623
475
476 root_volume_name: system # see 'volumes' below
477 cloud_init_volume_name: iso # see 'volumes' below
478 cloud_init_iface_up: enp3s0f0 # see 'interfaces' below.
479 volumes:
480 - name: system
481 capacity: !os_env NODE_VOLUME_SIZE, 200
482
483 # The same as for agent URL, here is an URL to the image that should be
484 # used for deploy the node. It should also be accessible from deploying
485 # node when nodes are provisioned by agent. Usually PXE/provision network address is used.
486 source_image: !os_env IRONIC_SOURCE_IMAGE_URL
487 source_image_checksum: !os_env IRONIC_SOURCE_IMAGE_CHECKSUM
488
489 - name: iso # Volume with name 'iso' will be used
490 # for store image with cloud-init metadata.
491
492 cloudinit_meta_data: *cloudinit_meta_data
493 cloudinit_user_data: *cloudinit_user_data_1604_hwe
494
495 interfaces:
496 - label: enp3s0f0
497 l2_network_device: admin
498 mac_address: !os_env ETH0_MAC_ADDRESS_GTW02
499 - label: enp3s0f1
500 mac_address: !os_env ETH1_MAC_ADDRESS_GTW02
501
502 network_config:
503 enp3s0f0:
504 networks:
505 - admin
506 bond0:
507 networks:
508 - control
509 aggregation: active-backup
510 parents:
511 - enp3s0f1