Red Hat's Continous Kernel Integration (CKI) project provides CI-as-a-service for all internal kernel development.
GitLab CI is used for the CKI kernel testing, but also for development, testing and deployment of the CKI infrastructure itself.
In this talk, we will show how you can use some of the more advanced features of GitLab CI/CD to DevOps-ify your project.
Based on a fictive Python service modeled after the CKI project, we will demonstrate how to
- use templates to setup the repositories for a couple of microservices
- efficiently define a common CI/CD pipeline (test + build + deploy) across repositories
- integrate linters and unit tests
- visualize and enforce code coverage
- setup approval rules based on code ownership
- test the effect of unmerged code changes on dependent projects by triggering child pipelines
- continuously deliver microservices via container images
- use one common GitOps infrastructure repository for managing *all* infrastructure
- continuously/manually deploy an application to production/staging/per-MR testing environments in an OpenShift cluster even for unmerged code
- manually rollback you application to a previous version within seconds
We hope to convince you that using the extensive CI/CD features of contemporary Git forges like GitHub and GitLab will allow you to
- have more fun while working on your projects, *and*
- deliver more features faster
The example repositories used in the presentation can be found at
https://gitlab.com/cki-project/devconfcz-2022-example.
Background about the CKI project:
The CKI project provides all the infrastructure behind the green check marks on CentOS/RHEL kernel merge requests on gitlab.com.
All code and deployment infrastructure is developed completely in the open at
https://gitlab.com/cki-project.
Currently, the CKI project consists of about 70 microservices/cronjobs and dozens of code repositories.
Every day, about 20 code and infrastructure changes are merged and automatically deployed to the production environment.
Session chairs: Marek Haičman and Nora Haxidautiova