@@ -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
@@ -446,23 +446,30 @@ func getClusterManagerList(ctx context.Context, c splcommon.ControllerClient, cr
446446 return numOfObjects , nil
447447}
448448
449- // VerifyCMisMultisite checks if its a multisite used also in mock
450- var VerifyCMisMultisiteCall = func (ctx context.Context , cr * enterpriseApi.ClusterManager , namespaceScopedSecret * corev1.Secret ) ([]corev1.EnvVar , error ) {
451- var err error
449+ // GetCMMultisiteEnvVarsCall checks if cluster is multisite and returns appropriate environment variables
450+ // If it fails to connect to the cluster manager (e.g., pod not ready yet), it returns basic env vars as fallback
451+ // This function is used also in mock tests
452+ var GetCMMultisiteEnvVarsCall = func (ctx context.Context , cr * enterpriseApi.ClusterManager , namespaceScopedSecret * corev1.Secret ) ([]corev1.EnvVar , error ) {
452453 reqLogger := log .FromContext (ctx )
453454 scopedLog := reqLogger .WithName ("Verify if Multisite Indexer Cluster" ).WithValues ("name" , cr .GetName (), "namespace" , cr .GetNamespace ())
455+
456+ extraEnv := getClusterManagerExtraEnv (cr , & cr .Spec .CommonSplunkSpec )
457+
454458 mgr := clusterManagerPodManager {log : scopedLog , cr : cr , secrets : namespaceScopedSecret , newSplunkClient : splclient .NewSplunkClient }
455459 cm := mgr .getClusterManagerClient (cr )
456460 clusterInfo , err := cm .GetClusterInfo (false )
457461 if err != nil {
458- return nil , err
462+ scopedLog .Error (err , "Failed to get cluster info from cluster manager pod, using basic environment variables" )
463+ return extraEnv , err
459464 }
460- multiSite := clusterInfo .MultiSite
461- extraEnv := getClusterManagerExtraEnv (cr , & cr .Spec .CommonSplunkSpec )
462- if multiSite == "true" {
463- extraEnv = append (extraEnv , corev1.EnvVar {Name : "SPLUNK_SITE" , Value : "site0" }, corev1.EnvVar {Name : "SPLUNK_MULTISITE_MASTER" , Value : GetSplunkServiceName (SplunkClusterManager , cr .GetName (), false )})
465+
466+ if clusterInfo .MultiSite == "true" {
467+ extraEnv = append (extraEnv ,
468+ corev1.EnvVar {Name : "SPLUNK_SITE" , Value : "site0" },
469+ corev1.EnvVar {Name : "SPLUNK_MULTISITE_MASTER" , Value : GetSplunkServiceName (SplunkClusterManager , cr .GetName (), false )})
464470 }
465- return extraEnv , err
471+
472+ return extraEnv , nil
466473}
467474
468475// changeClusterManagerAnnotations updates the splunk/image-tag field of the ClusterManager annotations to trigger the reconcile loop
0 commit comments