This is a draft and work in progress
Introduction
BluVal is a diagnostic toolset framework to validate different layers in the Akraino infrastructure developed and used in Akraino edge stack. BluVal integrates different test cases, its development employs a declarative approach that is version controlled in LF Gerrit. They are integrated in CI/CD tool chain where peer Jenkins jobs can run the test cases and the results are reported in LF Repo (Nexus). The test cases cover all blueprint layers in the cluster.
Requirements
- Support Kubernetes
- Integrate with LF Gerrit
- Run well in an Akraino validation lab
- Store test results in a database
Technical guidelines
To support python3
To be fully covered by unit tests
To provide docker containers and manifest for both architectures supported: amd64 and arm64
To publish the documentation online
Test cases bundle for different layers
BluVal implementation Overview
bluval.py runs the tool-set to test the REC Akraino validation framework. It performs the following actions:
1. Input validation
2. Test execution
3. Results pushed in DB
4. Dashboard view
BluVal installation and execution
bluval.py toolset project is from Akraino gerrit (Linux Foundation credentials required). It is to be cloned into /opt/akraino on the designated Regional controller or test host.
For cloning 'git clone' command can be used as shown in the below procedure:
This is how you can validate the bluval engine setup, if you have proper connectivity it should show some testcases in PASS status.
ns156u@aknode82:~$ git clone https://gerrit.akraino.org/r/validation.git
ns156u@aknode82:~$ cd validation
ns156u@aknode82:~/validation$ python -m venv .py35 # First time only
ns156u@aknode82:~/validation$ source .py35/bin/activate
(.py35) ns156u@aknode82:~/validation$ pip install -r bluval/requirements.txt # First time only
(.py35) ns156u@aknode82:~/validation$ python bluval/bluval.py -l hardware dummy # this will run hardware test cases of dummy blue print
(.py35) ns156u@aknode82:~/validation$ deactivate
Distro support
In order to keep the test infra small, only a limited number of distros may be supported. Others can be added easily if needed. At the moment, the Vuls tests support
- Ubuntu 16
- Ubuntu 18
- CentOS 7
- CentOS 8