-
Notifications
You must be signed in to change notification settings - Fork 558
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
Partial Idempotent Configuration Push #1554
Comments
This would fit well with the multi-vendor NAPALM driver based on gNMI I am planning for the Hackathon. gNMI has a natural mapping for these "partial" updates - every gNMI transaction is a set of { DELETE, REPLACE, UPDATE } paths that either gets applied atomically, or not at all |
Sounds interesting...I will try to ask a few follow-up questions next week. |
I would like to work on this issue and had some thoughts on how to implement it. I would suggest two new functions in the base driver:
|
That would be a really nice feature 👍 |
@mirceaulinic could you please assign @cmsirbu as assignee to this ticket? He has put a lot of work in this and I do not want to take the credit =) |
Since only the NXOS merge diff was not giving the correct output (from the base drivers), we have changed it to use Here's an example:
|
Fix #1554: Improve compare_config for NXOS partial merging
Description of Issue/Question
Add the ability to push partial configurations idempotently.
Napalm provides two greats configuration deployment abilities:
While it is clear, Config Replace is more powerful, it is also harder to get to the maturity of full configuration deployment. Often times in customer implementations, Config Merge is being used.
In Netutils, there is the capability to understand what configurations are missing from a potential Merge. You can see an example of this in the tests there: https://github.com/networktocode/netutils/tree/develop/tests/unit/mock/config/compliance/diff_network_config/cisco_ios
My proposal is to add another method to idempotently push partial configurations. This is actually the norm in Ansible, and should provide better integrations to get to the preferred Config Replace strategy.
I am still thinking of appropriate naming of the method, but hopefully that provides some context.
Did you follow the steps from https://github.com/napalm-automation/napalm#faq
(Place an
x
between the square brackets where applicable)Setup
napalm version
N/A (New Feature)
Network operating system version
(Paste verbatim output from
show version
- or equivalent - between quotes below)N/A (New Feature)
Steps to Reproduce the Issue
N/A (New Feature)
Error Traceback
(Paste the complete traceback of the exception between quotes below)
N/A (New Feature)
The text was updated successfully, but these errors were encountered: