Use Ubuntu-20.04 for vpp-csit-* job executor images
[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_dut-ubuntu1804
266 - fdiotools/csit_shim-ubuntu1804
267
268 ## Docker Image Tags
269
270 - prod-x86_64: Tag used to select the x86_64 production image by the associated
271 Jenkins-Nomad Label.
272 - prod-prev-x86_64: Tag of the previous x86_64 production image used to revert
273 a production image to the previous image used in production.
274 - prod-aarch64: Tag used to select the aarch64 production image by the
275 associated Jenkins-Nomad Label.
276 - prod-prev-aarch64 Tag of the previous aarch64 production image used to revert
277 a production image to the previous image used in production.
278 - sandbox-x86_64: Tag used to select the x86_64 sandbox image by the associated
279 Jenkins-Nomad Label.
280 - sandbox-aarch64: Tag used to select the aarch64 sandbox image by the
281 associated Jenkins-Nomad Label.
282 - test-x86_64: Tag used to select the x86_64 sandbox image by the associated
283 Jenkins-Nomad Label.
284 - test-aarch64: Tag used to select the aarch64 sandbox image by the associated
285 Jenkins-Nomad Label.
286
287 # Jenkins-Nomad Label Definitions
288
289 <class>-<os>-<role>-<arch>  (e.g. builder-ubuntu1804-prod-x86_64)
290
291 - class
292 -- builder
293 -- csit_dut
294 -- csit_shim
295
296 - os
297 -- ubuntu1804
298 -- centos7
299 -- ubuntu2004
300 -- centos8
301 -- debian9
302 -- debian10
303
304 - role
305 -- prod
306 -- test
307 -- sandbox
308
309 - arch
310 -- x86_64
311 -- aarch64
312
313 ## Jenkins Nomad Plugin Node Labels
314
315 ### Common Attributes of All Jenkins Nomad Plugin Nodes
316 - Disk: 3000
317 - Priority: 50
318 - Idle Termination Time: 10
319 - Executors: 1
320 - Usage: Only build jobs with label expressions matching this node
321 - Workspace root: /w
322 - Privileged: Y
323 - Network: bridge
324 - Force-pull: Y
325
326 ### Production (prod) Jenkins Nomad Plugin Nodes
327
328 #### Node 'builder-ubuntu1804-prod-x86_64'
329 - Labels: builder-ubuntu1804-prod-x86_64
330 - Job Prefix: builder-ubuntu1804-prod-x86_64
331 - Image: fdiotools/builder-ubuntu1804:prod-x86_64
332 - CPU: 14000
333 - Memory: 14000
334 - ${attr.cpu.arch}: amd64
335 - ${node.class}: builder
336
337 #### Node 'builder-ubuntu1804-prod-aarch64'
338 - Labels: builder-ubuntu1804-prod-aarch64
339 - Job Prefix: builder-ubuntu1804-prod-aarch64
340 - Image: fdiotools/builder-ubuntu1804:prod-aarch64
341 - CPU: 6000
342 - Memory: 10000
343 - ${attr.cpu.arch}: arm64
344 - ${node.class}: builder
345
346 #### Node 'builder-centos7-prod-x86_64'
347 - Labels: builder-centos7-prod-x86_64
348 - Job Prefix: builder-centos7-prod-x86_64
349 - Image: fdiotools/builder-centos7:prod-x86_64
350 - CPU: 14000
351 - Memory: 14000
352 - ${attr.cpu.arch}: amd64
353 - ${node.class}: builder
354
355 #### Node 'builder-centos7-prod-aarch64'
356 - Labels: builder-centos7-prod-aarch64
357 - Job Prefix: builder-centos7-prod-aarch64
358 - Image: fdiotools/builder-centos7:prod-aarch64
359 - CPU: 6000
360 - Memory: 10000
361 - ${attr.cpu.arch}: arm64
362 - ${node.class}: builder
363
364 #### Node 'builder-ubuntu2004-prod-x86_64'
365 - Labels: builder-ubuntu2004-prod-x86_64
366 - Job Prefix: builder-ubuntu2004-prod-x86_64
367 - Image: fdiotools/builder-ubuntu2004:prod-x86_64
368 - CPU: 14000
369 - Memory: 14000
370 - ${attr.cpu.arch}: amd64
371 - ${node.class}: builder
372
373 #### Node 'builder-ubuntu2004-prod-aarch64'
374 - Labels: builder-ubuntu2004-prod-aarch64
375 - Job Prefix: builder-ubuntu2004-prod-aarch64
376 - Image: fdiotools/builder-ubuntu2004:prod-aarch64
377 - CPU: 6000
378 - Memory: 10000
379 - ${attr.cpu.arch}: arm64
380 - ${node.class}: builder
381
382 #### Node 'builder-centos8-prod-x86_64'
383 - Labels: builder-centos8-prod-x86_64
384 - Job Prefix: builder-centos7-prod-x86_64
385 - Image: fdiotools/builder-centos8:prod-x86_64
386 - CPU: 14000
387 - Memory: 14000
388 - ${attr.cpu.arch}: amd64
389 - ${node.class}: builder
390
391 #### Node 'builder-centos8-prod-aarch64'
392 - Labels: builder-centos8-prod-aarch64
393 - Job Prefix: builder-centos8-prod-aarch64
394 - Image: fdiotools/builder-centos8:prod-aarch64
395 - CPU: 6000
396 - Memory: 10000
397 - ${attr.cpu.arch}: arm64
398 - ${node.class}: builder
399
400 #### Node 'builder-debian9-prod-x86_64'
401 - Labels: builder-debian9-prod-x86_64
402 - Job Prefix: builder-debian9-prod-x86_64
403 - Image: fdiotools/builder-debian9:prod-x86_64
404 - CPU: 14000
405 - Memory: 14000
406 - ${attr.cpu.arch}: amd64
407 - ${node.class}: builder
408
409 #### Node 'builder-debian9-prod-aarch64'
410 - Labels: builder-debian9-prod-aarch64
411 - Job Prefix: builder-debian9-prod-aarch64
412 - Image: fdiotools/builder-debian9:prod-aarch64
413 - CPU: 6000
414 - Memory: 10000
415 - ${attr.cpu.arch}: arm64
416 - ${node.class}: builder
417
418 #### Node 'builder-debian10-prod-x86_64'
419 - Labels: builder-debian10-prod-x86_64
420 - Job Prefix: builder-debian10-prod-x86_64
421 - Image: fdiotools/builder-debian10:prod-x86_64
422 - CPU: 14000
423 - Memory: 14000
424 - ${attr.cpu.arch}: amd64
425 - ${node.class}: builder
426
427 #### Node 'builder-debian10-prod-aarch64'
428 - Labels: builder-debian10-prod-aarch64
429 - Job Prefix: builder-debian10-prod-aarch64
430 - Image: fdiotools/builder-debian10:prod-aarch64
431 - CPU: 6000
432 - Memory: 10000
433 - ${attr.cpu.arch}: arm64
434 - ${node.class}: builder
435
436 #### Node 'csit_dut-ubuntu1804-prod-x86_64'
437 - Labels: csit_dut-ubuntu1804-prod-x86_64
438 - Job Prefix: csit_dut-ubuntu1804-prod-x86_64
439 - Image: fdiotools/csit_dut-ubuntu1804:prod-x86_64
440 - CPU: 10000
441 - Memory: 18000
442 - ${attr.cpu.arch}: amd64
443 - ${node.class}: csit
444
445 #### Node 'csit_dut-ubuntu1804-prod-aarch64'
446 - Labels: csit_dut-ubuntu1804-prod-aarch64
447 - Job Prefix: csit_dut-ubuntu1804-prod-aarch64
448 - Image: fdiotools/csit_dut-ubuntu1804:prod-aarch64
449 - CPU: 6000
450 - Memory: 10000
451 - ${attr.cpu.arch}: arm64
452 - ${node.class}: csitarm
453
454 #### Node 'csit_shim-ubuntu1804-prod-x86_64'
455 - Labels: csit_shim-ubuntu1804-prod-x86_64
456 - Job Prefix: csit_shim-ubuntu1804-prod-x86_64
457 - Image: fdiotools/csit_shim-ubuntu1804:prod-x86_64
458 - CPU: 10000
459 - Memory: 18000
460 - ${attr.cpu.arch}: amd64
461 - ${node.class}: csit
462
463 #### Node 'csit_shim-ubuntu1804-prod-aarch64'
464 - Labels: csit_shim-ubuntu1804-prod-aarch64
465 - Job Prefix: csit_shim-ubuntu1804-prod-aarch64
466 - Image: fdiotools/csit_shim-ubuntu1804:prod-aarch64
467 - CPU: 6000
468 - Memory: 10000
469 - ${attr.cpu.arch}: arm64
470 - ${node.class}: csitarm
471
472 ### Sandbox (sandbox) Jenkins Nomad Plugin Nodes
473
474 #### Node 'builder-ubuntu1804-sandbox-x86_64'
475 - Labels: builder-ubuntu1804-sandbox-x86_64
476 - Job Prefix: builder-ubuntu1804-sandbox-x86_64
477 - Image: fdiotools/builder-ubuntu1804:sandbox-x86_64
478 - CPU: 14000
479 - Memory: 14000
480 - ${attr.cpu.arch}: amd64
481 - ${node.class}: builder
482
483 #### Node 'builder-ubuntu1804-sandbox-aarch64'
484 - Labels: builder-ubuntu1804-sandbox-aarch64
485 - Job Prefix: builder-ubuntu1804-sandbox-aarch64
486 - Image: fdiotools/builder-ubuntu1804:sandbox-aarch64
487 - CPU: 6000
488 - Memory: 10000
489 - ${attr.cpu.arch}: arm64
490 - ${node.class}: builder
491
492 #### Node 'builder-centos7-sandbox-x86_64'
493 - Labels: builder-centos7-sandbox-x86_64
494 - Job Prefix: builder-centos7-sandbox-x86_64
495 - Image: fdiotools/builder-centos7:sandbox-x86_64
496 - CPU: 14000
497 - Memory: 14000
498 - ${attr.cpu.arch}: amd64
499 - ${node.class}: builder
500
501 #### Node 'builder-centos7-sandbox-aarch64'
502 - Labels: builder-centos7-sandbox-aarch64
503 - Job Prefix: builder-centos7-sandbox-aarch64
504 - Image: fdiotools/builder-centos7:sandbox-aarch64
505 - CPU: 6000
506 - Memory: 10000
507 - ${attr.cpu.arch}: arm64
508 - ${node.class}: builder
509
510 #### Node 'builder-ubuntu2004-sandbox-x86_64'
511 - Labels: builder-ubuntu2004-sandbox-x86_64
512 - Job Prefix: builder-ubuntu2004-sandbox-x86_64
513 - Image: fdiotools/builder-ubuntu2004:sandbox-x86_64
514 - CPU: 14000
515 - Memory: 14000
516 - ${attr.cpu.arch}: amd64
517 - ${node.class}: builder
518
519 #### Node 'builder-ubuntu2004-sandbox-aarch64'
520 - Labels: builder-ubuntu2004-sandbox-aarch64
521 - Job Prefix: builder-ubuntu2004-sandbox-aarch64
522 - Image: fdiotools/builder-ubuntu2004:sandbox-aarch64
523 - CPU: 6000
524 - Memory: 10000
525 - ${attr.cpu.arch}: arm64
526 - ${node.class}: builder
527
528 #### Node 'builder-centos8-sandbox-x86_64'
529 - Labels: builder-centos8-sandbox-x86_64
530 - Job Prefix: builder-centos8-sandbox-x86_64
531 - Image: fdiotools/builder-centos8:sandbox-x86_64
532 - CPU: 14000
533 - Memory: 14000
534 - ${attr.cpu.arch}: amd64
535 - ${node.class}: builder
536
537 #### Node 'builder-centos8-sandbox-aarch64'
538 - Labels: builder-centos8-sandbox-aarch64
539 - Job Prefix: builder-centos8-sandbox-aarch64
540 - Image: fdiotools/builder-centos8:sandbox-aarch64
541 - CPU: 6000
542 - Memory: 10000
543 - ${attr.cpu.arch}: arm64
544 - ${node.class}: builder
545
546 #### Node 'builder-debian9-sandbox-x86_64'
547 - Labels: builder-debian9-sandbox-x86_64
548 - Job Prefix: builder-debian9-sandbox-x86_64
549 - Image: fdiotools/builder-debian9:sandbox-x86_64
550 - CPU: 14000
551 - Memory: 14000
552 - ${attr.cpu.arch}: amd64
553 - ${node.class}: builder
554
555 #### Node 'builder-debian9-sandbox-aarch64'
556 - Labels: builder-debian9-sandbox-aarch64
557 - Job Prefix: builder-debian9-sandbox-aarch64
558 - Image: fdiotools/builder-debian9:sandbox-aarch64
559 - CPU: 6000
560 - Memory: 10000
561 - ${attr.cpu.arch}: arm64
562 - ${node.class}: builder
563
564 #### Node 'builder-debian10-sandbox-x86_64'
565 - Labels: builder-debian10-sandbox-x86_64
566 - Job Prefix: builder-debian10-sandbox-x86_64
567 - Image: fdiotools/builder-debian10:sandbox-x86_64
568 - CPU: 14000
569 - Memory: 14000
570 - ${attr.cpu.arch}: amd64
571 - ${node.class}: builder
572
573 #### Node 'builder-debian10-sandbox-aarch64'
574 - Labels: builder-debian10-sandbox-aarch64
575 - Job Prefix: builder-debian10-sandbox-aarch64
576 - Image: fdiotools/builder-debian10:sandbox-aarch64
577 - CPU: 6000
578 - Memory: 10000
579 - ${attr.cpu.arch}: arm64
580 - ${node.class}: builder
581
582 #### Node 'csit_dut-ubuntu1804-sandbox-x86_64'
583 - Labels: csit_dut-ubuntu1804-sandbox-x86_64
584 - Job Prefix: csit_dut-ubuntu1804-sandbox-x86_64
585 - Image: fdiotools/csit_dut-ubuntu1804:sandbox-x86_64
586 - CPU: 10000
587 - Memory: 18000
588 - ${attr.cpu.arch}: amd64
589 - ${node.class}: csit
590
591 #### Node 'csit_dut-ubuntu1804-sandbox-aarch64'
592 - Labels: csit_dut-ubuntu1804-sandbox-aarch64
593 - Job Prefix: csit_dut-ubuntu1804-sandbox-aarch64
594 - Image: fdiotools/csit_dut-ubuntu1804:sandbox-aarch64
595 - CPU: 6000
596 - Memory: 10000
597 - ${attr.cpu.arch}: arm64
598 - ${node.class}: csitarm
599
600 #### Node 'csit_shim-ubuntu1804-sandbox-x86_64'
601 - Labels: csit_shim-ubuntu1804-sandbox-x86_64
602 - Job Prefix: csit_shim-ubuntu1804-sandbox-x86_64
603 - Image: fdiotools/csit_shim-ubuntu1804:sandbox-x86_64
604 - CPU: 10000
605 - Memory: 18000
606 - ${attr.cpu.arch}: amd64
607 - ${node.class}: csit
608
609 #### Node 'csit_shim-ubuntu1804-sandbox-aarch64'
610 - Labels: csit_shim-ubuntu1804-sandbox-aarch64
611 - Job Prefix: csit_shim-ubuntu1804-sandbox-aarch64
612 - Image: fdiotools/csit_shim-ubuntu1804:sandbox-aarch64
613 - CPU: 6000
614 - Memory: 10000
615 - ${attr.cpu.arch}: arm64
616 - ${node.class}: csitarm
617
618 ### Automated Testing (test) Jenkins Nomad Plugin Nodes
619
620 #### Node 'builder-ubuntu1804-test-x86_64'
621 - Labels: builder-ubuntu1804-test-x86_64
622 - Job Prefix: builder-ubuntu1804-test-x86_64
623 - Image: fdiotools/builder-ubuntu1804:test-x86_64
624 - CPU: 14000
625 - Memory: 14000
626 - ${attr.cpu.arch}: amd64
627 - ${node.class}: builder
628
629 #### Node 'builder-ubuntu1804-test-aarch64'
630 - Labels: builder-ubuntu1804-test-aarch64
631 - Job Prefix: builder-ubuntu1804-test-aarch64
632 - Image: fdiotools/builder-ubuntu1804:test-aarch64
633 - CPU: 6000
634 - Memory: 10000
635 - ${attr.cpu.arch}: arm64
636 - ${node.class}: builder
637
638 #### Node 'builder-centos7-test-x86_64'
639 - Labels: builder-centos7-test-x86_64
640 - Job Prefix: builder-centos7-test-x86_64
641 - Image: fdiotools/builder-centos7:test-x86_64
642 - CPU: 14000
643 - Memory: 14000
644 - ${attr.cpu.arch}: amd64
645 - ${node.class}: builder
646
647 #### Node 'builder-centos7-test-aarch64'
648 - Labels: builder-centos7-test-aarch64
649 - Job Prefix: builder-centos7-test-aarch64
650 - Image: fdiotools/builder-centos7:test-aarch64
651 - CPU: 6000
652 - Memory: 10000
653 - ${attr.cpu.arch}: arm64
654 - ${node.class}: builder
655
656 #### Node 'builder-ubuntu2004-test-x86_64'
657 - Labels: builder-ubuntu2004-test-x86_64
658 - Job Prefix: builder-ubuntu2004-test-x86_64
659 - Image: fdiotools/builder-ubuntu2004:test-x86_64
660 - CPU: 14000
661 - Memory: 14000
662 - ${attr.cpu.arch}: amd64
663 - ${node.class}: builder
664
665 #### Node 'builder-ubuntu2004-test-aarch64'
666 - Labels: builder-ubuntu2004-test-aarch64
667 - Job Prefix: builder-ubuntu2004-test-aarch64
668 - Image: fdiotools/builder-ubuntu2004:test-aarch64
669 - CPU: 6000
670 - Memory: 10000
671 - ${attr.cpu.arch}: arm64
672 - ${node.class}: builder
673
674 #### Node 'builder-centos8-test-x86_64'
675 - Labels: builder-centos8-test-x86_64
676 - Job Prefix: builder-centos8-test-x86_64
677 - Image: fdiotools/builder-centos8:test-x86_64
678 - CPU: 14000
679 - Memory: 14000
680 - ${attr.cpu.arch}: amd64
681 - ${node.class}: builder
682
683 #### Node 'builder-centos8-test-aarch64'
684 - Labels: builder-centos8-test-aarch64
685 - Job Prefix: builder-centos8-test-aarch64
686 - Image: fdiotools/builder-centos8:test-aarch64
687 - CPU: 6000
688 - Memory: 10000
689 - ${attr.cpu.arch}: arm64
690 - ${node.class}: builder
691
692 #### Node 'builder-debian9-test-x86_64'
693 - Labels: builder-debian9-test-x86_64
694 - Job Prefix: builder-debian9-test-x86_64
695 - Image: fdiotools/builder-debian9:test-x86_64
696 - CPU: 14000
697 - Memory: 14000
698 - ${attr.cpu.arch}: amd64
699 - ${node.class}: builder
700
701 #### Node 'builder-debian9-test-aarch64'
702 - Labels: builder-debian9-test-aarch64
703 - Job Prefix: builder-debian9-test-aarch64
704 - Image: fdiotools/builder-debian9:test-aarch64
705 - CPU: 6000
706 - Memory: 10000
707 - ${attr.cpu.arch}: arm64
708 - ${node.class}: builder
709
710 #### Node 'builder-debian10-test-x86_64'
711 - Labels: builder-debian10-test-x86_64
712 - Job Prefix: builder-debian10-test-x86_64
713 - Image: fdiotools/builder-debian10:test-x86_64
714 - CPU: 14000
715 - Memory: 14000
716 - ${attr.cpu.arch}: amd64
717 - ${node.class}: builder
718
719 #### Node 'builder-debian10-test-aarch64'
720 - Labels: builder-debian10-test-aarch64
721 - Job Prefix: builder-debian10-test-aarch64
722 - Image: fdiotools/builder-debian10:test-aarch64
723 - CPU: 6000
724 - Memory: 10000
725 - ${attr.cpu.arch}: arm64
726 - ${node.class}: builder
727
728 #### Node 'csit_dut-ubuntu1804-sandbox-x86_64'
729 - Labels: csit_dut-ubuntu1804-sandbox-x86_64
730 - Job Prefix: csit_dut-ubuntu1804-sandbox-x86_64
731 - Image: fdiotools/csit_dut-ubuntu1804:sandbox-x86_64
732 - CPU: 10000
733 - Memory: 18000
734 - ${attr.cpu.arch}: amd64
735 - ${node.class}: csit
736
737 #### Node 'csit_dut-ubuntu1804-test-aarch64'
738 - Labels: csit_dut-ubuntu1804-test-aarch64
739 - Job Prefix: csit_dut-ubuntu1804-test-aarch64
740 - Image: fdiotools/csit_dut-ubuntu1804:test-aarch64
741 - CPU: 6000
742 - Memory: 10000
743 - ${attr.cpu.arch}: arm64
744 - ${node.class}: csitarm
745
746 #### Node 'csit_shim-ubuntu1804-test-aarch64'
747 - Labels: csit_shim-ubuntu1804-test-aarch64
748 - Job Prefix: csit_shim-ubuntu1804-test-aarch64
749 - Image: fdiotools/csit_shim-ubuntu1804:test-aarch64
750 - CPU: 6000
751 - Memory: 10000
752 - ${attr.cpu.arch}: arm64
753 - ${node.class}: csitarm