This repository is part of AFK
This repo contains our Saltstack codebase necessary to apply configuration on network devices using configuration inputs in OpenConfig.
The full documentation can be found here: AFK documentation
These modules are under active development and are subject to changes.
The implementation is opiniated and might not be appropriate for your environment.
You should always test new releases on your infrastructure before going to production.
Criteo cannot be held responsible for incidents in your infrastructure.
Peer Groups are temporarily supported for migration.
We have decided to remove peer-group support to simplify the modules and the template. It will also remove risks associated with changes in peer groups.
This repository contains all the necessary modules to apply OpenConfig to network devices. It uses templates to convert OpenConfig to configuration/commands.
It does not aim to cover 100% of OpenConfig model.
Supported Network OS:
- SONiC
- Juniper JunOS
- Arista EOS
The recommended configuration is to download the modules in this repo to a dedicated path on your Salt-master.
Example of salt-master configuration:
file_roots:
base:
- /srv/salt/base/your-base/ # your own code base
- /srv/salt/base/openconfig/ # openconfig code base
- /srv/salt/base/sonic/ # if you want SONiC support: https://github.com/criteo/sonic-saltstack
- Dry run:
salt <device> state.apply full_config test=True
- Deploy:
salt <device> state.apply full_config
Depending on the Network OS you want to support, you will need:
- SONiC modules
- napalm-salt for Juniper JunOS and Arista EOS
see CONTRIBUTING.md