diff --git a/client/src/components/eventsPanel.js b/client/src/components/eventsPanel.js
index 792d287..40793a5 100644
--- a/client/src/components/eventsPanel.js
+++ b/client/src/components/eventsPanel.js
@@ -46,7 +46,7 @@ export default function EventsPanel({items, filter, shortList, sort}) {
{x.involvedObject.kind}
{!shortList && (
- {x.involvedObject.namespace}:{x.involvedObject.name} |
+ {getName(x.involvedObject)} |
)}
{moment(x.metadata.creationTimestamp).fromNow(true)} |
{x.reason} |
@@ -59,6 +59,36 @@ export default function EventsPanel({items, filter, shortList, sort}) {
);
}
+function getName({kind, namespace, name}) {
+ const text = namespace ? `${namespace}:${name}` : name;
+ const href = getHref(kind, namespace, name);
+ return href ? ({text}) : text;
+}
+
+function getHref(kind, namespace, name) {
+ switch (kind) {
+ case 'ClusterRole': return `/#!clusterrole/${name}`;
+ case 'ClusterRoleBinding': return `/#!clusterrolebinding/${name}`;
+ case 'ConfigMap': return `/#!configmap/${namespace}/${name}`;
+ case 'DaemonSet': return `/#!workload/daemonset/${namespace}/${name}`;
+ case 'Deployment': return `/#!workload/deployment/${namespace}/${name}`;
+ case 'Ingress': return `/#!ingress/${namespace}/${name}`;
+ case 'Node': return `/#!node/${name}`;
+ case 'PersistentVolume': return `/#!persistentvolume/${name}`;
+ case 'PersistentVolumeClaim': return `/#!persistentvolumeclaim/${namespace}/${name}`;
+ case 'Pod': return `/#!pod/${namespace}/${name}`;
+ case 'ReplicaSet': return `/#!replicaset/${namespace}/${name}`;
+ case 'Role': return `/#!role/${namespace}/${name}`;
+ case 'RoleBinding': return `/#!rolebinding/${namespace}/${name}`;
+ case 'Secret': return `/#!secret/${namespace}/${name}`;
+ case 'Service': return `/#!service/${namespace}/${name}`;
+ case 'ServiceAccount': return `/#!serviceaccount/${namespace}/${name}`;
+ case 'StatefulSet': return `/#!workload/statefulset/${namespace}/${name}`;
+ case 'StorageClass': return `/#!storageclass/${name}`;
+ default: return undefined;
+ }
+}
+
function sortByName({involvedObject}) {
return `${involvedObject.namespace}:${involvedObject.name}`;
}
diff --git a/client/src/views/pod.js b/client/src/views/pod.js
index 67f1f3a..7f64076 100644
--- a/client/src/views/pod.js
+++ b/client/src/views/pod.js
@@ -116,7 +116,10 @@ export default class Pod extends Base {
Events
-
+
);
}