Table of Contents | ||
---|---|---|
|
ICN Pod Topology
View file name Akraino ICN Pod Topogoly.pptx height 250
Jenkins Information
...
Table of Contents | ||
---|---|---|
|
ICN Pod Topology
View file name Akraino ICN Pod Topogoly.pptx height 250
Jenkins Information
Akraino community has a public Jenkins cluster. ICN leverages the Akriano public Jenkins to run CI jobs. But we run While the CD jobs run in our private Jenkins cluster.
We have the following Jenkins slave nodes joined Akriano Jenkins. ICN CI jobs are supposed to be scheduled to our slave nodes by label icn-dev.
...
To add more Jenkins slave nodes, please follow the akriano jenkins guide
To setup private jenkins, please refer to the README.md under icn/ci/
The private jenkins cluster is setup on pod14-node2. We can visit the jenkins with the node ip address: http://10.10.140.22:8080/
Currently we support only AIO private Jenkins.
Akarino Test Group Information
...
Overall Test Architecture
Test Architecture
We support the following jobs
CI job for golang
- 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
...
We support the following jobs
CI job
- triggered by gerrit patch creation/update.
- Run a make command, which runs bashate to check shell scriptsThe job runs verify.sh under icn project. The verify.sh currently has integrated the golang test and bashate test.
- Post +1/-1 for gerrit patch if the check passes/failsbuild succeeds/fails
- Upload the job log to Nexus server in post-build actions
CD job for test
- triggered daily automatically (We can also trigger it manually)
- Run a make command, which creates VM(s) and deploys ICN components on the VM(s)
- Send daily report to mailing listUpload the job log to Nexus server in post-build actions
CI jobs detail
Update the verify.sh can update the CI job content.
CD job detail
We have the following steps for CD job:
- On our private Jenkins node, we provision a VM by vagrant. A Vagrantfile which defines the VMs properties is needed. We can define many VM properties in the Vagrantfile:
- VM hostname
- VM memory 64G, cpu 16, disk 300GB
- Login to the VM and run 'make verifier' which installs the components in the VM
- We destroy the VM as the last step of the job
...
- the last step of the job
Test Bed
Pod Topology
ICN Master Baremetal Deployment Verifier
ICN Master Virtual Deployment Verifier
Baremetal deployment
Hostname | CPU Model | Memory | BMC Firmware | Storage | 1GbE: NIC#, VLAN, (Connected extreme 480 switch) | 10GbE: NIC# VLAN, Network (Connected with IZ1 switch) | 40GbE: NIC# |
---|---|---|---|---|---|---|---|
Jump | Intel 2xE5-2699 | 64GB | 1.46.9995 | 3TB (Sata) | IF0: VLAN 110 (DMZ) | IF2: VLAN 112 (Private) | |
node1 | Intel 2xE5-2699 | 64GB | 1.46.9995 | 3TB (Sata) | IF0: VLAN 110 (DMZ) | IF2: VLAN 112 (Private) | |
node2 | Intel 2xE5-2699 | 64GB | 1.46.9995 | 3TB (Sata) | IF0: VLAN 110 (DMZ) | IF2: VLAN 112 (Private) | IF4: SRIOV |
Virtual deployment
Hostname | CPU Model | Memory | Storage | 1GbE: NIC#, VLAN, (Connected extreme 480 switch) | 10GbE: NIC# VLAN, Network (Connected with IZ1 switch) |
---|---|---|---|---|---|
node1 | Intel 2xE5-2699 | 64GB | 3TB (Sata) | IF0: VLAN 110 (DMZ) | IF2: VLAN 112 (Private) |
Test Framework
All components are tested with end-to-end testing
...
The gerrit comments contains the CI log url. All the CI logs are under this folder folder ICN : https://logsjenkins.akraino.org/view/icn/productionjob/vexicn-yul-akraino-jenkins-prod-1/master-verify/
CD Logs:
ICN Master Baremetal Deployment Verifier
...