[ha] cmp: Fix duplicate PXE/admin interface IDs
[fuel.git] / mcp / reclass / classes / cluster / mcp-common-ha / infra / maas.yml.j2
1 ##############################################################################
2 # Copyright (c) 2018 Mirantis Inc., 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 ##############################################################################
8 {%- import 'net_map.j2' as nm with context %}
9 ---
10 # NOTE: pod_config is generated and transferred into its final location on
11 # cfg01 only during deployment to prevent leaking sensitive data
12 classes:
13   - system.maas.region.single
14   - service.maas.cluster.single
15   - cluster.mcp-common-ha.include.lab_proxy_pdf
16   - cluster.all-mcp-arch-common.opnfv.pod_config
17 parameters:
18   _param:
19     mcpcontrol_interface: ${_param:opnfv_fn_vm_primary_interface}
20     primary_interface: ${_param:opnfv_fn_vm_secondary_interface}
21     pxe_admin_interface: ${_param:opnfv_fn_vm_tertiary_interface}
22     interface_mtu: 1500
23     # MaaS has issues using MTU > 1500 for PXE interface
24     pxe_admin_interface_mtu: 1500
25     linux_system_codename: xenial
26     maas_admin_username: opnfv
27     maas_admin_password: opnfv_secret
28     maas_db_password: opnfv_secret
29     dns_server01: '{{ nm.dns_public[0] }}'
30     single_address: ${_param:infra_maas_node01_deploy_address}
31     hwe_kernel: 'hwe-16.04'
32     opnfv_maas_timeout_comissioning: {{ nm.maas_timeout_comissioning }}
33     opnfv_maas_timeout_deploying: {{ nm.maas_timeout_deploying }}
34   maas:
35     region:
36       subnets:
37         {{ nm.net_admin }}:
38           name: {{ nm.net_admin }}
39           cidr: {{ nm.net_admin }}
40           gateway_ip: ${_param:single_address}
41           iprange:
42             start: {{ nm.net_admin_pool_start }}
43             end: {{ nm.net_admin_pool_end }}
44             type: dynamic
45           vlans:
46             untagged:
47               vid: 0
48               dhcp_on: true
49               primary_rack: ${_param:infra_maas_node01_hostname}
50       # Space-separated list of dpkg architectures to be supported by MaaS
51       opnfv_arches:{%- for arch in nm.cluster.arch %} {{ arch | dpkg_arch }}{%- endfor %}
52       sshprefs:
53         - '{{ conf.MAAS_SSH_KEY }}'
54 {%- if 'aarch64' in nm.cluster.arch %}
55       package_repositories:
56         armband:
57           name: armband
58           enabled: '1'
59           url: 'http://linux.enea.com/mcp-repos/${_param:openstack_version}/${_param:linux_system_codename}'
60           distributions: '${_param:openstack_version}-armband'
61           components: 'main'
62           arches: 'arm64'
63           key: &armband_key |
64             -----BEGIN PGP PUBLIC KEY BLOCK-----
65             Version: GnuPG v2.0.14 (GNU/Linux)
66
67             mQENBFagAroBCADWboNIjuF6lB1mWv2+EbvqY3lKl5mLKhr2DnSUkKeHUPBv8gNM
68             qK8Q00AMIyPiyEhgjA+dWizZ+5aBgxoiY7oMeLJ2Xym36U/8SYq2BWd3SGCbMNoz
69             SJDxDUSM/HFVs6atF1M3DY9oN65hSVnu4uy5Tu6asf6k4rhAyk0z4+pRcPBCu2vq
70             mnGi3COM/+9PShrEKeVOx5W2vRJywUFuq8EDvQnRoJ0GvM28JiJIanw17YwIPxhg
71             BKZVpZjan5X+ihVMXwA2h/G/FS5Omhd50RqV6LWSYs94VJJgYqHx8UMm7izcxI+P
72             ct3IcbD195bPbJ+SbuiFe45ZLsdY1MyGiU2BABEBAAG0K0VuZWEgQXJtYmFuZCBE
73             ZXZvcHMgVGVhbSA8YXJtYmFuZEBlbmVhLmNvbT6JATgEEwECACICGwMGCwkIBwMC
74             BhUIAgkKCwQWAgMBAh4BAheABQJaY3bYAAoJEN6rkLp5irHRoQMH/0PYl0A/6eWw
75             nQ/szhEFrr76Ln6wA4vEO+PiuWj9kTkZM2NaCnkisrIuHSPIVvOLfFmztbE6sKGe
76             t+a2b7Jqw48DZ/gq508aZE4Q307ookxdCOrzIu/796hFO34yXg3sqZoJh3VmKIjY
77             4DL8yG1iAiQ5vOw3IFWQnATwIZUgaCcjmE7HGap+9ePuJfFuQ8mIG5cy28t8qocx
78             AB/B2tucfBMwomYxKqgbLI5AG7iSt58ajvrrNa9f8IX7Ihj/jiuXhUwX+geEp98K
79             IWVI1ftEthZvfBpZW4BS98J4z//dEPi31L4jb9RQXq3afF2RpXchDeUN85bW45nu
80             W/9PMAlgE/U=
81             =m+zE
82             -----END PGP PUBLIC KEY BLOCK-----
83 {%- endif %}
84       machines:
85       {%- set pxe_interface = conf.idf.net_config.admin.interface %}
86       {#- We only support exactly 5 nodes for now, hardcoded order #}
87       {%- set node_roles = ['kvm01', 'kvm02', 'kvm03', 'cmp001', 'cmp002'] %}
88       {%- for node in conf.nodes %}
89       {%- if node.node.type == 'baremetal' %}
90         {{ node_roles[loop.index0] }}:
91           interface:
92             mac: {{ node.interfaces[pxe_interface].mac_address }}
93           power_parameters:
94             power_address: {{ node.remote_management.address.rsplit('/')[0] }}
95             power_password: {{ node.remote_management.pass }}
96             power_type: {{ node.remote_management.type }}
97             power_user: {{ node.remote_management.user }}
98           architecture: {{ node.node.arch | dpkg_arch }}/generic
99           distro_series: xenial
100           hwe_kernel: ${_param:hwe_kernel}
101           {%- if loop.index0 >= node_roles.index('cmp001')  %}
102           disk_layout:
103             type: lvm
104             root_device: sda
105             volume_group: vgroot
106             volume_name: lvroot
107             volume_size: 100
108           {%- endif %}
109       {%- endif %}
110       {%- endfor %}
111       salt_master_ip: ${_param:reclass_config_master}
112       domain: ${_param:cluster_domain}
113       maas_config:
114         commissioning_distro_series: 'xenial'
115         default_distro_series: 'xenial'
116         default_osystem: 'ubuntu'
117         default_storage_layout: 'lvm'
118         enable_http_proxy: true
119         disk_erase_with_secure_erase: false
120         dnssec_validation: 'no'
121         enable_third_party_drivers: true
122         network_discovery: 'enabled'
123         default_min_hwe_kernel: ${_param:hwe_kernel}
124     cluster:
125       saltstack_repo_xenial: "http://repo.saltstack.com/apt/ubuntu/16.04/amd64/2017.7/ xenial main"
126   linux:
127     network:
128       interface:
129         mcpcontrol_interface:
130           enabled: true
131           name: ${_param:mcpcontrol_interface}
132           type: eth
133           proto: dhcp
134         primary_interface:
135           enabled: true
136           name: ${_param:primary_interface}
137           mtu: ${_param:interface_mtu}
138           proto: static
139           address: ${_param:infra_maas_node01_address}
140           netmask: ${_param:opnfv_net_mgmt_mask}
141           type: eth
142         pxe_admin_interface:
143           enabled: true
144           name: ${_param:pxe_admin_interface}
145           mtu: ${_param:pxe_admin_interface_mtu}
146           proto: static
147           address: ${_param:single_address}
148           netmask: ${_param:opnfv_net_admin_mask}
149           type: eth