@@ -245,78 +245,20 @@ func ApplyIndexerClusterManager(ctx context.Context, client splcommon.Controller
245245
246246 // no need to requeue if everything is ready
247247 if cr .Status .Phase == enterpriseApi .PhaseReady {
248- // Queue
249- queue := enterpriseApi.Queue {}
250- if cr .Spec .QueueRef .Name != "" {
251- ns := cr .GetNamespace ()
252- if cr .Spec .QueueRef .Namespace != "" {
253- ns = cr .Spec .QueueRef .Namespace
254- }
255- err = client .Get (ctx , types.NamespacedName {
256- Name : cr .Spec .QueueRef .Name ,
257- Namespace : ns ,
258- }, & queue )
259- if err != nil {
260- return result , err
261- }
262- }
263- if queue .Spec .Provider == "sqs" {
264- if queue .Spec .SQS .Endpoint == "" && queue .Spec .SQS .AuthRegion != "" {
265- ep , err := resolveSQSEndpoint (ctx , queue .Spec .SQS .AuthRegion )
266- if err != nil {
267- return result , err
268- }
269- queue .Spec .SQS .Endpoint = ep
270- }
271- }
272-
273- // Object Storage
274- os := enterpriseApi.ObjectStorage {}
275- if cr .Spec .ObjectStorageRef .Name != "" {
276- ns := cr .GetNamespace ()
277- if cr .Spec .ObjectStorageRef .Namespace != "" {
278- ns = cr .Spec .ObjectStorageRef .Namespace
279- }
280- err = client .Get (ctx , types.NamespacedName {
281- Name : cr .Spec .ObjectStorageRef .Name ,
282- Namespace : ns ,
283- }, & os )
284- if err != nil {
285- return result , err
286- }
287- }
288- if os .Spec .Provider == "s3" {
289- if os .Spec .S3 .Endpoint == "" && queue .Spec .SQS .AuthRegion != "" {
290- ep , err := resolveS3Endpoint (ctx , queue .Spec .SQS .AuthRegion )
291- if err != nil {
292- return result , err
293- }
294- os .Spec .S3 .Endpoint = ep
295- }
296- }
297-
298- // Secret reference
299- accessKey , secretKey , version := "" , "" , ""
300- if queue .Spec .Provider == "sqs" && cr .Spec .ServiceAccount == "" {
301- for _ , vol := range queue .Spec .SQS .VolList {
302- if vol .SecretRef != "" {
303- accessKey , secretKey , version , err = GetQueueRemoteVolumeSecrets (ctx , vol , client , cr )
304- if err != nil {
305- scopedLog .Error (err , "Failed to get queue remote volume secrets" )
306- return result , err
307- }
308- }
309- }
248+ qosCfg , err := ResolveQueueAndObjectStorage (ctx , client , cr , cr .Spec .QueueRef , cr .Spec .ObjectStorageRef , cr .Spec .ServiceAccount )
249+ if err != nil {
250+ scopedLog .Error (err , "Failed to resolve Queue/ObjectStorage config" )
251+ return result , err
310252 }
311253
312- secretChanged := cr .Status .CredentialSecretVersion != version
254+ secretChanged := cr .Status .CredentialSecretVersion != qosCfg . Version
313255 serviceAccountChanged := cr .Status .ServiceAccount != cr .Spec .ServiceAccount
314256
315257 // If queue is updated
316258 if cr .Spec .QueueRef .Name != "" {
317259 if secretChanged || serviceAccountChanged {
318260 mgr := newIndexerClusterPodManager (scopedLog , cr , namespaceScopedSecret , splclient .NewSplunkClient , client )
319- err = mgr .updateIndexerConfFiles (ctx , cr , & queue . Spec , & os . Spec , accessKey , secretKey , client )
261+ err = mgr .updateIndexerConfFiles (ctx , cr , & qosCfg . Queue , & qosCfg . OS , qosCfg . AccessKey , qosCfg . SecretKey , client )
320262 if err != nil {
321263 eventPublisher .Warning (ctx , "ApplyIndexerClusterManager" , fmt .Sprintf ("Failed to update conf file for Queue/Pipeline config change after pod creation: %s" , err .Error ()))
322264 scopedLog .Error (err , "Failed to update conf file for Queue/Pipeline config change after pod creation" )
@@ -332,7 +274,7 @@ func ApplyIndexerClusterManager(ctx context.Context, client splcommon.Controller
332274 scopedLog .Info ("Restarted splunk" , "indexer" , i )
333275 }
334276
335- cr .Status .CredentialSecretVersion = version
277+ cr .Status .CredentialSecretVersion = qosCfg . Version
336278 cr .Status .ServiceAccount = cr .Spec .ServiceAccount
337279 }
338280 }
@@ -598,77 +540,19 @@ func ApplyIndexerCluster(ctx context.Context, client splcommon.ControllerClient,
598540
599541 // no need to requeue if everything is ready
600542 if cr .Status .Phase == enterpriseApi .PhaseReady {
601- // Queue
602- queue := enterpriseApi.Queue {}
603- if cr .Spec .QueueRef .Name != "" {
604- ns := cr .GetNamespace ()
605- if cr .Spec .QueueRef .Namespace != "" {
606- ns = cr .Spec .QueueRef .Namespace
607- }
608- err = client .Get (context .Background (), types.NamespacedName {
609- Name : cr .Spec .QueueRef .Name ,
610- Namespace : ns ,
611- }, & queue )
612- if err != nil {
613- return result , err
614- }
615- }
616- if queue .Spec .Provider == "sqs" {
617- if queue .Spec .SQS .Endpoint == "" && queue .Spec .SQS .AuthRegion != "" {
618- ep , err := resolveSQSEndpoint (ctx , queue .Spec .SQS .AuthRegion )
619- if err != nil {
620- return result , err
621- }
622- queue .Spec .SQS .Endpoint = ep
623- }
624- }
625-
626- // Object Storage
627- os := enterpriseApi.ObjectStorage {}
628- if cr .Spec .ObjectStorageRef .Name != "" {
629- ns := cr .GetNamespace ()
630- if cr .Spec .ObjectStorageRef .Namespace != "" {
631- ns = cr .Spec .ObjectStorageRef .Namespace
632- }
633- err = client .Get (context .Background (), types.NamespacedName {
634- Name : cr .Spec .ObjectStorageRef .Name ,
635- Namespace : ns ,
636- }, & os )
637- if err != nil {
638- return result , err
639- }
640- }
641- if os .Spec .Provider == "s3" {
642- if os .Spec .S3 .Endpoint == "" && queue .Spec .SQS .AuthRegion != "" {
643- ep , err := resolveS3Endpoint (ctx , queue .Spec .SQS .AuthRegion )
644- if err != nil {
645- return result , err
646- }
647- os .Spec .S3 .Endpoint = ep
648- }
649- }
650-
651- // Secret reference
652- accessKey , secretKey , version := "" , "" , ""
653- if queue .Spec .Provider == "sqs" && cr .Spec .ServiceAccount == "" {
654- for _ , vol := range queue .Spec .SQS .VolList {
655- if vol .SecretRef != "" {
656- accessKey , secretKey , version , err = GetQueueRemoteVolumeSecrets (ctx , vol , client , cr )
657- if err != nil {
658- scopedLog .Error (err , "Failed to get queue remote volume secrets" )
659- return result , err
660- }
661- }
662- }
543+ qosCfg , err := ResolveQueueAndObjectStorage (ctx , client , cr , cr .Spec .QueueRef , cr .Spec .ObjectStorageRef , cr .Spec .ServiceAccount )
544+ if err != nil {
545+ scopedLog .Error (err , "Failed to resolve Queue/ObjectStorage config" )
546+ return result , err
663547 }
664548
665- secretChanged := cr .Status .CredentialSecretVersion != version
549+ secretChanged := cr .Status .CredentialSecretVersion != qosCfg . Version
666550 serviceAccountChanged := cr .Status .ServiceAccount != cr .Spec .ServiceAccount
667551
668552 if cr .Spec .QueueRef .Name != "" {
669553 if secretChanged || serviceAccountChanged {
670554 mgr := newIndexerClusterPodManager (scopedLog , cr , namespaceScopedSecret , splclient .NewSplunkClient , client )
671- err = mgr .updateIndexerConfFiles (ctx , cr , & queue . Spec , & os . Spec , accessKey , secretKey , client )
555+ err = mgr .updateIndexerConfFiles (ctx , cr , & qosCfg . Queue , & qosCfg . OS , qosCfg . AccessKey , qosCfg . SecretKey , client )
672556 if err != nil {
673557 eventPublisher .Warning (ctx , "ApplyIndexerClusterManager" , fmt .Sprintf ("Failed to update conf file for Queue/Pipeline config change after pod creation: %s" , err .Error ()))
674558 scopedLog .Error (err , "Failed to update conf file for Queue/Pipeline config change after pod creation" )
@@ -684,7 +568,7 @@ func ApplyIndexerCluster(ctx context.Context, client splcommon.ControllerClient,
684568 scopedLog .Info ("Restarted splunk" , "indexer" , i )
685569 }
686570
687- cr .Status .CredentialSecretVersion = version
571+ cr .Status .CredentialSecretVersion = qosCfg . Version
688572 cr .Status .ServiceAccount = cr .Spec .ServiceAccount
689573 }
690574 }
0 commit comments