l-101 添加e2e测试

master
dongming 2 years ago
parent d3a21b89e7
commit 3c6a32c04b

@ -166,6 +166,9 @@ spec:
description: ServicePort service的端口一般是随机生成这里我们为了防止冲突使用和我们提供服务相同的端口。
format: int32
type: integer
tls:
description: Tls 是否开启https
type: boolean
required:
- mode
type: object

@ -55,6 +55,28 @@ rules:
- get
- patch
- update
- apiGroups:
- cert-manager.io
resources:
- certificates
verbs:
- create
- get
- list
- patch
- update
- watch
- apiGroups:
- cert-manager.io
resources:
- issuers
verbs:
- create
- get
- list
- patch
- update
- watch
- apiGroups:
- networking.k8s.io
resources:

@ -4,6 +4,7 @@ import (
"bytes"
"fmt"
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"text/template"
networkv1 "k8s.io/api/networking/v1"
@ -38,7 +39,16 @@ func NewDeployment(md *myAppsv1.MsbDeployment) (*appsv1.Deployment, error) {
}
func NewIngress(md *myAppsv1.MsbDeployment) (*networkv1.Ingress, error) {
content, err := parseTemplate(md, "ingress.yaml")
var (
content []byte
err error
)
if md.Spec.Expose.Tls {
// 添加 tls 的支持
content, err = parseTemplate(md, "ingress-with-tls.yaml")
} else {
content, err = parseTemplate(md, "ingress.yaml")
}
if err != nil {
return nil, err
}
@ -70,3 +80,72 @@ func NewServiceNP(md *myAppsv1.MsbDeployment) (*corev1.Service, error) {
}
return svc, nil
}
// NewIssuer 实现创建issuer资源对象
func NewIssuer(md *myAppsv1.MsbDeployment) (*unstructured.Unstructured, error) {
if md.Spec.Expose.Mode != myAppsv1.ModeIngress ||
!md.Spec.Expose.Tls {
return nil, nil
}
// Sample
//apiVersion: cert-manager.io/v1
//kind: Issuer
//metadata:
// name: selfsigned-issuer
//spec:
// selfSigned: {}
return &unstructured.Unstructured{
Object: map[string]interface{}{
"apiVersion": "cert-manager.io/v1",
"kind": "Issuer",
"metadata": map[string]interface{}{
"name": md.Name,
"namespace": md.Namespace,
},
"spec": map[string]interface{}{
"selfSigned": map[string]interface{}{},
},
},
}, nil
}
// NewCert 实现创建certificate资源
func NewCert(md *myAppsv1.MsbDeployment) (*unstructured.Unstructured, error) {
if md.Spec.Expose.Mode != myAppsv1.ModeIngress ||
!md.Spec.Expose.Tls {
return nil, nil
}
// Sample
//apiVersion: cert-manager.io/v1
//kind: Certificate
//metadata:
// name: serving-cert # this name should match the one appeared in kustomizeconfig.yaml
// namespace: system
//spec:
// dnsNames:
// - <spec.expose.ingressDomain>
// issuerRef:
// kind: Issuer
// name: selfsigned-issuer
// secretName: webhook-server-cert
return &unstructured.Unstructured{
Object: map[string]interface{}{
"apiVersion": "cert-manager.io/v1",
"kind": "Certificate",
"metadata": map[string]interface{}{
"name": md.Name,
"namespace": md.Namespace,
},
"spec": map[string]interface{}{
"dnsNames": []interface{}{
md.Spec.Expose.IngressDomain,
},
"issuerRef": map[string]interface{}{
"kind": "Issuer",
"name": md.Name,
},
"secretName": md.Name,
},
},
}, nil
}

@ -587,11 +587,55 @@ func (r *MsbDeploymentReconciler) deleteStatus(md *myAppsv1.MsbDeployment, condi
}
}
func (r *MsbDeploymentReconciler) createIssuer(ctx context.Context, mdCopy *myAppsv1.MsbDeployment) error {
func (r *MsbDeploymentReconciler) createIssuer(ctx context.Context, md *myAppsv1.MsbDeployment) error {
// 1. 创建 issuer 资源
i, err := NewIssuer(md)
if err != nil {
return err
}
// 设置 issuer 所属于 md
if err := controllerutil.SetControllerReference(md, i, r.Scheme); err != nil {
return err
}
// 在k8s中创建issuer资源
if _, err := r.DynamicClient.Resource(issuerGVR).
Namespace(md.Namespace).
Create(ctx, i, metav1.CreateOptions{}); err != nil {
if errors.IsAlreadyExists(err) {
// 这是一个折中的考虑,在没有比较完整的处理证书更新的方案前,
// 这是一个简单并且不会出现意外错误的处理方式
return nil
}
return err
}
return nil
}
func (r *MsbDeploymentReconciler) createCert(ctx context.Context, mdCopy *myAppsv1.MsbDeployment) error {
func (r *MsbDeploymentReconciler) createCert(ctx context.Context, md *myAppsv1.MsbDeployment) error {
// 1. 创建 issuer 资源
c, err := NewCert(md)
if err != nil {
return err
}
// 设置 issuer 所属于 md
if err := controllerutil.SetControllerReference(md, c, r.Scheme); err != nil {
return err
}
// 在k8s中创建certificate资源
if _, err := r.DynamicClient.Resource(certGVR).
Namespace(md.Namespace).
Create(ctx, c, metav1.CreateOptions{}); err != nil {
if errors.IsAlreadyExists(err) {
// 这是一个折中的考虑,在没有比较完整的处理证书更新的方案前,
// 这是一个简单并且不会出现意外错误的处理方式
return nil
}
return err
}
return nil
}

@ -0,0 +1,22 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ .ObjectMeta.Name }}
namespace: {{ .ObjectMeta.Namespace }}
spec:
ingressClassName: nginx
tls:
- hosts:
- {{ .Spec.Expose.IngressDomain }}
secretName: {{ .ObjectMeta.Name }}
rules:
- host: {{ .Spec.Expose.IngressDomain }}
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: {{ .ObjectMeta.Name }}
port:
number: {{ .Spec.Expose.ServicePort }}

@ -1,7 +1,7 @@
cluster:
kind:
name: e2e
retain: false
retain: true
config: |
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4

@ -2,6 +2,9 @@ package create
import (
"context"
networkv1 "k8s.io/api/networking/v1"
"time"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@ -9,7 +12,6 @@ import (
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/client-go/dynamic"
"k8s.io/client-go/kubernetes"
"time"
"mashibing.com/pkg/mashibing-deployment/test/framework"
)
@ -95,6 +97,109 @@ func CreateIngressMsbDeployment(ctx *framework.TestContext, f *framework.Framewo
})
}
// 测试HTTPS
func CreateIngressMsbDeploymentWithTls(ctx *framework.TestContext, f *framework.Framework) {
var (
// 1. 准备测试数据
ctFilePath = "create/testdata/create-ingress-with-tls.yaml"
obj = &unstructured.Unstructured{Object: make(map[string]interface{})}
dc dynamic.Interface
cs *kubernetes.Clientset
// 3. 准备测试用到的全局变量
msbGVR = schema.GroupVersionResource{
Group: "apps.mashibing.com",
Version: "v1",
Resource: "msbdeployments",
}
// issuer
issuerGVR = schema.GroupVersionResource{
Group: "cert-manager.io",
Version: "v1",
Resource: "issuers",
}
// certificate
certGVR = schema.GroupVersionResource{
Group: "cert-manager.io",
Version: "v1",
Resource: "certificates",
}
err error
)
BeforeEach(func() {
// 2. 加载测试数据
err = f.LoadYamlToUnstructured(ctFilePath, obj)
Expect(err).Should(BeNil())
// 4. 初始化测试用到的全局变量
dc = ctx.CreateDynamicClient()
cs = ctx.CreateClientSet()
})
Context("Create msbdeployment mod ingress with tls", func() {
It("Should be create mod ingress with tls success", func() {
_, err = dc.Resource(msbGVR).Namespace("default").Create(context.TODO(), obj, metav1.CreateOptions{})
Expect(err).Should(BeNil())
By("Sleep 3 second wait creating done")
time.Sleep(3 * time.Second)
})
It("Should be exist msbdeployment", func() {
_, err = dc.Resource(msbGVR).Namespace("default").Get(context.TODO(), obj.GetName(), metav1.GetOptions{})
Expect(err).Should(BeNil())
})
It("Should be exist ingress, and have a tls setting", func() {
var ig *networkv1.Ingress
ig, err = cs.NetworkingV1().Ingresses("default").Get(context.TODO(), obj.GetName(), metav1.GetOptions{})
Expect(err).Should(BeNil())
Expect(len(ig.Spec.TLS)).To(Equal(1))
})
It("Should be exist issuer", func() {
_, err = dc.Resource(issuerGVR).Namespace("default").Get(context.TODO(), obj.GetName(), metav1.GetOptions{})
Expect(err).Should(BeNil())
})
It("Should be exist certificate", func() {
_, err = dc.Resource(certGVR).Namespace("default").Get(context.TODO(), obj.GetName(), metav1.GetOptions{})
Expect(err).Should(BeNil())
})
})
Context("Delete msbdeployment mod ingress with tls", func() {
It("Should be delete mod ingress success", func() {
err = dc.Resource(msbGVR).Namespace("default").Delete(context.TODO(), obj.GetName(), metav1.DeleteOptions{})
Expect(err).Should(BeNil())
By("Sleep 3 second wait deleting done")
time.Sleep(3 * time.Second)
})
It("Should not be exist msbdeployment", func() {
_, err = dc.Resource(msbGVR).Namespace("default").Get(context.TODO(), obj.GetName(), metav1.GetOptions{})
Expect(err).ShouldNot(BeNil())
})
It("Should not be exist deployment", func() {
_, err = cs.AppsV1().Deployments("default").Get(context.TODO(), obj.GetName(), metav1.GetOptions{})
Expect(err).ShouldNot(BeNil())
})
It("Should not be exist service", func() {
_, err = cs.CoreV1().Services("default").Get(context.TODO(), obj.GetName(), metav1.GetOptions{})
Expect(err).ShouldNot(BeNil())
})
It("Should not be exist ingress", func() {
_, err = cs.NetworkingV1().Ingresses("default").Get(context.TODO(), obj.GetName(), metav1.GetOptions{})
Expect(err).ShouldNot(BeNil())
})
It("Should not be exist issuer", func() {
_, err = dc.Resource(issuerGVR).Namespace("default").Get(context.TODO(), obj.GetName(), metav1.GetOptions{})
Expect(err).ShouldNot(BeNil())
})
It("Should not be exist certificate", func() {
_, err = dc.Resource(certGVR).Namespace("default").Get(context.TODO(), obj.GetName(), metav1.GetOptions{})
Expect(err).ShouldNot(BeNil())
})
})
}
// 测试默认值设置
func CreateIngressMsbDeploymentDefaultValue(ctx *framework.TestContext, f *framework.Framework) {
var (
// 1. 准备测试数据

@ -0,0 +1,12 @@
apiVersion: apps.mashibing.com/v1
kind: MsbDeployment
metadata:
name: create-ingress-with-tls
spec:
image: nginx
port: 80
replicas: 2
expose:
mode: ingress
ingressDomain: www.mashingbing-test-t.com
tls: true

@ -6,6 +6,7 @@ package e2e
import "mashibing.com/pkg/mashibing-deployment/test/e2e/create"
var _ = fmw.Describe("Create msbdeployment mod ingress", create.CreateIngressMsbDeployment)
var _ = fmw.Describe("Create msbdeployment mod ingress with tls", create.CreateIngressMsbDeploymentWithTls)
var _ = fmw.Describe("Create msbdeployment mod nodeport", create.CreateNodeportMsbDeployment)
var _ = fmw.Describe("Create msbdeployment mod ingress default value", create.CreateIngressMsbDeploymentDefaultValue)
var _ = fmw.Describe("Create msbdeployment mod ingress must failed", create.CreateIngressMsbDeploymentMustFailed)

@ -1,55 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<testsuite name="e2e" tests="52" failures="0" errors="0" time="103.132">
<testcase name="Create msbdeployment mod ingress default value Create msbdeployment mod ingress, but no replicas Create msbdeployment mod ingress success" classname="e2e" time="1.024714624"></testcase>
<testcase name="Create msbdeployment mod ingress default value Create msbdeployment mod ingress, but no replicas Should be exist msbdeployment, and have a default replicas" classname="e2e" time="0.034046703"></testcase>
<testcase name="Create msbdeployment mod ingress default value Create msbdeployment mod ingress, but no svcport Create msbdeployment mod ingress success" classname="e2e" time="1.014796493"></testcase>
<testcase name="Create msbdeployment mod ingress default value Create msbdeployment mod ingress, but no svcport Should be exist msbdeployment, and have a default svcport" classname="e2e" time="0.049601336"></testcase>
<testcase name="Update msbdeployment mod ingress to Nodeport Update msbdeployment mod ingress to nodeport Should be create mod ingress success" classname="e2e" time="1.018053622"></testcase>
<testcase name="Update msbdeployment mod ingress to Nodeport Update msbdeployment mod ingress to nodeport Should be exist msbdeployment" classname="e2e" time="0.027116575"></testcase>
<testcase name="Update msbdeployment mod ingress to Nodeport Update msbdeployment mod ingress to nodeport Should be exist deployment" classname="e2e" time="0.03691608"></testcase>
<testcase name="Update msbdeployment mod ingress to Nodeport Update msbdeployment mod ingress to nodeport Should be exist service" classname="e2e" time="0.026199255"></testcase>
<testcase name="Update msbdeployment mod ingress to Nodeport Update msbdeployment mod ingress to nodeport Should be exist ingress" classname="e2e" time="0.0240624"></testcase>
<testcase name="Update msbdeployment mod ingress to Nodeport Update msbdeployment mod ingress to nodeport Should be update to nodeport success" classname="e2e" time="1.018868619"></testcase>
<testcase name="Update msbdeployment mod ingress to Nodeport Update msbdeployment mod ingress to nodeport Should not be exist ingress" classname="e2e" time="0.020853737"></testcase>
<testcase name="Update msbdeployment mod ingress to Nodeport Delete msbdeployment i2n Should be delete mod ingress success" classname="e2e" time="3.018281877"></testcase>
<testcase name="Update msbdeployment mod ingress to Nodeport Delete msbdeployment i2n Should not be exist msbdeployment" classname="e2e" time="0.025819521"></testcase>
<testcase name="Update msbdeployment mod ingress to Nodeport Delete msbdeployment i2n Should not be exist deployment" classname="e2e" time="0.024420258"></testcase>
<testcase name="Update msbdeployment mod ingress to Nodeport Delete msbdeployment i2n Should not be exist service" classname="e2e" time="0.023434622"></testcase>
<testcase name="Update msbdeployment mod ingress to Nodeport Delete msbdeployment i2n Should not be exist ingress" classname="e2e" time="0.033312724"></testcase>
<testcase name="Create msbdeployment mod nodeport Create msbdeployment mod nodeport Should be create mod nodeport success" classname="e2e" time="1.011158552"></testcase>
<testcase name="Create msbdeployment mod nodeport Create msbdeployment mod nodeport Should be exist msbdeployment" classname="e2e" time="0.023825435"></testcase>
<testcase name="Create msbdeployment mod nodeport Create msbdeployment mod nodeport Should be exist deployment" classname="e2e" time="0.02605187"></testcase>
<testcase name="Create msbdeployment mod nodeport Create msbdeployment mod nodeport Should be exist service" classname="e2e" time="0.231335973"></testcase>
<testcase name="Create msbdeployment mod nodeport Create msbdeployment mod nodeport Should not be exist ingress" classname="e2e" time="0.400675299"></testcase>
<testcase name="Create msbdeployment mod nodeport Delete msbdeployment mod nodeport Should be delete mod nodeport success" classname="e2e" time="3.208082116"></testcase>
<testcase name="Create msbdeployment mod nodeport Delete msbdeployment mod nodeport Should not be exist msbdeployment" classname="e2e" time="0.015857195"></testcase>
<testcase name="Create msbdeployment mod nodeport Delete msbdeployment mod nodeport Should not be exist deployment" classname="e2e" time="0.010506538"></testcase>
<testcase name="Create msbdeployment mod nodeport Delete msbdeployment mod nodeport Should not be exist service" classname="e2e" time="0.011332014"></testcase>
<testcase name="Create msbdeployment mod nodeport Delete msbdeployment mod nodeport Should not be exist ingress" classname="e2e" time="0.015085619"></testcase>
<testcase name="Create msbdeployment mod ingress must failed Create msbdeployment mod ingress no domain Should be create mod ingress no domain failed" classname="e2e" time="0.15045463"></testcase>
<testcase name="Create msbdeployment mod nodeport must failed Create msbdeployment mod nodeport Should be create mod nodeport no nodeport, must failed" classname="e2e" time="0.397724624"></testcase>
<testcase name="Create msbdeployment mod nodeport must failed Create msbdeployment mod nodeport Should be create mod nodeport li nodeport, must failed" classname="e2e" time="0.400529014"></testcase>
<testcase name="Create msbdeployment mod nodeport must failed Create msbdeployment mod nodeport Should be create mod nodeport gt nodeport, must failed" classname="e2e" time="0.39856686"></testcase>
<testcase name="Update msbdeployment mod nodeport to Ingress Update msbdeployment mod nodeport to ingress Should be create mod nodeport success" classname="e2e" time="1.21051683"></testcase>
<testcase name="Update msbdeployment mod nodeport to Ingress Update msbdeployment mod nodeport to ingress Should be exist msbdeployment" classname="e2e" time="0.009861803"></testcase>
<testcase name="Update msbdeployment mod nodeport to Ingress Update msbdeployment mod nodeport to ingress Should be exist deployment" classname="e2e" time="0.009315362"></testcase>
<testcase name="Update msbdeployment mod nodeport to Ingress Update msbdeployment mod nodeport to ingress Should be exist service" classname="e2e" time="0.371582946"></testcase>
<testcase name="Update msbdeployment mod nodeport to Ingress Update msbdeployment mod nodeport to ingress Should not be exist ingress" classname="e2e" time="0.399281601"></testcase>
<testcase name="Update msbdeployment mod nodeport to Ingress Update msbdeployment mod nodeport to ingress Should be update to ingress success" classname="e2e" time="1.22319023"></testcase>
<testcase name="Update msbdeployment mod nodeport to Ingress Update msbdeployment mod nodeport to ingress Should be exist ingress" classname="e2e" time="0.037784744"></testcase>
<testcase name="Update msbdeployment mod nodeport to Ingress Delete msbdeployment n2i Should be delete mod nodeport success" classname="e2e" time="3.024074478"></testcase>
<testcase name="Update msbdeployment mod nodeport to Ingress Delete msbdeployment n2i Should not be exist msbdeployment" classname="e2e" time="0.011734979"></testcase>
<testcase name="Update msbdeployment mod nodeport to Ingress Delete msbdeployment n2i Should not be exist deployment" classname="e2e" time="0.010076596"></testcase>
<testcase name="Update msbdeployment mod nodeport to Ingress Delete msbdeployment n2i Should not be exist service" classname="e2e" time="0.022724573"></testcase>
<testcase name="Update msbdeployment mod nodeport to Ingress Delete msbdeployment n2i Should not be exist ingress" classname="e2e" time="0.011975673"></testcase>
<testcase name="Create msbdeployment mod ingress Create msbdeployment mod ingress Should be create mod ingress success" classname="e2e" time="1.015942845"></testcase>
<testcase name="Create msbdeployment mod ingress Create msbdeployment mod ingress Should be exist msbdeployment" classname="e2e" time="0.009958198"></testcase>
<testcase name="Create msbdeployment mod ingress Create msbdeployment mod ingress Should be exist deployment" classname="e2e" time="0.009730456"></testcase>
<testcase name="Create msbdeployment mod ingress Create msbdeployment mod ingress Should be exist service" classname="e2e" time="0.308626199"></testcase>
<testcase name="Create msbdeployment mod ingress Create msbdeployment mod ingress Should be exist ingress" classname="e2e" time="0.399883799"></testcase>
<testcase name="Create msbdeployment mod ingress Delete msbdeployment mod ingress Should be delete mod ingress success" classname="e2e" time="3.209498764"></testcase>
<testcase name="Create msbdeployment mod ingress Delete msbdeployment mod ingress Should not be exist msbdeployment" classname="e2e" time="0.016065333"></testcase>
<testcase name="Create msbdeployment mod ingress Delete msbdeployment mod ingress Should not be exist deployment" classname="e2e" time="0.017829572"></testcase>
<testcase name="Create msbdeployment mod ingress Delete msbdeployment mod ingress Should not be exist service" classname="e2e" time="0.012815124"></testcase>
<testcase name="Create msbdeployment mod ingress Delete msbdeployment mod ingress Should not be exist ingress" classname="e2e" time="0.013745713"></testcase>
<testsuite name="e2e" tests="64" failures="0" errors="0" time="121.981">
<testcase name="Update msbdeployment mod ingress to Nodeport Update msbdeployment mod ingress to nodeport Should be create mod ingress success" classname="e2e" time="1.015628442"></testcase>
<testcase name="Update msbdeployment mod ingress to Nodeport Update msbdeployment mod ingress to nodeport Should be exist msbdeployment" classname="e2e" time="0.094424609"></testcase>
<testcase name="Update msbdeployment mod ingress to Nodeport Update msbdeployment mod ingress to nodeport Should be exist deployment" classname="e2e" time="0.020615509"></testcase>
<testcase name="Update msbdeployment mod ingress to Nodeport Update msbdeployment mod ingress to nodeport Should be exist service" classname="e2e" time="0.020537996"></testcase>
<testcase name="Update msbdeployment mod ingress to Nodeport Update msbdeployment mod ingress to nodeport Should be exist ingress" classname="e2e" time="0.017977009"></testcase>
<testcase name="Update msbdeployment mod ingress to Nodeport Update msbdeployment mod ingress to nodeport Should be update to nodeport success" classname="e2e" time="1.02410897"></testcase>
<testcase name="Update msbdeployment mod ingress to Nodeport Update msbdeployment mod ingress to nodeport Should not be exist ingress" classname="e2e" time="0.019909106"></testcase>
<testcase name="Update msbdeployment mod ingress to Nodeport Delete msbdeployment i2n Should be delete mod ingress success" classname="e2e" time="3.018160558"></testcase>
<testcase name="Update msbdeployment mod ingress to Nodeport Delete msbdeployment i2n Should not be exist msbdeployment" classname="e2e" time="0.034140373"></testcase>
<testcase name="Update msbdeployment mod ingress to Nodeport Delete msbdeployment i2n Should not be exist deployment" classname="e2e" time="0.02501178"></testcase>
<testcase name="Update msbdeployment mod ingress to Nodeport Delete msbdeployment i2n Should not be exist service" classname="e2e" time="0.021885967"></testcase>
<testcase name="Update msbdeployment mod ingress to Nodeport Delete msbdeployment i2n Should not be exist ingress" classname="e2e" time="0.02506562"></testcase>
<testcase name="Create msbdeployment mod ingress must failed Create msbdeployment mod ingress no domain Should be create mod ingress no domain failed" classname="e2e" time="0.091343438"></testcase>
<testcase name="Create msbdeployment mod nodeport must failed Create msbdeployment mod nodeport Should be create mod nodeport no nodeport, must failed" classname="e2e" time="0.410633534"></testcase>
<testcase name="Create msbdeployment mod nodeport must failed Create msbdeployment mod nodeport Should be create mod nodeport li nodeport, must failed" classname="e2e" time="0.388724558"></testcase>
<testcase name="Create msbdeployment mod nodeport must failed Create msbdeployment mod nodeport Should be create mod nodeport gt nodeport, must failed" classname="e2e" time="0.400739363"></testcase>
<testcase name="Update msbdeployment mod nodeport to Ingress Update msbdeployment mod nodeport to ingress Should be create mod nodeport success" classname="e2e" time="1.213148109"></testcase>
<testcase name="Update msbdeployment mod nodeport to Ingress Update msbdeployment mod nodeport to ingress Should be exist msbdeployment" classname="e2e" time="0.047014388"></testcase>
<testcase name="Update msbdeployment mod nodeport to Ingress Update msbdeployment mod nodeport to ingress Should be exist deployment" classname="e2e" time="0.034694042"></testcase>
<testcase name="Update msbdeployment mod nodeport to Ingress Update msbdeployment mod nodeport to ingress Should be exist service" classname="e2e" time="0.305929798"></testcase>
<testcase name="Update msbdeployment mod nodeport to Ingress Update msbdeployment mod nodeport to ingress Should not be exist ingress" classname="e2e" time="0.401786031"></testcase>
<testcase name="Update msbdeployment mod nodeport to Ingress Update msbdeployment mod nodeport to ingress Should be update to ingress success" classname="e2e" time="1.2137515190000001"></testcase>
<testcase name="Update msbdeployment mod nodeport to Ingress Update msbdeployment mod nodeport to ingress Should be exist ingress" classname="e2e" time="0.046462856"></testcase>
<testcase name="Update msbdeployment mod nodeport to Ingress Delete msbdeployment n2i Should be delete mod nodeport success" classname="e2e" time="3.024724638"></testcase>
<testcase name="Update msbdeployment mod nodeport to Ingress Delete msbdeployment n2i Should not be exist msbdeployment" classname="e2e" time="0.008113699"></testcase>
<testcase name="Update msbdeployment mod nodeport to Ingress Delete msbdeployment n2i Should not be exist deployment" classname="e2e" time="0.009170037"></testcase>
<testcase name="Update msbdeployment mod nodeport to Ingress Delete msbdeployment n2i Should not be exist service" classname="e2e" time="0.007824077"></testcase>
<testcase name="Update msbdeployment mod nodeport to Ingress Delete msbdeployment n2i Should not be exist ingress" classname="e2e" time="0.012239742"></testcase>
<testcase name="Create msbdeployment mod ingress default value Create msbdeployment mod ingress, but no replicas Create msbdeployment mod ingress success" classname="e2e" time="1.012972533"></testcase>
<testcase name="Create msbdeployment mod ingress default value Create msbdeployment mod ingress, but no replicas Should be exist msbdeployment, and have a default replicas" classname="e2e" time="0.011586288"></testcase>
<testcase name="Create msbdeployment mod ingress default value Create msbdeployment mod ingress, but no svcport Create msbdeployment mod ingress success" classname="e2e" time="1.009465166"></testcase>
<testcase name="Create msbdeployment mod ingress default value Create msbdeployment mod ingress, but no svcport Should be exist msbdeployment, and have a default svcport" classname="e2e" time="0.00686519"></testcase>
<testcase name="Create msbdeployment mod ingress Create msbdeployment mod ingress Should be create mod ingress success" classname="e2e" time="1.008714575"></testcase>
<testcase name="Create msbdeployment mod ingress Create msbdeployment mod ingress Should be exist msbdeployment" classname="e2e" time="0.024582708"></testcase>
<testcase name="Create msbdeployment mod ingress Create msbdeployment mod ingress Should be exist deployment" classname="e2e" time="0.033743407"></testcase>
<testcase name="Create msbdeployment mod ingress Create msbdeployment mod ingress Should be exist service" classname="e2e" time="0.01792106"></testcase>
<testcase name="Create msbdeployment mod ingress Create msbdeployment mod ingress Should be exist ingress" classname="e2e" time="0.240049083"></testcase>
<testcase name="Create msbdeployment mod ingress Delete msbdeployment mod ingress Should be delete mod ingress success" classname="e2e" time="3.216211016"></testcase>
<testcase name="Create msbdeployment mod ingress Delete msbdeployment mod ingress Should not be exist msbdeployment" classname="e2e" time="0.021593733"></testcase>
<testcase name="Create msbdeployment mod ingress Delete msbdeployment mod ingress Should not be exist deployment" classname="e2e" time="0.019502564"></testcase>
<testcase name="Create msbdeployment mod ingress Delete msbdeployment mod ingress Should not be exist service" classname="e2e" time="0.040341771"></testcase>
<testcase name="Create msbdeployment mod ingress Delete msbdeployment mod ingress Should not be exist ingress" classname="e2e" time="0.019365736"></testcase>
<testcase name="Create msbdeployment mod ingress with tls Create msbdeployment mod ingress with tls Should be create mod ingress with tls success" classname="e2e" time="3.015456521"></testcase>
<testcase name="Create msbdeployment mod ingress with tls Create msbdeployment mod ingress with tls Should be exist msbdeployment" classname="e2e" time="0.045138304"></testcase>
<testcase name="Create msbdeployment mod ingress with tls Create msbdeployment mod ingress with tls Should be exist ingress, and have a tls setting" classname="e2e" time="0.016779042"></testcase>
<testcase name="Create msbdeployment mod ingress with tls Create msbdeployment mod ingress with tls Should be exist issuer" classname="e2e" time="0.024182935"></testcase>
<testcase name="Create msbdeployment mod ingress with tls Create msbdeployment mod ingress with tls Should be exist certificate" classname="e2e" time="0.023835327"></testcase>
<testcase name="Create msbdeployment mod ingress with tls Delete msbdeployment mod ingress with tls Should be delete mod ingress success" classname="e2e" time="3.018139056"></testcase>
<testcase name="Create msbdeployment mod ingress with tls Delete msbdeployment mod ingress with tls Should not be exist msbdeployment" classname="e2e" time="0.026686664"></testcase>
<testcase name="Create msbdeployment mod ingress with tls Delete msbdeployment mod ingress with tls Should not be exist deployment" classname="e2e" time="0.027368444"></testcase>
<testcase name="Create msbdeployment mod ingress with tls Delete msbdeployment mod ingress with tls Should not be exist service" classname="e2e" time="0.021610069"></testcase>
<testcase name="Create msbdeployment mod ingress with tls Delete msbdeployment mod ingress with tls Should not be exist ingress" classname="e2e" time="0.037768686"></testcase>
<testcase name="Create msbdeployment mod ingress with tls Delete msbdeployment mod ingress with tls Should not be exist issuer" classname="e2e" time="0.086961024"></testcase>
<testcase name="Create msbdeployment mod ingress with tls Delete msbdeployment mod ingress with tls Should not be exist certificate" classname="e2e" time="0.400067644"></testcase>
<testcase name="Create msbdeployment mod nodeport Create msbdeployment mod nodeport Should be create mod nodeport success" classname="e2e" time="1.211645719"></testcase>
<testcase name="Create msbdeployment mod nodeport Create msbdeployment mod nodeport Should be exist msbdeployment" classname="e2e" time="0.098275974"></testcase>
<testcase name="Create msbdeployment mod nodeport Create msbdeployment mod nodeport Should be exist deployment" classname="e2e" time="0.013374307"></testcase>
<testcase name="Create msbdeployment mod nodeport Create msbdeployment mod nodeport Should be exist service" classname="e2e" time="0.277268015"></testcase>
<testcase name="Create msbdeployment mod nodeport Create msbdeployment mod nodeport Should not be exist ingress" classname="e2e" time="0.402955863"></testcase>
<testcase name="Create msbdeployment mod nodeport Delete msbdeployment mod nodeport Should be delete mod nodeport success" classname="e2e" time="3.208081327"></testcase>
<testcase name="Create msbdeployment mod nodeport Delete msbdeployment mod nodeport Should not be exist msbdeployment" classname="e2e" time="0.009313032"></testcase>
<testcase name="Create msbdeployment mod nodeport Delete msbdeployment mod nodeport Should not be exist deployment" classname="e2e" time="0.006400994"></testcase>
<testcase name="Create msbdeployment mod nodeport Delete msbdeployment mod nodeport Should not be exist service" classname="e2e" time="0.007583344"></testcase>
<testcase name="Create msbdeployment mod nodeport Delete msbdeployment mod nodeport Should not be exist ingress" classname="e2e" time="0.007653508"></testcase>
</testsuite>
Loading…
Cancel
Save