csi: use cluster namespace for cephConn

CephConnection CR is created with the
kubernetes namespace name as its the
unique name in the entire cluster.
This PR removes unwanted input
parameters and adjust the namespace
name for the cephConnection CR.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
(cherry picked from commit 1ff3f07ac5)
This commit is contained in:
Madhu Rajanna authored and Mergify committed 2025-08-11 07:12:44 +00:00
1 parent 4c26697576
commit 41c4e24e35
7 files changed
+22 -23

No files matched your search

@@ -182,7 +182,7 @@ func (c *ClusterController) configureExternalCephCluster(cluster *cluster) error
if err != nil {
return errors.Wrap(err, "failed to create/update cephConnection")
}
err = csi.CreateDefaultClientProfile(c.context.Client, cluster.ClusterInfo, cluster.ClusterInfo.NamespacedName())
err = csi.CreateDefaultClientProfile(c.context.Client, cluster.ClusterInfo)
if err != nil {
return errors.Wrap(err, "failed to create/update default client profile")
}
+1 -1
View File
@@ -1190,7 +1190,7 @@ func (c *Cluster) saveMonConfig() error {
if err != nil {
return errors.Wrap(err, "failed to create/update cephConnection")
}
err = csi.CreateDefaultClientProfile(c.context.Client, c.ClusterInfo, c.ClusterInfo.NamespacedName())
err = csi.CreateDefaultClientProfile(c.context.Client, c.ClusterInfo)
if err != nil {
return errors.Wrap(err, "failed to create/update default client profile")
}
+6 -6
View File
@@ -38,7 +38,7 @@ func CreateUpdateCephConnection(c client.Client, clusterInfo *cephclient.Cluster
csiCephConnection.Name = clusterInfo.NamespacedName().Name
csiCephConnection.Namespace = os.Getenv(k8sutil.PodNamespaceEnvVar)
spec, err := generateCephConnSpec(c, clusterInfo, csiCephConnection.Spec, clusterSpec)
spec, err := generateCephConnSpec(c, clusterInfo, clusterSpec)
if err != nil {
return errors.Wrapf(err, "failed to set ceph connection CR %q in namespace %q", csiCephConnection.Name, clusterInfo.Namespace)
}
@@ -68,12 +68,12 @@ func CreateUpdateCephConnection(c client.Client, clusterInfo *cephclient.Cluster
return nil
}
func generateCephConnSpec(c client.Client, clusterInfo *cephclient.ClusterInfo, csiClusterConnSpec csiopv1.CephConnectionSpec, clusterSpec cephv1.ClusterSpec) (csiopv1.CephConnectionSpec, error) {
func generateCephConnSpec(c client.Client, clusterInfo *cephclient.ClusterInfo, clusterSpec cephv1.ClusterSpec) (csiopv1.CephConnectionSpec, error) {
csiClusterConnSpec := csiopv1.CephConnectionSpec{}
if clusterSpec.CSI.ReadAffinity.Enabled {
csiClusterConnSpec = csiopv1.CephConnectionSpec{
ReadAffinity: &csiopv1.ReadAffinitySpec{
CrushLocationLabels: clusterSpec.CSI.ReadAffinity.CrushLocationLabels,
},
csiClusterConnSpec.ReadAffinity = &csiopv1.ReadAffinitySpec{
CrushLocationLabels: clusterSpec.CSI.ReadAffinity.CrushLocationLabels,
}
}
+8 -8
View File
@@ -35,7 +35,7 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"
)
func CreateUpdateClientProfileRadosNamespace(ctx context.Context, c client.Client, clusterInfo *cephclient.ClusterInfo, cephBlockPoolRadosNamespaceName, clusterID, clusterName string) error {
func CreateUpdateClientProfileRadosNamespace(ctx context.Context, c client.Client, clusterInfo *cephclient.ClusterInfo, cephBlockPoolRadosNamespaceName, clusterID string) error {
logger.Info("creating ceph-csi clientProfile CR for rados namespace")
csiOpClientProfile := &csiopv1.ClientProfile{}
@@ -43,7 +43,7 @@ func CreateUpdateClientProfileRadosNamespace(ctx context.Context, c client.Clien
csiOpClientProfile.Namespace = os.Getenv(k8sutil.PodNamespaceEnvVar)
csiOpClientProfile.Spec = csiopv1.ClientProfileSpec{
CephConnectionRef: v1.LocalObjectReference{
Name: clusterName,
Name: clusterInfo.Namespace,
},
Rbd: &csiopv1.RbdConfigSpec{
RadosNamespace: cephBlockPoolRadosNamespaceName,
@@ -72,10 +72,10 @@ func CreateUpdateClientProfileRadosNamespace(ctx context.Context, c client.Clien
return nil
}
func CreateUpdateClientProfileSubVolumeGroup(ctx context.Context, c client.Client, clusterInfo *cephclient.ClusterInfo, cephFilesystemSubVolumeGroupName, clusterID, clusterName string) error {
func CreateUpdateClientProfileSubVolumeGroup(ctx context.Context, c client.Client, clusterInfo *cephclient.ClusterInfo, cephFilesystemSubVolumeGroupName, clusterID string) error {
logger.Info("Creating ceph-csi clientProfile CR for subvolume group")
csiOpClientProfile := generateProfileSubVolumeGroupSpec(clusterInfo, cephFilesystemSubVolumeGroupName, clusterID, clusterName)
csiOpClientProfile := generateProfileSubVolumeGroupSpec(clusterInfo, cephFilesystemSubVolumeGroupName, clusterID)
err := c.Get(ctx, types.NamespacedName{Name: csiOpClientProfile.Name, Namespace: csiOpClientProfile.Namespace}, csiOpClientProfile)
if err != nil {
@@ -99,13 +99,13 @@ func CreateUpdateClientProfileSubVolumeGroup(ctx context.Context, c client.Clien
return nil
}
func generateProfileSubVolumeGroupSpec(clusterInfo *cephclient.ClusterInfo, cephFilesystemSubVolumeGroupName, clusterID, clusterName string) *csiopv1.ClientProfile {
func generateProfileSubVolumeGroupSpec(clusterInfo *cephclient.ClusterInfo, cephFilesystemSubVolumeGroupName, clusterID string) *csiopv1.ClientProfile {
csiOpClientProfile := &csiopv1.ClientProfile{}
csiOpClientProfile.Name = clusterID
csiOpClientProfile.Namespace = os.Getenv(k8sutil.PodNamespaceEnvVar)
csiOpClientProfile.Spec = csiopv1.ClientProfileSpec{
CephConnectionRef: v1.LocalObjectReference{
Name: clusterName,
Name: clusterInfo.Namespace,
},
CephFs: &csiopv1.CephFsConfigSpec{
SubVolumeGroup: cephFilesystemSubVolumeGroupName,
@@ -126,7 +126,7 @@ func generateProfileSubVolumeGroupSpec(clusterInfo *cephclient.ClusterInfo, ceph
}
// CreateDefaultClientProfile creates a default client profile for csi-operator to connect driver
func CreateDefaultClientProfile(c client.Client, clusterInfo *cephclient.ClusterInfo, namespaced types.NamespacedName) error {
func CreateDefaultClientProfile(c client.Client, clusterInfo *cephclient.ClusterInfo) error {
logger.Info("Creating ceph-csi clientProfile default CR")
defer func() {
if r := recover(); r != nil {
@@ -141,7 +141,7 @@ func CreateDefaultClientProfile(c client.Client, clusterInfo *cephclient.Cluster
csiOpClientProfile.Namespace = os.Getenv(k8sutil.PodNamespaceEnvVar)
csiOpClientProfile.Spec = csiopv1.ClientProfileSpec{
CephConnectionRef: v1.LocalObjectReference{
Name: namespaced.Name,
Name: clusterInfo.Namespace,
},
}
+2 -3
View File
@@ -52,7 +52,6 @@ func TestCreateUpdateClientProfile(t *testing.T) {
c.SetName(c.Namespace)
t.Setenv(k8sutil.PodNamespaceEnvVar, ns)
clusterName := "testClusterName"
cephBlockPoolRadosNamespacedName := types.NamespacedName{Namespace: ns, Name: "cephBlockPoolRadosNames"}
cephSubVolGrpNamespacedName := types.NamespacedName{Namespace: ns, Name: "cephSubVolumeGroupNames"}
csiOpClientProfile := &csiopv1.ClientProfile{}
@@ -66,10 +65,10 @@ func TestCreateUpdateClientProfile(t *testing.T) {
// Create a fake client to mock API calls.
cl := fake.NewClientBuilder().WithScheme(s).WithRuntimeObjects(object...).Build()
err := CreateUpdateClientProfileRadosNamespace(context.TODO(), cl, c, cephBlockPoolRadosNamespacedName.Name, cephBlockPoolRadosNamespacedName.Name, clusterName)
err := CreateUpdateClientProfileRadosNamespace(context.TODO(), cl, c, cephBlockPoolRadosNamespacedName.Name, cephBlockPoolRadosNamespacedName.Name)
assert.NoError(t, err)
err = CreateUpdateClientProfileSubVolumeGroup(context.TODO(), cl, c, cephSubVolGrpNamespacedName.Name, cephSubVolGrpNamespacedName.Name, clusterName)
err = CreateUpdateClientProfileSubVolumeGroup(context.TODO(), cl, c, cephSubVolGrpNamespacedName.Name, cephSubVolGrpNamespacedName.Name)
assert.NoError(t, err)
err = cl.Get(context.TODO(), cephBlockPoolRadosNamespacedName, csiOpClientProfile)
@@ -273,7 +273,7 @@ func (r *ReconcileCephFilesystemSubVolumeGroup) reconcile(request reconcile.Requ
}
r.updateStatus(observedGeneration, namespacedName, cephv1.ConditionReady)
if csi.EnableCSIOperator() {
err = csi.CreateUpdateClientProfileSubVolumeGroup(r.clusterInfo.Context, r.client, r.clusterInfo, cephFilesystemSubVolumeGroupName, buildClusterID(cephFilesystemSubVolumeGroup), cephCluster.Name)
err = csi.CreateUpdateClientProfileSubVolumeGroup(r.clusterInfo.Context, r.client, r.clusterInfo, cephFilesystemSubVolumeGroupName, buildClusterID(cephFilesystemSubVolumeGroup))
if err != nil {
return reconcile.Result{}, errors.Wrap(err, "failed to create ceph csi-op config CR for subvolume")
}
@@ -326,7 +326,7 @@ func (r *ReconcileCephFilesystemSubVolumeGroup) reconcile(request reconcile.Requ
r.updateStatus(observedGeneration, request.NamespacedName, cephv1.ConditionReady)
if csi.EnableCSIOperator() {
err = csi.CreateUpdateClientProfileSubVolumeGroup(r.clusterInfo.Context, r.client, r.clusterInfo, cephFilesystemSubVolumeGroupName, buildClusterID(cephFilesystemSubVolumeGroup), cephCluster.Name)
err = csi.CreateUpdateClientProfileSubVolumeGroup(r.clusterInfo.Context, r.client, r.clusterInfo, cephFilesystemSubVolumeGroupName, buildClusterID(cephFilesystemSubVolumeGroup))
if err != nil {
return reconcile.Result{}, errors.Wrap(err, "failed to create ceph csi-op config CR for subvolumeGroup")
}
@@ -289,7 +289,7 @@ func (r *ReconcileCephBlockPoolRadosNamespace) reconcile(request reconcile.Reque
}
r.updateStatus(r.client, namespacedName, cephv1.ConditionReady)
if csi.EnableCSIOperator() {
err = csi.CreateUpdateClientProfileRadosNamespace(r.clusterInfo.Context, r.client, r.clusterInfo, radosNamespaceName, buildClusterID(radosNamespace), cephCluster.Name)
err = csi.CreateUpdateClientProfileRadosNamespace(r.clusterInfo.Context, r.client, r.clusterInfo, radosNamespaceName, buildClusterID(radosNamespace))
if err != nil {
return reconcile.Result{}, radosNamespace, errors.Wrap(err, "failed to create ceph csi-op config CR for RadosNamespace")
}
@@ -353,7 +353,7 @@ func (r *ReconcileCephBlockPoolRadosNamespace) reconcile(request reconcile.Reque
r.updateStatus(r.client, namespacedName, cephv1.ConditionReady)
if csi.EnableCSIOperator() {
err = csi.CreateUpdateClientProfileRadosNamespace(r.clusterInfo.Context, r.client, r.clusterInfo, radosNamespaceName, buildClusterID(radosNamespace), cephCluster.Name)
err = csi.CreateUpdateClientProfileRadosNamespace(r.clusterInfo.Context, r.client, r.clusterInfo, radosNamespaceName, buildClusterID(radosNamespace))
if err != nil {
return reconcile.Result{}, radosNamespace, errors.Wrap(err, "failed to create ceph csi-op config CR for RadosNamespace")
}