Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial MSD Support #249

Draft
wants to merge 75 commits into
base: develop
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
a86f756
MSD sub-main changes
anramgop Nov 25, 2024
77532ee
MSD sub-main changes
anramgop Nov 25, 2024
d37cdc4
Added sub-main-common and service model validation
anramgop Nov 26, 2024
49dcb6d
Split validate and load functions
anramgop Nov 27, 2024
7ef9df8
Refactoring sub main common
anramgop Nov 27, 2024
0bd0e4f
MSD create role
anramgop Nov 27, 2024
075475e
Additional refactoring for MSD and VXLAN workflows
mikewiebe Dec 3, 2024
9a73ea9
updates for msd fabric templating
mtarking Dec 3, 2024
9fd9855
resolve conflicts
mtarking Dec 3, 2024
0a1b042
remove dup file
mtarking Dec 3, 2024
e413ba3
update create task for msd
mtarking Dec 3, 2024
a220edd
update create task for msd
mtarking Dec 3, 2024
87c8395
Add child fabrics logic
mikewiebe Dec 3, 2024
3b2ad70
Merge branch 'msd' of https://github.com/netascode/ansible-dc-vxlan i…
mikewiebe Dec 3, 2024
a1b5bbd
updated defaults
mtarking Dec 3, 2024
c81d63a
Merge branch 'msd' of github.com:netascode/ansible-dc-vxlan into msd
mtarking Dec 3, 2024
9070b83
Update prepare plugins
mikewiebe Dec 3, 2024
e7520ec
more work on msd & shift to overlay key from overlay_services but wit…
mtarking Dec 5, 2024
95730f2
Merge branch 'msd' of github.com:netascode/ansible-dc-vxlan into msd
mtarking Dec 5, 2024
58aca5a
Merge branch 'develop' into msd
mtarking Dec 5, 2024
f821779
updates for build and deployment of both single fabrics and msd fabrics
mtarking Dec 5, 2024
73abf69
chagnes from review with mike
mtarking Dec 5, 2024
becfbd5
update fabric name reference to use extended
mtarking Dec 5, 2024
b6cbb56
updats to msite templates
mtarking Dec 5, 2024
1e7af33
update to msd tempaltes and add conditional to only run child fabrics…
mtarking Dec 6, 2024
48019b0
first commit from hospital
mtarking Dec 9, 2024
15655e7
updates for remove child fabrics and isn
mtarking Dec 9, 2024
13c8ba6
updates to current msd workflow
mtarking Dec 11, 2024
88742d2
merge develop
mtarking Dec 11, 2024
1219609
update github templates
mtarking Dec 11, 2024
a33823f
fix pipeline errors
mtarking Dec 11, 2024
4eb8d41
fix pipeline errors
mtarking Dec 11, 2024
898fc20
fix deprecation error in pipeline
mtarking Dec 11, 2024
b0cb580
fix deprecation error in pipeline
mtarking Dec 11, 2024
58bb54a
fix deprecation error in pipeline
mtarking Dec 11, 2024
9ccf722
Fix prep_001 plugin for multisite
mikewiebe Dec 12, 2024
2e64830
Workflow fixes
mikewiebe Dec 13, 2024
597272d
Merge develop and cleanup
mikewiebe Dec 20, 2024
58dd0f0
Fix list defaults bug
mikewiebe Dec 20, 2024
e7ef318
Prepare plugin refactor
mikewiebe Dec 21, 2024
e7ee3ff
More refactoring
mikewiebe Dec 22, 2024
7c31491
Initialize shared dict vars
mikewiebe Dec 22, 2024
6293b98
refactored external network into new format
mthurstocisco Jan 8, 2025
cffab66
more refactoring for external fabrics
mthurstocisco Jan 9, 2025
e019b74
bug fix in sub_main_external in common
mthurstocisco Jan 9, 2025
c2a0c48
External plus refactoring
mikewiebe Jan 10, 2025
4ab1f16
ISN remove devices and bug fixes
mikewiebe Jan 13, 2025
fdaa9d0
Enable child fabric delete mode flag
mikewiebe Jan 14, 2025
e765809
Github actions fixes
mikewiebe Jan 14, 2025
cde1ce4
GitHub Actions Issues
mikewiebe Jan 14, 2025
c6e6d3b
More GitHub Actions Fixes
mikewiebe Jan 14, 2025
5382ce2
Deploy False for Fabrics
mikewiebe Jan 15, 2025
57b7636
Refactor for sharing code and simplification
mikewiebe Jan 16, 2025
7d7a39f
Refactoring and Multisite VRF and Network Removal Flag
mikewiebe Jan 16, 2025
2fdcaa9
Merge branch 'develop' into msd
mikewiebe Jan 16, 2025
459d305
Fix route control no data
mikewiebe Jan 25, 2025
553df9e
Fix github actions issue
mikewiebe Jan 25, 2025
d948485
Fix rule 401
mikewiebe Jan 25, 2025
573184e
update defaults for msite
mtarking Jan 28, 2025
b7c3f28
fix typo
mtarking Jan 28, 2025
3b0a958
fix defaults
mtarking Jan 28, 2025
a0d2a08
refactor template groupings for vpc and vrf loopback
mtarking Jan 28, 2025
650efef
fix to isn fabric template
mtarking Jan 28, 2025
3c9cc02
get fabric attributes, fix msd templates, & start work on mapping swi…
mtarking Jan 29, 2025
0ef58cd
fix errors
mtarking Jan 29, 2025
938458d
refactor msite build for preprocessing for vrfs/networks attachments
mtarking Jan 30, 2025
f89bb1b
fix lint errors
mtarking Jan 30, 2025
2cd93f0
add msd child fabric vrfs template & fix lint errors
mtarking Jan 30, 2025
5627f6b
fixes
mtarking Jan 30, 2025
cf01600
set msite prepare defaults
mtarking Jan 30, 2025
116a424
Merge branch 'develop' into msd
mtarking Feb 1, 2025
81156d2
updated existing rules to allow empty vrfs & add first msite rule
mtarking Feb 2, 2025
5aa7677
fix lint errors
mtarking Feb 2, 2025
e29c17e
add msite cross-ref rule
mtarking Feb 2, 2025
fd4c73c
fix typo
mtarking Feb 2, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
chagnes from review with mike
  • Loading branch information
mtarking committed Dec 5, 2024
commit 73abf697e7af0718cfa42239dd0d290600d79d30
2 changes: 1 addition & 1 deletion roles/dtc/common/tasks/vxlan/ndfc_vrfs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@

- name: Set file_name Var
ansible.builtin.set_fact:
file_name: "{{ MD.vxlan.global.name }}_attach_vrfs.yml"
file_name: "{{ MD.vxlan.global.name }}_ndfc_attach_vrfs.yml"
delegate_to: localhost

- name: Stat Previous File If It Exists
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,18 @@ def match(cls, inventory):
vrf_attach_groups = None

switch_keys = ['vxlan', 'topology', 'switches']
network_keys = ['vxlan', 'overlay', 'networks']
vrf_keys = ['vxlan', 'overlay', 'vrfs']
network_attach_keys = ['vxlan', 'overlay', 'network_attach_groups']
vrf_attach_keys = ['vxlan', 'overlay', 'vrf_attach_groups']

# For backwards compatibility
network_keys = ['vxlan', 'overlay_services', 'networks']
vrf_keys = ['vxlan', 'overlay_services', 'vrfs']
network_attach_keys = ['vxlan', 'overlay_services', 'network_attach_groups']
vrf_attach_keys = ['vxlan', 'overlay_services', 'vrf_attach_groups']
# Remove the check for overlay_services after deprecation
# Remove lines 21 - 23
overlay_key = 'overlay'
check = cls.data_model_key_check(inventory, ['vxlan'])
if 'overlay_services' in check['keys_found'] and 'overlay_services' in check['keys_data']:
overlay_key = 'overlay_services'

network_keys = ['vxlan', f'{overlay_key}', 'networks']
vrf_keys = ['vxlan', f'{overlay_key}', 'vrfs']
network_attach_keys = ['vxlan', f'{overlay_key}', 'network_attach_groups']
vrf_attach_keys = ['vxlan', f'{overlay_key}', 'vrf_attach_groups']

# Check if vrfs, network and switch data is defined in the service model
check = cls.data_model_key_check(inventory, switch_keys)
Expand Down Expand Up @@ -58,39 +60,40 @@ def match(cls, inventory):
results = cls.cross_reference_switches(network_attach_groups, switches, 'network', results)

# For backwards compatibility
sm_networks = None
sm_vrfs = None
network_attach_groups = None
vrf_attach_groups = None
# Lines 54 - 88 will be removed after the deprecation in a future release
# sm_networks = None
# sm_vrfs = None
# network_attach_groups = None
# vrf_attach_groups = None

network_keys = ['vxlan', 'overlay_services', 'networks']
vrf_keys = ['vxlan', 'overlay_services', 'vrfs']
network_attach_keys = ['vxlan', 'overlay_services', 'network_attach_groups']
vrf_attach_keys = ['vxlan', 'overlay_services', 'vrf_attach_groups']

check = cls.data_model_key_check(inventory, network_keys)
if 'networks' in check['keys_data']:
sm_networks = cls.safeget(inventory, network_keys)

check = cls.data_model_key_check(inventory, vrf_keys)
if 'vrfs' in check['keys_data']:
sm_vrfs = cls.safeget(inventory, vrf_keys)

check = cls.data_model_key_check(inventory, vrf_attach_keys)
if 'vrf_attach_groups' in check['keys_data']:
vrf_attach_groups = cls.safeget(inventory, vrf_attach_keys)

check = cls.data_model_key_check(inventory, network_attach_keys)
if 'network_attach_groups' in check['keys_data']:
network_attach_groups = cls.safeget(inventory, network_attach_keys)

# Ensure Network is not referencing a VRF that is not defined in the service model
results = cls.cross_reference_vrfs_nets(sm_vrfs, sm_networks, results)

if sm_vrfs and vrf_attach_groups:
results = cls.cross_reference_switches(vrf_attach_groups, switches, 'vrf', results)
if sm_networks and network_attach_groups:
results = cls.cross_reference_switches(network_attach_groups, switches, 'network', results)
# network_keys = ['vxlan', 'overlay_services', 'networks']
# vrf_keys = ['vxlan', 'overlay_services', 'vrfs']
# network_attach_keys = ['vxlan', 'overlay_services', 'network_attach_groups']
# vrf_attach_keys = ['vxlan', 'overlay_services', 'vrf_attach_groups']

# check = cls.data_model_key_check(inventory, network_keys)
# if 'networks' in check['keys_data']:
# sm_networks = cls.safeget(inventory, network_keys)

# check = cls.data_model_key_check(inventory, vrf_keys)
# if 'vrfs' in check['keys_data']:
# sm_vrfs = cls.safeget(inventory, vrf_keys)

# check = cls.data_model_key_check(inventory, vrf_attach_keys)
# if 'vrf_attach_groups' in check['keys_data']:
# vrf_attach_groups = cls.safeget(inventory, vrf_attach_keys)

# check = cls.data_model_key_check(inventory, network_attach_keys)
# if 'network_attach_groups' in check['keys_data']:
# network_attach_groups = cls.safeget(inventory, network_attach_keys)

# # Ensure Network is not referencing a VRF that is not defined in the service model
# results = cls.cross_reference_vrfs_nets(sm_vrfs, sm_networks, results)

# if sm_vrfs and vrf_attach_groups:
# results = cls.cross_reference_switches(vrf_attach_groups, switches, 'vrf', results)
# if sm_networks and network_attach_groups:
# results = cls.cross_reference_switches(network_attach_groups, switches, 'network', results)

return results

Expand Down