############################################################################## # Copyright (c) 2018 Mirantis Inc., Enea AB and others. # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## {%- import 'net_map.j2' as nm with context %} {%- import 'net_macros.j2' as ma with context %} --- classes: - system.reclass.storage.salt {%- if nm.cluster.has_baremetal_nodes %} - system.reclass.storage.system.infra_maas_single {%- endif %} - system.salt.master.api - system.salt.master.single - system.salt.minion.ca.salt_master parameters: _param: salt_master_environment_repository: "https://github.com/tcpcloud" salt_master_environment_revision: master reclass_data_repository: local salt_master_base_environment: prd # yamllint disable-line rule:line-length salt_api_password_hash: "$6$sGnRlxGf$al5jMCetLP.vfI/fTl3Z0N7Za1aeiexL487jAtyRABVfT3NlwZxQGVhO7S1N8OwS/34VHYwZQA8lkXwKMN/GS1" infra_maas_system_codename: bionic linux: system: user: salt: home: /home/salt salt: master: accept_policy: open_mode file_recv: true minion: mine: module: x509.get_pem_entries: ['/etc/pki/all_cas/*'] reclass: storage: data_source: engine: local {%- if nm.cmp_nodes > 0 %} node: # We support per-node (not only per-role) compute configuration via IDF {%- for cmp in range(1, nm.cmp_nodes + 1) %} {%- set n = '%02d' | format(cmp) %} {%- set i = nm.cmp001.idx + cmp - 1 %} {%- set admin = nm.net_admin_hosts | length + nm.start_ip[nm.net_admin] + loop.index %} {%- set mgmt = nm.net_mgmt_hosts | length + nm.start_ip[nm.net_mgmt] + loop.index %} {%- set pub = nm.net_public_hosts | length + nm.start_ip[nm.net_public] + loop.index %} {%- set pri = nm.net_private_hosts | length + nm.start_ip[nm.net_private] + loop.index %} openstack_compute_node{{ n }}: name: cmp{{ '%03d' | format(cmp) }} domain: ${_param:cluster_domain} classes: - cluster.${_param:cluster_name}.openstack.compute params: pxe_admin_address: {{ nm.net_admin | ipnet_hostaddr(admin) }} pxe_admin_interface: {{ conf.idf.fuel.network.node[i].interfaces[nm.idx_admin] }} single_address: {{ nm.net_mgmt | ipnet_hostaddr(mgmt) }} tenant_address: {{ nm.net_private | ipnet_hostaddr(pri) }} external_address: {{ nm.net_public | ipnet_hostaddr(pub) }} salt_master_host: ${_param:reclass_config_master} linux_system_codename: bionic {#- No partial defaults, all or nothing. Defaults tuned for lf-pod2. #} {%- if '-ovs-' in conf.MCP_DEPLOY_SCENARIO or '-fdio-' in conf.MCP_DEPLOY_SCENARIO %} {%- set private_speed = conf.nodes[i].interfaces[nm.idx_private].speed %} {%- set private_pci = conf.idf.fuel.network.node[i].busaddr[nm.idx_private] %} {%- if conf.idf.fuel.reclass is defined %} {%- if conf.idf.fuel.reclass.node[i].compute_params.dpdk is defined %} {#- Can't dump json here due to dpdk0_* below, explicitly create yaml #} {%- set _dpdk = conf.idf.fuel.reclass.node[i].compute_params.dpdk %} {%- set private_drv = _dpdk.dpdk0_driver %} {%- for _i in _dpdk %} {{ _i }}: '"{{ _dpdk[_i] }}"' {%- endfor %} {%- endif %} {%- else %} compute_hugepages_size: 2M compute_hugepages_count: 13312 compute_hugepages_mount: /mnt/hugepages_2M compute_kernel_isolcpu: 3,8,9,10,11 compute_dpdk_driver: uio compute_ovs_pmd_cpu_mask: '"0x708"' compute_ovs_dpdk_socket_mem: '"4096,4096"' compute_ovs_dpdk_lcore_mask: '"0x800"' compute_ovs_memory_channels: '"2"' dpdk0_driver: igb_uio dpdk0_n_rxq: 2 {%- endif %} dpdk0_name: {{ conf.idf.fuel.network.node[i].interfaces[nm.idx_private] }} dpdk0_pci: '"{{ private_pci }}"' dpdk0_vpp: {{ ma.vpp_interface_str(private_speed, private_pci, private_drv or '') }} {%- else %} {%- if conf.idf.fuel.reclass is defined %} {%- if conf.idf.fuel.reclass.node[i].compute_params.common is defined %} {%- set _common = conf.idf.fuel.reclass.node[i].compute_params.common %} {%- for _i in _common %} {{ _i }}: '"{{ _common[_i] }}"' {%- endfor %} {%- else %} dummy_value: ~ {%- endif %} {%- else %} compute_hugepages_size: 1G compute_hugepages_count: 16 compute_hugepages_mount: /mnt/hugepages_1G {%- endif %} {%- endif %} {%- endfor %} {%- endif %}