Compare commits

...

2 commits

Author SHA1 Message Date
0ed4973894 access: get mgmt gateway from custom field on prefix
Mainly so we can drop the gateway custom field from NetBox interfaces.
2025-03-24 18:13:55 +01:00
9c35f0fa25 fabric: get mgmt gateway from custom field on prefix
Mainly so we can add IPv6 addresses to mgmt interfaces.
2025-03-24 18:13:20 +01:00
3 changed files with 14 additions and 8 deletions

View file

@ -68,8 +68,10 @@ interface {{ iface.name }}
{# store management address and gateway for later #}
{%- if iface.mgmt_only and iface.ip_addresses %}
{% set mgmt.ip = iface.ip_addresses[0].address %}
{% if iface.custom_fields.gateway %}
{% set mgmt.gw = iface.custom_fields.gateway.address %}
{% set subnet = mgmt.ip | ipaddr('subnet') %}
{% set prefix = prefixes | selectattr('prefix', '==', subnet) | first %}
{% if prefix.custom_fields.gateway %}
{% set mgmt.gw = prefix.custom_fields.gateway.address %}
{% endif %}
{% endif %}

View file

@ -18,8 +18,10 @@ interface {{ iface.name }}
{% if iface.ip_addresses %}
{% set address = iface.ip_addresses | map(attribute='address') | first %}
ip address {{ address | ipaddr('address') }} {{ address | ipaddr('netmask') }}
{% if iface.custom_fields.gateway %}
gateway {{ iface.custom_fields.gateway.address | ipaddr('address') }}
{% set subnet = address | ipaddr('subnet') %}
{% set prefix = prefixes | selectattr('prefix', '==', subnet) | first %}
{% if prefix.custom_fields.gateway %}
gateway {{ prefix.custom_fields.gateway.address | ipaddr('address') }}
{%- endif %}
{%- endif %}

View file

@ -14,11 +14,13 @@ iface {{ iface.name }}
vrf mgmt
ip-forward off
ip6-forward off
{% for ip in iface.ip_addresses | rejectattr('address', 'match', '^fe80::.*/64$' ) %}
{% for ip in iface.ip_addresses %}
address {{ ip.address }}
{% endfor %}
{% if iface.custom_fields.gateway %}
gateway {{ iface.custom_fields.gateway.address | ipaddr('address') }}
{% set subnet = ip.address | ipaddr('subnet') %}
{% set prefix = prefixes | selectattr('prefix', '==', subnet) | first %}
{% if prefix.custom_fields.gateway %}
gateway {{ prefix.custom_fields.gateway.address | ipaddr('address') }}
{% endif %}
{% endfor %}
{% endfor %}