A Kubernetes operator that bridges Hardware Security Module (HSM) data storage with Kubernetes Secrets, providing true secret portability th
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

stop discovery after the maxDevices

+24 -4
+24 -4
internal/modes/discovery/discovery.go
··· 249 249 func (d *DiscoveryAgent) discoverDevicesForSpec( 250 250 ctx context.Context, hsmDevice *hsmv1alpha1.HSMDevice, 251 251 ) ([]hsmv1alpha1.DiscoveredDevice, error) { 252 + var devices []hsmv1alpha1.DiscoveredDevice 253 + var err error 254 + 252 255 // Perform discovery based on specification 253 256 if hsmDevice.Spec.Discovery != nil && hsmDevice.Spec.Discovery.USB != nil { 254 - return d.discoverUSBDevices(ctx, hsmDevice) 257 + devices, err = d.discoverUSBDevices(ctx, hsmDevice) 255 258 } else if hsmDevice.Spec.Discovery != nil && hsmDevice.Spec.Discovery.DevicePath != nil { 256 - return d.discoverPathDevices(ctx, hsmDevice) 259 + devices, err = d.discoverPathDevices(ctx, hsmDevice) 257 260 } else if hsmDevice.Spec.Discovery != nil && hsmDevice.Spec.Discovery.AutoDiscovery { 258 - return d.autoDiscoverDevices(ctx, hsmDevice) 261 + devices, err = d.autoDiscoverDevices(ctx, hsmDevice) 259 262 } else { 260 263 // Default to auto-discovery 261 - return d.autoDiscoverDevices(ctx, hsmDevice) 264 + devices, err = d.autoDiscoverDevices(ctx, hsmDevice) 262 265 } 266 + 267 + if err != nil { 268 + return nil, err 269 + } 270 + 271 + // Apply maxDevices limit 272 + if hsmDevice.Spec.MaxDevices > 0 && int32(len(devices)) > hsmDevice.Spec.MaxDevices { 273 + originalCount := len(devices) 274 + devices = devices[:hsmDevice.Spec.MaxDevices] 275 + d.logger.Info("Limited discovered devices due to maxDevices setting", 276 + "device", hsmDevice.Name, 277 + "maxDevices", hsmDevice.Spec.MaxDevices, 278 + "originalCount", originalCount, 279 + "limitedCount", len(devices)) 280 + } 281 + 282 + return devices, nil 263 283 } 264 284 265 285 // discoverUSBDevices discovers devices using USB specifications