Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Note

This information is being revised and should be updated by  


This page details the roadmap and process on how Anuket might transition to Gitlab in 2021.

Overview Presentation

View file
nameAnuket CI_CD Transformation - TSC 2021-02-23.pdf
height

...

250

Roadmap

Image Removed

Image Added

Gitlab Research & Discovery

...

Create a PoC for running CI in GitLab to validate external hardware and investigate features and functionality.

...

Initial evaluation by LF IT to determine if Gitlab will meet Anuket's requirement of running jobs on external hardware and can be used to provide similar committer/contributor roles as Gerrit. Initial PoC to explore parallelization option, limits of free resources, and security scanning features (code, dependencies, licenses).

TSC Approval

Recommendation, timeline, and process presented to the TSC for their approval

...

GitLab Policy and Secrets

Research into best practices for configuring GitLab to match current project structure and committer rights, implementation of those best practices, and enrollment of secrets/credentials for external services (Dockerhub, etc.).

GitLab Group Enrollment

Setup project groups and invite members to respective teams

Documentation

Document development process, CI, and project configurations - Documents needed for "Training for GitLab-CI"

Git Migration

Configure continuous mirroring of Gerrit to GitLab to make code available while development is still happening in Gerrit

Q4

...

.

Pilot Program

Research and discovery by the Storperf and Kuberef projects to evaluate Gitlab for their needs and the wider community.

Gitlab Entitlement

Applying for and receiving Gitlab Premium through the Gitlab.com open source program.

Training & Documentation

Train projects on the development process, and CI workflow & configuration. "Getting Started" guide for new projects coming in, and reference for existing projects.

EasyCLA Support

Support for Gitlab.com added to EasyCLA, and repositories configured and setup ICLA/CCLA.

CI/CD Job Migration

Convert project jobs from JJB to GitLab-CI and validate deployments using Lab-as-a-service resources

...

Governance & Management Job Conversion

Convert self release and INFO.yaml file jobs to GitLab-CI

EasyCLA Support

EasyCLA support for GitLab is planned for Q4 of 2020. See this ticket for tracking updates.

. Propose the new .gitlab-ci.yml file back for the project to approve and merge.

User & Hardware Enrollment

Switch hardware over from Jenkins JNLP to GitLab Runner (as projects transition)

...

Training for Gitlab & GitLab-CI

Train the community on the new CI language, development and review process.

Transition from Jenkins to Gitlab-CI

...

. Enroll users in Gitlab.com and assign them their associated projects/roles.

Gerrit Read-Only & Jenkins Shutdown

Finalization of the migration by ensuring all projects have been set to read-only, description have been updated to point to the new location, and Jenkins & Jenkins Sandbox is shutdown.

Transition Process

  1. Create a copy of the code in Gitlab under gitlab.com/anuket-transition
  2. Develop Gitlab-CI, utilizing shared runners and Lab-as-a-Service hardware where needed, and produce a .gitlab-ci.yml file between the projects current CI and Gitlab.
  3. Propose the .gitlab-ci.yml

...

Process

...

  • Import the project to the PoC organization
  • Scope out the CI requirements and resources
  • Develop CI by utilizing Lab-as-a-Service resources for virtual and hardware deployments

...

  • Merge new CI configuration in Gerrit
  • Enroll and configure hardware resources
  • Ensure all Gerrit changes are closed
  • Disable replication on Gerrit
  • Set project as "read-only"

...

  1. file for inclusion into the project (the project signs off on the work and merges, the change is not pushed directly to the repository).
    For projects at gerrit.opnfv.org, this will be a patchset.
    For projects at github.com/cntt-n, this will be a PR.
  2. Create the project under gitlab.com/anuket and configure permission schemes, and DCO.
  3. Enroll the hardware in Gitlab, while marking the runner as offline so as to not run any jobs.
  4. Enroll project committers and contributors in Gitlab.
  5. Train the project on Gitlab processes and Gitlab-CI.
  6. Mirror the project under gitlab.com/anuket
    For projects at github.com/cntt-n this will be an import, and need to be scheduled (see Next step).
    For pilot projects, this will be a move from their current location to the new group.
  7. Schedule a time (communicate to contributors in advance) with the project to cut-over development and hardware (This can be schedule for everyone at once, if desired).
  8. Update the original repository description with a notice that the project has moved, and mark the project as archived (read-only).
  9. Remove project jobs from previous CI, remove project from gitlab.com/anuket-transition.

Questions & Answers

  • Who is doing the work?
    • LF IT will be doing the work to convert project's CI from Jenkins to Gitlab, culminating in a patchset/Pull Request/Merge Request of the .gitlab-ci.yml file for the project approve.
  • How will it impact my project?
    • There should be low impact to project's current work, as the transition will run in parallel until project's are ready to make the transition.
  • How do I get support?
    • Current support process stays the same. LF IT will interface with Gitlab.
  • Who is administrating?
    • Initially LF IT, future TBD
  • Can you modify changes in the browser?
  • Will issues and PRs come over if importing from Github?
    • Yes, along with all branches, but we’ll want users enrolled first.
  • What does the process look like for Gerrit/Github/Pilots?
    • See Transition Process above.

Notable Features

Table of Contents

Table of Contents