summaryrefslogtreecommitdiffstats
path: root/config/installers/fuel/net_map.j2
blob: c3ff6cb7accfdf6c2394339cc76bb5fec7fd8688 (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
##############################################################################
# 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
##############################################################################
{#- NOTE: All same role (e.g. compute) roles will share the same mapping #}

{#- Until we support per-node configuration, we only collect data for the
    first node in each role. Currently, there's no role mapping in PDF/IDF,
    so we default to controller = first node in PDF, compute = 4th #}

{#- ctl maps to MCP kvm on baremetal, ctl + gtw etc. on virtual #}
{%- set ctl01 = {'idx': 0} %}
{%- set cmp001 = {'idx': 3} %}

{#- net_config v1.0 only supports global network-to-interface-index mapping,
    which is incovenient for PODs with different computes (e.g. less NICs).
    This can be worked around by tweaking the NIC definition order in PDF.
    The same observation applies to vlan tags, at least for now. #}

{#- Determine interface index for each network (plumbing vars) #}
{%- set idx_mcp = 0 %} {#- mcpcontrol network is hard set on first interface #}
{%- set idx_admin = conf.idf.net_config.admin.interface %}
{%- set idx_mgmt = conf.idf.net_config.mgmt.interface %}
{%- set idx_private = conf.idf.net_config.private.interface %}
{%- set idx_public = conf.idf.net_config.public.interface %}

{#- VLAN for each network (only untagged 'admin' is supported by MaaS config!) #}
{%- set vlan_admin = conf.idf.net_config.admin.vlan %}
{%- set vlan_mgmt = conf.idf.net_config.mgmt.vlan %}
{%- set vlan_private = conf.idf.net_config.private.vlan %}
{%- set vlan_public = conf.idf.net_config.public.vlan %}

{#- Physical interface OS name for each network (e.g. em1, enp1s0f1) #}
{%- for role in [ctl01, cmp001] %}
    {%- set node = conf.idf.fuel.network.node[role.idx] %}
    {%- set _ = role.update({
        'nic_mcp': node.interfaces[idx_mcp],
        'nic_admin': node.interfaces[idx_admin],
        'nic_mgmt': node.interfaces[idx_mgmt],
        'nic_private': node.interfaces[idx_private],
        'nic_public': node.interfaces[idx_public],
        'bus_private': node.busaddr[idx_private]}) %}
    {#- PCI addresses are only used on computes for DPDK on private net #}
{%- endfor %}