Skip to content
Prev Previous commit
Next Next commit
More logs for PVC deletion and changing create strategy
Signed-off-by: Daniele Martinoli <dmartino@redhat.com>
  • Loading branch information
dmartinol committed Nov 8, 2024
commit 62a6669f683baec972de32a871980f1cd9462bb1
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ import (
"k8s.io/apimachinery/pkg/types"
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
"sigs.k8s.io/controller-runtime/pkg/log"
"sigs.k8s.io/controller-runtime/pkg/reconcile"

"github.com/feast-dev/feast/infra/feast-operator/api/feastversion"
Expand All @@ -44,7 +45,7 @@ import (

var _ = Describe("FeatureStore Controller-Ephemeral services", func() {
Context("When deploying a resource with all ephemeral services", func() {
const resourceName = "services-ephemeral"
const resourceName = "services-pvc"
var pullPolicy = corev1.PullAlways
var testEnvVarName = "testEnvVarName"
var testEnvVarValue = "testEnvVarValue"
Expand Down Expand Up @@ -326,15 +327,15 @@ var _ = Describe("FeatureStore Controller-Ephemeral services", func() {
Expect(deploy.Spec.Template.Spec.Containers[0].VolumeMounts).To(HaveLen(0))

// check online pvc is deleted
log.FromContext(feast.Context).Info("Checking deletion of", "PersistentVolumeClaim", deploy.Name)
pvc = &corev1.PersistentVolumeClaim{}
err = k8sClient.Get(ctx, types.NamespacedName{
Name: deploy.Name,
Namespace: resource.Namespace,
},
pvc)
print(err)
// Expect(err).To(HaveOccurred())
// Expect(errors.IsNotFound(err)).To(BeTrue())
Expect(err).To(HaveOccurred())
Expect(errors.IsNotFound(err)).To(BeTrue())
})

It("should properly encode a feature_store.yaml config", func() {
Expand Down
21 changes: 11 additions & 10 deletions infra/feast-operator/internal/controller/services/services.go
Original file line number Diff line number Diff line change
Expand Up @@ -163,16 +163,14 @@ func (feast *FeastServices) createDeployment(feastType FeastServiceType) error {
func (feast *FeastServices) createPVC(pvcCreate *feastdevv1alpha1.PvcCreate, feastType FeastServiceType) error {
logger := log.FromContext(feast.Context)
pvc := feast.initPVC(feastType)
err := feast.setPVC(pvc, pvcCreate, feastType)
if err != nil {
return err
}
if op, err := controllerutil.CreateOrUpdate(feast.Context, feast.Client, pvc, controllerutil.MutateFn(func() error {
return nil
})); err != nil {
return err
} else if op == controllerutil.OperationResultCreated || op == controllerutil.OperationResultUpdated {
logger.Info("Successfully reconciled", "PersistentVolumeClaim", pvc.Name, "operation", op)
feast.setPVC(pvc, pvcCreate, feastType)
err := feast.Client.Get(feast.Context, client.ObjectKeyFromObject(pvc), pvc)
if err != nil && apierrors.IsNotFound(err) {
err = feast.Client.Create(feast.Context, pvc)
if err != nil {
return err
}
logger.Info("Successfully created", "PersistentVolumeClaim", pvc.Name)
}

return nil
Expand Down Expand Up @@ -443,6 +441,8 @@ func (feast *FeastServices) initPVC(feastType FeastServiceType) *corev1.Persiste

// delete an object if the FeatureStore is set as the object's controller/owner
func (feast *FeastServices) deleteOwnedFeastObj(obj client.Object) error {
name := obj.GetName()
kind := obj.GetObjectKind().GroupVersionKind().Kind
if err := feast.Client.Get(feast.Context, client.ObjectKeyFromObject(obj), obj); err != nil {
if apierrors.IsNotFound(err) {
return nil
Expand All @@ -454,6 +454,7 @@ func (feast *FeastServices) deleteOwnedFeastObj(obj client.Object) error {
if err := feast.Client.Delete(feast.Context, obj); err != nil {
return err
}
log.FromContext(feast.Context).Info("Successfully deleted", kind, name)
}
}
return nil
Expand Down