Modernize OpenDaylight's CI pipelines and containers

Internship Projects/Mentors





Title

Modernize OpenDaylight's CI pipelines and containers

Status

Interviewing

Difficulty

Medium 




Description 

OpenDaylight's CI [1.] jobs are presently using Jenkins-job-builder (JJB) [2.] with the entire job configuration maintained as code in the releng/builder [3.], releng/global-jjb [4.] and common-packer [5.] repositories. The CI infrastructure has around 2k+ jobs that are written using yaml/shell/python many of which need to migrate to CI pipelines. The pipeline job prototype should be able to do a complete lifecycle (from code changes picked up from merged/staged job to be deployed and tested on containers images (these images are equivalent of VM image instance - mininet, devstack, etc presently built on the infrastructure). The work requires updating the packer files to build containers and converting the JJB/yaml code to CI pipelines.

Additional Information

[1.] https://jenkins.opendaylight.org/releng/

[2.] https://jenkins-job-builder.readthedocs.io/en/latest/

[3.] https://github.com/opendaylight/releng-builder/

[4.] https://github.com/lfit/releng-global-jjb

[5.] https://github.com/lfit/releng-common-packer

[6.] https://github.com/lfit/releng-pipelines 

Learning Objectives

The intern will gain experience contributing to OSS and OpenDaylight CI tools (not limited to Jenkins, pipelines, CI/CD, packer. etc).

Expected Outcome

  • Create Dockerfiles and containers images for all of the ODL projects

  • Create Jobs that manage and maintain snapshots and releases for the containers

  • Buildable container images using the packer files

  • Migrate existing jobs to Jenkins pipeline jobs. (bonus) 

Relation to LF Networking 

ODL

Education Level

Undergraduate

Skills

  • Bash

  • Python Programming

  • JJB (bonus)

  • Jenkins CI / Pipelines (bonus)

  • packer (bonus points) 

  • Understanding of git/gerrit workflow and fix trivial issues (bonus)

Future plans

These prototypes will be reviewed and releng/builder jobs and packer files would be updated.

Preferred Hours and Length of Internship

20 hours a week for 24 weeks

Mentor(s) Names and Contact Info

Click here to apply

Please read all instructions before applying.  Include Resume, proof of school enrollment, and participation permission from school/employer

  1. Anil Belur abelur@linux.com

  2. Luis Gomez ecelgp@gmail.com