commit | aa5c1fed2ed04d63f26ec7cafbf48f3a5be366c8 | [log] [tgz] |
---|---|---|
author | Kelley Spoon <kelley.spoon@linaro.org> | Thu Apr 07 15:00:56 2022 -0500 |
committer | Kelley Spoon <kelley.spoon@linaro.org> | Thu Apr 07 15:10:20 2022 -0500 |
tree | 94b62d6d71a82fb337204378461064c03f636df2 | |
parent | 8cf417b6e91c2e2137ab2bffed7640001852edf3 [diff] |
yadp_builder.py: upgrade to python3 version In Feb 2021, the script used for building YADP configs was migrated to python3 on ci.l.o, but the changes never made it to the TrustedFirmware servers. This change updates the yadp-builder.py script to be in sync with linaro's. Signed-off-by: Kelley Spoon <kelley.spoon@linaro.org> Change-Id: I988665850799619f6018ef42b18b1a180829b76f
Yet Another Docker Plugin (YADP) is extremely hard to manage, when running multiple slaves with multiple images. Due to the way Jenkins displays the configuration page. YADP provides a groovy script which builds a JSON array to populate the configuration in Jenkins.
This script uses YAML and Jinja2 to generate a java JSONARRAY to build the configuration, using a !include constructor in the YAML file, allowing the ability to template up docker_images, since many of our slaves run the same image, it lessens repetition.
####hosts
- host1: cloud_name: host1.example.org docker-url: tcp://0.0.0.0:2375 docker_templates: !include external_template_file.yml - host2: cloud_name: host2.example.org docker-url: tcp://0.0.0.1:2375 docker_templates: - xenial-amd64: docker_image_name: 'ubuntu:latest' max_instances: '1' labels: 'docker-ubuntu' launch_method: ssh ssh: launch_ssh_credentials_id: 'random-id' launch_ssh_port: '22' - host3 cloud_name: host3.example.org docker-url: tcp://0.0.0.0:2375 docker_templates: !include [external_template_file.yml, external_template_file_2.yml]
Due to the nature of YAML and populating the Java JSONARRAY, its important that YAML is phased correctly.
Most of the limitations surround docker_templates.
A list of limitations and pending improvements.
Example of broken approach:
Example of broken approach: