diff --git a/app/components/node-row/template.hbs b/app/components/node-row/template.hbs
index cb8c3a396..e84767587 100644
--- a/app/components/node-row/template.hbs
+++ b/app/components/node-row/template.hbs
@@ -54,11 +54,11 @@
{{#if model.info.kubernetes.kubeletVersion}}
{{model.info.kubernetes.kubeletVersion}}
- {{#if model.info.os.dockerVersion}}
+ {{#if model.engineBlurb}}
-
- {{model.info.os.dockerVersion}}
+
+ {{model.engineBlurb}}
{{/if}}
diff --git a/app/models/node.js b/app/models/node.js
index 1a89f1023..100b278da 100644
--- a/app/models/node.js
+++ b/app/models/node.js
@@ -12,6 +12,8 @@ import Grafana from 'shared/mixins/grafana';
const UNSCHEDULABLE_KEYS = ['node-role.kubernetes.io/etcd', 'node-role.kubernetes.io/controlplane'];
const UNSCHEDULABLE_EFFECTS = ['NoExecute', 'NoSchedule'];
+const CONTAINERD = 'containerd://';
+
var Node = Resource.extend(Grafana, StateCounts, ResourceUsage, {
modalService: service('modal'),
settings: service(),
@@ -163,6 +165,30 @@ var Node = Resource.extend(Grafana, StateCounts, ResourceUsage, {
return out;
}),
+ engineIcon: computed('info.os.dockerVersion', function() {
+ if ( (get(this, 'info.os.dockerVersion') || '').startsWith(CONTAINERD) ) {
+ return 'icon-container-d';
+ }
+
+ return 'icon-docker';
+ }),
+
+ engineBlurb: computed('info.os.dockerVersion', function() {
+ let version = get(this, 'info.os.dockerVersion') || '';
+
+ if ( version.startsWith(CONTAINERD) ) {
+ version = version.substr(CONTAINERD.length);
+ }
+
+ const idx = version.indexOf('+');
+
+ if ( idx > 0 ) {
+ version = version.substr(0, idx);
+ }
+
+ return version;
+ }),
+
// or they will not be pulled in correctly.
displayEndpoints: function() {
var store = get(this, 'clusterStore');
diff --git a/vendor/icons b/vendor/icons
index abf52b68d..dc7c43854 160000
--- a/vendor/icons
+++ b/vendor/icons
@@ -1 +1 @@
-Subproject commit abf52b68dec075b4759ed653775e793bc464f3b4
+Subproject commit dc7c438544167077ea087bd594921c0d12e7b182
|