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:
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")
|
||||
}
|
||||
|
||||
@@ -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")
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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,
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@@ -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")
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user