CKI pipeline configuration options
All pipelines share the same code and make decisions based on the passed configuration options in form of trigger variables. Other tools interacting with the pipeline may also need to do the same, one such example would be reporter which needs to know where to send emails for the pipeline.
All the options below are in alphabetical order.
Note that this list does not contain internal pipeline variables that are technically possible to be overridden but are not meant to be touched, such as
rpmbuildoptions orccacherelated variables.
For variables required by triggers but not needed for the pipeline run itself, please refer to the pipeline triggers documentation.
Pipeline configuration option list
The pipeline and tooling handles both
Trueandtrue(similarly withFalse/false). For simplicity, only capitalized values are mentioned below.
-
architectures: Space-separated list of architectures to run the pipeline for, in RPM architecture format. Required in every pipeline. -
ARTIFACT_*: Information about where to find original pipeline artifacts if short pipelines are requested viatests_only=true. Used by the CI bot. MUST NOT BE USED IN PRODUCTION. -
AUTOMOTIVE_CONFIGURATION_URL: URL which holds test image related definitions in a json file for automotive testing. Default set to SIG AutoSD -
branch: Target branch of the kernel repository that should be built and tested. Used in reporting and messaging, not in the pipeline itself.commit_hashmust be provided for a correct pipeline run. -
brew_task_id: Brew or Koji task ID. Only applicable to Brew/Koji pipelines. -
brew_nvr: Brew or Koji SRPM NVR. This will trigger pipelines similar tobrew_task_id, but the resulting KCIDB objects will have IDs based on the GitLab pipeline IDs (i.e. NOTbrew-123). Only applicable to Brew/Koji pipelines. -
build_noarch:TrueifnoarchRPMs should be built,Falseotherwise. Defaults toTrue. Enabling this without actually building any such RPMs will blow up thebuild noarchjob. Only applicable to kernels built as RPMs. -
build_selftests:Trueif any kernel selftests should be built,Falseotherwise. Defaults toFalse. Will causemake kselftest-mergeconfiguration target to be called. Has to be used together withdebug_architecturesoption (as the selftest config target pulls in debug options). Only applicable to kernels built as tarballs. NOTE selftests build is currently only supported fordebugbuilds onx86_64architecture, other architectures are skipped. -
builder_image: Container image used for kernel building. Defaults toquay.io/cki/builder-rawhide. -
checkout_contacts: A string representing a JSON-encoded list of emails involved with the KCIDB checkout. Defaults to ‘[]’. -
CKI_DEPLOYMENT_ENVIRONMENT:retriggerif the pipeline is a retrigger for testing and should be ignored by all tooling. Defaults toproduction. -
commit_hash: Commit to check out from the repository. Required if a kernel needs to be built. For MR child pipelines, this is set toCI_COMMIT_SHA. -
compiler: Which compiler toolchain to use to build the kernel. Can begccorclang, defaults togcc. Specific behavior ofclangdiffers on supported functionality with Fedora configuration for given architecture. Has effect only when a kernel is built. -
source_package_name: Name of the kernel package. Defaults tokernel. -
config_target:makeconfiguration target to use on top of Fedora configuration files. Defaults toolddefconfig. Only applicable to kernels built as tarballs. -
coverage:Trueto build a kernel with code coverage. Defaults toFalse. -
coverage_dirs: Space-separated list of kernel source directories to capture coverage data for. Has effect withcoverage=Trueonly. Default value is specified in kpet-db repository. -
debug_architectures: Space-separated list of RPM architectures to build and test the debug variant (x86_64,aarch64,ppc64le,s390x,riscv64). Defaults to empty. -
disttag_override: Override for the RPM%distmacro of the builder container image. This is necessary if the built kernel belongs to a different distribution release, e.g..el8_3for a RHEL 8.3 kernel built on thebuilder-rhelcontainer image which has a%distmacro of.el8. Only applicable to kernels built as RPMs. -
domains: A space-separated list of regular expressions fully-matching names or slash-separated paths of kpet “host domains” to restrict test execution to. All tests targeting hosts in the matching domains will be executed once for each of the regular expressions. Runkpet domain treeto see available domains. If empty, tests will be executed once in all domains. Defaults toavailable. -
download_separate_headers: Iftrue, download separate kernel-headers binary from koji. Defaults tofalse. Useful if the headers are not part of the base kernel package. Only applicable to Brew/Koji pipelines. -
extra_baseline_run_set_patterns: Space-separated string representing test set patterns of runs to add to the pipeline. Useful if baseline-like runs are needed to be executed on top of targeted testing. Defaults to an empty string, i.e. no extra runs. -
force_baseline: Iftrue, MR pipeline runs won’t run targeted testing but will pretend to be a git branch tip run. Defaults tofalse. -
git_url: URL of the kernel repository that should be built and tested. Only used when a kernel is built. -
git_url_cache_owner: The file name for the git cache is determined asowner.repofrom the git URL. Explicitly set this variable to override the owner component for the git cache used forgit_url. -
image_tag: Container tag used for all container images in the pipeline. Defaults toproduction. -
kcidb_tree_name: KCIDB tree identifier, used e.g. in tree filtering in Data Warehouse. Typically contains upstream subtree name or distribution release, e.g.mainline.kernel.org,rhel-9orrhel-8.10. -
kernel_config_url: URL to a kernel configuration to use as a base for the built kernel. Optional, defaults to empty string. If not provided, Fedora rawhide configuration files are used. -
kernel_versionVersion part of the build NVR. Required for Brew/Koji builds. For builds done by CKI, it is determined in the pipeline. -
kpet_extra_components: A regular expression matching kpet’s build “components” to consider included into the kernel being tested, along with automatically-detected ones. See the output ofkpet component listfor a list and description of recognized components. -
kpet_high_cost: Override for kpet’s--high-costoption. Defaults totriggered. See the output ofkpet run generate --helpcommand for possible values. -
kpet_tree_name: For non-RHEL kernels, kpet-db tree name as returned bykpet tree list. For RHEL kernels, should be empty. There, the kpet tree selection script is used to determine the kpet-db tree name from theNVR. -
KPET_ADDITIONAL_VARIABLES: Additional environment variables that should be passed as variables to kpet. Only for pipelines triggered via the CI bot. MUST NOT BE USED IN PRODUCTION. -
make_target:targz-pkgifmake targz-pkgshould be used for building the kernel,rpmifrpmbuildshould be used. Defaults torpm. NOTE should be renamed tobuild_targetin the future to reflect not all kernels are build using themakecommand. -
merge_branch: Optional. Name of the branch which should be merged into the tested kernel tree before patch application. -
merge_tree: Optional. Link to the kernel repository that should be merged into the tested kernel tree before patch application. Defaults togit_url. -
mr_id: ID of the merge request that should be tested. Only applicable to kernels living in GitLab. -
mr_source_branch_hash: Source branch HEAD commit ifcommit_hashpoints to a merge commit. For MR child pipelines, this is set toCI_MERGE_REQUEST_SOURCE_BRANCH_SHA. -
name: NOTE Deprecated and replaced bykcidb_tree_name. -
native_architectures: Space-separated list of RPM architectures supported by RHEL >= 8 other thanx86_64that should use native compilation (aarch64,s390x,ppc64le,riscv64). This requires native gitlab-runners to be set up for that purpose. Currently, this is only the case foraarch64. Defaults toaarch64. -
native_tools:Trueif kernel tools should be built separately from kernel on a native architecture. Defaults toFalse. Only available for kernels built as RPMs which have the required kernel features backported. -
native_tools_architectures: Space-separated list of RPM architectures supported by RHEL >= 8 other thanx86_64that should use native tools compilation (aarch64,s390x,ppc64le,riscv64). This requires native-tools gitlab-runners to be set up for that purpose. Currently, this is only the case foraarch64,s390xandppc64le. Defaults toaarch64 s390x ppc64le. -
officialbuild:trueif the kernel build coming from Brew/Koji and is not a scratch build. Defaults tofalse. Iftrue, addsofficialbuildto components list. -
package_name: Name of the kernel variant, e.g.kernelorkernel-rt. Required for kernels built as RPMs (both ones built in the pipeline and by build systems) as boot test uses the value. Defaults tokernel. -
patch_urls: Links to raw patches or mboxes to apply, in a form of space-separated string. Patches are applied usinggit am. -
public:trueorfalse. Used by DataWarehouse and KCIDB forwarder to determine whether the kernel build is internal (public=false), or can be shared publicly (public=true). Defaults tofalse. -
report_rules: JSON encoded list of reporting rules for the current checkout. -
rpmbuild_with: Space-separated strings marking a set of--withoptions to be added to therpmbuildcommand. Only applicable to kernels packaged as RPMs. Defaults to an empty string (no extra options added). -
rt_kernel:Trueif realtime kernel configuration options should be enabled for tarball packaged kernels. Defaults toFalse. -
run_redhat_self_test:Trueif the pipeline should run the kernel’sredhat/self-testtestsuite. Defaults toFalse. -
scratch:trueif the kernel build is a scratch build (Brew/Koji) or is triggered by a merge request,falseif not. Defaults totrue. This is also set tofalsefor git-repo baselines, i.e. pipelines not associated with a merge request. -
selftest_subsets: Optional variable specifying a list of space-separated selftest subsets to build. If it’s missing andbuild_selftestsisTrue, CKI will build all selftest subsets. Only applicable to kernels packaged as tarballs. -
send_pre_test_notification:Trueif an email should be sent to a build submitter before testing starts. Defaults toFalse. The email contains links to Beaker jobs for people to follow, thus is only useful for internal contributors. NOTE After migrating to UPT this notification will make no sense as there will be no test logs available in the Beaker jobs, and thus the option may end up being removed or reworked. -
send_report_to_upstream:Trueif the email report should be sent to the contributors. Causes the triggers to add emails to themail_to,mail_ccandmail_bcctrigger variables and the reporter to send the email to them. NOTE recipient handling is being reworked and this variable will be removed later. -
server_url: Value of the--serveroption of thekojicommand to use to retrieve builds. Required for Brew/Koji pipelines usingdownload_separate_headers. -
skip_beaker:Trueif only a dry run for submitting a test job is needed. Defaults toTruein CI runs, toFalseotherwise. -
skip_build:Trueif the build stage should be skipped in the pipeline. Useful for only running testing with already existing kernels. Defaults toFalse. -
skip_createrepo:Trueif the createrepo stage should be skipped in the pipeline. Useful for only running testing with already existing kernels. Defaults toFalse. -
skip_kernel_installation:Trueif the kernel installation task (Boot test - kpkginstall) should be skipped. Useful for external provisioner or systems which have a preconfigured kernel already installed. Defaults toFalse. -
skip_merge:Trueif the merge stage should be skipped in the pipeline. Useful for only running testing with already existing kernels. Defaults toFalse. -
skip_publish:Trueif the publish stage should be skipped in the pipeline. Useful for only running testing with already existing kernels. Defaults toFalse. -
skip_results:Trueif result summary and known issue detection should be disabled. Defaults toFalse. -
skip_setup:Trueif the setup stage should be skipped. Defaults toFalse. -
skip_test:Trueif the test stage should be skipped. Defaults toFalse. -
srpm_make_target:maketarget to build SRPM. Defaults torh-srpm. -
subject: Email subject to use with email reports for the test results, will be prefixed with the result summary. If missing, a generic subject mentioning the kernel version and pipeline name will be built. -
submitter: Email of the build submitter. -
test_priority: Priority for submitting test jobs. Can below,medium,normal,highorurgent. Defaults tonormal. NOTE not every provisioner supports test run priorities. USE RESPONSIBLY. -
test_runner: Where to run testing. Currently available runners areaws(limited testing available in virtual machines),testingfarmandbeaker. Defaults tobeaker. -
test_set: Test set(s) to run for the pipeline, in the kpet generate-soption syntax. By default, all sets are included for MR runs (and tests are picked via diff analysis) and official kernel builds are limited to sanitykt1testing. Also check out documentation for targeted testing for builds on how to limit test sets for a single build. -
tests_regex: If specified, tests names have tofullmatch()this regular expression to run. Can be combined withtest_setto only run specific tests from the set(s). Not meant for production use as the test names can change, always usetest_setfor production. Current list of test names can be retrieved by running kpet test list. Some tests are selected based onofficialbuildcomponent, seescratchoption how to set or unset it. -
test_upt:Trueif the pipeline is for running UPT smoke tests. Defaults toFalse, i.e. generate the Beaker XML with kpet. -
top_url: Value of the--topurloption of thekojicommand to use to retrieve builds. Required for Brew/Koji pipelines usingdownload_separate_headers. -
trigger_job_name: TheCI_JOB_NAMEwhich triggered the pipeline. Useful for consumers of downstream pipeline webhook events such as the kernel-webhook’s ckihook. A regular downstream pipeline is expected to be named using the following format:<RHELMAJOR>_<VARIANT>_<TYPE>_<SECLEVEL>:<RHELMAJOR>: RHEL major version, i.e.rhel8or for CentOS Streamc9s,c10s, etc.<VARIANT>: optional and can beautomotive,realtimeorrealtime[_-]check<TYPE>:baselineormerge[_-]request<SECLEVEL>: optional; onlyprivateis a valid value
There are also special coverage and shadow builds enabled for specific setups. These conform to the schema of
<RHELMAJOR>_<VARIANT>_baseline_coverage_buildand<CENTOSMAJOR>_<RHELMAJOR>_compat_<TYPE>. Note that the<RHELMAJOR>in case<CENTOSMAJOR>is used as well matches the RHEL name, not the CentOS Stream name. -
upt_smoke_tests: Space-separated list of UPT smoke tests to run. Defaults to all available smoke tests (See pipeline variables). Has effect only iftest_uptisTrue. -
watch_branchGit branch to watch to trigger testing on changes. Defaults tobranch. For use with git repo trigger only. -
watch_url: Git repo URL to watch to trigger testing on changes. Defaults togit_url. For use with git repo trigger only. -
web_url: Value of the--weburloption of thekojicommand to use to retrieve builds. Required for Brew/Koji pipelines usingdownload_separate_headers.