diff --git a/pkg/operator/ceph/csi/cluster_config.go b/pkg/operator/ceph/csi/cluster_config.go index e0681e62f..c09fe81f4 100644 --- a/pkg/operator/ceph/csi/cluster_config.go +++ b/pkg/operator/ceph/csi/cluster_config.go @@ -260,9 +260,10 @@ func CreateCsiConfigMap(ctx context.Context, namespace string, clientset kuberne if err := updateCsiConfigMapOwnerRefs(ctx, namespace, clientset, ownerInfo); err != nil { return errors.Wrapf(err, "failed to ensure csi config map %q (in %q) owner references", configMap.Name, namespace) } + } else { + logger.Infof("successfully created csi config map %q", configMap.Name) } - logger.Infof("successfully created csi config map %q", configMap.Name) return nil } diff --git a/pkg/operator/ceph/csi/controller.go b/pkg/operator/ceph/csi/controller.go index f4874ed55..87070a2a4 100644 --- a/pkg/operator/ceph/csi/controller.go +++ b/pkg/operator/ceph/csi/controller.go @@ -137,12 +137,29 @@ func (r *ReconcileCSI) reconcile(request reconcile.Request) (reconcile.Result, e // reconcileResult is used to communicate the result of the reconciliation back to the caller var reconcileResult reconcile.Result + ownerRef, err := k8sutil.GetDeploymentOwnerReference(r.opManagerContext, r.context.Clientset, os.Getenv(k8sutil.PodNameEnvVar), r.opConfig.OperatorNamespace) + if err != nil { + logger.Warningf("could not find deployment owner reference to assign to csi drivers. %v", err) + } + if ownerRef != nil { + blockOwnerDeletion := false + ownerRef.BlockOwnerDeletion = &blockOwnerDeletion + } + + ownerInfo := k8sutil.NewOwnerInfoWithOwnerRef(ownerRef, r.opConfig.OperatorNamespace) + // create an empty config map. config map will be filled with data + // later when clusters have mons + err = CreateCsiConfigMap(r.opManagerContext, r.opConfig.OperatorNamespace, r.context.Clientset, ownerInfo) + if err != nil { + return opcontroller.ImmediateRetryResult, errors.Wrap(err, "failed creating csi config map") + } + // Fetch the operator's configmap. We force the NamespaceName to the operator since the request // could be a CephCluster. If so the NamespaceName will be the one from the cluster and thus the // CM won't be found opNamespaceName := types.NamespacedName{Name: opcontroller.OperatorSettingConfigMapName, Namespace: r.opConfig.OperatorNamespace} opConfig := &v1.ConfigMap{} - err := r.client.Get(r.opManagerContext, opNamespaceName, opConfig) + err = r.client.Get(r.opManagerContext, opNamespaceName, opConfig) if err != nil { if kerrors.IsNotFound(err) { logger.Debug("operator's configmap resource not found. will use default value or env var.") @@ -200,23 +217,6 @@ func (r *ReconcileCSI) reconcile(request reconcile.Request) (reconcile.Result, e return reconcile.Result{}, nil } - ownerRef, err := k8sutil.GetDeploymentOwnerReference(r.opManagerContext, r.context.Clientset, os.Getenv(k8sutil.PodNameEnvVar), r.opConfig.OperatorNamespace) - if err != nil { - logger.Warningf("could not find deployment owner reference to assign to csi drivers. %v", err) - } - if ownerRef != nil { - blockOwnerDeletion := false - ownerRef.BlockOwnerDeletion = &blockOwnerDeletion - } - - ownerInfo := k8sutil.NewOwnerInfoWithOwnerRef(ownerRef, r.opConfig.OperatorNamespace) - // create an empty config map. config map will be filled with data - // later when clusters have mons - err = CreateCsiConfigMap(r.opManagerContext, r.opConfig.OperatorNamespace, r.context.Clientset, ownerInfo) - if err != nil { - return opcontroller.ImmediateRetryResult, errors.Wrap(err, "failed creating csi config map") - } - err = peermap.CreateOrUpdateConfig(r.opManagerContext, r.context, &peermap.PeerIDMappings{}) if err != nil { return opcontroller.ImmediateRetryResult, errors.Wrap(err, "failed to create pool ID mapping config map")