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

Release v1.0.1 #97

Merged
merged 69 commits into from
Mar 26, 2020
Merged

Release v1.0.1 #97

merged 69 commits into from
Mar 26, 2020

Conversation

carlbuchmann
Copy link
Member

Enhancements:

Fixed issues:

titom73 and others added 30 commits February 10, 2020 12:02
Simple role to create/cleanup output folders:

By default, user has to create output folders meaning he must know and
create structure prior to run any playbook.

To make it part of playbook execution, role will delete any existing
folder defined as output and recreate structure.

Default values are those currently in place in repository but it can be
changed by user as described in README

Complete documentation in role's README
Add support of Python linting for a pre-commit script.
Script checks following paths:
- ansible_collections/arista/avd/plugins/modules
- ansible_collections/arista/avd/plugins/module_utils
- ansible_collections/arista/avd/plugins/filter

Pylintrc file is configured to run the exact same ansible-test linting.
Makefile with following keys:
Code Quality:
- linting                        Run pre-commit script for python code linting using pylint

Collection Management:
- collection-build               Build arista.cvp collection locally
- collection-install             Install arista.cvp collection to default location (~/.ansible/collections/ansible_collections)

Run Ansible test:
- sanity                         Run ansible-test sanity validation.
- sanity-import                  Run ansible-test sanity for code import
- sanity-info                    Show information about ansible-test
- sanity-lint                    Run ansible-test sanity for code sanity

Configure CI:
- setup-repository               Install python requirements
- github-configure-ci            Configure CI environment to run GA (Ubuntu:latest LTS)
Implement correct boolean check in ansible tasks to support wether or
not role will execute pending tasks on CV cvp:

```
- name: 'Execute any configlet generated tasks to update configuration on {{inventory_hostname}}'
  tags: [apply]
  arista.cvp.cv_task:
    tasks: "{{ CVP_CONFIGLETS_STATUS.data.tasks }}"
    wait: 90
  when:
    - CVP_CONFIGLETS_STATUS.data.tasks | length > 0
    - execute_tasks|bool
```
When setting execute_tasks, tasks are not executing
update Ansible version in dependencies
In case of a pure L2 environment, templates failed to generate VXLAN
interface because VRF was missing.

Fixes:
- Add constraint on VRF for CLI config gen in VXLAN interface section.
- Add constraint on VRF for documentation purpose in VXLAN section.
Add constraints on VRF in VXLAN IFL
- Move installation from pip to apt since ubuntu cannot locate yamllint
- Add missing checkout action on top of yaml linting.
- Make python installation symetric

Todo:
- Add yamllint and pylint in development/requirements-dev.txt
- Use pip install dev req as installation instead of manual setup
When doing a PR with base branch set to master, issue an ansible-test to
ensure code match ansible criteria.
Do manual linting to ensure AVD CI is valid

```
make linting
  sh .github/lint-yaml
  ------------------------------------------------------------------------------------------------------------
  Validating YAML files in AVD collection ...
  ------------------------------------------------------------------------------------------------------------
  ------------------------------------------------------------------------------------------------------------
  sh .github/lint-python
  Validating PEP8 compliance...
  ------------------------------------------------------------------------------------------------------------
    - Modules validation

    --------------------------------------------------------------------
    Your code has been rated at 10.00/10 (previous run: 10.00/10, +0.00)

  ------------------------------------------------------------------------------------------------------------
    - Module Utils validation

    --------------------------------------------------------------------
    Your code has been rated at 10.00/10 (previous run: 10.00/10, +0.00)

  ------------------------------------------------------------------------------------------------------------
```
titom73 and others added 24 commits March 17, 2020 21:51
Add templates for following issue types:
- Problem Report
- Feature Request
Commit first complete implementation of feature to bind additional CVP
configlets:

- Support Group/container configlets
- Support device configlets
- Reviewed data model

Data model to use in `DC1_FABRIC.yml`

```
cv_configlets:
  containers:
    DC1_L3LEAFS:
      - GLOBAL-ALIASES
  devices:
    DC1-L2LEAF2A:
      - GLOBAL-ALIASES
    DC1-L2LEAF2B:
      - GLOBAL-ALIASES
```
Add Issue templates and Contributing guide
Role to upload all configlets stored in a given directory. They are not
bind to neither devices or containers as it must be part of an
additional task.

Inputs:
-------
- __`configlet_directory`__: Folder where local configlets are stored. Default: `configlets`.
- __`file_extension`__: File extension to look for configlet in their local folder. Default: `conf`.
- __`configlets_cvp_prefix`__: Prefix to use for configlet on CV side. Default: `none`.

Example playbook:
------------------

tasks:
  - name: run CVP provisioning
    import_role:
        name: cvp_configlet_upload
    vars:
      configlet_directory: 'configlets/'
      file_extension: 'txt'
      configlets_cvp_prefix: 'DC1-AVD'
Update documentation:

- `eos_deploy_cvp`: Describe variables strucutures + MD refactor
- `eos_l3_evpn`: Add feature support + Link to var structure in
eos-deploy_cvp readme.md
Add link to new cvp_configlet_upload role.
Add support of additional CVP configlets
…ader

Create a role to deploy additional configlets
@titom73 titom73 merged commit 92defec into master Mar 26, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants