Modernize OpenDaylight's CI pipelines using containers
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).