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).