Clark Boylan c0fd3e0894 Pull and prune docker images together
We noticed that our zuul scheduler was running out of disk and one of
the causes of this is we are pulling all of the wonderful new zuul
images and not pruning them. This happens because we were only pruning
when (re)starting services and we don't do that automatically with Zuul.
Address this by always pruning after pulling even if we don't restart
services. This should be safe because prune will leave the latest tagged
images as well as the running images.

This should keep our disk consumption down.

Change-Id: Ibdd22ac42d86781f1e87c3d11e05fd8f99677167
2020-05-07 12:51:09 -07:00

91 lines
1.9 KiB
YAML

- name: Copy main.yaml into place
copy:
remote_src: yes
src: /opt/project-config/zuul/main.yaml
dest: /etc/zuul/main.yaml
notify: Reload Zuul Scheduler
- name: Add github key
copy:
content: '{{ zuul_github_app_key }}'
dest: /etc/zuul/github.key
owner: zuul
group: zuul
mode: 0600
- name: Add openstack status backup
include_role:
name: zuul-status-backup
vars:
tenant: openstack
- name: Add kata status backup
include_role:
name: zuul-status-backup
vars:
tenant: kata-containers
- name: Install logging config
copy:
src: logging.conf
dest: /etc/zuul/logging.conf
- name: Install geraman logging config
copy:
src: gearman-logging.conf
dest: /etc/zuul/gearman-logging.conf
- name: Rotate logs
include_role:
name: logrotate
vars:
logrotate_file_name: /var/log/zuul/zuul.log
- name: Rotate zuul debug logs
include_role:
name: logrotate
vars:
logrotate_file_name: /var/log/zuul/zuul-debug.log
- name: Rotate gearman logs
include_role:
name: logrotate
vars:
logrotate_file_name: /var/log/zuul/gearman-server.log
- name: Make docker-compose directory
file:
state: directory
path: /etc/zuul-scheduler
- name: Install docker-compose file
copy:
src: docker-compose.yaml
dest: /etc/zuul-scheduler/docker-compose.yaml
- name: Run docker-compose pull
shell:
cmd: docker-compose pull
chdir: /etc/zuul-scheduler
- name: Start containers
include_tasks: start.yaml
when: zuul_scheduler_start is defined and zuul_scheduler_start | bool
# We can prune here as it should leave the "latest" tagged images
# as well as the currently running images.
- name: Run docker prune to cleanup unneeded images
shell:
cmd: docker image prune -f
- name: Disable old service
service:
name: zuul-scheduler
enabled: no
failed_when: false
- name: Remove old init scripts
file:
state: absent
path: /etc/init.d/zuul-scheduler