diff --git a/pkg/harvester/components/settings/csi-online-expand-validation.vue b/pkg/harvester/components/settings/csi-online-expand-validation.vue new file mode 100644 index 00000000..f7579cc9 --- /dev/null +++ b/pkg/harvester/components/settings/csi-online-expand-validation.vue @@ -0,0 +1,294 @@ + + + + + + {{ errorMsg }} + + + + + + + + + + + + + onValueChange(idx, val)" + @keydown.native.enter.prevent + /> + + + + + + {{ t('generic.add') }} + + + + + diff --git a/pkg/harvester/config/feature-flags.js b/pkg/harvester/config/feature-flags.js index 6899ac70..aaf68fb2 100644 --- a/pkg/harvester/config/feature-flags.js +++ b/pkg/harvester/config/feature-flags.js @@ -40,7 +40,8 @@ const FEATURE_FLAGS = { 'v1.5.1': [], 'v1.6.0': [ 'vmMachineTypes', - 'customSupportBundle' + 'customSupportBundle', + 'csiOnlineExpandValidation' ] }; diff --git a/pkg/harvester/config/settings.ts b/pkg/harvester/config/settings.ts index 160389e6..02da9190 100644 --- a/pkg/harvester/config/settings.ts +++ b/pkg/harvester/config/settings.ts @@ -28,6 +28,7 @@ export const HCI_SETTING = { RELEASE_DOWNLOAD_URL: 'release-download-url', CCM_CSI_VERSION: 'harvester-csi-ccm-versions', CSI_DRIVER_CONFIG: 'csi-driver-config', + CSI_ONLINE_EXPAND_VALIDATION: 'csi-online-expand-validation', VM_TERMINATION_PERIOD: 'default-vm-termination-grace-period-seconds', NTP_SERVERS: 'ntp-servers', AUTO_ROTATE_RKE2_CERTS: 'auto-rotate-rke2-certs', @@ -53,12 +54,15 @@ export const HCI_ALLOWED_SETTINGS = { from: 'import', featureFlag: 'autoRotateRke2CertsSetting' }, - [HCI_SETTING.CSI_DRIVER_CONFIG]: { kind: 'json', from: 'import' }, - [HCI_SETTING.SERVER_VERSION]: { readOnly: true }, - [HCI_SETTING.UPGRADE_CHECKER_ENABLED]: { kind: 'boolean' }, - [HCI_SETTING.UPGRADE_CHECKER_URL]: { kind: 'url' }, - [HCI_SETTING.HTTP_PROXY]: { kind: 'json', from: 'import' }, - [HCI_SETTING.ADDITIONAL_CA]: { + [HCI_SETTING.CSI_DRIVER_CONFIG]: { kind: 'json', from: 'import' }, + [HCI_SETTING.CSI_ONLINE_EXPAND_VALIDATION]: { + kind: 'json', from: 'import', featureFlag: 'csiOnlineExpandValidation' + }, + [HCI_SETTING.SERVER_VERSION]: { readOnly: true }, + [HCI_SETTING.UPGRADE_CHECKER_ENABLED]: { kind: 'boolean' }, + [HCI_SETTING.UPGRADE_CHECKER_URL]: { kind: 'url' }, + [HCI_SETTING.HTTP_PROXY]: { kind: 'json', from: 'import' }, + [HCI_SETTING.ADDITIONAL_CA]: { kind: 'multiline', canReset: true, from: 'import' }, [HCI_SETTING.OVERCOMMIT_CONFIG]: { kind: 'json', from: 'import' }, diff --git a/pkg/harvester/l10n/en-us.yaml b/pkg/harvester/l10n/en-us.yaml index 5834b711..17eefde5 100644 --- a/pkg/harvester/l10n/en-us.yaml +++ b/pkg/harvester/l10n/en-us.yaml @@ -1100,6 +1100,11 @@ harvester: provisioner: Provisioner volumeSnapshotClassName: Volume Snapshot Class Name backupVolumeSnapshotClassName: Backup Volume Snapshot Class Name + csiOnlineExpandValidation: + provisioner: Provisioner + value: Value + invalidJsonFormat: "Configuration value is not a valid JSON format: {error}" + failedToLoadDrivers: "Failed to load CSI drivers. Error: {error}" containerdRegistry: mirrors: mirrors: Mirrors @@ -1599,6 +1604,7 @@ advancedSettings: 'harv-backup-target': Custom backup target to store virtual machine backups. 'branding': Branding allows administrators to globally re-brand the UI by customizing the Harvester product name, logos, and color scheme. 'harv-csi-driver-config': Configure additional information for CSI drivers. + 'harv-csi-online-expand-validation': Allow online volume expansion for specific CSI drivers. 'harv-containerd-registry': Containerd Registry Configuration to connect private registries. 'harv-log-level': Configure Harvester server log level. Defaults to Info. 'harv-server-version': Harvester server version.