CI/CD Transformation

Anuket Project

CI/CD Transformation

On May 28th, 2019, the OPNFV TSC agreed to the TAC recommendation to investigate moving off of Gerrit and Jenkins to Github and a CI SaaS provider.

This page details the investigation into the requirements a CI/CD toolchain (SCM + CI SaaS + CD services) would need to support OPNFV's CI/CD operations,
a proposed relative timeline for the transition, and a list of supporting materials the community may need to make the transition smoothly.

Some investigative work into available tool-chains was already carried out by the TAC Infra-WG, and a comparison of CI SaaS providers was compiled.

Resources

Discussion

    Initial CI-as-a-Service Platform Research for TAC Infra WG meetings

    GitLab-CI and Gerrit email discussion on opnfv-project-leads

Weekly Technical Discuss - Aug. 10th, 2020

  • There is an overall objective within LFN to consolidate resources (processes / costs / support) and improve developer resources. New LFN projects are encouraged to move to GitLab-CI.

  • Gerrit is used in our upstream community (OpenStack) and along with Jenkins adds a lot of features/functionality for developers - more flexibility but requires additional maintenance.

  • The integration team in ONAP is currently using GitLab-CI to gate releases: This required use of so-cat to watch changes in Gerrit and communicate back results. ONAP is possibly looking into GitLab-CI in the longer term

  • Jenkins JJB are very powerful and Jenkins fits the test daily jobs (not linked to any code repo)

  • OPNFV could have rather implement the JJB middleware (JJB per branch) in Releng.

  • Gerrit is felt to be more flexible than GitLab for patch review management (see opendev.org)

  • Functest job scheduling requires more work with GitLab-CI (Lots of rework to migrate JJB for Functest)

 

Weekly Technical Discuss - Aug. 17th, 2020

  • Question regarding limiting concurrency of job (ex: 4 out of 10). GitLab responded there are multiple ways this could be solved. Some suggestions were:

    • Using labels and runners

    • Environment tags

    • Limiting resources

  • Concern expressed around GitLab jobs having to clone code - Suggestion from GitLab team was to use `GIT_STRATEGY: none`

  • There was some concern around the timing of the transition - Lots of changes going on in OPNFV as a project (CNTT & FMO)

  • Airship, Kuberef interested in doing some proof-of-concept work in GitLab-CI

  • Functest prefers Gerrit due to the patchset dependency workflow

  • Because jobs are linked to the repository, branch specific CI would need to be backported to support previous releases.