nanog mailing list archives

Re: DevOps workflow for networking


From: Andrew Latham <lathama () gmail com>
Date: Thu, 24 Aug 2017 10:14:04 -0500

Related I am working on https://github.com/lathama/Adynaton and hope to get
parts into the Python Standard Library with help from some peers. Anyone
who wants to help out ping me off list.

On Fri, Aug 18, 2017 at 1:08 PM, Pete Lumbis <alumbis () gmail com> wrote:

Awesome!

I gave a presentation on CI/CD for networking last year at the Interop
conference; my demo was based on Gitlab
https://gitlab.com/plumbis/cumulus-ci-cd/

I use Behave for testing, but it is just a front end for python code under
the hood to actually validate that everything is doing what it's supposed
to be doing.

I did a little bit of work to try and get Ansible to do checking and
validation in a playbook, but since Ansible isn't really a programming
language it felt like putting a square peg in a round hole. I would
recommend an actual programming language or testing frame work.

Likely the biggest challenge you'll encounter is a lack of features in
vendor VMs and the fact you can't change interface names. Generally, in
production, we don't have "eth1, eth2, eth3" as the cabled up interfaces,
so you end up needing to maintain two sets of configs (prod and test) or
something to modify production configs on the fly, both of which are crummy
options.

From a workflow perspective, you can treat configuration like code and run
full test suites when pull requests are issued and then use the test
results as the basis for a change review meeting. Don't let humans talk
about changes that we already know won't work.

Glad to hear about other people seriously considering CI/CD in the network
space, good luck!

-Pete

On Wed, Aug 9, 2017 at 8:52 PM, Kasper Adel <karim.adel () gmail com> wrote:

We are pretty new to those new-age network orchestrators and automation,

I am curious to ask what everyone is the community is doing? sorry for
such
a long and broad question.

What is your workflow? What tools are your teams using? What is working
what is not? What do you really like and what do you need to improve? How
mature do you think your process is? etc etc

Wanted to ask and see what approaches the many different teams here are
taking!

We are going to start working from a GitLab based workflow.

Projects are created, issues entered and developed with a gitflow
branching
strategy.

GitLab CI pipelines run package loadings and run tests inside a lab.

Tests are usually python unit tests that are run to do both functional
and
service creation, modification and removal tests.

For unit testing we typically use python libraries to open transactions
to
do the service modifications (along with functional tests) against
physical
lab devices.

For our prod deployment we leverage 'push on green' and gating to push
package changes to prod devices.

Thanks





-- 
- Andrew "lathama" Latham lathama () gmail com http://lathama.com
<http://lathama.org> -


Current thread: