47 lines
1.3 KiB
Django/Jinja
47 lines
1.3 KiB
Django/Jinja
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
namespace: metallb-system
|
|
name: config
|
|
data:
|
|
config: |
|
|
{% if metallb_peers | length > 0 %}
|
|
peers:
|
|
{% for peer in metallb_peers %}
|
|
- peer-address: {{ peer.peer_address }}
|
|
peer-asn: {{ peer.peer_asn }}
|
|
my-asn: {{ peer.my_asn }}
|
|
{% if peer.password is defined %}
|
|
password: "{{ peer.password }}"
|
|
{% endif %}
|
|
{% if peer.source_address is defined %}
|
|
source-address: {{ peer.source_address }}
|
|
{% endif %}
|
|
{% if peer.node_selectors is defined %}
|
|
node-selectors:
|
|
{{ peer.node_selectors | to_yaml(indent=2, width=1337) | indent(8) }}
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% endif %}
|
|
address-pools:
|
|
- name: {{ metallb_pool_name }}
|
|
protocol: {{ metallb_protocol }}
|
|
addresses:
|
|
{% for ip_range in metallb_ip_range %}
|
|
- {{ ip_range }}
|
|
{% endfor %}
|
|
{% if matallb_auto_assign == false %}
|
|
auto-assign: false
|
|
{% endif %}
|
|
{% if metallb_additional_address_pools is defined %}{% for pool in metallb_additional_address_pools %}
|
|
- name: {{ pool }}
|
|
protocol: {{ metallb_additional_address_pools[pool].protocol }}
|
|
addresses:
|
|
{% for ip_range in metallb_additional_address_pools[pool].ip_range %}
|
|
- {{ ip_range }}
|
|
{% endfor %}
|
|
auto-assign: {{ metallb_additional_address_pools[pool].auto_assign }}
|
|
{% endfor %}
|
|
{% endif %}
|