diff --git a/pkg/harvester/dialog/HarvesterEnableNvidiaDriverToolkit.vue b/pkg/harvester/dialog/HarvesterEnableNvidiaDriverToolkit.vue new file mode 100644 index 00000000..846f6882 --- /dev/null +++ b/pkg/harvester/dialog/HarvesterEnableNvidiaDriverToolkit.vue @@ -0,0 +1,154 @@ + + + + + diff --git a/pkg/harvester/l10n/en-us.yaml b/pkg/harvester/l10n/en-us.yaml index 4813437a..a0714716 100644 --- a/pkg/harvester/l10n/en-us.yaml +++ b/pkg/harvester/l10n/en-us.yaml @@ -1764,6 +1764,8 @@ harvester: repository: Image Repository driver: location: Driver Location + enable: + title: Enable NVIDIA Driver Toolkit parsingSpecError: The field 'spec.valuesContent' has invalid format. usbController: diff --git a/pkg/harvester/models/harvesterhci.io.addon.js b/pkg/harvester/models/harvesterhci.io.addon.js index 72766845..138493b1 100644 --- a/pkg/harvester/models/harvesterhci.io.addon.js +++ b/pkg/harvester/models/harvesterhci.io.addon.js @@ -4,6 +4,8 @@ import { HCI as HCI_ANNOTATIONS } from '../config/labels-annotations'; import HarvesterResource from './harvester'; import { HCI } from '../types'; +const HARVESTER_NVIDIA_DRIVER_TOOLKIT = 'harvester-system/nvidia-driver-toolkit'; + export default class HciAddonConfig extends HarvesterResource { get availableActions() { const out = super._availableActions; @@ -45,6 +47,15 @@ export default class HciAddonConfig extends HarvesterResource { } } + if (!this.spec.enabled && this.id === HARVESTER_NVIDIA_DRIVER_TOOLKIT) { + this.$dispatch('promptModal', { + resources: [this], + component: 'HarvesterEnableNvidiaDriverToolkit', + }); + + return; + } + this.spec.enabled = !this.spec.enabled; await this.save(); } catch (err) {