kernelci / kernelci/kernelci-pipeline

Reorganise pipeline YAML config

Open
#344 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
11
Forks
40
Avg merge
2d 13h
Merged PRs (30d)
14

Description

Historically, the `kernelci-core` repository had its configuration for builds and boot tests directly built-in as Python dictionaries. Then this got converted to YAML but stayed in the same repository with the code. With the new API & Pipeline, the `kernelci` Python package should be decoupled from the YAML configuration which is really specific to each pipeline instance and client-side services.

It probably makes sense to provide some standard entries such as the public API instances, upstream Git kernel trees, local runtimes (shell, docker) and some job definitions with a basic scheduler. This could be installed in `/etc/kernelci` as is currently the case in the `kernelci/kernelci` Docker image, then users could supply additional files in a local directory with their own specific entries as an overlay. For the production KernelCI instance, these files would be stored in `kernelci-pipeline` as per the current proof-of-concept `pipeline.yaml` file there. The same principle can apply with Jinja2 templates and other configuration files, with a same directory structure as in `/etc/kernelci` but in a local user directory.

- [ ] Investigate whether this would provide a long-term solution to deploy YAML pipeline configuration
- [ ] Plan deprecation for legacy YAML files and related code
- [ ] New proposal implemented
- [ ] Tested on staging with new API
- [ ] Verified that legacy code is not impacted
- [ ] Merged and ready for production deployment

Contributor guide

No contributing guide indexed for this repository

Research direction

Review the kernelci Python package, the configuration bundled in the kernelci Docker image, and the proof-of-concept pipeline.yaml in kernelci-pipeline. First compare the current YAML layout with the proposed /etc/kernelci and local overlay structure. Done means a documented proposal, a legacy deprecation plan, staging validation with the new API, and confirmation that legacy code remains unaffected.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, yaml
Domain
build-system, devops
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.