Skip to content

Commit 2b2b0ce

Browse files
authored
Merge pull request #930 from Cyanoth/resource-quota-retry
2 parents 45fe098 + 55e8983 commit 2b2b0ce

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

src/main/java/org/csanchez/jenkins/plugins/kubernetes/KubernetesLauncher.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,19 @@ public synchronized void launch(SlaveComputer computer, TaskListener listener) {
138138
Metrics.metricRegistry().counter(MetricNames.CREATION_FAILED).inc();
139139
int httpCode = e.getCode();
140140
if (400 <= httpCode && httpCode < 500) { // 4xx
141-
runListener.getLogger().printf("ERROR: Unable to create pod %s %s/%s.%n%s%n", cloudName, namespace, pod.getMetadata().getName(), e.getMessage());
142-
PodUtils.cancelQueueItemFor(pod, e.getMessage());
141+
if (httpCode == 403 && e.getMessage().contains("is forbidden: exceeded quota")) {
142+
runListener.getLogger().printf("WARNING: Unable to create pod: %s %s/%s because kubernetes resource quota exceeded. %n%s%nRetrying...%n%n",
143+
cloudName, namespace, pod.getMetadata().getName(), e.getMessage());
144+
}
145+
else if (httpCode == 409 && e.getMessage().contains("Operation cannot be fulfilled on resourcequotas")) {
146+
// See: https://github.com/kubernetes/kubernetes/issues/67761 ; A retry usually works.
147+
runListener.getLogger().printf("WARNING: Unable to create pod: %s %s/%s because kubernetes resource quota update conflict. %n%s%nRetrying...%n%n",
148+
cloudName, namespace, pod.getMetadata().getName(), e.getMessage());
149+
}
150+
else {
151+
runListener.getLogger().printf("ERROR: Unable to create pod %s %s/%s.%n%s%n", cloudName, namespace, pod.getMetadata().getName(), e.getMessage());
152+
PodUtils.cancelQueueItemFor(pod, e.getMessage());
153+
}
143154
} else if (500 <= httpCode && httpCode < 600) { // 5xx
144155
LOGGER.log(FINE,"Kubernetes returned HTTP code {0} {1}. Retrying...", new Object[] {e.getCode(), e.getStatus()});
145156
} else {

0 commit comments

Comments
 (0)