From 8113f4e3b7e94e065527f2605cb1751c35e5ef4e Mon Sep 17 00:00:00 2001 From: "Sungjun, Kim" Date: Mon, 25 Mar 2019 23:00:05 +0900 Subject: [PATCH 1/2] Add retry-routine to 'docker push' in clipper_docker.cfg.py This patch is needed to retry if 'docker push' fails. I found this error case through https://github.com/ucbrise/clipper/pull/602#issuecomment-476208230. --- bin/shipyard/clipper_docker.cfg.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/bin/shipyard/clipper_docker.cfg.py b/bin/shipyard/clipper_docker.cfg.py index 061edb0f3..8080a65b7 100644 --- a/bin/shipyard/clipper_docker.cfg.py +++ b/bin/shipyard/clipper_docker.cfg.py @@ -32,8 +32,8 @@ def push_image_with_context(build_ctx, image, push_sha=True, push_version=False) image_name_version = f"{namespace}/{image}:{version_tag}" docker_tag = f"docker tag {image_name_sha} {image_name_version}" - docker_push_sha = f"docker push {image_name_sha}" - docker_push_version = f"docker push {image_name_version}" + docker_push_sha = wait_and_push_cmd(image_name_sha) + docker_push_version = wait_and_push_cmd(image_name_version) commands = [docker_tag] if push_sha: @@ -47,7 +47,7 @@ def push_image_with_context(build_ctx, image, push_sha=True, push_version=False) image_name_minor_version = f"{namespace}/{image}:{minor_version}" tag_minor_ver = f"docker tag {image_name_sha} {image_name_minor_version}" - push_minor_ver = f"docker push {image_name_minor_version}" + push_minor_ver = wait_and_push_cmd(image_name_minor_version) commands.extend([tag_minor_ver, push_minor_ver]) return CIPrettyLogAction(f"publish_{image}", "\n".join(commands), tags=["push"]) @@ -186,13 +186,17 @@ def create_and_push_with_ctx( Action.get_action(container) > kubernetes_test_target Action.get_action(f"publish_{container}") > kubernetes_test_target -################################ -# Travis: Wait and pull images # -################################ +##################################### +# Travis: Wait and pull/push images # +##################################### def wait_and_pull_cmd(image_name): return f"until docker pull {image_name}; do sleep 5; done" +def wait_and_push_cmd(image_name): + return f"until docker push {image_name}; do sleep 5; done" + + for container in kubernetes_containers: wait = IsolatedAction( f"wait_{container}", From ccd81a0ef5d0620ef5381ee6759338f06f3c0eb4 Mon Sep 17 00:00:00 2001 From: "Sungjun, Kim" Date: Mon, 25 Mar 2019 23:07:10 +0900 Subject: [PATCH 2/2] Move wait_and_pull_cmd() and wait_and_push_cmd() to proper location --- bin/shipyard/clipper_docker.cfg.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/bin/shipyard/clipper_docker.cfg.py b/bin/shipyard/clipper_docker.cfg.py index 8080a65b7..79f1f0764 100644 --- a/bin/shipyard/clipper_docker.cfg.py +++ b/bin/shipyard/clipper_docker.cfg.py @@ -6,6 +6,17 @@ from shipyard import Action, CIPrettyLogAction, IsolatedAction, ctx +##################################### +# Travis: Wait and pull/push images # +##################################### +def wait_and_pull_cmd(image_name): + return f"until docker pull {image_name}; do sleep 5; done" + + +def wait_and_push_cmd(image_name): + return f"until docker push {image_name}; do sleep 5; done" + + def create_image_with_context(build_ctx, image, dockerfile, rpc_version=None): if rpc_version is None: rpc_version = "" @@ -186,16 +197,6 @@ def create_and_push_with_ctx( Action.get_action(container) > kubernetes_test_target Action.get_action(f"publish_{container}") > kubernetes_test_target -##################################### -# Travis: Wait and pull/push images # -##################################### -def wait_and_pull_cmd(image_name): - return f"until docker pull {image_name}; do sleep 5; done" - - -def wait_and_push_cmd(image_name): - return f"until docker push {image_name}; do sleep 5; done" - for container in kubernetes_containers: wait = IsolatedAction(