kernelci / kernelci/kernelci-pipeline
3-stage build job
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 11
- Forks
- 40
- Avg merge
- 2d 13h
- Merged PRs (30d)
- 14
Description
During the discussion(https://github.com/kernelci/kernelci-pipeline/issues/330) of kbuild fragments we came to conclusion we need to implement 3-stage kernel build job:
- Prepare job (generate config fragments, shell script with compile commands), run in kernelci/kernelci container
- Compile job (compile kernel), run in compiler specific container
- Complete job (upload artifacts, send notifications), run in kernelci/kernelci container
After initial investigation i found it is possible in k8s following way:
apiVersion: v1
kind: Pod
metadata:
name: sequential-job
spec:
restartPolicy: Never
volumes:
- name: shared-data
emptyDir: {}
# these run sequentally
initContainers:
- name: job-1
image: kernelci/kernelci
command: ['sh', '-c', 'prepare-kbuild.sh','nodeid','jobid']
volumeMounts:
- name: shared-data
mountPath: /generated
- name: job-2
image: kernelci/compiler-gcc2055.1
command: ['sh', '-c', '/generated/compile.sh']
volumeMounts:
- name: shared-data
mountPath: /generated
# syntax require to have one from "containers"
# it will run only after all initContainers are finished
containers:
- name: job-3
image: kernelci/kernelci
command: ['sh', '-c', 'complete.sh','nodeid','jobid']
volumeMounts:
- name: shared-data
mountPath: /generated
Ignore script names, type, nodeid and jobid, it is just example for now
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading this issue alongside the linked discussion in issue #330, then inspect how the existing pipeline represents kernel build jobs. Use the Kubernetes Pod example as the proposed execution model, and consider the work complete when preparation, compilation, and completion run sequentially in their specified containers with shared generated data and artifact handling.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kubernetes, shell
- Domain
- devops, infrastructure
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100