From 2bab671c9c468f210f840358812204fdf194b684 Mon Sep 17 00:00:00 2001 From: Adam Miller Date: Apr 11 2017 21:15:29 +0000 Subject: org.fedoraproject.prod.releng.twoweek.complete Add the org.fedoraproject.prod.releng.twoweek.complete playbook in order to take action upon the release of a two week atomic host. This playbook will query for all latest released container images and sync them between appropriate registries. Signed-off-by: Adam Miller --- diff --git a/ansible/fedcontainerrcdemo.yml b/ansible/fedcontainerrcdemo.yml index 11970e9..ad26d07 100644 --- a/ansible/fedcontainerrcdemo.yml +++ b/ansible/fedcontainerrcdemo.yml @@ -9,7 +9,6 @@ - debug: var=query_data.rclist - - name: demo with_items - shell: "echo '{{item}}'" + - include: "include/release-containers-demo.yml" with_items: "{{query_data.rclist}}" diff --git a/ansible/include/release-containers-demo.yml b/ansible/include/release-containers-demo.yml new file mode 100644 index 0000000..0619c23 --- /dev/null +++ b/ansible/include/release-containers-demo.yml @@ -0,0 +1,27 @@ +# This is meant to be included in a playbook which uses the fedcontainers_rc +# module and that data be passed into this include taskset using Loops and +# Includes: +# http://docs.ansible.com/ansible/playbooks_loops.html#loops-and-includes-in-2-0 +# +# Example: +# +# - name: Gather RC list +# fedcontainer_rc: +# release: 26 +# register: query_data +# +# - include: "include/release-containers.yml" +# with_items: "{{query_data.rclist}}" +# +# +# Preserve this {{item}} from outer context in case we ever need to iterate +# within this playbook +- set_fact: + outer_item: "{{ item }}" + +- debug: var=item + +- include_role: + name: "releng-shell" + vars: + shell_cmd: "echo {{outer_item}}" diff --git a/ansible/include/release-containers.yml b/ansible/include/release-containers.yml new file mode 100644 index 0000000..4db77fd --- /dev/null +++ b/ansible/include/release-containers.yml @@ -0,0 +1,64 @@ +# This is meant to be included in a playbook which uses the fedcontainers_rc +# module and that data be passed into this include taskset using Loops and +# Includes: +# http://docs.ansible.com/ansible/playbooks_loops.html#loops-and-includes-in-2-0 +# +# This also uses include_role and therefore requires Ansible 2.2 +# https://docs.ansible.com/ansible/include_role_module.html +# +# REQUIREMENTS: +# Five variables: +# +# src_registry - The source registry +# Example: candidate-registry.fedoraproject.org +# +# src_registry_cert_dir - The dir on remote system containing registry certs +# for the source registry access. +# Example: /etc/docker/cert.d/candidate-registry.fedoraproject.org/ +# +# dest_registry - The destination registry +# Example: registry.fedoraproject.org +# +# dest_registry_cert_dir - The dir on remote system containing registry certs +# for the destination registry +# Example: /etc/docker/cert.d/registry.fedoraproject.org/ +# +# item - Automatically populated by ansible when this include playbook is +# used as described below +# +# Example: +# +# - name: Play to release images +# user: loopabull_ociimage +# +# - name: Gather RC list +# fedcontainer_rc: +# release: 26 +# register: query_data +# +# - include: "include/release-containers.yml" +# vars: +# - src_registry: candidate-registry.fedoraproject.org +# - src_registry_cert_dir: /etc/docker/cert.d/candidate-registry.fedoraproject.org/ +# - dest_registry: registry.fedoraproject.org +# - dest_registry_cert_dir: /etc/docker/cert.d/registry.fedoraproject.org/ +# with_items: "{{query_data.rclist}}" +# +# + + +# Preserve this {{item}} from outer context in case we ever need to iterate +# within this playbook +- set_fact: + outer_item: "{{ item }}" + +- debug: var=item + +- include_role: + name: "releng-shell" + vars: + shell_cmd: "skopeo copy --src-cert-dir {{src_registry_cert_dir}} --dest-cert-dir {{dest_registry_cert_dir}} docker://{{src_registry}}/{{outer_item}} docker://{{dest_registry}}/{{outer_item}}" + + + + diff --git a/ansible/org.fedoraproject.prod.releng.twoweek.complete.yml b/ansible/org.fedoraproject.prod.releng.twoweek.complete.yml new file mode 100644 index 0000000..53e5308 --- /dev/null +++ b/ansible/org.fedoraproject.prod.releng.twoweek.complete.yml @@ -0,0 +1,24 @@ +--- +# This playbook is to be used in concert with Loopabull[0] and it will trigger +# the release of the Fedora Layered Image Containers upon the release of a new +# Atomic Host +# +# [0] - https://github.com/maxamillion/loopabull +# +- name: Release Fedora Layered Image Containers + hosts: automator + tasks: + - name: Gather list of Release Candidates + fedcontainer_rc: + release: "25" + #release: "{{msg.atomic_qcow2.release}}" + register: query_data + + - include: "include/release-containers.yml" + vars: + - src_registry: candidate-registry.fedoraproject.org + - src_registry_cert_dir: /etc/docker/cert.d/candidate-registry.fedoraproject.org/ + - dest_registry: registry.fedoraproject.org + - dest_registry_cert_dir: /etc/docker/cert.d/registry.fedoraproject.org/ + with_items: "{{query_data.rclist}}" +