Skip to content

Commit 7649d23

Browse files
authored
Fix panic due to empty node list (#67)
* minor updates Signed-off-by: Ashima-Ashima1 <[email protected]> * add time out Signed-off-by: Ashima-Ashima1 <[email protected]> * add time out Signed-off-by: Ashima-Ashima1 <[email protected]> --------- Signed-off-by: Ashima-Ashima1 <[email protected]>
1 parent 2ce4955 commit 7649d23

File tree

7 files changed

+21
-14
lines changed

7 files changed

+21
-14
lines changed

.secrets.baseline

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"files": "go.sum|^.secrets.baseline$",
44
"lines": null
55
},
6-
"generated_at": "2025-05-22T09:04:02Z",
6+
"generated_at": "2025-06-02T03:03:46Z",
77
"plugins_used": [
88
{
99
"name": "AWSKeyDetector"

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ ENVTEST ?= $(LOCALBIN)/setup-envtest
197197

198198
## Tool Versions
199199
KUSTOMIZE_VERSION ?= v5.6.0
200-
CONTROLLER_TOOLS_VERSION ?= v0.17.3
200+
CONTROLLER_TOOLS_VERSION ?= v0.18.0
201201

202202
KUSTOMIZE_INSTALL_SCRIPT ?= "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh"
203203
.PHONY: kustomize

config/crd/bases/objectdriver.csi.ibm.com_ibmobjectcsis.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
33
kind: CustomResourceDefinition
44
metadata:
55
annotations:
6-
controller-gen.kubebuilder.io/version: v0.17.3
6+
controller-gen.kubebuilder.io/version: v0.18.0
77
name: ibmobjectcsis.objectdriver.csi.ibm.com
88
spec:
99
group: objectdriver.csi.ibm.com

config/crd/bases/objectdriver.csi.ibm.com_recoverstalevolumes.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
33
kind: CustomResourceDefinition
44
metadata:
55
annotations:
6-
controller-gen.kubebuilder.io/version: v0.17.3
6+
controller-gen.kubebuilder.io/version: v0.18.0
77
name: recoverstalevolumes.objectdriver.csi.ibm.com
88
spec:
99
group: objectdriver.csi.ibm.com

controllers/util/common/common.go

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package common
33

44
import (
55
"context"
6+
"errors"
67
"fmt"
78
"strings"
89

@@ -14,7 +15,7 @@ import (
1415
corev1 "k8s.io/api/core/v1"
1516
rbacv1 "k8s.io/api/rbac/v1"
1617
storagev1 "k8s.io/api/storage/v1"
17-
"k8s.io/apimachinery/pkg/api/errors"
18+
k8sErr "k8s.io/apimachinery/pkg/api/errors"
1819
"k8s.io/apimachinery/pkg/api/meta"
1920
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2021
"k8s.io/apimachinery/pkg/types"
@@ -48,7 +49,7 @@ func (ch *ControllerHelper) DeleteClusterRoleBindings(clusterRoleBindings []*rba
4849
logger := ch.Log.WithName("DeleteClusterRoleBindings")
4950
for _, crb := range clusterRoleBindings {
5051
found, err := ch.getClusterRoleBinding(crb)
51-
if err != nil && errors.IsNotFound(err) {
52+
if err != nil && k8sErr.IsNotFound(err) {
5253
continue
5354
} else if err != nil {
5455
logger.Error(err, "failed to get ClusterRoleBinding", "Name", crb.GetName())
@@ -69,7 +70,7 @@ func (ch *ControllerHelper) DeleteStorageClasses(storageClasses []*storagev1.Sto
6970
logger := ch.Log.WithName("DeleteStorageClasses")
7071
for _, sc := range storageClasses {
7172
found, err := ch.getStorageClass(sc)
72-
if err != nil && errors.IsNotFound(err) {
73+
if err != nil && k8sErr.IsNotFound(err) {
7374
continue
7475
} else if err != nil {
7576
logger.Error(err, "failed to get StorageClasses", "Name", sc.GetName())
@@ -89,7 +90,7 @@ func (ch *ControllerHelper) ReconcileClusterRoleBinding(clusterRoleBindings []*r
8990
logger := ch.Log.WithValues("Resource Type", "ClusterRoleBinding")
9091
for _, crb := range clusterRoleBindings {
9192
_, err := ch.getClusterRoleBinding(crb)
92-
if err != nil && errors.IsNotFound(err) {
93+
if err != nil && k8sErr.IsNotFound(err) {
9394
logger.Info("Creating a new ClusterRoleBinding", "Name", crb.GetName())
9495
err = ch.Create(context.TODO(), crb)
9596
if err != nil {
@@ -109,7 +110,7 @@ func (ch *ControllerHelper) ReconcileStorageClasses(storageclasses []*storagev1.
109110
logger := ch.Log.WithValues("Resource Type", "StorageClasses")
110111
for _, sc := range storageclasses {
111112
_, err := ch.getStorageClass(sc)
112-
if err != nil && errors.IsNotFound(err) {
113+
if err != nil && k8sErr.IsNotFound(err) {
113114
logger.Info("Creating a new StorageClass", "Name", sc.GetName())
114115
err = ch.Create(context.TODO(), sc)
115116
if err != nil {
@@ -147,7 +148,7 @@ func (ch *ControllerHelper) DeleteClusterRoles(clusterRoles []*rbacv1.ClusterRol
147148
logger := ch.Log.WithName("DeleteClusterRoles")
148149
for _, cr := range clusterRoles {
149150
found, err := ch.getClusterRole(cr)
150-
if err != nil && errors.IsNotFound(err) {
151+
if err != nil && k8sErr.IsNotFound(err) {
151152
continue
152153
} else if err != nil {
153154
logger.Error(err, "failed to get ClusterRole", "Name", cr.GetName())
@@ -167,7 +168,7 @@ func (ch *ControllerHelper) ReconcileClusterRole(clusterRoles []*rbacv1.ClusterR
167168
logger := ch.Log.WithValues("Resource Type", "ClusterRole")
168169
for _, cr := range clusterRoles {
169170
_, err := ch.getClusterRole(cr)
170-
if err != nil && errors.IsNotFound(err) {
171+
if err != nil && k8sErr.IsNotFound(err) {
171172
logger.Info("Creating a new ClusterRole", "Name", cr.GetName())
172173
err = ch.Create(context.TODO(), cr)
173174
if err != nil {
@@ -284,6 +285,12 @@ func (ch *ControllerHelper) GetClusterInfo(inConfig rest.Config) error {
284285
return err
285286
}
286287

288+
if len(nodes.Items) == 0 {
289+
err := errors.New("cluster nodes not found")
290+
logger.Error(err, "failed to fetch cluster nodes list")
291+
return err
292+
}
293+
287294
logger.Info("Get IBM cluster region...")
288295
if val, ok := nodes.Items[0].Labels["ibm-cloud.kubernetes.io/region"]; ok {
289296
ch.Region = val

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ go 1.24.3
44

55
require (
66
github.com/evanphx/json-patch/v5 v5.9.11
7-
github.com/go-logr/logr v1.4.2
7+
github.com/go-logr/logr v1.4.3
88
github.com/imdario/mergo v0.3.16
99
github.com/onsi/ginkgo/v2 v2.23.4
1010
github.com/onsi/gomega v1.37.0

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nos
1919
github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
2020
github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E=
2121
github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ=
22-
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
23-
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
22+
github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
23+
github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
2424
github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ=
2525
github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg=
2626
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=

0 commit comments

Comments
 (0)