...
1
16
17 package controller_test
18
19 import (
20 "net/http"
21 "testing"
22
23 . "github.com/onsi/ginkgo/v2"
24 . "github.com/onsi/gomega"
25 "k8s.io/apimachinery/pkg/runtime/schema"
26 "k8s.io/client-go/kubernetes"
27 "k8s.io/client-go/kubernetes/scheme"
28 "k8s.io/client-go/rest"
29 metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
30
31 "sigs.k8s.io/controller-runtime/pkg/controller/controllertest"
32 "sigs.k8s.io/controller-runtime/pkg/envtest"
33 logf "sigs.k8s.io/controller-runtime/pkg/log"
34 "sigs.k8s.io/controller-runtime/pkg/log/zap"
35 crscheme "sigs.k8s.io/controller-runtime/pkg/scheme"
36 )
37
38 func TestSource(t *testing.T) {
39 RegisterFailHandler(Fail)
40 RunSpecs(t, "Controller Integration Suite")
41 }
42
43 var testenv *envtest.Environment
44 var cfg *rest.Config
45 var clientset *kubernetes.Clientset
46
47
48 var clientTransport *http.Transport
49
50 var _ = BeforeSuite(func() {
51 logf.SetLogger(zap.New(zap.WriteTo(GinkgoWriter), zap.UseDevMode(true)))
52
53 err := (&crscheme.Builder{
54 GroupVersion: schema.GroupVersion{Group: "chaosapps.metamagical.io", Version: "v1"},
55 }).
56 Register(
57 &controllertest.UnconventionalListType{},
58 &controllertest.UnconventionalListTypeList{},
59 ).AddToScheme(scheme.Scheme)
60 Expect(err).ToNot(HaveOccurred())
61
62 testenv = &envtest.Environment{
63 CRDDirectoryPaths: []string{"testdata/crds"},
64 }
65
66 cfg, err = testenv.Start()
67 Expect(err).NotTo(HaveOccurred())
68
69 cfg.WrapTransport = func(rt http.RoundTripper) http.RoundTripper {
70
71
72
73
74 clientTransport = rt.(*http.Transport)
75 return rt
76 }
77
78 clientset, err = kubernetes.NewForConfig(cfg)
79 Expect(err).NotTo(HaveOccurred())
80
81
82 metricsserver.DefaultBindAddress = "0"
83 })
84
85 var _ = AfterSuite(func() {
86 Expect(testenv.Stop()).To(Succeed())
87
88
89 metricsserver.DefaultBindAddress = ":8080"
90 })
91
View as plain text