Cleanup framework package
This commit is contained in:
parent
4a33b1e163
commit
b37270bdde
2 changed files with 29 additions and 34 deletions
|
@ -31,8 +31,8 @@ import (
|
|||
restclient "k8s.io/client-go/rest"
|
||||
"k8s.io/klog"
|
||||
|
||||
. "github.com/onsi/ginkgo"
|
||||
. "github.com/onsi/gomega"
|
||||
"github.com/onsi/ginkgo"
|
||||
"github.com/onsi/gomega"
|
||||
)
|
||||
|
||||
// RequestScheme define a scheme used in a test request.
|
||||
|
@ -73,8 +73,8 @@ func NewDefaultFramework(baseName string) *Framework {
|
|||
BaseName: baseName,
|
||||
}
|
||||
|
||||
BeforeEach(f.BeforeEach)
|
||||
AfterEach(f.AfterEach)
|
||||
ginkgo.BeforeEach(f.BeforeEach)
|
||||
ginkgo.AfterEach(f.AfterEach)
|
||||
|
||||
return f
|
||||
}
|
||||
|
@ -83,46 +83,42 @@ func NewDefaultFramework(baseName string) *Framework {
|
|||
func (f *Framework) BeforeEach() {
|
||||
f.cleanupHandle = AddCleanupAction(f.AfterEach)
|
||||
|
||||
By("Creating a kubernetes client")
|
||||
kubeConfig, err := restclient.InClusterConfig()
|
||||
if err != nil {
|
||||
panic(err.Error())
|
||||
}
|
||||
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
|
||||
f.KubeConfig = kubeConfig
|
||||
f.KubeClientSet, err = kubernetes.NewForConfig(kubeConfig)
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
|
||||
By("Building a namespace api object")
|
||||
ingressNamespace, err := CreateKubeNamespace(f.BaseName, f.KubeClientSet)
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
|
||||
f.Namespace = ingressNamespace
|
||||
|
||||
By("Starting new ingress controller")
|
||||
err = f.NewIngressController(f.Namespace, f.BaseName)
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
|
||||
err = WaitForPodsReady(f.KubeClientSet, DefaultTimeout, 1, f.Namespace, metav1.ListOptions{
|
||||
LabelSelector: "app.kubernetes.io/name=ingress-nginx",
|
||||
})
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
}
|
||||
|
||||
// AfterEach deletes the namespace, after reading its events.
|
||||
func (f *Framework) AfterEach() {
|
||||
RemoveCleanupAction(f.cleanupHandle)
|
||||
|
||||
By("Waiting for test namespace to no longer exist")
|
||||
err := DeleteKubeNamespace(f.KubeClientSet, f.Namespace)
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
|
||||
if CurrentGinkgoTestDescription().Failed {
|
||||
if ginkgo.CurrentGinkgoTestDescription().Failed {
|
||||
log, err := f.NginxLogs()
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
By("Dumping NGINX logs after a failure running a test")
|
||||
gomega.Expect(err).ToNot(gomega.HaveOccurred())
|
||||
ginkgo.By("Dumping NGINX logs after a failure running a test")
|
||||
Logf("%v", log)
|
||||
|
||||
pod, err := getIngressNGINXPod(f.Namespace, f.KubeClientSet)
|
||||
|
@ -136,19 +132,19 @@ func (f *Framework) AfterEach() {
|
|||
return
|
||||
}
|
||||
|
||||
By("Dumping NGINX configuration after a failure running a test")
|
||||
ginkgo.By("Dumping NGINX configuration after a failure running a test")
|
||||
Logf("%v", o)
|
||||
}
|
||||
}
|
||||
|
||||
// IngressNginxDescribe wrapper function for ginkgo describe. Adds namespacing.
|
||||
func IngressNginxDescribe(text string, body func()) bool {
|
||||
return Describe("[ingress-nginx] "+text, body)
|
||||
return ginkgo.Describe("[ingress-nginx] "+text, body)
|
||||
}
|
||||
|
||||
// MemoryLeakIt is wrapper function for ginkgo It. Adds "[MemoryLeak]" tag and makes static analysis easier.
|
||||
func MemoryLeakIt(text string, body interface{}, timeout ...float64) bool {
|
||||
return It(text+" [MemoryLeak]", body, timeout...)
|
||||
return ginkgo.It(text+" [MemoryLeak]", body, timeout...)
|
||||
}
|
||||
|
||||
// GetNginxIP returns the number of TCP port where NGINX is running
|
||||
|
@ -157,7 +153,7 @@ func (f *Framework) GetNginxIP() string {
|
|||
CoreV1().
|
||||
Services(f.Namespace).
|
||||
Get("ingress-nginx", metav1.GetOptions{})
|
||||
Expect(err).NotTo(HaveOccurred(), "unexpected error obtaining NGINX IP address")
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "unexpected error obtaining NGINX IP address")
|
||||
return s.Spec.ClusterIP
|
||||
}
|
||||
|
||||
|
@ -167,7 +163,7 @@ func (f *Framework) GetNginxPodIP() []string {
|
|||
CoreV1().
|
||||
Endpoints(f.Namespace).
|
||||
Get("ingress-nginx", metav1.GetOptions{})
|
||||
Expect(err).NotTo(HaveOccurred(), "unexpected error obtaining NGINX IP address")
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "unexpected error obtaining NGINX IP address")
|
||||
eips := make([]string, 0)
|
||||
for _, s := range e.Subsets {
|
||||
for _, a := range s.Addresses {
|
||||
|
@ -187,14 +183,14 @@ func (f *Framework) GetURL(scheme RequestScheme) string {
|
|||
// WaitForNginxServer waits until the nginx configuration contains a particular server section
|
||||
func (f *Framework) WaitForNginxServer(name string, matcher func(cfg string) bool) {
|
||||
err := wait.Poll(Poll, DefaultTimeout, f.matchNginxConditions(name, matcher))
|
||||
Expect(err).NotTo(HaveOccurred(), "unexpected error waiting for nginx server condition/s")
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "unexpected error waiting for nginx server condition/s")
|
||||
time.Sleep(5 * time.Second)
|
||||
}
|
||||
|
||||
// WaitForNginxConfiguration waits until the nginx configuration contains a particular configuration
|
||||
func (f *Framework) WaitForNginxConfiguration(matcher func(cfg string) bool) {
|
||||
err := wait.Poll(Poll, DefaultTimeout, f.matchNginxConditions("", matcher))
|
||||
Expect(err).NotTo(HaveOccurred(), "unexpected error waiting for nginx server condition/s")
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "unexpected error waiting for nginx server condition/s")
|
||||
time.Sleep(5 * time.Second)
|
||||
}
|
||||
|
||||
|
@ -236,7 +232,7 @@ func (f *Framework) matchNginxConditions(name string, matcher func(cfg string) b
|
|||
}
|
||||
|
||||
var match bool
|
||||
errs := InterceptGomegaFailures(func() {
|
||||
errs := gomega.InterceptGomegaFailures(func() {
|
||||
if klog.V(10) && len(o) > 0 {
|
||||
klog.Infof("nginx.conf:\n%v", o)
|
||||
}
|
||||
|
@ -299,8 +295,8 @@ func (f *Framework) SetNginxConfigMapData(cmData map[string]string) {
|
|||
|
||||
func (f *Framework) SetConfigMapData(name string, cmData map[string]string) {
|
||||
config, err := f.getConfigMap(name)
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
Expect(config).NotTo(BeNil(), "expected a configmap but none returned")
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
gomega.Expect(config).NotTo(gomega.BeNil(), "expected a configmap but none returned")
|
||||
|
||||
config.Data = cmData
|
||||
|
||||
|
@ -308,7 +304,7 @@ func (f *Framework) SetConfigMapData(name string, cmData map[string]string) {
|
|||
CoreV1().
|
||||
ConfigMaps(f.Namespace).
|
||||
Update(config)
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
|
||||
time.Sleep(5 * time.Second)
|
||||
}
|
||||
|
@ -321,13 +317,13 @@ func (f *Framework) CreateConfigMap(name string, data map[string]string) {
|
|||
},
|
||||
Data: data,
|
||||
})
|
||||
Expect(err).NotTo(HaveOccurred(), "failed to create configMap")
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create configMap")
|
||||
}
|
||||
|
||||
// UpdateNginxConfigMapData updates single field in ingress-nginx's nginx-configuration map data
|
||||
func (f *Framework) UpdateNginxConfigMapData(key string, value string) {
|
||||
config, err := f.GetNginxConfigMapData()
|
||||
Expect(err).NotTo(HaveOccurred(), "unexpected error reading configmap")
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "unexpected error reading configmap")
|
||||
|
||||
config[key] = value
|
||||
|
||||
|
@ -340,10 +336,10 @@ func (f *Framework) UpdateNginxConfigMapData(key string, value string) {
|
|||
func (f *Framework) DeleteNGINXPod(grace int64) {
|
||||
ns := f.Namespace
|
||||
pod, err := getIngressNGINXPod(ns, f.KubeClientSet)
|
||||
Expect(err).NotTo(HaveOccurred(), "expected ingress nginx pod to be running")
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "expected ingress nginx pod to be running")
|
||||
|
||||
err = f.KubeClientSet.CoreV1().Pods(ns).Delete(pod.GetName(), metav1.NewDeleteOptions(grace))
|
||||
Expect(err).NotTo(HaveOccurred(), "unexpected error deleting ingress nginx pod")
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "unexpected error deleting ingress nginx pod")
|
||||
|
||||
err = wait.Poll(Poll, DefaultTimeout, func() (bool, error) {
|
||||
pod, err := getIngressNGINXPod(ns, f.KubeClientSet)
|
||||
|
@ -352,7 +348,7 @@ func (f *Framework) DeleteNGINXPod(grace int64) {
|
|||
}
|
||||
return pod.GetName() != "", nil
|
||||
})
|
||||
Expect(err).NotTo(HaveOccurred(), "unexpected error while waiting for ingress nginx pod to come up again")
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "unexpected error while waiting for ingress nginx pod to come up again")
|
||||
}
|
||||
|
||||
// UpdateDeployment runs the given updateFunc on the deployment and waits for it to be updated
|
||||
|
|
|
@ -107,7 +107,6 @@ func CreateKubeNamespace(baseName string, c kubernetes.Interface) (string, error
|
|||
Logf("Unexpected error while creating namespace: %v", err)
|
||||
return false, nil
|
||||
}
|
||||
Logf("Created namespace: %v", got.Name)
|
||||
return true, nil
|
||||
})
|
||||
if err != nil {
|
||||
|
|
Loading…
Reference in a new issue