Merge "Delete remains of DMM jobs"
[ci-management.git] / docker / scripts / README.md
1 # Automated Building Of FD.io CI Executor Docker Images
2
3 This collection of bash scripts and libraries is used to automate the process
4 of building FD.io docker 'builder' images (aka Nomad executors). The goal is to
5 create a completely automated CI/CD pipeline. The bash code is designed to be
6 run in a regular Linux bash shell in order to bootstrap the CI/CD pipeline
7 as well as in a docker 'builder' image started by a ci-management jenkins job.
8 The Dockerfile is generated prior to executing 'docker build' based on the os
9 parameter specified.  The project git repos are also copied into the docker
10 container and retained for optimization of git object retrieval by the Jenkins
11 jobs running the CI/CD tasks.
12
13 ## Image Builder Algorithm
14
15 The general algorithm to automate the generation of the docker images such that
16 the downloadable requirements for each project are pre-installed or cached in
17 the executor image is as follows:
18
19 1. Run the docker image builder on a host of the target architecture.  Bootstrap
20    images will be built 'by hand' on target hosts until such a time when the
21    CI is capable of executing the docker image builder scripts inside docker
22    images running on Nomad instances via jenkins jobs.
23
24 2. For each OS package manager, there is a bash function which generates the
25    Dockerfile for the specified OS which uses said package manager. For example,
26    lib_apt.sh contains 'generate_apt_dockerfile()' which is executed for Ubuntu
27    and debian OS's.  lib_yum.sh and lib_dnf.sh contain similar functions for yum
28    (centos-7) and dnf (centos-8).
29
30 3. The Dockerfiles contain the following sections:
31  - a. Environment setup and copying of project workspace git repos
32  - b. Installation of OS package pre-requisites
33  - c. Docker install and project requirements installation (more on this below)
34  - d. Working environment setup
35  - e. Build cleanup
36
37 4. The Project installation section (c.) above is where all of the packages
38    for each of the supported project branches are installed or cached to
39    save time and bandwidth when the CI jobs are run.  Each project script
40    defines the branches supported for each OS and iterates over them from
41    oldest to newest using the dependency and requirements files or build
42    targets in each supported project branch.
43
44 5. `docker build` is run on the generated Dockerfile.
45
46 ## Bash Libraries (lib_*.sh)
47
48 The bash libraries are designed to be sourced both inside of the docker build
49 environment (e.g. from a script invoked in a Dockerfile RUN statement) as well
50 as in a normal Linux shell. These scripts create environment variables and
51 bash functions for use by the operational scripts.
52
53 - `lib_apt.sh`: Dockerfile generation functions for apt package manager.
54
55 - `lib_common.sh`: Common utility functions and environment variables
56
57 - `lib_csit.sh`: CSIT specific functions and environment variables
58
59 - `lib_dnf.sh`: Dockerfile generation functions for dnf package manager.
60
61 - `lib_vpp.sh`: VPP specific functions and environment variables
62
63 - `lib_yum.sh`: Dockerfile generation functions for yum package manager.
64
65 ## Bash Scripts
66
67 There are two types of bash scripts, those intended to be run solely inside
68 the docker build execution environment, the other run either inside or
69 outside of it.
70
71 ### Docker Build (dbld_*.sh) Scripts
72
73 These scripts run inside the 'docker build' environment are either per-project
74 scripts that install OS and python packages or scripts that install other docker
75 image runtime requirements.
76
77 Python packages are not retained because they are typically installed in virtual
78 environments. However installing the python packages in the Docker Build scripts
79 populates the pip/http caches. Therefore packages are installed from the cache
80 files during CI job execution instead of being downloaded from the Internet.
81
82 - `dbld_csit_find_ansible_packages.sh`: Script to find OS packages installed by
83 CSIT using ansible.
84
85 - `dbld_csit_install_packages.sh`: Install OS and python packages for CSIT
86 branches
87
88 - `dbld_dump_build_logs.sh`: Find warnings/errors in the build logs and dump
89 the build_executor_docker_image.sh execution log.
90
91 - `dbld_install_docker.sh`: Install docker ce
92
93 - `dbld_lfit_requirements.sh`: Install requirements for LFIT global-jjb
94 macros / scripts
95
96 - `dbld_vpp_install_packages.sh`: Install OS and python packages for VPP
97 branches
98
99 ### Executor Docker Image Management Bash Scripts
100
101 These scripts are used to build executor docker images, inspect the results, and
102 manage the docker image tags in the Docker Hub fdiotools repositories.
103
104 - `build_executor_docker_image.sh`: Build script to create one or more executor
105 docker images.
106
107 - `update_dockerhub_prod_tags.sh`: Inspect/promote/revert production docker tag
108 in the Docker Hub fdiotools repositories.
109
110 ## Running The Scripts
111
112 ### Bootstrapping The Builder Images
113
114 The following commands are useful to build the initial builder images:
115
116 `cd <ci-managment repository directory>`
117
118 `sudo ./docker/scripts/build_executor_docker_image.sh ubuntu-18.04 2>&1 | tee u1804-$(uname -m).log | grep -ve '^+'`
119
120 `sudo ./docker/scripts/build_executor_docker_image.sh centos-7 2>&1 | tee centos7-$(uname -m).log | grep -ve '^+'`
121
122 `sudo ./docker/scripts/build_executor_docker_image.sh -apr sandbox 2>&1 | tee all-sandbox-$(uname -m).log | grep -ve '^+'`
123
124 Note: The initial population of a Docker Hub repository is performed manually by
125 tagging and pushing the verified sandbox image as 'prod-<arch>' and
126 'prod-prev-<arch>' as the update_dockerhub_prod_tags.sh script assumes that
127 both labels exist in the repo. After the intial images have been pushed to the
128 Docker Hub respository, the update script is used to prevent inadvertently
129 applying the wrong tags to images in the repository.
130
131 ### Building in a Builder Image
132
133 By running the docker image with docker socket mounted in the container,
134 the docker build environment runs on the host's docker daemon.  This
135 avoids the pitfalls encountered with Docker-In-Docker environments:
136
137 `sudo docker run -it -v /var/run/docker.sock:/var/run/docker.sock <docker-image>`
138
139 The environment in the docker shell contains all of the necessary
140 environment variable definitions so the docker scripts can be run
141 directly on the cli.  Here is an example command that would be used in a CI job
142 which automates the generation and testing of a new ubuntu-18.04 docker image
143 and push it to Docker Hub fdiotools/builder-ubuntu1804:test-<arch>:
144
145 `build_executor_docker_image.sh -pr test ubuntu-18.04`
146
147 In the future, a fully automated CI/CD pipeline may be created for production
148 docker images.
149
150 # Docker Image Script Workflow
151
152 This section describes the current workflow used for managing the CI/CD pipeline
153 for the Docker Images used by the FD.io CI Jobs.
154
155 Note: all operations that push images or image tags to Docker Hub require an
156 account with management privileges of the fdiotools repositories.
157
158 ## Update Production Docker Images
159
160 Note: Presently only the 'builder' class executor docker images are supported.
161 The others will be supported in the near future.
162
163 ### Build Docker Images and Push to Docker Hub with Sandbox CI Tag
164
165 For each hardware architecture, the build_executor_docker_image.sh script is
166 used to build all variants of the each executor class:
167
168 1. `git clone https://gerrit.fd.io/r/ci-management && cd ci-management`
169
170 2. `sudo ./docker/scripts/build_executor_docker_image.sh -p -r sandbox -a | tee builder-all-sandbox-$(uname -m).log | grep -ve '^+'``
171
172 3. `Inspect the build log for Errors and other build anomalies`
173
174 This step will take a very long time so best to do it overnight. There is not
175 currently an option to automatically run builds in parallel, so if optimizing
176 build times is important, then run the jobs in separate shells for each OS.
177 The aarch64 builds are particularly slow, thus may benefit from being run on
178 separate hosts in parallel.
179
180 Note: the 'prod' role is disallowed in the build script to prevent accidental
181 deployment of untested docker images to production.
182
183 ### Test Docker Images in the Jenkins Sandbox
184
185 In the future, this step will be automated using the role 'test' and associated
186 tags, but for now testing is a manual operation.
187
188 1. `git clone https://gerrit.fd.io/r/vpp ../vpp && source ../vpp/extras/bash/functions.sh`
189
190 2. Edit jjb/vpp/vpp.yam (or other project yaml file) and replace '-prod-' with '-sandbox-' for all of the docker image
191
192 3. `jjb-sandbox-env`  # This bash function currently lives in ../vpp/extras/bash/functions.sh
193  - TODO: move it to ci-management repo.
194
195 4. For each job using one of the docker images:
196
197    a. `jjsb-update <job name(s)>` # bash function created by jjb-sandbox-env to
198    push job to the sandbox
199
200    b. manually run the job in https://jenkins.fd.io/sandbox
201
202    c. Inspect the console output of each job for unnecessary downloads & errors.
203
204 ### Promote Docker Images to Production
205
206 Once all of the docker images have been tested, promote each one to production:
207
208 `sudo ./docker/scripts/update_dockerhub_prod_tags.sh promote <image name>`
209
210 Note: this script currently requires human acceptance via the terminal to ensure
211 correctness.
212 It pulls all tags from the Docker Hub repos, does an Inspect action (displaying
213 the current state of 'prod' & 'prod-prev' tags) and local Promotion action (i.e.
214 tags local images with 'prod-<arch>' and 'prod-prev-<arch>') with a required
215 confirmation to continue the promotion by pushing the tags to Docker Hub. If
216 'no' is specified, it restores the previous local tags so they match the state
217 of Docker Hub and does a new Inspect action for verification.  If 'yes' is
218 specified, it prints out the command to use to restore the existing state of the
219 production tags on Docker Hub in case the script is terminated prior to
220 completion.  If necessary, the restore command can be repeated multiple times
221 until it completes successfully since it promotes the 'prod-prev-<arch>' image,
222 then the 'prod-<arch>' image in succession.
223
224 ## Other Docker Hub Operations
225
226 ### Inspect Production Docker Image Tags
227
228 Inspect the current production docker image tags:
229
230 `sudo ./docker/scripts/update_dockerhub_prod_tags.sh inspect fdiotools/<class>-<os name>:prod-$(uname -m)`
231
232 ### Revert Production Docker Image To Previous Docker Image
233
234 Inspect the current production docker image tags:
235
236 `sudo ./docker/scripts/update_dockerhub_prod_tags.sh revert fdiotools/<class>-<os name>:prod-$(uname -m)`
237
238 ### Restoring Previous Production Image State
239
240 Assuming that the images still exist in the Docker Hub repository, any previous
241 state of the production image tags can be restored by executing the 'restore
242 command' as output by the build_executor_docker_image.sh script.  This script
243 writes a copy of all of the terminal output to a log file in
244 /tmp/build_executor_docker_image.sh.<date>.log thus providing a history of the
245 restore commands. When the building of executor docker images is peformed by a
246 CI job, the logging can be removed since the job execution will be captured in
247 the Jenkins console output log.
248
249 ### Docker Image Garbage Collection
250
251 Presently, cleaning up the Docker Hub repositories of old images/tags is a
252 manual process using the Docker Hub WebUI.  In the future, a garbage collection
253 script will be written to automate the process.
254
255 # DockerHub Repository & Docker Image Tag Nomenclature:
256
257 ## DockerHub Repositories
258
259 - fdiotools/builder-centos7
260 - fdiotools/builder-centos8
261 - fdiotools/builder-debian9
262 - fdiotools/builder-debian10
263 - fdiotools/builder-ubuntu1804
264 - fdiotools/builder-ubuntu2004
265 - fdiotools/csit-ubuntu1804
266 - fdiotools/csit_dut-ubuntu1804
267 - fdiotools/csit_shim-ubuntu1804
268
269 ## Docker Image Tags
270
271 - prod-x86_64: Tag used to select the x86_64 production image by the associated
272 Jenkins-Nomad Label.
273 - prod-prev-x86_64: Tag of the previous x86_64 production image used to revert
274 a production image to the previous image used in production.
275 - prod-aarch64: Tag used to select the aarch64 production image by the
276 associated Jenkins-Nomad Label.
277 - prod-prev-aarch64 Tag of the previous aarch64 production image used to revert
278 a production image to the previous image used in production.
279 - sandbox-x86_64: Tag used to select the x86_64 sandbox image by the associated
280 Jenkins-Nomad Label.
281 - sandbox-aarch64: Tag used to select the aarch64 sandbox image by the
282 associated Jenkins-Nomad Label.
283 - test-x86_64: Tag used to select the x86_64 sandbox image by the associated
284 Jenkins-Nomad Label.
285 - test-aarch64: Tag used to select the aarch64 sandbox image by the associated
286 Jenkins-Nomad Label.
287
288 # Jenkins-Nomad Label Definitions
289
290 <class>-<os>-<role>-<arch>  (e.g. builder-ubuntu1804-prod-x86_64)
291
292 - class
293 -- builder
294 -- csit
295 -- csit_dut
296 -- csit_shim
297
298 - os
299 -- ubuntu1804
300 -- centos7
301 -- ubuntu2004
302 -- centos8
303 -- debian9
304 -- debian10
305
306 - role
307 -- prod
308 -- test
309 -- sandbox
310
311 - arch
312 -- x86_64
313 -- aarch64
314
315 ## Jenkins Nomad Plugin Node Labels
316
317 ### Common Attributes of All Jenkins Nomad Plugin Nodes
318 - Disk: 3000
319 - Priority: 50
320 - Idle Termination Time: 10
321 - Executors: 1
322 - Usage: Only build jobs with label expressions matching this node
323 - Workspace root: /w
324 - Privileged: Y
325 - Network: bridge
326 - Force-pull: Y
327
328 ### Production (prod) Jenkins Nomad Plugin Nodes
329
330 #### Node 'builder-ubuntu1804-prod-x86_64'
331 - Labels: builder-ubuntu1804-prod-x86_64
332 - Job Prefix: builder-ubuntu1804-prod-x86_64
333 - Image: fdiotools/builder-ubuntu1804:prod-x86_64
334 - CPU: 14000
335 - Memory: 14000
336 - ${attr.cpu.arch}: amd64
337 - ${node.class}: builder
338
339 #### Node 'builder-ubuntu1804-prod-aarch64'
340 - Labels: builder-ubuntu1804-prod-aarch64
341 - Job Prefix: builder-ubuntu1804-prod-aarch64
342 - Image: fdiotools/builder-ubuntu1804:prod-aarch64
343 - CPU: 6000
344 - Memory: 10000
345 - ${attr.cpu.arch}: arm64
346 - ${node.class}: builder
347
348 #### Node 'builder-centos7-prod-x86_64'
349 - Labels: builder-centos7-prod-x86_64
350 - Job Prefix: builder-centos7-prod-x86_64
351 - Image: fdiotools/builder-centos7:prod-x86_64
352 - CPU: 14000
353 - Memory: 14000
354 - ${attr.cpu.arch}: amd64
355 - ${node.class}: builder
356
357 #### Node 'builder-centos7-prod-aarch64'
358 - Labels: builder-centos7-prod-aarch64
359 - Job Prefix: builder-centos7-prod-aarch64
360 - Image: fdiotools/builder-centos7:prod-aarch64
361 - CPU: 6000
362 - Memory: 10000
363 - ${attr.cpu.arch}: arm64
364 - ${node.class}: builder
365
366 #### Node 'builder-ubuntu2004-prod-x86_64'
367 - Labels: builder-ubuntu2004-prod-x86_64
368 - Job Prefix: builder-ubuntu2004-prod-x86_64
369 - Image: fdiotools/builder-ubuntu2004:prod-x86_64
370 - CPU: 14000
371 - Memory: 14000
372 - ${attr.cpu.arch}: amd64
373 - ${node.class}: builder
374
375 #### Node 'builder-ubuntu2004-prod-aarch64'
376 - Labels: builder-ubuntu2004-prod-aarch64
377 - Job Prefix: builder-ubuntu2004-prod-aarch64
378 - Image: fdiotools/builder-ubuntu2004:prod-aarch64
379 - CPU: 6000
380 - Memory: 10000
381 - ${attr.cpu.arch}: arm64
382 - ${node.class}: builder
383
384 #### Node 'builder-centos8-prod-x86_64'
385 - Labels: builder-centos8-prod-x86_64
386 - Job Prefix: builder-centos7-prod-x86_64
387 - Image: fdiotools/builder-centos8:prod-x86_64
388 - CPU: 14000
389 - Memory: 14000
390 - ${attr.cpu.arch}: amd64
391 - ${node.class}: builder
392
393 #### Node 'builder-centos8-prod-aarch64'
394 - Labels: builder-centos8-prod-aarch64
395 - Job Prefix: builder-centos8-prod-aarch64
396 - Image: fdiotools/builder-centos8:prod-aarch64
397 - CPU: 6000
398 - Memory: 10000
399 - ${attr.cpu.arch}: arm64
400 - ${node.class}: builder
401
402 #### Node 'builder-debian9-prod-x86_64'
403 - Labels: builder-debian9-prod-x86_64
404 - Job Prefix: builder-debian9-prod-x86_64
405 - Image: fdiotools/builder-debian9:prod-x86_64
406 - CPU: 14000
407 - Memory: 14000
408 - ${attr.cpu.arch}: amd64
409 - ${node.class}: builder
410
411 #### Node 'builder-debian9-prod-aarch64'
412 - Labels: builder-debian9-prod-aarch64
413 - Job Prefix: builder-debian9-prod-aarch64
414 - Image: fdiotools/builder-debian9:prod-aarch64
415 - CPU: 6000
416 - Memory: 10000
417 - ${attr.cpu.arch}: arm64
418 - ${node.class}: builder
419
420 #### Node 'builder-debian10-prod-x86_64'
421 - Labels: builder-debian10-prod-x86_64
422 - Job Prefix: builder-debian10-prod-x86_64
423 - Image: fdiotools/builder-debian10:prod-x86_64
424 - CPU: 14000
425 - Memory: 14000
426 - ${attr.cpu.arch}: amd64
427 - ${node.class}: builder
428
429 #### Node 'builder-debian10-prod-aarch64'
430 - Labels: builder-debian10-prod-aarch64
431 - Job Prefix: builder-debian10-prod-aarch64
432 - Image: fdiotools/builder-debian10:prod-aarch64
433 - CPU: 6000
434 - Memory: 10000
435 - ${attr.cpu.arch}: arm64
436 - ${node.class}: builder
437
438 #### Node 'csit_dut-ubuntu1804-prod-x86_64'
439 - Labels: csit_dut-ubuntu1804-prod-x86_64
440 - Job Prefix: csit_dut-ubuntu1804-prod-x86_64
441 - Image: fdiotools/csit_dut-ubuntu1804:prod-x86_64
442 - CPU: 10000
443 - Memory: 18000
444 - ${attr.cpu.arch}: amd64
445 - ${node.class}: csit
446
447 #### Node 'csit_dut-ubuntu1804-prod-aarch64'
448 - Labels: csit_dut-ubuntu1804-prod-aarch64
449 - Job Prefix: csit_dut-ubuntu1804-prod-aarch64
450 - Image: fdiotools/csit_dut-ubuntu1804:prod-aarch64
451 - CPU: 6000
452 - Memory: 10000
453 - ${attr.cpu.arch}: arm64
454 - ${node.class}: csitarm
455
456 #### Node 'csit_shim-ubuntu1804-prod-x86_64'
457 - Labels: csit_shim-ubuntu1804-prod-x86_64
458 - Job Prefix: csit_shim-ubuntu1804-prod-x86_64
459 - Image: fdiotools/csit_shim-ubuntu1804:prod-x86_64
460 - CPU: 10000
461 - Memory: 18000
462 - ${attr.cpu.arch}: amd64
463 - ${node.class}: csit
464
465 #### Node 'csit_shim-ubuntu1804-prod-aarch64'
466 - Labels: csit_shim-ubuntu1804-prod-aarch64
467 - Job Prefix: csit_shim-ubuntu1804-prod-aarch64
468 - Image: fdiotools/csit_shim-ubuntu1804:prod-aarch64
469 - CPU: 6000
470 - Memory: 10000
471 - ${attr.cpu.arch}: arm64
472 - ${node.class}: csitarm
473
474 ### Sandbox (sandbox) Jenkins Nomad Plugin Nodes
475
476 #### Node 'builder-ubuntu1804-sandbox-x86_64'
477 - Labels: builder-ubuntu1804-sandbox-x86_64
478 - Job Prefix: builder-ubuntu1804-sandbox-x86_64
479 - Image: fdiotools/builder-ubuntu1804:sandbox-x86_64
480 - CPU: 14000
481 - Memory: 14000
482 - ${attr.cpu.arch}: amd64
483 - ${node.class}: builder
484
485 #### Node 'builder-ubuntu1804-sandbox-aarch64'
486 - Labels: builder-ubuntu1804-sandbox-aarch64
487 - Job Prefix: builder-ubuntu1804-sandbox-aarch64
488 - Image: fdiotools/builder-ubuntu1804:sandbox-aarch64
489 - CPU: 6000
490 - Memory: 10000
491 - ${attr.cpu.arch}: arm64
492 - ${node.class}: builder
493
494 #### Node 'builder-centos7-sandbox-x86_64'
495 - Labels: builder-centos7-sandbox-x86_64
496 - Job Prefix: builder-centos7-sandbox-x86_64
497 - Image: fdiotools/builder-centos7:sandbox-x86_64
498 - CPU: 14000
499 - Memory: 14000
500 - ${attr.cpu.arch}: amd64
501 - ${node.class}: builder
502
503 #### Node 'builder-centos7-sandbox-aarch64'
504 - Labels: builder-centos7-sandbox-aarch64
505 - Job Prefix: builder-centos7-sandbox-aarch64
506 - Image: fdiotools/builder-centos7:sandbox-aarch64
507 - CPU: 6000
508 - Memory: 10000
509 - ${attr.cpu.arch}: arm64
510 - ${node.class}: builder
511
512 #### Node 'builder-ubuntu2004-sandbox-x86_64'
513 - Labels: builder-ubuntu2004-sandbox-x86_64
514 - Job Prefix: builder-ubuntu2004-sandbox-x86_64
515 - Image: fdiotools/builder-ubuntu2004:sandbox-x86_64
516 - CPU: 14000
517 - Memory: 14000
518 - ${attr.cpu.arch}: amd64
519 - ${node.class}: builder
520
521 #### Node 'builder-ubuntu2004-sandbox-aarch64'
522 - Labels: builder-ubuntu2004-sandbox-aarch64
523 - Job Prefix: builder-ubuntu2004-sandbox-aarch64
524 - Image: fdiotools/builder-ubuntu2004:sandbox-aarch64
525 - CPU: 6000
526 - Memory: 10000
527 - ${attr.cpu.arch}: arm64
528 - ${node.class}: builder
529
530 #### Node 'builder-centos8-sandbox-x86_64'
531 - Labels: builder-centos8-sandbox-x86_64
532 - Job Prefix: builder-centos8-sandbox-x86_64
533 - Image: fdiotools/builder-centos8:sandbox-x86_64
534 - CPU: 14000
535 - Memory: 14000
536 - ${attr.cpu.arch}: amd64
537 - ${node.class}: builder
538
539 #### Node 'builder-centos8-sandbox-aarch64'
540 - Labels: builder-centos8-sandbox-aarch64
541 - Job Prefix: builder-centos8-sandbox-aarch64
542 - Image: fdiotools/builder-centos8:sandbox-aarch64
543 - CPU: 6000
544 - Memory: 10000
545 - ${attr.cpu.arch}: arm64
546 - ${node.class}: builder
547
548 #### Node 'builder-debian9-sandbox-x86_64'
549 - Labels: builder-debian9-sandbox-x86_64
550 - Job Prefix: builder-debian9-sandbox-x86_64
551 - Image: fdiotools/builder-debian9:sandbox-x86_64
552 - CPU: 14000
553 - Memory: 14000
554 - ${attr.cpu.arch}: amd64
555 - ${node.class}: builder
556
557 #### Node 'builder-debian9-sandbox-aarch64'
558 - Labels: builder-debian9-sandbox-aarch64
559 - Job Prefix: builder-debian9-sandbox-aarch64
560 - Image: fdiotools/builder-debian9:sandbox-aarch64
561 - CPU: 6000
562 - Memory: 10000
563 - ${attr.cpu.arch}: arm64
564 - ${node.class}: builder
565
566 #### Node 'builder-debian10-sandbox-x86_64'
567 - Labels: builder-debian10-sandbox-x86_64
568 - Job Prefix: builder-debian10-sandbox-x86_64
569 - Image: fdiotools/builder-debian10:sandbox-x86_64
570 - CPU: 14000
571 - Memory: 14000
572 - ${attr.cpu.arch}: amd64
573 - ${node.class}: builder
574
575 #### Node 'builder-debian10-sandbox-aarch64'
576 - Labels: builder-debian10-sandbox-aarch64
577 - Job Prefix: builder-debian10-sandbox-aarch64
578 - Image: fdiotools/builder-debian10:sandbox-aarch64
579 - CPU: 6000
580 - Memory: 10000
581 - ${attr.cpu.arch}: arm64
582 - ${node.class}: builder
583
584 #### Node 'csit_dut-ubuntu1804-sandbox-x86_64'
585 - Labels: csit_dut-ubuntu1804-sandbox-x86_64
586 - Job Prefix: csit_dut-ubuntu1804-sandbox-x86_64
587 - Image: fdiotools/csit_dut-ubuntu1804:sandbox-x86_64
588 - CPU: 10000
589 - Memory: 18000
590 - ${attr.cpu.arch}: amd64
591 - ${node.class}: csit
592
593 #### Node 'csit_dut-ubuntu1804-sandbox-aarch64'
594 - Labels: csit_dut-ubuntu1804-sandbox-aarch64
595 - Job Prefix: csit_dut-ubuntu1804-sandbox-aarch64
596 - Image: fdiotools/csit_dut-ubuntu1804:sandbox-aarch64
597 - CPU: 6000
598 - Memory: 10000
599 - ${attr.cpu.arch}: arm64
600 - ${node.class}: csitarm
601
602 #### Node 'csit_shim-ubuntu1804-sandbox-x86_64'
603 - Labels: csit_shim-ubuntu1804-sandbox-x86_64
604 - Job Prefix: csit_shim-ubuntu1804-sandbox-x86_64
605 - Image: fdiotools/csit_shim-ubuntu1804:sandbox-x86_64
606 - CPU: 10000
607 - Memory: 18000
608 - ${attr.cpu.arch}: amd64
609 - ${node.class}: csit
610
611 #### Node 'csit_shim-ubuntu1804-sandbox-aarch64'
612 - Labels: csit_shim-ubuntu1804-sandbox-aarch64
613 - Job Prefix: csit_shim-ubuntu1804-sandbox-aarch64
614 - Image: fdiotools/csit_shim-ubuntu1804:sandbox-aarch64
615 - CPU: 6000
616 - Memory: 10000
617 - ${attr.cpu.arch}: arm64
618 - ${node.class}: csitarm
619
620 ### Automated Testing (test) Jenkins Nomad Plugin Nodes
621
622 #### Node 'builder-ubuntu1804-test-x86_64'
623 - Labels: builder-ubuntu1804-test-x86_64
624 - Job Prefix: builder-ubuntu1804-test-x86_64
625 - Image: fdiotools/builder-ubuntu1804:test-x86_64
626 - CPU: 14000
627 - Memory: 14000
628 - ${attr.cpu.arch}: amd64
629 - ${node.class}: builder
630
631 #### Node 'builder-ubuntu1804-test-aarch64'
632 - Labels: builder-ubuntu1804-test-aarch64
633 - Job Prefix: builder-ubuntu1804-test-aarch64
634 - Image: fdiotools/builder-ubuntu1804:test-aarch64
635 - CPU: 6000
636 - Memory: 10000
637 - ${attr.cpu.arch}: arm64
638 - ${node.class}: builder
639
640 #### Node 'builder-centos7-test-x86_64'
641 - Labels: builder-centos7-test-x86_64
642 - Job Prefix: builder-centos7-test-x86_64
643 - Image: fdiotools/builder-centos7:test-x86_64
644 - CPU: 14000
645 - Memory: 14000
646 - ${attr.cpu.arch}: amd64
647 - ${node.class}: builder
648
649 #### Node 'builder-centos7-test-aarch64'
650 - Labels: builder-centos7-test-aarch64
651 - Job Prefix: builder-centos7-test-aarch64
652 - Image: fdiotools/builder-centos7:test-aarch64
653 - CPU: 6000
654 - Memory: 10000
655 - ${attr.cpu.arch}: arm64
656 - ${node.class}: builder
657
658 #### Node 'builder-ubuntu2004-test-x86_64'
659 - Labels: builder-ubuntu2004-test-x86_64
660 - Job Prefix: builder-ubuntu2004-test-x86_64
661 - Image: fdiotools/builder-ubuntu2004:test-x86_64
662 - CPU: 14000
663 - Memory: 14000
664 - ${attr.cpu.arch}: amd64
665 - ${node.class}: builder
666
667 #### Node 'builder-ubuntu2004-test-aarch64'
668 - Labels: builder-ubuntu2004-test-aarch64
669 - Job Prefix: builder-ubuntu2004-test-aarch64
670 - Image: fdiotools/builder-ubuntu2004:test-aarch64
671 - CPU: 6000
672 - Memory: 10000
673 - ${attr.cpu.arch}: arm64
674 - ${node.class}: builder
675
676 #### Node 'builder-centos8-test-x86_64'
677 - Labels: builder-centos8-test-x86_64
678 - Job Prefix: builder-centos8-test-x86_64
679 - Image: fdiotools/builder-centos8:test-x86_64
680 - CPU: 14000
681 - Memory: 14000
682 - ${attr.cpu.arch}: amd64
683 - ${node.class}: builder
684
685 #### Node 'builder-centos8-test-aarch64'
686 - Labels: builder-centos8-test-aarch64
687 - Job Prefix: builder-centos8-test-aarch64
688 - Image: fdiotools/builder-centos8:test-aarch64
689 - CPU: 6000
690 - Memory: 10000
691 - ${attr.cpu.arch}: arm64
692 - ${node.class}: builder
693
694 #### Node 'builder-debian9-test-x86_64'
695 - Labels: builder-debian9-test-x86_64
696 - Job Prefix: builder-debian9-test-x86_64
697 - Image: fdiotools/builder-debian9:test-x86_64
698 - CPU: 14000
699 - Memory: 14000
700 - ${attr.cpu.arch}: amd64
701 - ${node.class}: builder
702
703 #### Node 'builder-debian9-test-aarch64'
704 - Labels: builder-debian9-test-aarch64
705 - Job Prefix: builder-debian9-test-aarch64
706 - Image: fdiotools/builder-debian9:test-aarch64
707 - CPU: 6000
708 - Memory: 10000
709 - ${attr.cpu.arch}: arm64
710 - ${node.class}: builder
711
712 #### Node 'builder-debian10-test-x86_64'
713 - Labels: builder-debian10-test-x86_64
714 - Job Prefix: builder-debian10-test-x86_64
715 - Image: fdiotools/builder-debian10:test-x86_64
716 - CPU: 14000
717 - Memory: 14000
718 - ${attr.cpu.arch}: amd64
719 - ${node.class}: builder
720
721 #### Node 'builder-debian10-test-aarch64'
722 - Labels: builder-debian10-test-aarch64
723 - Job Prefix: builder-debian10-test-aarch64
724 - Image: fdiotools/builder-debian10:test-aarch64
725 - CPU: 6000
726 - Memory: 10000
727 - ${attr.cpu.arch}: arm64
728 - ${node.class}: builder
729
730 #### Node 'csit_dut-ubuntu1804-sandbox-x86_64'
731 - Labels: csit_dut-ubuntu1804-sandbox-x86_64
732 - Job Prefix: csit_dut-ubuntu1804-sandbox-x86_64
733 - Image: fdiotools/csit_dut-ubuntu1804:sandbox-x86_64
734 - CPU: 10000
735 - Memory: 18000
736 - ${attr.cpu.arch}: amd64
737 - ${node.class}: csit
738
739 #### Node 'csit_dut-ubuntu1804-test-aarch64'
740 - Labels: csit_dut-ubuntu1804-test-aarch64
741 - Job Prefix: csit_dut-ubuntu1804-test-aarch64
742 - Image: fdiotools/csit_dut-ubuntu1804:test-aarch64
743 - CPU: 6000
744 - Memory: 10000
745 - ${attr.cpu.arch}: arm64
746 - ${node.class}: csitarm
747
748 #### Node 'csit_shim-ubuntu1804-test-aarch64'
749 - Labels: csit_shim-ubuntu1804-test-aarch64
750 - Job Prefix: csit_shim-ubuntu1804-test-aarch64
751 - Image: fdiotools/csit_shim-ubuntu1804:test-aarch64
752 - CPU: 6000
753 - Memory: 10000
754 - ${attr.cpu.arch}: arm64
755 - ${node.class}: csitarm