From d76a9ad3ad60869ed945fe7b66c3140ee409645d Mon Sep 17 00:00:00 2001 From: Emily McMullan Date: Fri, 8 Jul 2022 16:04:31 -0400 Subject: [PATCH 1/2] check for volsync install for data mover --- controllers/datamover.go | 26 ++++++++++++++++++++++++++ pkg/common/common.go | 2 ++ 2 files changed, 28 insertions(+) diff --git a/controllers/datamover.go b/controllers/datamover.go index 9e601574d2..740fe72f9d 100644 --- a/controllers/datamover.go +++ b/controllers/datamover.go @@ -3,6 +3,7 @@ package controllers import ( "context" "fmt" + "github.com/go-logr/logr" oadpv1alpha1 "github.com/openshift/oadp-operator/api/v1alpha1" "github.com/openshift/oadp-operator/pkg/common" @@ -12,8 +13,10 @@ import ( k8serror "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" + "k8s.io/client-go/kubernetes" "k8s.io/utils/pointer" "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/client/config" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" ) @@ -25,6 +28,29 @@ func (r *DPAReconciler) ReconcileDataMoverController(log logr.Logger) (bool, err return false, err } + // check volSync is installed/deployment exists to use data mover + if dpa.Spec.Features != nil && dpa.Spec.Features.EnableDataMover { + + // create new client for deployments outside of adp namespace + kubeConf := config.GetConfigOrDie() + + clientset, err := kubernetes.NewForConfig(kubeConf) + if err != nil { + return false, err + } + + _, err = clientset.AppsV1().Deployments(common.VolSyncDeploymentNamespace).Get(context.TODO(), common.VolSyncDeploymentName, metav1.GetOptions{}) + if err != nil { + + if k8serror.IsNotFound(err) { + log.Info("volSync operator not found. Please install") + return false, err + } + + return false, err + } + } + dataMoverDeployment := &appsv1.Deployment{ ObjectMeta: metav1.ObjectMeta{ Name: common.DataMover, diff --git a/pkg/common/common.go b/pkg/common/common.go index 2480a8ccd0..f331a56d31 100644 --- a/pkg/common/common.go +++ b/pkg/common/common.go @@ -12,6 +12,8 @@ const ( DataMoverController = "data-mover-controller" DataMoverControllerContainer = "data-mover-controller-container" OADPOperatorServiceAccount = "openshift-adp-controller-manager" + VolSyncDeploymentName = "volsync-controller-manager" + VolSyncDeploymentNamespace = "openshift-operators" ) // Images From 2030b74853887e861eaa1dbb3c9ff4863ec5b948 Mon Sep 17 00:00:00 2001 From: Emily McMullan Date: Fri, 15 Jul 2022 14:29:48 -0400 Subject: [PATCH 2/2] return volsync not found err --- controllers/datamover.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/controllers/datamover.go b/controllers/datamover.go index 740fe72f9d..5688fe3c15 100644 --- a/controllers/datamover.go +++ b/controllers/datamover.go @@ -43,8 +43,8 @@ func (r *DPAReconciler) ReconcileDataMoverController(log logr.Logger) (bool, err if err != nil { if k8serror.IsNotFound(err) { - log.Info("volSync operator not found. Please install") - return false, err + + return false, fmt.Errorf("volSync operator not found. Please install") } return false, err