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
- PoC Setup for GitLab
- 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
- OPNFV
- Gerrit is felt to be more flexible than GitLab for patch r
- 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.