This is an automated email from the ASF dual-hosted git repository. kaxilnaik pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/airflow-on-k8s-operator.git
The following commit(s) were added to refs/heads/master by this push: new dd430ea Get e2e tests working (#6) dd430ea is described below commit dd430eaa7c3add972f410e058a2fe0a4a58eeb64 Author: barney-s <6457279+barne...@users.noreply.github.com> AuthorDate: Thu Jan 23 20:41:17 2020 -0800 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) --- controllers/airflowbase_controller.go | 2 +- controllers/airflowcluster_controller.go | 2 +- main.go | 5 +++++ test/e2e/base/base_test.go | 2 +- test/e2e/cluster/cluster_test.go | 2 +- test/e2e/gcp/gcp_test.go | 2 +- .../pkg/genericreconciler/genericreconciler.go | 11 ----------- .../pkg/reconciler/manager/k8s/manager.go | 23 +++++++++++++++++++--- .../controller-reconciler/pkg/test/framework.go | 6 +++--- 9 files changed, 33 insertions(+), 22 deletions(-) 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 @@ func (r *AirflowBaseReconciler) Reconcile(req ctrl.Request) (ctrl.Result, error) // 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 @@ func abReconciler(mgr manager.Manager) *gr.Reconciler { 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 @@ func (r *AirflowClusterReconciler) Reconcile(req ctrl.Request) (ctrl.Result, err // 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 @@ func acReconciler(mgr manager.Manager) *gr.Reconciler { 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 @@ package main 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 @@ func init() { _ = clientgoscheme.AddToScheme(scheme) _ = airflowv1alpha1.AddToScheme(scheme) + // +kubebuilder:scaffold:scheme } @@ -53,11 +55,14 @@ func main() { 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 @@ import ( 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 @@ import ( 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 @@ import ( 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 @@ import ( 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 @@ func (gr *Reconciler) WithResourceManager(getter func() (string, rmanager.Manage 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 @@ import ( 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 @@ const ( 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 @@ func Getter(ctx context.Context, c client.Client, v *runtime.Scheme) func() (str // 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 @@ func itemFromReader(name string, b *bufio.Reader, data interface{}, list metav1. 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 @@ func New(typename string) *Framework { 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)