From 57468940cbafdd6b75d86dd6a12c2cc3b8c16121 Mon Sep 17 00:00:00 2001 From: Patrick Uiterwijk Date: Jan 09 2018 17:12:25 +0000 Subject: [PATCH 1/4] First submit all tasks before waiting The alternative would be that we submit a single task and then return. Indentation matters :). Signed-off-by: Patrick Uiterwijk --- diff --git a/ansible/library/fedcontainer_rebuild.py b/ansible/library/fedcontainer_rebuild.py index 927eb0f..8d47444 100644 --- a/ansible/library/fedcontainer_rebuild.py +++ b/ansible/library/fedcontainer_rebuild.py @@ -246,22 +246,22 @@ def rebuild(branch, containers, user, stage, koji_bin=None, koji_profile=None): os.chdir(work_dir) shutil.rmtree(os.path.join(work_dir, container)) - # Wait for the koji tasks - if koji_tasks: - cmd = koji_prefix + ['watch-task'] - cmd.extend(koji_tasks) - returncode, stdout, stderr = run_cmd_ary(cmd) - module.exit_json( - msg="Rebuild koji tasks complete: {}".format(" ".join(koji_tasks)), - koji_tasks=koji_tasks, - koji_watch_task_stdout=stdout, - koji_watch_task_stderr=stderr, - rebuild_list=containers_rebuilt - ) - else: - module.fail_json( - msg="No containers rebuilt" - ) + # Wait for the koji tasks + if koji_tasks: + cmd = koji_prefix + ['watch-task'] + cmd.extend(koji_tasks) + returncode, stdout, stderr = run_cmd_ary(cmd) + module.exit_json( + msg="Rebuild koji tasks complete: {}".format(" ".join(koji_tasks)), + koji_tasks=koji_tasks, + koji_watch_task_stdout=stdout, + koji_watch_task_stderr=stderr, + rebuild_list=containers_rebuilt + ) + else: + module.fail_json( + msg="No containers rebuilt" + ) def main(): From 93b2cd7c131158903686f6624bc4f757e46deaa3 Mon Sep 17 00:00:00 2001 From: Patrick Uiterwijk Date: Jan 09 2018 17:13:58 +0000 Subject: [PATCH 2/4] Promote to production Signed-off-by: Patrick Uiterwijk --- diff --git a/ansible/container_rebuild_and_release.yml b/ansible/container_rebuild_and_release.yml index 6827abf..cc22d0e 100644 --- a/ansible/container_rebuild_and_release.yml +++ b/ansible/container_rebuild_and_release.yml @@ -16,7 +16,7 @@ - "registry.fedoraproject.org/fedora:{{fedora_release}}-modular" - "registry.fedoraproject.org/fedora:{{fedora_release|int - 1}}-modular" - "registry.fedoraproject.org/fedora:{{fedora_release|int - 2}}-modular" - rebuild_in_stage: True + rebuild_in_stage: False fedora_distgit_branch: "f{{fedora_release}}" koji_tag: "f{{fedora_release}}-container" diff --git a/ansible/include/rebuild-parent-container-images.yml b/ansible/include/rebuild-parent-container-images.yml index 5ef7139..81b3c08 100644 --- a/ansible/include/rebuild-parent-container-images.yml +++ b/ansible/include/rebuild-parent-container-images.yml @@ -28,7 +28,7 @@ koji_latestbuild: tag: "{{koji_tag}}" package: '{{nested_item.split("/")[-1].split(":")[0]}}' - kojihub_url: "https://koji.stg.fedoraproject.org/kojihub" + kojihub_url: "https://koji.fedoraproject.org/kojihub" register: query_output - debug: var=query_output["latest_builds"] From 8b7a03862a908793cc95937a6954d674f78480d6 Mon Sep 17 00:00:00 2001 From: Patrick Uiterwijk Date: Jan 09 2018 17:14:21 +0000 Subject: [PATCH 3/4] Source certs are not needed Signed-off-by: Patrick Uiterwijk --- diff --git a/ansible/include/sync-container-images.yml b/ansible/include/sync-container-images.yml index 2a3cfac..70c71b4 100644 --- a/ansible/include/sync-container-images.yml +++ b/ansible/include/sync-container-images.yml @@ -37,11 +37,11 @@ - name: Sync image to registry block: - - shell: 'skopeo copy --src-cert-dir /etc/docker/certs.d/candidate-{{container_registry}}/ --dest-cert-dir /etc/docker/certs.d/{{container_registry}}/ docker://candidate-{{container_registry}}/{{fedora_distgit_branch}}/{{latest_build.name}} docker://{{container_registry}}/{{fedora_distgit_branch}}/{{latest_build.name}}' + - shell: 'skopeo copy --dest-cert-dir /etc/docker/certs.d/{{container_registry}}/ docker://candidate-{{container_registry}}/{{fedora_distgit_branch}}/{{latest_build.name}} docker://{{container_registry}}/{{fedora_distgit_branch}}/{{latest_build.name}}' - - shell: 'skopeo copy --src-cert-dir /etc/docker/certs.d/candidate-{{container_registry}}/ --dest-cert-dir /etc/docker/certs.d/{{container_registry}}/ docker://candidate-{{container_registry}}/{{fedora_distgit_branch}}/{{latest_build.name}}:{{latest_build.version}} docker://{{container_registry}}/{{fedora_distgit_branch}}/{{latest_build.name}}:{{latest_build.version}}' + - shell: 'skopeo copy --dest-cert-dir /etc/docker/certs.d/{{container_registry}}/ docker://candidate-{{container_registry}}/{{fedora_distgit_branch}}/{{latest_build.name}}:{{latest_build.version}} docker://{{container_registry}}/{{fedora_distgit_branch}}/{{latest_build.name}}:{{latest_build.version}}' - - shell: 'skopeo copy --src-cert-dir /etc/docker/certs.d/candidate-{{container_registry}}/ --dest-cert-dir /etc/docker/certs.d/{{container_registry}}/ docker://candidate-{{container_registry}}/{{fedora_distgit_branch}}/{{latest_build.name}}:{{latest_build.version}}-{{latest_build.release}} docker://{{container_registry}}/{{fedora_distgit_branch}}/{{latest_build.name}}:{{latest_build.version}}-{{latest_build.release}}' + - shell: 'skopeo copy --dest-cert-dir /etc/docker/certs.d/{{container_registry}}/ docker://candidate-{{container_registry}}/{{fedora_distgit_branch}}/{{latest_build.name}}:{{latest_build.version}}-{{latest_build.release}} docker://{{container_registry}}/{{fedora_distgit_branch}}/{{latest_build.name}}:{{latest_build.version}}-{{latest_build.release}}' when: fedora_distgit_branch in latest_build.nvr From 898714e5c29569af9c05e928622b6c824998ebbf Mon Sep 17 00:00:00 2001 From: Patrick Uiterwijk Date: Jan 09 2018 17:15:58 +0000 Subject: [PATCH 4/4] Handle people who have fedora:rawhide in released versions Signed-off-by: Patrick Uiterwijk --- diff --git a/ansible/library/fedcontainer_inheritance.py b/ansible/library/fedcontainer_inheritance.py index db53246..589a9b1 100755 --- a/ansible/library/fedcontainer_inheritance.py +++ b/ansible/library/fedcontainer_inheritance.py @@ -320,7 +320,7 @@ def main(): # Now we will filter out to make sure that the base images are all # grouped together since they can technically be referenced # short-hand and long form in the FROM line. - base_img_key = "fedora:{}".format(module.params["release"]) + base_img_key = "fedora:({}|rawhide)".format(module.params["release"]) pattern = re.compile(".*{}$".format(base_img_key)) if pattern.match(parent_image): parent_base_img_key = [ @@ -330,7 +330,10 @@ def main(): if parent_base_img_key: parent_image = parent_base_img_key[0] - depgraph.insert(parent_image, container) + depgraph.insert( + parent_image.replace(':rawhide', + ':%d' % module.params["release"], + container) except IndexError: errors.append(r.content)