Jenkins Information
ICN project leverages Akriano Jenkins. We join our servers into the Akriano Jenkins cluster. We have follow Jenkins slave nodes joined Akriano Jenkins. ICN jobs are supposed to be scheduled to our slave nodes by label icn-dev.
Slave Infomation | Server Infomation | ||
---|---|---|---|
Slave Name | Labels | Slave Root | Server Info |
prd-ubuntu-dev-44c-64g | icn-dev | /home/jenkins/akraino/slave_root | pod14-node1 |
Test Architecture
We support 3 jobs: golang verify job, shell verify job and e2e test job.
golang verify job
- triggered by gerrit patch creation/update.
- Run a make command, which builds golang pkg
- Post +1/-1 for gerrit patch if the build succeeds/fails
shell verify job
- triggered by gerrit patch creation/update.
- Run a make command, which runs bashate to check shell scripts
- Post +1/-1 for gerrit patch if the check passes/fails
e2e test job
- triggered daily automatically
- Run a make command, which creates VM(s) and deploys ICN components on the VM(s)
- Send daily report to mailing list
E2E test job detail
We have the following steps for e2e test:
- On Jenkins slave node: git clone icn
- Provision VM(s) by vagrant. A Vagrantfile which defines the VMs properties is needed. We can define many VM properties in the Vagrantfile:
- VM network information: mac address, ip address for each nic
- VM hostname
- VM memory, cpu, disk
- Setup virtual IPMI for compute nodes VM-2..n by virtualBMC. VM-1 can send ipmi command via mnt_net to manage VM-2..n.
- Run ansbile playbook against VM-1. The playbook calls scripts to setup local-controller services
- script for k8s setup? (TODO)
- script for kud plugin? (TODO)
- script for metal3 installation? (TODO)
- script for compute nodes provision? (TODO)