package hub import ( "context" "testing" "github.com/onsi/ginkgo/v2" "github.com/onsi/gomega" "github.com/openshift/library-go/pkg/controller/controllercmd" "k8s.io/client-go/kubernetes/scheme" "k8s.io/client-go/rest" "sigs.k8s.io/controller-runtime/pkg/envtest" logf "sigs.k8s.io/controller-runtime/pkg/log" "sigs.k8s.io/controller-runtime/pkg/log/zap" clusterv1beta1 "open-cluster-management.io/api/cluster/v1beta1" clusterv1beta2 "open-cluster-management.io/api/cluster/v1beta2" "open-cluster-management.io/ocm/test/integration/util" ) var testEnv *envtest.Environment var cfg *rest.Config var CRDPaths = []string{ "../../../vendor/open-cluster-management.io/api/cluster/v1/0000_00_clusters.open-cluster-management.io_managedclusters.crd.yaml", "../../../vendor/open-cluster-management.io/api/cluster/v1alpha1/0000_05_clusters.open-cluster-management.io_addonplacementscores.crd.yaml", "../../../vendor/open-cluster-management.io/api/cluster/v1beta2/0000_00_clusters.open-cluster-management.io_managedclustersets.crd.yaml", "../../../vendor/open-cluster-management.io/api/cluster/v1beta2/0000_01_clusters.open-cluster-management.io_managedclustersetbindings.crd.yaml", "../../../vendor/open-cluster-management.io/api/cluster/v1beta1/0000_02_clusters.open-cluster-management.io_placements.crd.yaml", "../../../vendor/open-cluster-management.io/api/cluster/v1beta1/0000_03_clusters.open-cluster-management.io_placementdecisions.crd.yaml", } func TestPlacementManager(t *testing.T) { gomega.RegisterFailHandler(ginkgo.Fail) ginkgo.RunSpecs(t, "Placement Suite") } var _ = ginkgo.BeforeSuite(func() { logf.SetLogger(zap.New(zap.WriteTo(ginkgo.GinkgoWriter), zap.UseDevMode(true))) ginkgo.By("bootstrapping test environment") var err error // start a kube-apiserver testEnv = &envtest.Environment{ ErrorIfCRDPathMissing: true, CRDDirectoryPaths: CRDPaths, } cfg, err = testEnv.Start() gomega.Expect(err).ToNot(gomega.HaveOccurred()) gomega.Expect(cfg).ToNot(gomega.BeNil()) err = clusterv1beta2.Install(scheme.Scheme) gomega.Expect(err).NotTo(gomega.HaveOccurred()) err = clusterv1beta1.Install(scheme.Scheme) gomega.Expect(err).NotTo(gomega.HaveOccurred()) }) var _ = ginkgo.AfterSuite(func() { ginkgo.By("tearing down the test environment") err := testEnv.Stop() gomega.Expect(err).ToNot(gomega.HaveOccurred()) }) var _ = ginkgo.Describe("start hub manager", func() { ginkgo.It("start hub manager", func() { ctx, stopHub := context.WithCancel(context.Background()) // start hub controller go func() { err := RunControllerManager(ctx, &controllercmd.ControllerContext{ KubeConfig: cfg, EventRecorder: util.NewIntegrationTestEventRecorder("integration"), }) gomega.Expect(err).ToNot(gomega.HaveOccurred()) }() stopHub() }) })