| commit | 93f43234d2aed581fbaccc5e7342f2cf272d95e3 | [log] [tgz] |
|---|---|---|
| author | Riku Voipio <riku.voipio@linaro.org> | Wed Nov 04 09:46:46 2020 +0200 |
| committer | Riku Voipio <riku.voipio@linaro.org> | Wed Nov 04 10:32:05 2020 +0200 |
| tree | f94dd88ca6fa0a371811d31e151e7718771b45d3 | |
| parent | 288fbca24b02c6cb4fb8280b23e7953d850906aa [diff] |
staging: Update YADP to include per project style docker images This version doesn't remove docker-amd64-bionic label, so this can be deployed without waiting for the jobs to have migrated. Signed-off-by: Riku Voipio <riku.voipio@linaro.org> Change-Id: Ic5139d17e28fd46469ceadc796f6262b157c167e
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: