Title

OpenDaylight CI Pipelines using Containers

Status

APPLICATIONS CLOSED

Difficulty

HIGH

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 for all the VMs used in Jenkins (builder, robot, mininet, etc), also try to consolidate in few images (the less, the better).
  • Create Jobs that build and maintain container images (e.g. verify, merge, release) from Dockerfiles.
  • Migrate existing JJB jobs (VM based) to Jenkins pipeline jobs (container based) - bonus

Relation to LF Networking 

ODL

Education Level

Undergraduate

Skills

  • Bash
  • Python
  • Linux
  • Docker
  • 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. 

Anil Belur abelur@linux.com
Luis Gomez ecelgp@gmail.com

Please include the following in your application:

  • Resume
  • Cover Letter

    • A letter to the program covering the following topics:

      • How did you find out about our mentorship program?
      • Why are you interested in this program?
      • What experience and knowledge/skills do you have that are applicable to this program?
      • What do you hope to get out of this mentorship experience?
  • School Enrollment Verification
    • Students must upload proof of enrollment (college transcript, or copy student ID, or admissions offer if graduating from high school).