diff --git a/shell/components/formatter/InvolvedObjectLink.vue b/shell/components/formatter/InvolvedObjectLink.vue
new file mode 100644
index 0000000000..f0fbf90272
--- /dev/null
+++ b/shell/components/formatter/InvolvedObjectLink.vue
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
diff --git a/shell/components/formatter/LinkName.vue b/shell/components/formatter/LinkName.vue
index 01c913c86d..376ad83e1a 100644
--- a/shell/components/formatter/LinkName.vue
+++ b/shell/components/formatter/LinkName.vue
@@ -18,6 +18,11 @@ export default {
default: '',
},
+ objectId: {
+ type: String,
+ default: '',
+ },
+
product: {
type: String,
default: EXPLORER,
@@ -31,7 +36,7 @@ export default {
const params = {
resource: this.type,
namespace: this.namespace,
- id: this.value,
+ id: this.objectId ? this.objectId : this.value,
product: this.product || EXPLORER,
};
diff --git a/shell/config/product/explorer.js b/shell/config/product/explorer.js
index c6aa245f95..1564564015 100644
--- a/shell/config/product/explorer.js
+++ b/shell/config/product/explorer.js
@@ -18,7 +18,7 @@ import {
STORAGE_CLASS_PROVISIONER, PERSISTENT_VOLUME_SOURCE,
HPA_REFERENCE, MIN_REPLICA, MAX_REPLICA, CURRENT_REPLICA,
ACCESS_KEY, DESCRIPTION, EXPIRES, EXPIRY_STATE, SUB_TYPE, AGE_NORMAN, SCOPE_NORMAN, PERSISTENT_VOLUME_CLAIM, RECLAIM_POLICY, PV_REASON, WORKLOAD_HEALTH_SCALE, POD_RESTARTS,
- DURATION, LAST_SEEN_TIME,
+ DURATION, MESSAGE, REASON, LAST_SEEN_TIME, EVENT_TYPE, OBJECT,
} from '@shell/config/table-headers';
import { DSL } from '@shell/store/type-map';
@@ -192,7 +192,7 @@ export function init(store) {
]);
headers(INGRESS, [STATE, NAME_COL, NAMESPACE_COL, INGRESS_TARGET, INGRESS_DEFAULT_BACKEND, INGRESS_CLASS, AGE]);
headers(SERVICE, [STATE, NAME_COL, NAMESPACE_COL, TARGET_PORT, SELECTOR, SPEC_TYPE, AGE]);
- headers(EVENT, [STATE, { ...LAST_SEEN_TIME, defaultSort: true }, 'EventType', 'Reason', 'Object', 'Subobject', 'Source', 'Message', 'First Seen', 'Count', 'Name', 'Namespace']);
+ headers(EVENT, [STATE, { ...LAST_SEEN_TIME, defaultSort: true }, EVENT_TYPE, REASON, OBJECT, 'Subobject', 'Source', MESSAGE, 'First Seen', 'Count', NAME_COL, NAMESPACE_COL]);
headers(HPA, [STATE, NAME_COL, HPA_REFERENCE, MIN_REPLICA, MAX_REPLICA, CURRENT_REPLICA, AGE]);
headers(WORKLOAD, [STATE, NAME_COL, NAMESPACE_COL, TYPE, WORKLOAD_IMAGES, WORKLOAD_ENDPOINTS, POD_RESTARTS, AGE, WORKLOAD_HEALTH_SCALE]);
headers(WORKLOAD_TYPES.DEPLOYMENT, [STATE, NAME_COL, NAMESPACE_COL, WORKLOAD_IMAGES, WORKLOAD_ENDPOINTS, 'Ready', 'Up-to-date', 'Available', POD_RESTARTS, AGE, WORKLOAD_HEALTH_SCALE]);
diff --git a/shell/config/table-headers.js b/shell/config/table-headers.js
index 543ed88484..0fcecc0da8 100644
--- a/shell/config/table-headers.js
+++ b/shell/config/table-headers.js
@@ -481,6 +481,14 @@ export const REASON = {
value: 'reason',
sort: ['reason']
};
+export const OBJECT = {
+ name: 'object',
+ labelKey: 'tableHeaders.object',
+ value: 'involvedObject',
+ sort: ['involvedObject.kind', 'involvedObject.name'],
+ canBeVariable: true,
+ formatter: 'InvolvedObjectLink',
+};
export const RECLAIM_POLICY = {
name: 'reclaimPolicy',
labelKey: 'tableHeaders.reclaimPolicy',
diff --git a/shell/pages/c/_cluster/explorer/EventsTable.vue b/shell/pages/c/_cluster/explorer/EventsTable.vue
index cdc43290d4..9555e19caf 100644
--- a/shell/pages/c/_cluster/explorer/EventsTable.vue
+++ b/shell/pages/c/_cluster/explorer/EventsTable.vue
@@ -1,7 +1,7 @@