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) {