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