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