Skip to content

Commit 46b2965

Browse files
authored
Remove old finalizer and use Bidirectional mount propagation for socket dir (#83)
Signed-off-by: Mayank Sachan <[email protected]>
1 parent e064360 commit 46b2965

File tree

4 files changed

+39
-38
lines changed

4 files changed

+39
-38
lines changed

config/samples/csi_v1alpha1_ibmobjectcsi.yaml

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@ metadata:
88
app.kubernetes.io/instance: ibm-object-csi
99
app.kubernetes.io/part-of: ibm-object-csi-driver
1010
app.kubernetes.io/managed-by: ibm-object-csi-driver-operator
11-
release: v1.0.0
11+
release: v1.0.6
1212
spec:
1313
# controller is a deployment with ibm-object-csi-controller container
1414
# and csi-provisioner and livenessprobe sidecars.
1515
controller:
1616
repository: icr.io/ibm/ibm-object-csi-driver
17-
tag: "v0.1.18"
18-
imagePullPolicy: IfNotPresent
17+
tag: "v1.0.6"
18+
imagePullPolicy: Always
1919
resources:
2020
limits:
2121
cpu: 800m
@@ -48,7 +48,7 @@ spec:
4848
# and csi-node-driver-registrar and livenessprobe sidecars.
4949
node:
5050
repository: icr.io/ibm/ibm-object-csi-driver
51-
tag: "v0.1.18"
51+
tag: "v1.0.6"
5252
imagePullPolicy: Always
5353
resources:
5454
limits:
@@ -61,7 +61,7 @@ spec:
6161
sidecars:
6262
- name: csi-node-driver-registrar
6363
repository: k8s.gcr.io/sig-storage/csi-node-driver-registrar
64-
tag: "v2.12.0"
64+
tag: "v2.13.0"
6565
imagePullPolicy: IfNotPresent
6666
resources:
6767
limits:
@@ -72,7 +72,7 @@ spec:
7272
memory: 20Mi
7373
- name: csi-provisioner
7474
repository: k8s.gcr.io/sig-storage/csi-provisioner
75-
tag: "v5.1.0"
75+
tag: "v5.2.0"
7676
imagePullPolicy: IfNotPresent
7777
resources:
7878
limits:
@@ -83,7 +83,7 @@ spec:
8383
memory: 40Mi
8484
- name: livenessprobe
8585
repository: k8s.gcr.io/sig-storage/livenessprobe
86-
tag: "v2.14.0"
86+
tag: "v2.15.0"
8787
imagePullPolicy: IfNotPresent
8888
resources:
8989
limits:
@@ -92,7 +92,3 @@ spec:
9292
requests:
9393
cpu: 10m
9494
memory: 10Mi
95-
96-
# healthPort: 9808
97-
# imagePullSecrets:
98-
# - "secretName"

controllers/syncer/csi_node.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -288,8 +288,9 @@ func (s *csiNodeSyncer) getVolumeMountsFor(name string) []corev1.VolumeMount {
288288
MountPropagation: &mountPropagationB,
289289
},
290290
{
291-
Name: "coscsi-socket-path",
292-
MountPath: "/var/lib/coscsi-sock",
291+
Name: "coscsi-socket-path",
292+
MountPath: "/var/lib/coscsi-sock",
293+
MountPropagation: &mountPropagationB,
293294
},
294295
{
295296
Name: "coscsi-mounter-config-path",

controllers/util/common/common.go

Lines changed: 27 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -215,16 +215,16 @@ func (ch *ControllerHelper) AddFinalizerIfNotPresent(instance crutils.Instance,
215215
}
216216

217217
if !util.Contains(accessor.GetFinalizers(), finalizerName) {
218-
logger.Info("adding", "finalizer", finalizerName, "on", accessor.GetName())
218+
logger.Info("adding finalizer to CR", "CR name", accessor.GetName(), "finalizer", finalizerName)
219219
accessor.SetFinalizers(append(accessor.GetFinalizers(), finalizerName))
220220

221221
if err := ch.Update(context.TODO(), unwrappedInstance); err != nil {
222-
logger.Error(err, "failed to add", "finalizer", finalizerName, "on", accessor.GetName())
222+
logger.Error(err, "failed to add finalizer to CR", "CR name", accessor.GetName(), "finalizer", finalizerName)
223223
return err
224224
}
225-
logger.Info("AddFinalizerIfNotPresent: finalizer added on ", accessor.GetName())
225+
logger.Info("finalizer added to CR", "CR name", accessor.GetName(), "finalizer", finalizerName)
226226
} else {
227-
logger.Info("AddFinalizerIfNotPresent: finalizer already present on ", accessor.GetName())
227+
logger.Info("finalizer already present on CR. Ignoring...", "CR name", accessor.GetName(), "finalizer", finalizerName)
228228
}
229229
return nil
230230
}
@@ -240,14 +240,20 @@ func (ch *ControllerHelper) RemoveFinalizer(instance crutils.Instance,
240240
}
241241

242242
if !util.Contains(accessor.GetFinalizers(), finalizerName) {
243-
logger.Info("RemoveFinalizer: finalizer already removed from ", accessor.GetName())
243+
logger.Info("finalizer already removed from CR. Ignoring...", "CR name", accessor.GetName(), "finalizer", finalizerName)
244244
} else {
245+
logger.Info("removing finalizer from CR", "CR name", accessor.GetName(), "finalizer", finalizerName)
245246
accessor.SetFinalizers(util.Remove(accessor.GetFinalizers(), finalizerName))
247+
248+
// Remove old finalizer for backward compatibility, if present
249+
oldFinalizer := "ibmobjectcsi.objectdriver.csi.ibm.com"
250+
accessor.SetFinalizers(util.Remove(accessor.GetFinalizers(), oldFinalizer))
251+
246252
if err := ch.Update(context.TODO(), unwrappedInstance); err != nil {
247-
logger.Error(err, "failed to remove", "finalizer", finalizerName, "from", accessor.GetName())
253+
logger.Error(err, "failed to remove finalizer from CR", "CR name", accessor.GetName(), "finalizer", finalizerName)
248254
return err
249255
}
250-
logger.Info("RemoveFinalizer: finalizer removed from ", accessor.GetName())
256+
logger.Info("finalizer removed from CR", "CR name", accessor.GetName(), "finalizer", finalizerName)
251257
}
252258

253259
err = ch.updateControllerFinalizer(context.TODO(), constants.RemoveFinalizer, finalizerName)
@@ -280,7 +286,6 @@ func (ch *ControllerHelper) getAccessorAndFinalizerName(instance crutils.Instanc
280286
func (ch *ControllerHelper) GetClusterInfo(inConfig rest.Config) error {
281287
logger := ch.Log.WithName("getClusterInfo")
282288
logger.Info("Checking cluster platform...")
283-
284289
var listOptions = &client.ListOptions{}
285290
var err error
286291
nodes := corev1.NodeList{}
@@ -437,45 +442,44 @@ func (ch *ControllerHelper) SetS3ProviderEP() {
437442
// Update finalizer to Controller Deployment under NS "ibm-object-csi-operator"
438443
// op = 1 Add finalizer op = 2 Remove finalizer
439444
func (ch *ControllerHelper) updateControllerFinalizer(ctx context.Context, op constants.FinalizerOps, finalizerName string) error {
440-
ch.Log.Info("updateControllerFinalizer(): Entry")
441-
defer ch.Log.Info("updateControllerFinalizer(): Exit")
445+
logger := ch.Log.WithValues("name", constants.DeploymentName, "namespace", constants.CSIOperatorNamespace, "finalizer", finalizerName)
446+
logger.Info("updateControllerFinalizer: Entry")
447+
defer logger.Info("updateControllerFinalizer: Exit")
442448

443449
ctrlDep := &appsv1.Deployment{}
444450
err := ch.Get(ctx, client.ObjectKey{Namespace: constants.CSIOperatorNamespace, Name: constants.DeploymentName}, ctrlDep)
445451
if err != nil {
446-
ch.Log.Error(err, "updateControllerFinalizer(): controller deployment not found. retrying...")
452+
logger.Error(err, "updateControllerFinalizer: controller deployment not found. Retrying...")
447453
return err
448454
}
449455

450456
if op == constants.AddFinalizer { // Add finalizer
451-
ch.Log.Info("updateControllerFinalizer(): add finalizer to controller deployment")
452-
chk := controllerutil.ContainsFinalizer(ctrlDep, finalizerName)
453-
if !chk {
457+
logger.Info("updateControllerFinalizer: adding finalizer to controller deployment")
458+
if exists := controllerutil.ContainsFinalizer(ctrlDep, finalizerName); !exists {
454459
controllerutil.AddFinalizer(ctrlDep, finalizerName)
455460
err = ch.Update(ctx, ctrlDep)
456461
if err != nil {
457-
ch.Log.Error(err, "updateControllerFinalizer(): failed to add the finalizer")
462+
logger.Error(err, "updateControllerFinalizer: failed to add finalizer to controller deployment")
458463
return err
459464
}
460-
ch.Log.Info("updateControllerFinalizer(): finalizer has been added in controller deployment")
465+
logger.Info("updateControllerFinalizer: finalizer has been added to controller deployment")
461466
} else {
462-
ch.Log.Info("updateControllerFinalizer(): finalizer already present in controller deployment")
467+
logger.Info("updateControllerFinalizer: finalizer already present in controller deployment. Ignoring...")
463468
}
464469
}
465470

466471
if op == constants.RemoveFinalizer { // Remove finalizer
467-
ch.Log.Info("updateControllerFinalizer(): remove finalizer from controller deployment")
468-
chk := controllerutil.ContainsFinalizer(ctrlDep, finalizerName)
469-
if chk {
472+
logger.Info("updateControllerFinalizer: removing finalizer from controller deployment")
473+
if exists := controllerutil.ContainsFinalizer(ctrlDep, finalizerName); exists {
470474
controllerutil.RemoveFinalizer(ctrlDep, finalizerName)
471475
err = ch.Update(ctx, ctrlDep)
472476
if err != nil {
473-
ch.Log.Error(err, "updateControllerFinalizer(): Failed to remove finalizer")
477+
logger.Error(err, "updateControllerFinalizer: failed to remove finalizer from controller deployment")
474478
return err
475479
}
476-
ch.Log.Info("updateControllerFinalizer(): finalizer has been removed from controller deployment")
480+
logger.Info("updateControllerFinalizer: finalizer has been removed from controller deployment")
477481
} else {
478-
ch.Log.Info("updateControllerFinalizer(): finalizer not present in controller deployment")
482+
logger.Info("updateControllerFinalizer: finalizer not found in controller deployment. Ignoring...")
479483
}
480484
}
481485

version/version.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package version
33

44
var (
55
// Version ...
6-
Version = "1.0.0"
6+
Version = "1.0.6"
77
// DriverVersion ...
8-
DriverVersion = "1.0.0"
8+
DriverVersion = "1.0.6"
99
)

0 commit comments

Comments
 (0)