Skip to content

Commit 4d3c8f1

Browse files
committed
Ref #27090: fix when SP has no access to events
1 parent 7ffc46f commit 4d3c8f1

1 file changed

Lines changed: 16 additions & 6 deletions

File tree

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

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@
7070
import io.fabric8.kubernetes.client.ConfigBuilder;
7171
import io.fabric8.kubernetes.client.DefaultKubernetesClient;
7272
import io.fabric8.kubernetes.client.KubernetesClient;
73+
import io.fabric8.kubernetes.client.KubernetesClientException;
7374
import io.fabric8.kubernetes.client.dsl.LogWatch;
7475
import io.fabric8.kubernetes.client.dsl.NonNamespaceOperation;
7576
import io.fabric8.kubernetes.client.dsl.Resource;
@@ -389,11 +390,20 @@ private LocalDateTime getEventTime(Event event) {
389390
}
390391

391392
private void parseKubernetesEvents(Proxy proxy, Container container, Pod pod) {
392-
List<Event> events = kubeClient.v1().events().withInvolvedObject(new ObjectReferenceBuilder()
393-
.withKind("Pod")
394-
.withName(pod.getMetadata().getName())
395-
.withNamespace(pod.getMetadata().getNamespace())
396-
.build()).list().getItems();
393+
List<Event> events;
394+
try {
395+
events = kubeClient.v1().events().withInvolvedObject(new ObjectReferenceBuilder()
396+
.withKind("Pod")
397+
.withName(pod.getMetadata().getName())
398+
.withNamespace(pod.getMetadata().getNamespace())
399+
.build()).list().getItems();
400+
} catch (KubernetesClientException ex) {
401+
if (ex.getCode() == 403) {
402+
log.warn("Cannot parse events of pod because of insufficient permissions. If fine-grained statistics are desired, give the ShinyProxy ServiceAccount permission to events of pods.");
403+
return;
404+
}
405+
throw ex;
406+
}
397407

398408
LocalDateTime pullingTime = null;
399409
LocalDateTime pulledTime = null;
@@ -418,7 +428,7 @@ private void parseKubernetesEvents(Proxy proxy, Container container, Pod pod) {
418428
}
419429

420430
if (scheduledTime != null) {
421-
proxyStatusService.containerScheduled(proxy, container, scheduledTime);
431+
proxyStatusService.containerScheduled(proxy, container, scheduledTime);
422432
}
423433
}
424434

0 commit comments

Comments
 (0)