Developer Documentation

Architecture

Jenkins is used for CI/CD, jobs are being created with JJB: (https://gerrit.akraino.org/r/gitweb?p=ci-management.git;a=tree;f=jjb/kni;h=6a3b8e1dbc7468a9075f30859694ff727e7c78a6;hb=refs/heads/master).

In the future additional builds with OpenShift with third party labs can be considered.

Deploys will be executed in PODs . Different types of PODs are going to be considered:

  • virtualized deploy (libvirt) for initial testing
  • baremetal deploy for merges and tagging testing

The bootstrap node of each POD will be connected to Jenkins as an slave.

Pipelines

Three diferent types of testing are proposed:

  • check: when a new change is being sent, it will perform lightweight tests such as lint, syntax or virtual deployments
  • gate: when a change is going to be merged, it will perform more extensive testing, including deployments in all affected platforms
  • tag: when a new stable version is being tagged, it will run the gate tests + some additional tests including the ones in validation lab, stress testing, etc...

Artifacts

  • Documentation
  • Installation scripts
  • Test logs and results

Gerrit

https://gerrit.akraino.org/r/admin/repos/q/filter:kni

Please ensure that all the submitted patches are properly signed. You need to use Signed-off-by: <email_address> in the footer of your commit messages.

Jenkins Jobs

Daily: https://jenkins.akraino.org/view/kni/

Validation Lab Setup

https://docs.google.com/presentation/d/1uk-DW2b6f1bv8-k5o0zqqmdQxTAnGeFFwKA1JQRgbH8/edit#slide=id.p1