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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
#!/bin/bash -e
# shellcheck disable=SC2034
##############################################################################
# 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
##############################################################################
#
# Data derived from XDF (PDF/IDF/SDF/etc), used as input in deploy.sh
#
{%- set arch = conf[conf.MCP_JUMP_ARCH] -%}
{%- macro bash_arr(_l) -%}
({%- for n in _l -%}'{{ n }}' {% endfor -%})
{%- endmacro -%}
{#- Pack list as `sep`-separated string, replacing spaces with '|' -#}
{%- macro pack(x = [], sep = ',') -%}
{{ x | join(sep) | replace(' ', '|') }}
{%- endmacro -%}
{#- Pack all vnode data as string -#}
{%- macro serialize_vnodes() -%}
{%- set V = conf.virtual -%}
{%- set arr = [] -%}
{%- for n in V.nodes -%}
{%- if n not in V -%}{%- do V.update({n: {}}) -%}{%- endif -%}
{%- do arr.append(pack([n, V[n].ram or arch.default.ram,
V[n].vcpus or arch.default.vcpus])) -%}
{%- endfor -%}
'{{ pack(arr, '|') }}'
{%- endmacro -%}
{#- Pack apt_pkg data as string -#}
{%- macro serialize_apt_pkg() -%}
{%- set arr = [] -%}
{%- set sections = [arch.common] -%}
{%- if conf.MCP_VCP -%}
{%- do sections.append(arch.control) -%}
{%- endif -%}
{%- for c in sections -%}
{%- do arr.append(pack([pack(c.apt['keys']), pack(c.apt.repos),
pack(c.pkg.install), pack(c.pkg.remove)], '^')) -%}
{%- endfor -%}
'{{ pack(arr, '^') }}'
{%- endmacro -%}
{%- set bridges = conf.idf.fuel.jumphost.bridges %}
# Determine bridge names based on IDF, where all bridges are now mandatory
OPNFV_BRIDGES=(
'{{ bridges.admin or "pxebr" }}'
'{{ bridges.mgmt or "mgmt" }}'
'{{ bridges.private or "internal" }}'
'{{ bridges.public or "public" }}'
)
export CLUSTER_DOMAIN={{ conf.cluster.domain }}
cluster_states={{ bash_arr(conf.cluster.states) }}
virtual_nodes={{ bash_arr(conf.virtual.nodes) }}
base_image={{ arch.base_image }}
# Serialize vnode data as '<name0>,<ram0>,<vcpu0>|<name1>,<ram1>,<vcpu1>[...]'
virtual_nodes_data={{ serialize_vnodes() }}
# Serialize repos, packages to (pre-)install/remove for:
# - foundation node VM base image (virtual: all VMs, baremetal: cfg01|mas01)
# - virtualized control plane VM base image (only when VCP is used)
virtual_repos_pkgs={{ serialize_apt_pkg() }}
|