@@ -825,18 +825,14 @@ func (p linux) discoverInstanceStorageDevices(devices []boshsettings.DiskSetting
825825// discoverNVMeInstanceStorage discovers NVMe instance storage by filtering out
826826// IaaS-managed volumes (e.g., EBS on AWS, Managed Disks on Azure) using symlinks.
827827// The patterns are configurable via LinuxOptions to support different cloud providers.
828+ // If InstanceStorageManagedVolumePattern is not configured, all NVMe devices are
829+ // considered instance storage (no filtering).
828830func (p linux ) discoverNVMeInstanceStorage (devices []boshsettings.DiskSettings ) ([]string , error ) {
829831 nvmePattern := p .options .InstanceStorageDevicePattern
830832 if nvmePattern == "" {
831833 nvmePattern = boshdpresolv .DefaultNVMeDevicePattern
832834 }
833835
834- managedVolumePattern := p .options .InstanceStorageManagedVolumePattern
835- if managedVolumePattern == "" {
836- // Default to AWS EBS pattern; other providers should configure their pattern
837- managedVolumePattern = boshdpresolv .AWSEBSSymlinkPattern
838- }
839-
840836 // Get all NVMe devices
841837 allNvmeDevices , err := p .symlinkDeviceResolver .GetDevicesByPattern (nvmePattern )
842838 if err != nil {
@@ -845,14 +841,24 @@ func (p linux) discoverNVMeInstanceStorage(devices []boshsettings.DiskSettings)
845841
846842 p .logger .Debug (logTag , "Found NVMe devices: %v" , allNvmeDevices )
847843
848- // Resolve managed disk symlinks to device paths (to exclude them)
849- managedDevices , err := p .symlinkDeviceResolver .ResolveSymlinksToDevices (managedVolumePattern )
850- if err != nil {
851- return nil , bosherr .WrapError (err , "Resolving managed disk symlinks" )
852- }
844+ // Filter out managed volumes if pattern is configured
845+ managedVolumePattern := p .options .InstanceStorageManagedVolumePattern
846+ var instanceStorage []string
853847
854- // Instance storage = all NVMe devices minus managed disks
855- instanceStorage := p .symlinkDeviceResolver .FilterDevices (allNvmeDevices , managedDevices )
848+ if managedVolumePattern == "" {
849+ // Resolve managed disk symlinks to device paths (to exclude them)
850+ managedDevices , err := p .symlinkDeviceResolver .ResolveSymlinksToDevices (managedVolumePattern )
851+ if err != nil {
852+ return nil , bosherr .WrapError (err , "Resolving managed disk symlinks" )
853+ }
854+
855+ // Instance storage = all NVMe devices minus managed disks
856+ instanceStorage = p .symlinkDeviceResolver .FilterDevices (allNvmeDevices , managedDevices )
857+ } else {
858+ // No managed volume pattern configured - all NVMe devices are instance storage
859+ p .logger .Debug (logTag , "No InstanceStorageManagedVolumePattern configured, using all NVMe devices as instance storage" )
860+ instanceStorage = allNvmeDevices
861+ }
856862
857863 for _ , devicePath := range instanceStorage {
858864 p .logger .Info (logTag , "Discovered instance storage: %s" , devicePath )
0 commit comments