Job Primer
Overview
⚠️ NOTE
InJob Primer a job name is very important. Please make sure that the job names contain correct information. (see options below)JobPrimer is the ci-tool that is used to populate the BigQuery Jobs table. The Jobs table dictates which periodic jobs are ingested during disruption data gathering.
JobPrimer runs periodically in our CI. There are two sub commands described below that run on a cron schedule.
The configuration for
generate-job-namescan be found here. It updates thegenerated_job_names.txtfile then opens and merges the PR via the Openshift bot. (example PR)The configuration for
prime-job-tablewhich updates the table in big query can be found in theDPCR Job Aggregation Configs(private repo)https://github.com/openshift/continuous-release-jobs/tree/master/config/clusters/dpcr/services/dpcr-ci-job-aggregation/job-table-updater-cronjob.yaml
High Level Diagram
How The Data Flows
We first look at the
origin/releaserepo to gather a list of the current release jobs that were created. The below command is run to look through the current configuration and generate the job names.1./job-run-aggregator generate-job-names > pkg/jobrunaggregator/jobtableprimer/generated_job_names.txtThat
generated_jobs_names.txtis then committed to the repo.You must then rebuild the binary so the newly generated list is correctly embedded.
We then create the jobs in the BigQuery table by running the
prime-job-tablecommand (as aCronJobin the DPCR cluster in thedpcr-ci-job-aggregationproject). This will use the embeddedgenerated_jobs_names.txtdata and generate theJobsrows based off of the naming convention (see below). After which theJobstable should be updated with the latest jobs.1./job-run-aggregator prime-job-table
NOTE: the prime-job-table depends on the Jobs table existing ; that Jobs table is created (if it doesn’t already exist)
by the ./job-run-aggregator create-tables --google-service-account-credential-file <credJsonFile> command which is
run as part of the job-table-udpater CronJob.
Naming Convention
Please make sure your job names follow the convention defined below. All job names must include adequate information to allow proper data aggregation.
- Platform:
- aws, gcp, azure, etc…
- Architecture: (default:
amd64)- arm64, ppc64le, s390x
- Upgrade: (default:
assumes NOT upgrade)- upgrade
- Network: (default:
sdn && ipv4)- sdn, ovn
- ipv6, ipv4
- Topology: (default:
assumes ha)- single
- Serial: (default:
assumes parallel)- serial
| |