From d708f6e05ad3593e6ebe4094ea8414110b1510c2 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Javier=20B=C3=A9rtoli?= Date: Fri, 14 May 2021 18:58:58 -0300 Subject: [PATCH 1/1] fix(arvados-controller): add a loop to verify the service is ready It's not enough to have the service up, but it needs to be responding correctly. --- arvados/controller/service/running.sls | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/arvados/controller/service/running.sls b/arvados/controller/service/running.sls index 3fca8f3..6c95b3c 100644 --- a/arvados/controller/service/running.sls +++ b/arvados/controller/service/running.sls @@ -18,3 +18,21 @@ arvados-controller-service-running-service-running: - sls: {{ sls_config_file }} - require: - pkg: arvados-controller-package-install-pkg-installed + +# Before being able to create resources, we need API to be up. When running the formula for +# the first time, it might be still being configured, so we add this workaround, as suggested at +# https://github.com/saltstack/salt/issues/19084#issuecomment-70317884 +arvados-controller-service-running-service-ready-cmd-run: + cmd.run: + - name: | + while ! (curl -s {{ arvados.cluster.Services.Controller.ExternalURL }} | \ + grep -qE "req-[a-z0-9]{20}.{5}error_token") do + echo 'waiting for API to be ready...' + sleep 1 + done + - timeout: 520 + - unless: | + curl -s {{ arvados.cluster.Services.Controller.ExternalURL }} | \ + grep -qE "req-[a-z0-9]{20}.{5}error_token" + - require: + - service: arvados-controller-service-running-service-running -- 2.30.2