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

Feature cvp deployment #41

Merged
merged 49 commits into from
Feb 11, 2020
Merged

Feature cvp deployment #41

merged 49 commits into from
Feb 11, 2020

Conversation

titom73
Copy link
Contributor

@titom73 titom73 commented Oct 29, 2019

Create workflow to connect ansible-avd to CloudVision server

  • Convert inventory to container structure
  • Create dataset for cv_configlet
  • Create dataset for cv_device (1 configlet per device)
  • Collect facts (cv_facts)
  • Create containers (cv_container)
  • Attach devices to containers (cv_container)
  • Create configlets (cv_configlet)
  • Attach configlets to devices (cv_device)
  • Support Merge mode for configlets / containers
  • Build Documentation (Module documentation / Role README)

Must be updated to support new AVD outputs

- Implement a role to build CVP topology based on inventory file
- Render expected container topology in a user defined folder with user
defined name
- Implement a role to collect cvp facts and create containers topology

TODO:
- Add configlet support
- Add device support
- Implement function to extract devices attached under a container.
- Create a subsection named devices with all devices to move to that
container in CVP
@titom73 titom73 added the type: enhancement New feature or request label Oct 29, 2019
@titom73 titom73 self-assigned this Oct 29, 2019
Create configlet structure to load generated config to CVP
Structure is saved in result['CVP_CONFIGLETS'] and can passed to cv_configlet
@titom73
Copy link
Contributor Author

titom73 commented Oct 30, 2019

Currently Supported:

  • Create cvp variables for containers and devices topology
  • Create cvp variables for configlets
  • Deploy containers to CVP
  • Move devices to targetted container
  • Create configlet on CVP

TODO:

  • Bind configlet to devices.

Create a template to generate dataset required for cv_device.
All devices part of DC1-FABRIC are included.
@titom73
Copy link
Contributor Author

titom73 commented Nov 7, 2019

PR implements following tasks:

  • Convert inventory to container structure
  • Create dataset for cv_configlet
  • Create dataset for cv_device (1 configlet per device)
  • Collect facts (cv_facts)
  • Create containers (cv_container)
  • Attach devices to containers (cv_container)
  • Create configlets (cv_configlet)
  • Attach configlets to devices (cv_device)

Everything is part of role: eos-config-deploy-cvp
Playbook: dc1-fabric-deploy-cvp.yml under examples/evpn-l3ls-cvp-deployment

Task execution remains manual as it is a big change in topology and it is better to use change-control manually instead of fully-automated approach

Ready for testing at scale

@titom73 titom73 changed the title Work In Progress - Feature cvp deployment Feature cvp deployment Nov 7, 2019
Validate a complete worflow from ZTP to Up & Running

From AVD/CVP perspective, example provides:
- Module to generate vars from inventory
- role to generate cv_device inputs and run all tasks related to CVP
- A single playbook for EOS config generation based on AVD and CVP
deployment
- A readme file with how-to
- Current version 1.0.1 of ansible-cvp

Tested in lab using GNS3 topology of 6 devices (2 spines and 2 pairs of
    leafs) and CVP 2018.2.4 with complete ZTP process.
@titom73
Copy link
Contributor Author

titom73 commented Dec 4, 2019

Tested in lab with CVP2018.2.4 / ansible-cvp 1.0.1 / 6 devices (2 spines and 2 pairs of leafs) / devices where in ZTP mode before running playbook

@titom73
Copy link
Contributor Author

titom73 commented Dec 5, 2019

Resync with release-eft to get latest version of roles.

Implement multiple input variables to make role more granular:

```yaml
device_filter: 'all'
container_root: '{{ fabric_name }}'
configlets_prefix: 'AVD-{{ fabric_name }}-'
```

A new var is also available to select either creation/update or deletion

```yaml
state: absent
```
@titom73
Copy link
Contributor Author

titom73 commented Dec 17, 2019

Start rebase with collection structure

@titom73
Copy link
Contributor Author

titom73 commented Dec 17, 2019

Ready to review and merge

carlbuchmann and others added 4 commits February 6, 2020 21:29
Update repository documentation related to CV integration:

eos_config_deploy_cvp/README.md: Add documentation related to role.
plugins/README.md: Update file to document
arista.avd.inventory_to_container module
@titom73
Copy link
Contributor Author

titom73 commented Feb 9, 2020

Need to update eos_config_deploy_cvp diagram before publication.

titom73 and others added 2 commits February 9, 2020 20:21
Add correct diagram to describe eos_config_deploy_cvp
Add wording about how it works
@titom73
Copy link
Contributor Author

titom73 commented Feb 10, 2020

Ready for review by @carlbuchmann

Copy link
Member

@carlbuchmann carlbuchmann left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

reviewed and tested internally!

@carlbuchmann carlbuchmann merged commit 3b8c185 into release-eft Feb 11, 2020
@carlbuchmann carlbuchmann deleted the feature-cvp-deployment branch February 11, 2020 17:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants