Get e2e tests working (#6)

- Cleanup Application scheme registration.
- Fix test sample paths
- Set controller synctime to 2 mins
- Cleanup Scheme registration in controller-reconciler
- Use custom codec that is created from custom scheme (kb v2 uses custom
scheme)
diff --git a/controllers/airflowbase_controller.go b/controllers/airflowbase_controller.go
index bb78421..d451a09 100644
--- a/controllers/airflowbase_controller.go
+++ b/controllers/airflowbase_controller.go
@@ -69,6 +69,7 @@
 
 // SetupWithManager - called by main
 func (r *AirflowBaseReconciler) SetupWithManager(mgr ctrl.Manager) error {
+	_ = app.AddToScheme(r.Scheme)
 	return ctrl.NewControllerManagedBy(mgr).
 		For(&alpha1.AirflowBase{}).
 		Complete(abReconciler(mgr))
@@ -86,7 +87,6 @@
 		WithErrorHandler(abHandleError).
 		WithValidator(validate).
 		WithDefaulter(applyDefaults).
-		RegisterSchemeBuilder(app.SchemeBuilder).
 		Build()
 }
 
diff --git a/controllers/airflowcluster_controller.go b/controllers/airflowcluster_controller.go
index aadb4bc..0852937 100644
--- a/controllers/airflowcluster_controller.go
+++ b/controllers/airflowcluster_controller.go
@@ -90,6 +90,7 @@
 
 // SetupWithManager - called by main
 func (r *AirflowClusterReconciler) SetupWithManager(mgr ctrl.Manager) error {
+	_ = app.AddToScheme(r.Scheme)
 	return ctrl.NewControllerManagedBy(mgr).
 		For(&alpha1.AirflowCluster{}).
 		Complete(acReconciler(mgr))
@@ -110,7 +111,6 @@
 		WithErrorHandler(acHandleError).
 		WithValidator(acValidate).
 		WithDefaulter(acApplyDefaults).
-		RegisterSchemeBuilder(app.SchemeBuilder).
 		Build()
 }
 
diff --git a/main.go b/main.go
index c083011..d22f412 100644
--- a/main.go
+++ b/main.go
@@ -18,6 +18,7 @@
 import (
 	"flag"
 	"os"
+	"time"
 
 	airflowv1alpha1 "github.com/apache/airflow-on-k8s-operator/api/v1alpha1"
 	"github.com/apache/airflow-on-k8s-operator/controllers"
@@ -38,6 +39,7 @@
 	_ = clientgoscheme.AddToScheme(scheme)
 
 	_ = airflowv1alpha1.AddToScheme(scheme)
+
 	// +kubebuilder:scaffold:scheme
 }
 
@@ -53,11 +55,14 @@
 		o.Development = true
 	}))
 
+	syncperiod := time.Minute * 2
+
 	mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{
 		Scheme:             scheme,
 		MetricsBindAddress: metricsAddr,
 		LeaderElection:     enableLeaderElection,
 		Port:               9443,
+		SyncPeriod:         &syncperiod,
 	})
 	if err != nil {
 		setupLog.Error(err, "unable to start manager")
diff --git a/test/e2e/base/base_test.go b/test/e2e/base/base_test.go
index 740389b..1dbfe69 100644
--- a/test/e2e/base/base_test.go
+++ b/test/e2e/base/base_test.go
@@ -27,7 +27,7 @@
 
 const (
 	CRName    = "AirflowBase"
-	SampleDir = "../../hack/sample/"
+	SampleDir = "../../../hack/sample/"
 )
 
 var f *test.Framework
diff --git a/test/e2e/cluster/cluster_test.go b/test/e2e/cluster/cluster_test.go
index 2d56a68..48eac95 100644
--- a/test/e2e/cluster/cluster_test.go
+++ b/test/e2e/cluster/cluster_test.go
@@ -27,7 +27,7 @@
 
 const (
 	CRName    = "AirflowCluster"
-	SampleDir = "../../hack/sample/"
+	SampleDir = "../../../hack/sample/"
 )
 
 var f *test.Framework
diff --git a/test/e2e/gcp/gcp_test.go b/test/e2e/gcp/gcp_test.go
index c369909..41c80e0 100644
--- a/test/e2e/gcp/gcp_test.go
+++ b/test/e2e/gcp/gcp_test.go
@@ -27,7 +27,7 @@
 
 const (
 	CRName    = "AirflowCluster"
-	SampleDir = "../../hack/sample/"
+	SampleDir = "../../../hack/sample/"
 )
 
 var f *test.Framework
diff --git a/vendor/sigs.k8s.io/controller-reconciler/pkg/genericreconciler/genericreconciler.go b/vendor/sigs.k8s.io/controller-reconciler/pkg/genericreconciler/genericreconciler.go
index bb76f08..ad9520f 100644
--- a/vendor/sigs.k8s.io/controller-reconciler/pkg/genericreconciler/genericreconciler.go
+++ b/vendor/sigs.k8s.io/controller-reconciler/pkg/genericreconciler/genericreconciler.go
@@ -33,7 +33,6 @@
 	ctrl "sigs.k8s.io/controller-runtime"
 	"sigs.k8s.io/controller-runtime/pkg/manager"
 	"sigs.k8s.io/controller-runtime/pkg/reconcile"
-	"sigs.k8s.io/controller-runtime/pkg/runtime/scheme"
 	"time"
 )
 
@@ -396,20 +395,10 @@
 	return gr
 }
 
-// AddToSchemes for adding Application to scheme
-var AddToSchemes runtime.SchemeBuilder
-
-// RegisterSchemeBuilder - create controller
-func (gr *Reconciler) RegisterSchemeBuilder(builder *scheme.Builder) *Reconciler {
-	AddToSchemes = append(AddToSchemes, builder.AddToScheme)
-	return gr
-}
-
 // Build - create controller
 func (gr *Reconciler) Build() *Reconciler {
 	km := k8s.NewRsrcManager(context.TODO(), gr.manager.GetClient(), gr.manager.GetScheme())
 	gr.rsrcMgr.Add(k8s.Type, km)
-	AddToSchemes.AddToScheme(gr.manager.GetScheme())
 	return gr
 }
 
diff --git a/vendor/sigs.k8s.io/controller-reconciler/pkg/reconciler/manager/k8s/manager.go b/vendor/sigs.k8s.io/controller-reconciler/pkg/reconciler/manager/k8s/manager.go
index f7f56f2..173a088 100644
--- a/vendor/sigs.k8s.io/controller-reconciler/pkg/reconciler/manager/k8s/manager.go
+++ b/vendor/sigs.k8s.io/controller-reconciler/pkg/reconciler/manager/k8s/manager.go
@@ -27,10 +27,10 @@
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	"k8s.io/apimachinery/pkg/runtime"
 	"k8s.io/apimachinery/pkg/runtime/schema"
+	serializer "k8s.io/apimachinery/pkg/runtime/serializer"
 	"k8s.io/apimachinery/pkg/types"
 	"k8s.io/apimachinery/pkg/util/validation/field"
 	"k8s.io/apimachinery/pkg/util/yaml"
-	"k8s.io/client-go/kubernetes/scheme"
 	"log"
 	"os"
 	"reflect"
@@ -46,11 +46,16 @@
 	Type = "k8s"
 )
 
+// Codecs - Default Codec that is initlizated when manager is created
+// TODO - this becomes global. try make it part of manager context ?
+var Codecs serializer.CodecFactory
+
 // RsrcManager - complies with resource manager interface
 type RsrcManager struct {
 	name   string
 	client client.Client
 	scheme *runtime.Scheme
+	codecs serializer.CodecFactory
 }
 
 // FileResource - file, resource
@@ -71,7 +76,19 @@
 // NewRsrcManager returns nil manager
 func NewRsrcManager(ctx context.Context, c client.Client, v *runtime.Scheme) *RsrcManager {
 	rm := &RsrcManager{}
-	rm.WithClient(c).WithName(Type + "Mgr").WithScheme(v)
+	rm.WithClient(c).WithName(Type + "Mgr").WithScheme(v).WithCodec(nil)
+	return rm
+}
+
+// WithCodec - inject or create codec
+func (rm *RsrcManager) WithCodec(codec *serializer.CodecFactory) *RsrcManager {
+	if codec != nil {
+		rm.codecs = *codec
+		Codecs = *codec
+	} else {
+		rm.codecs = serializer.NewCodecFactory(rm.scheme)
+		Codecs = rm.codecs
+	}
 	return rm
 }
 
@@ -199,7 +216,7 @@
 		if err == nil {
 			err = tmpl.Execute(&exdoc, data)
 			if err == nil {
-				d := scheme.Codecs.UniversalDeserializer()
+				d := Codecs.UniversalDeserializer()
 				obj, _, e := d.Decode(exdoc.Bytes(), nil, nil)
 				err = e
 				if err == nil {
diff --git a/vendor/sigs.k8s.io/controller-reconciler/pkg/test/framework.go b/vendor/sigs.k8s.io/controller-reconciler/pkg/test/framework.go
index a534eaf..dac3a9f 100644
--- a/vendor/sigs.k8s.io/controller-reconciler/pkg/test/framework.go
+++ b/vendor/sigs.k8s.io/controller-reconciler/pkg/test/framework.go
@@ -66,10 +66,10 @@
 	flag.Parse()
 
 	cfg, err := config.GetConfig()
-	g.Expect(err).NotTo(g.HaveOccurred(), "failed to initialize the Framework: %v", err)
+	g.Expect(err).NotTo(g.HaveOccurred(), "failed to get config: %v", err)
 
-	mgr, err := manager.New(cfg, manager.Options{})
-	g.Expect(err).NotTo(g.HaveOccurred(), "failed to initialize the Framework: %v", err)
+	mgr, err := manager.New(cfg, manager.Options{MetricsBindAddress: "0"})
+	g.Expect(err).NotTo(g.HaveOccurred(), "failed to create manager: %v", err)
 
 	err = apiextensionsv1beta1.AddToScheme(mgr.GetScheme())
 	g.Expect(err).NotTo(g.HaveOccurred(), "failed to initialize the Framework: %v", err)