@@ -136,7 +136,7 @@ func ApplyClusterManager(ctx context.Context, client splcommon.ControllerClient,
136136 // check if deletion has been requested
137137 if cr .ObjectMeta .DeletionTimestamp != nil {
138138 if cr .Spec .MonitoringConsoleRef .Name != "" {
139- extraEnv , _ := VerifyCMisMultisiteCall (ctx , cr , namespaceScopedSecret )
139+ extraEnv , _ := GetCMMultisiteEnvVarsCall (ctx , cr , namespaceScopedSecret )
140140 _ , err = ApplyMonitoringConsoleEnvConfigMap (ctx , client , cr .GetNamespace (), cr .GetName (), cr .Spec .MonitoringConsoleRef .Name , extraEnv , false )
141141 if err != nil {
142142 return result , err
@@ -187,7 +187,7 @@ func ApplyClusterManager(ctx context.Context, client splcommon.ControllerClient,
187187 }
188188
189189 //make changes to respective mc configmap when changing/removing mcRef from spec
190- extraEnv , err := VerifyCMisMultisiteCall (ctx , cr , namespaceScopedSecret )
190+ extraEnv , _ := GetCMMultisiteEnvVarsCall (ctx , cr , namespaceScopedSecret )
191191 err = validateMonitoringConsoleRef (ctx , client , statefulSet , extraEnv )
192192 if err != nil {
193193 return result , err
@@ -445,23 +445,30 @@ func getClusterManagerList(ctx context.Context, c splcommon.ControllerClient, cr
445445 return numOfObjects , nil
446446}
447447
448- // VerifyCMisMultisite checks if its a multisite used also in mock
449- var VerifyCMisMultisiteCall = func (ctx context.Context , cr * enterpriseApi.ClusterManager , namespaceScopedSecret * corev1.Secret ) ([]corev1.EnvVar , error ) {
450- var err error
448+ // GetCMMultisiteEnvVarsCall checks if cluster is multisite and returns appropriate environment variables
449+ // If it fails to connect to the cluster manager (e.g., pod not ready yet), it returns basic env vars as fallback
450+ // This function is used also in mock tests
451+ var GetCMMultisiteEnvVarsCall = func (ctx context.Context , cr * enterpriseApi.ClusterManager , namespaceScopedSecret * corev1.Secret ) ([]corev1.EnvVar , error ) {
451452 reqLogger := log .FromContext (ctx )
452453 scopedLog := reqLogger .WithName ("Verify if Multisite Indexer Cluster" ).WithValues ("name" , cr .GetName (), "namespace" , cr .GetNamespace ())
454+
455+ extraEnv := getClusterManagerExtraEnv (cr , & cr .Spec .CommonSplunkSpec )
456+
453457 mgr := clusterManagerPodManager {log : scopedLog , cr : cr , secrets : namespaceScopedSecret , newSplunkClient : splclient .NewSplunkClient }
454458 cm := mgr .getClusterManagerClient (cr )
455459 clusterInfo , err := cm .GetClusterInfo (false )
456460 if err != nil {
457- return nil , err
461+ scopedLog .Error (err , "Failed to get cluster info from cluster manager pod, using basic environment variables" )
462+ return extraEnv , err
458463 }
459- multiSite := clusterInfo .MultiSite
460- extraEnv := getClusterManagerExtraEnv (cr , & cr .Spec .CommonSplunkSpec )
461- if multiSite == "true" {
462- extraEnv = append (extraEnv , corev1.EnvVar {Name : "SPLUNK_SITE" , Value : "site0" }, corev1.EnvVar {Name : "SPLUNK_MULTISITE_MASTER" , Value : GetSplunkServiceName (SplunkClusterManager , cr .GetName (), false )})
464+
465+ if clusterInfo .MultiSite == "true" {
466+ extraEnv = append (extraEnv ,
467+ corev1.EnvVar {Name : "SPLUNK_SITE" , Value : "site0" },
468+ corev1.EnvVar {Name : "SPLUNK_MULTISITE_MASTER" , Value : GetSplunkServiceName (SplunkClusterManager , cr .GetName (), false )})
463469 }
464- return extraEnv , err
470+
471+ return extraEnv , nil
465472}
466473
467474// changeClusterManagerAnnotations updates the splunk/image-tag field of the ClusterManager annotations to trigger the reconcile loop
0 commit comments