Skip to content

Commit 1f91b19

Browse files
committed
Merge pull request 'Kubernetes: app doesn't start if pull of image takes longer than 60 seconds' (#14) from feature/23620 into develop
2 parents f665e57 + ab8bd9f commit 1f91b19

1 file changed

Lines changed: 13 additions & 2 deletions

File tree

src/main/java/eu/openanalytics/containerproxy/backend/kubernetes/KubernetesBackend.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -268,8 +268,19 @@ protected Container startContainer(ContainerSpec spec, Proxy proxy) throws Excep
268268

269269
Pod startedPod = kubeClient.pods().inNamespace(effectiveKubeNamespace).create(patchedPod);
270270

271-
// Workaround: waitUntilReady appears to be buggy.
272-
Retrying.retry(i -> Readiness.isReady(kubeClient.resource(startedPod).fromServer().get()), 60, 1000);
271+
int totalWaitMs = Integer.parseInt(environment.getProperty("proxy.kubernetes.pod-wait-time", "60000"));
272+
int maxTries = totalWaitMs / 1000;
273+
Retrying.retry(i -> {
274+
if (!Readiness.isReady(kubeClient.resource(startedPod).fromServer().get())) {
275+
if (i > 1 && log != null) log.debug(String.format("Container not ready yet, trying again (%d/%d)", i, maxTries));
276+
return false;
277+
}
278+
return true;
279+
}
280+
, maxTries, 1000);
281+
if (!Readiness.isReady(kubeClient.resource(startedPod).fromServer().get())) {
282+
throw new ContainerProxyException("Container did not become ready in time");
283+
}
273284
Pod pod = kubeClient.resource(startedPod).fromServer().get();
274285

275286
Service service = null;

0 commit comments

Comments
 (0)