access: get mgmt gateway from custom field on prefix

Mainly so we can drop the gateway custom field from NetBox interfaces.
This commit is contained in:
Timotej Lazar 2025-03-24 18:13:55 +01:00
parent 9c35f0fa25
commit 0ed4973894
2 changed files with 8 additions and 4 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 %}