Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Network:Core roadmap 2.5
This is an uncommitted roadmap for 2.5
Feedback welcome in
Follow the our progress
Note: To see which cards in our project pertain to a specific roadmap item, use the filter cards feature and filter using the keyword associated with each roadmap item e.g. [NET_CONN].
Some of the existing NXOS modules are non-declarative intent which can be converted to Declarative intent. Declarative intent modules are designed to provide playbook designers a set of network modules that perform declarative configuration tasks on network devices. This includes the ability to declaratively describe a configuration set. With 2.5.0 release the existing NXOS modules will be converted to DI module.
Add the missing declarative intent modules which were supposed to be added in 2.4. Declarative intent modules are designed to provide playbook designers a set of network modules that perform declarative configuration tasks on network devices. This includes the ability to declaratively describe a configuration set. With 2.5.0 release we aim to complete the list of the declarative intent modules.
A lot of persistent weirdness in Ansible networking comes down to the use of
connection: local to talk to network devices. The 2.5 release will introduce two new connection types,
netconf, for cli and netconf connections respectively. These connection types let us further harness base Ansible features, such as
become: yes for command elevation. Additionally, connection types for eapi and nxapi will be added in 2.5 if possible.
Refactor modules and utilities of network platforms that use
cli transport to leverage CliConf plugins added as part of 2.4. The CliConf plugins add API abstraction for low level CLI operations and the communication between module and plugins will be over JSONRPC 2.0.
Add connection plugins and module utilities to support NetConf protocol based configuration management. JUNOS and IOS-XR support for 2.5 release. The plugins shall support getting device capabilities and will be build on top of ncclient. The communication between ansible-connection process and the connection plugins will be over JSONRPC 2.0
parse_xml filter to convert the XML output of a network device command into structured JSON.
The filter will load the spec file and pass the command output through formatted as JSON. The spec file should be valid formatted YAML, it defines how to parse the XML output and return JSON data.
Refactor network action plugins to reuse as much code as possible, as there is a lot of duplicated code amongst platform specific and platform agnostic plugins.
Create documentation for new users (getting started) and advanced users (such as how to authenticate) to reduce confusion on how to best use Ansible to manage network devices. This will include creating a new landing page (which all network modules will link to); documenting various use-cases. Also where relevant existing Core (not network-specific) documentation will be reviewed and improved, this will be an ongoing process over the next few Ansible releases.
The rapid pace of module development for network modules has amassed a significant amount of technical debt related to the network shared code found in ansible/module_utils. This proposal is designed to provide details on creating a stable network package in ansible/module_utils/network and move the current shared network libraries into the new package. The ansible.module_utils.network package will only contain shared code that is common for all network modules to implement and will be maintained in a stable way moving forward.