package services_test import ( "path/filepath" "testing" airshipv1 "sipcluster/pkg/api/v1" "sipcluster/pkg/controllers" metal3 "github.com/metal3-io/baremetal-operator/apis/metal3.io/v1alpha1" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "k8s.io/client-go/kubernetes/scheme" "k8s.io/client-go/rest" ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/envtest" logf "sigs.k8s.io/controller-runtime/pkg/log" "sigs.k8s.io/controller-runtime/pkg/log/zap" ) func TestServices(t *testing.T) { RegisterFailHandler(Fail) RunSpecs(t, "Services Suite") } var cfg *rest.Config var k8sClient client.Client var testEnv *envtest.Environment var logger = zap.New(zap.WriteTo(GinkgoWriter), zap.UseDevMode(true)) var _ = BeforeSuite(func(done Done) { logf.SetLogger(logger) By("bootstrapping test environment") testEnv = &envtest.Environment{ CRDInstallOptions: envtest.CRDInstallOptions{ ErrorIfPathMissing: true, Paths: []string{ filepath.Join("..", "..", "config", "crd", "bases"), // SIP CRD filepath.Join("..", "..", "config", "samples", "bmh", "crd"), // BMH CRD }, }, } var err error cfg, err = testEnv.Start() Expect(err).ToNot(HaveOccurred()) Expect(cfg).ToNot(BeNil()) err = airshipv1.AddToScheme(scheme.Scheme) Expect(err).NotTo(HaveOccurred()) err = metal3.AddToScheme(scheme.Scheme) Expect(err).NotTo(HaveOccurred()) k8sManager, err := ctrl.NewManager(cfg, ctrl.Options{ Scheme: scheme.Scheme, MetricsBindAddress: "0", }) Expect(err).ToNot(HaveOccurred()) k8sClient, err = client.New(cfg, client.Options{Scheme: scheme.Scheme}) Expect(err).NotTo(HaveOccurred()) err = (&controllers.SIPClusterReconciler{ Client: k8sClient, Scheme: scheme.Scheme, }).SetupWithManager(k8sManager) Expect(err).ToNot(HaveOccurred()) go func() { err = k8sManager.Start(ctrl.SetupSignalHandler()) Expect(err).ToNot(HaveOccurred()) }() close(done) }, 60) var _ = AfterSuite(func() { By("tearing down the test environment") err := testEnv.Stop() Expect(err).ToNot(HaveOccurred()) })