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
Guides
Gitlab Docker setup
Gitlab Runner installation instructions
Documentation
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.