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.