|
9 | 9 |
|
10 | 10 | "github.com/openstack-k8s-operators/lib-common/modules/common/helper" |
11 | 11 | corev1beta1 "github.com/openstack-k8s-operators/openstack-operator/api/core/v1beta1" |
| 12 | + k8s_errors "k8s.io/apimachinery/pkg/api/errors" |
12 | 13 | metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" |
13 | 14 | "k8s.io/apimachinery/pkg/types" |
14 | 15 | ctrl "sigs.k8s.io/controller-runtime" |
@@ -252,10 +253,19 @@ func ReconcileVersion(ctx context.Context, instance *corev1beta1.OpenStackContro |
252 | 253 | Name: instance.Name, |
253 | 254 | Namespace: instance.Namespace, |
254 | 255 | }, |
255 | | - version); err == nil { |
256 | | - Log.Info(fmt.Sprintf("OpenStackVersion found. Name: %s", version.Name)) |
257 | | - } else { |
| 256 | + version); err != nil { |
| 257 | + if !k8s_errors.IsNotFound(err) { |
| 258 | + return ctrl.Result{}, nil, fmt.Errorf("failed to get OpenStackVersion %s: %w", instance.Name, err) |
| 259 | + } |
258 | 260 | Log.Info(fmt.Sprintf("OpenStackVersion does not exist. Creating: %s", version.Name)) |
| 261 | + } else { |
| 262 | + Log.Info(fmt.Sprintf("OpenStackVersion found. Name: %s", version.Name)) |
| 263 | + } |
| 264 | + |
| 265 | + // If the controlplane is being deleted, skip CreateOrPatch to avoid |
| 266 | + // re-creating the OpenStackVersion CR during cleanup. |
| 267 | + if !instance.DeletionTimestamp.IsZero() { |
| 268 | + return ctrl.Result{}, version, nil |
259 | 269 | } |
260 | 270 |
|
261 | 271 | op, err := controllerutil.CreateOrPatch(ctx, helper.GetClient(), version, func() error { |
|
0 commit comments