Skip to content

Commit 5e6baa9

Browse files
committed
Support non-root VDOM (#44)
1 parent d70c2a8 commit 5e6baa9

File tree

5 files changed

+43
-18
lines changed

5 files changed

+43
-18
lines changed

dynamic-bgp-on-lo/01-Edge-Underlay.j2

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,17 @@
1010
{% set multi_vrf = true if project.regions[region].vrfs|default([]) else false %}
1111
{% set pe_vrf = project.pe_vrf|default(1) if multi_vrf else 0 %}
1212

13+
{# Options: project-wide defaults #}
14+
{% set options = {
15+
'vdom': project.vdom|default('root')
16+
}
17+
%}
18+
{# Options can be selectively overriden in profile #}
19+
{% set _ = options.update(
20+
project.profiles[profile].options|default({})
21+
)
22+
%}
23+
1324
{# General settings #}
1425
config system settings
1526
set location-id {{ loopback|ipaddr('address') }}
@@ -69,7 +80,7 @@ config system interface
6980

7081
{# VLAN #}
7182
{% if i.vlanid is defined and i.parent is defined %}
72-
set vdom "root"
83+
set vdom {{ options.vdom }}
7384
set type vlan
7485
set vlanid {{ i.vlanid }}
7586
set interface {{ i.parent }}
@@ -78,7 +89,7 @@ config system interface
7889
{# Aggregate (LAG) #}
7990
{% set lag_members = [] %}
8091
{% if i.aggregate|default(false) %}
81-
set vdom "root"
92+
set vdom {{ options.vdom }}
8293
set type aggregate
8394
{% for j in project.profiles[profile].interfaces
8495
if j.role == 'lag_member' and
@@ -152,7 +163,7 @@ end
152163
{% if i.role == 'wan' and i.src_ip is defined %}
153164
config system interface
154165
edit "Lo-wan{{ loop.index }}"
155-
set vdom "root"
166+
set vdom {{ options.vdom }}
156167
set type loopback
157168
set vrf {{ pe_vrf }}
158169
set ip {{ i.src_ip|ipaddr('address') }}/32
@@ -167,7 +178,7 @@ end
167178
{# Main Loopback #}
168179
config system interface
169180
edit "Lo"
170-
set vdom "root"
181+
set vdom {{ options.vdom }}
171182
set type loopback
172183
set vrf {{ pe_vrf }}
173184
set ip {{ loopback|ipaddr('address') }}/32

dynamic-bgp-on-lo/01-Hub-Underlay.j2

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,17 @@
1010
{% set multi_vrf = true if project.regions[region].vrfs|default([]) else false %}
1111
{% set pe_vrf = project.pe_vrf|default(1) if multi_vrf else 0 %}
1212

13+
{# Options: project-wide defaults #}
14+
{% set options = {
15+
'vdom': project.vdom|default('root')
16+
}
17+
%}
18+
{# Options can be selectively overriden in profile #}
19+
{% set _ = options.update(
20+
project.profiles[profile].options|default({})
21+
)
22+
%}
23+
1324
{# General settings #}
1425
config system settings
1526
set location-id {{ loopback|ipaddr('address') }}
@@ -41,7 +52,7 @@ config system interface
4152

4253
{# VLAN #}
4354
{% if i.vlanid is defined and i.parent is defined %}
44-
set vdom "root"
55+
set vdom {{ options.vdom }}
4556
set type vlan
4657
set vlanid {{ i.vlanid }}
4758
set interface {{ i.parent }}
@@ -50,7 +61,7 @@ config system interface
5061
{# Aggregate (LAG) #}
5162
{% set lag_members = [] %}
5263
{% if i.aggregate|default(false) %}
53-
set vdom "root"
64+
set vdom {{ options.vdom }}
5465
set type aggregate
5566
{% for j in project.profiles[profile].interfaces
5667
if j.role == 'lag_member' and
@@ -77,7 +88,7 @@ end
7788
{% if i.role == 'wan' and i.src_ip is defined %}
7889
config system interface
7990
edit "Lo-wan{{ loop.index }}"
80-
set vdom "root"
91+
set vdom {{ options.vdom }}
8192
set type loopback
8293
set vrf {{ pe_vrf }}
8394
set ip {{ i.src_ip|ipaddr('address') }}/32
@@ -92,15 +103,15 @@ end
92103
{# Loopback for incoming health-check probes #}
93104
config system interface
94105
edit "Lo-HC"
95-
set vdom "root"
106+
set vdom {{ options.vdom }}
96107
set type loopback
97108
set vrf {{ pe_vrf }}
98109
set ip {{ project.hub_hc_server|default('10.200.99.1') }}/32
99110
set allowaccess ping
100111
next
101112
{# Main Loopback #}
102113
edit "Lo"
103-
set vdom "root"
114+
set vdom {{ options.vdom }}
104115
set type loopback
105116
set vrf {{ pe_vrf }}
106117
set ip {{ loopback|ipaddr('address') }}/32

dynamic-bgp-on-lo/04-Edge-InterVRF.j2

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
{# Options: project-wide defaults #}
1515
{% set options = {
16+
'vdom': project.vdom|default('root'),
1617
'leak_npu_link': '',
1718
'force_cleanup': project.force_cleanup|default(false)
1819
}
@@ -53,14 +54,14 @@
5354
edit "vrf{{ i.vrf }}_leak0"
5455
set type vdom-link
5556
set vrf {{ pe_vrf }}
56-
set vdom 'root'
57+
set vdom {{ options.vdom }}
5758
set ip {{ vrf_leak_summary|ipaddr((i.vrf * 2 + 1))|ipaddr('address') }}/31
5859
set allowaccess ping
5960
next
6061
edit "vrf{{ i.vrf }}_leak1"
6162
set type vdom-link
6263
set vrf {{ i.vrf }}
63-
set vdom 'root'
64+
set vdom {{ options.vdom }}
6465
set ip {{ vrf_leak_summary|ipaddr((i.vrf * 2))|ipaddr('address') }}/31
6566
set allowaccess ping
6667
next
@@ -73,7 +74,7 @@
7374
set vlanid {{ 4000 + i.vrf }}
7475
set interface "{{options.leak_npu_link}}0"
7576
set vrf {{ pe_vrf }}
76-
set vdom 'root'
77+
set vdom {{ options.vdom }}
7778
set mode static
7879
set ip {{ vrf_leak_summary|ipaddr((i.vrf * 2 + 1))|ipaddr('address') }}/31
7980
set allowaccess ping
@@ -83,7 +84,7 @@
8384
set vlanid {{ 4000 + i.vrf }}
8485
set interface "{{options.leak_npu_link}}1"
8586
set vrf {{ i.vrf }}
86-
set vdom 'root'
87+
set vdom {{ options.vdom }}
8788
set mode static
8889
set ip {{ vrf_leak_summary|ipaddr((i.vrf * 2))|ipaddr('address') }}/31
8990
set allowaccess ping

dynamic-bgp-on-lo/06-Hub-InterVRF.j2

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
{# Options: project-wide defaults #}
1515
{% set options = {
16+
'vdom': project.vdom|default('root'),
1617
'leak_npu_link': '',
1718
'force_cleanup': project.force_cleanup|default(false)
1819
}
@@ -53,14 +54,14 @@
5354
edit "vrf{{ i.vrf }}_leak0"
5455
set type vdom-link
5556
set vrf {{ pe_vrf }}
56-
set vdom 'root'
57+
set vdom {{ options.vdom }}
5758
set ip {{ vrf_leak_summary|ipaddr((i.vrf * 2 + 1))|ipaddr('address') }}/31
5859
set allowaccess ping
5960
next
6061
edit "vrf{{ i.vrf }}_leak1"
6162
set type vdom-link
6263
set vrf {{ i.vrf }}
63-
set vdom 'root'
64+
set vdom {{ options.vdom }}
6465
set ip {{ vrf_leak_summary|ipaddr((i.vrf * 2))|ipaddr('address') }}/31
6566
set allowaccess ping
6667
next
@@ -73,7 +74,7 @@
7374
set vlanid {{ 4000 + i.vrf }}
7475
set interface "{{options.leak_npu_link}}0"
7576
set vrf {{ pe_vrf }}
76-
set vdom 'root'
77+
set vdom {{ options.vdom }}
7778
set mode static
7879
set ip {{ vrf_leak_summary|ipaddr((i.vrf * 2 + 1))|ipaddr('address') }}/31
7980
set allowaccess ping
@@ -83,7 +84,7 @@
8384
set vlanid {{ 4000 + i.vrf }}
8485
set interface "{{options.leak_npu_link}}1"
8586
set vrf {{ i.vrf }}
86-
set vdom 'root'
87+
set vdom {{ options.vdom }}
8788
set mode static
8889
set ip {{ vrf_leak_summary|ipaddr((i.vrf * 2))|ipaddr('address') }}/31
8990
set allowaccess ping

dynamic-bgp-on-lo/07-Hub-Services.j2

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
{# Options: project-wide defaults #}
1111
{% set options = {
12+
'vdom': project.vdom|default('root'),
1213
'force_cleanup': project.force_cleanup|default(false)
1314
}
1415
%}
@@ -24,7 +25,7 @@ config vpn certificate crl
2425
edit TheCA
2526
{{'un' if not project.crl_scep_url|default()}}set scep-url {{ project.crl_scep_url|default() }}
2627
{{'un' if not project.crl_http_url|default()}}set http-url {{ project.crl_http_url|default() }}
27-
set update-vdom "root"
28+
set update-vdom {{ options.vdom }}
2829
set update-interval 300
2930
next
3031
end

0 commit comments

Comments
 (0)