Skip to content

Commit

Permalink
Add IngressCRUD; adapter for extensions/v1beta1 and networking/v1beta1
Browse files Browse the repository at this point in the history
IngressCRUD makes our e2e tests portable across older k8s API versions.
e2e tests have been changed to use IngressCRUD.
  • Loading branch information
bowei committed Aug 11, 2019
1 parent 2fe3b2f commit 6a27c77
Show file tree
Hide file tree
Showing 18 changed files with 300 additions and 96 deletions.
14 changes: 7 additions & 7 deletions cmd/e2e-test/affinity_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,10 +47,6 @@ type affinityTransition struct {
func TestAffinity(t *testing.T) {
t.Parallel()

ing := fuzz.NewIngressBuilder("", "ingress-1", "").
AddPath("test.com", "/", "service-1", intstr.FromInt(80)).
Build()

for _, tc := range []struct {
desc string
ttl int64
Expand Down Expand Up @@ -104,12 +100,16 @@ func TestAffinity(t *testing.T) {
}
t.Logf("Echo service created (%s/%s)", s.Namespace, "service-1")

if _, err := Framework.Clientset.NetworkingV1beta1().Ingresses(s.Namespace).Create(ing); err != nil {
ing := fuzz.NewIngressBuilder(s.Namespace, "ingress-1", "").
AddPath("test.com", "/", "service-1", intstr.FromInt(80)).
Build()
crud := e2e.IngressCRUD{C: Framework.Clientset}
if _, err := crud.Create(ing); err != nil {
t.Fatalf("error creating Ingress spec: %v", err)
}
t.Logf("Ingress created (%s/%s)", s.Namespace, ing.Name)

ing, err := e2e.WaitForIngress(s, ing, nil)
ing, err = e2e.WaitForIngress(s, ing, nil)
if err != nil {
t.Fatalf("error waiting for Ingress to stabilize: %v", err)
}
Expand Down Expand Up @@ -159,7 +159,7 @@ func TestAffinity(t *testing.T) {
}

// Wait for GCLB resources to be deleted.
if err := Framework.Clientset.NetworkingV1beta1().Ingresses(s.Namespace).Delete(ing.Name, &metav1.DeleteOptions{}); err != nil {
if err := crud.Delete(s.Namespace, ing.Name); err != nil {
t.Errorf("Delete(%q) = %v, want nil", ing.Name, err)
}

Expand Down
33 changes: 16 additions & 17 deletions cmd/e2e-test/app_protocols_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ import (
"context"
"testing"

metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/intstr"
"k8s.io/ingress-gce/pkg/annotations"
"k8s.io/ingress-gce/pkg/e2e"
Expand All @@ -31,11 +30,6 @@ import (
func TestAppProtocol(t *testing.T) {
t.Parallel()

ing := fuzz.NewIngressBuilder("", "ingress-1", "").
DefaultBackend("service-1", intstr.FromString("https-port")).
AddPath("test.com", "/", "service-1", intstr.FromString("https-port")).
Build()

for _, tc := range []struct {
desc string
annotationVal string
Expand Down Expand Up @@ -64,12 +58,17 @@ func TestAppProtocol(t *testing.T) {
}
t.Logf("Echo service created (%s/%s)", s.Namespace, "service-1")

if _, err := Framework.Clientset.NetworkingV1beta1().Ingresses(s.Namespace).Create(ing); err != nil {
ing := fuzz.NewIngressBuilder(s.Namespace, "ingress-1", "").
DefaultBackend("service-1", intstr.FromString("https-port")).
AddPath("test.com", "/", "service-1", intstr.FromString("https-port")).
Build()
crud := e2e.IngressCRUD{C: Framework.Clientset}
if _, err := crud.Create(ing); err != nil {
t.Fatalf("error creating Ingress spec: %v", err)
}
t.Logf("Ingress created (%s/%s)", s.Namespace, ing.Name)

ing, err := e2e.WaitForIngress(s, ing, nil)
ing, err = e2e.WaitForIngress(s, ing, nil)
if err != nil {
t.Fatalf("error waiting for Ingress to stabilize: %v", err)
}
Expand All @@ -83,7 +82,7 @@ func TestAppProtocol(t *testing.T) {
}

// Wait for GCLB resources to be deleted.
if err := Framework.Clientset.NetworkingV1beta1().Ingresses(s.Namespace).Delete(ing.Name, &metav1.DeleteOptions{}); err != nil {
if err := crud.Delete(s.Namespace, ing.Name); err != nil {
t.Errorf("Delete(%q) = %v, want nil", ing.Name, err)
}

Expand All @@ -102,11 +101,6 @@ func TestAppProtocol(t *testing.T) {
func TestAppProtocolTransition(t *testing.T) {
t.Parallel()

ing := fuzz.NewIngressBuilder("", "ingress-1", "").
DefaultBackend("service-1", intstr.FromString("https-port")).
AddPath("test.com", "/", "service-1", intstr.FromString("https-port")).
Build()

for _, tc := range []struct {
desc string
annotationVal string
Expand All @@ -133,7 +127,12 @@ func TestAppProtocolTransition(t *testing.T) {
}
t.Logf("Echo service created (%s/%s)", s.Namespace, "service-1")

if _, err := Framework.Clientset.NetworkingV1beta1().Ingresses(s.Namespace).Create(ing); err != nil {
ing := fuzz.NewIngressBuilder(s.Namespace, "ingress-1", "").
DefaultBackend("service-1", intstr.FromString("https-port")).
AddPath("test.com", "/", "service-1", intstr.FromString("https-port")).
Build()
crud := e2e.IngressCRUD{C: Framework.Clientset}
if _, err := crud.Create(ing); err != nil {
t.Fatalf("error creating Ingress spec: %v", err)
}
t.Logf("Ingress created (%s/%s)", s.Namespace, ing.Name)
Expand All @@ -154,7 +153,7 @@ func TestAppProtocolTransition(t *testing.T) {
t.Fatalf("Error updating echo service: %v", err)
}

ing, err := e2e.WaitForIngress(s, ing, nil)
ing, err = e2e.WaitForIngress(s, ing, nil)
if err != nil {
t.Fatalf("error waiting for Ingress to stabilize: %v", err)
}
Expand All @@ -167,7 +166,7 @@ func TestAppProtocolTransition(t *testing.T) {
}

// Wait for GCLB resources to be deleted.
if err := Framework.Clientset.NetworkingV1beta1().Ingresses(s.Namespace).Delete(ing.Name, &metav1.DeleteOptions{}); err != nil {
if err := crud.Delete(s.Namespace, ing.Name); err != nil {
t.Errorf("Delete(%q) = %v, want nil", ing.Name, err)
}

Expand Down
7 changes: 4 additions & 3 deletions cmd/e2e-test/backend_config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -101,10 +101,11 @@ func TestBackendConfigNegatives(t *testing.T) {
}

port80 := intstr.FromInt(80)
testIng := fuzz.NewIngressBuilder("", "ingress-1", "").
testIng := fuzz.NewIngressBuilder(s.Namespace, "ingress-1", "").
AddPath("test.com", "/", "service-1", port80).
Build()
testIng, err := Framework.Clientset.NetworkingV1beta1().Ingresses(s.Namespace).Create(testIng)
crud := e2e.IngressCRUD{C: Framework.Clientset}
testIng, err := crud.Create(testIng)
if err != nil {
t.Fatalf("error creating Ingress spec: %v", err)
}
Expand Down Expand Up @@ -133,7 +134,7 @@ func TestBackendConfigNegatives(t *testing.T) {
t.Fatalf("error waiting for BackendConfig warning event: %v", err)
}

testIng, err = Framework.Clientset.NetworkingV1beta1().Ingresses(s.Namespace).Get(testIng.Name, metav1.GetOptions{})
testIng, err = crud.Get(s.Namespace, testIng.Name)
if err != nil {
t.Fatalf("error retrieving Ingress %q: %v", testIng.Name, err)
}
Expand Down
4 changes: 3 additions & 1 deletion cmd/e2e-test/basic_https_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -100,14 +100,16 @@ func TestBasicHTTPS(t *testing.T) {
}
}
ing := tc.ingBuilder.Build()
ing.Namespace = s.Namespace // namespace depends on sandbox

_, err := e2e.CreateEchoService(s, "service-1", nil)
if err != nil {
t.Fatalf("Error creating echo service: %v", err)
}
t.Logf("Echo service created (%s/%s)", s.Namespace, "service-1")

if _, err := Framework.Clientset.NetworkingV1beta1().Ingresses(s.Namespace).Create(ing); err != nil {
crud := e2e.IngressCRUD{C: Framework.Clientset}
if _, err := crud.Create(ing); err != nil {
t.Fatalf("error creating Ingress spec: %v", err)
}
t.Logf("Ingress created (%s/%s)", s.Namespace, ing.Name)
Expand Down
14 changes: 9 additions & 5 deletions cmd/e2e-test/basic_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,9 @@ func TestBasic(t *testing.T) {
}
t.Logf("Echo service created (%s/%s)", s.Namespace, "service-1")

if _, err := Framework.Clientset.NetworkingV1beta1().Ingresses(s.Namespace).Create(tc.ing); err != nil {
crud := e2e.IngressCRUD{C: Framework.Clientset}
tc.ing.Namespace = s.Namespace // namespace depends on sandbox
if _, err = crud.Create(tc.ing); err != nil {
t.Fatalf("error creating Ingress spec: %v", err)
}
t.Logf("Ingress created (%s/%s)", s.Namespace, tc.ing.Name)
Expand Down Expand Up @@ -132,11 +134,12 @@ func TestBasicStaticIP(t *testing.T) {
}
defer e2e.DeleteGCPAddress(s, addrName)

testIng := fuzz.NewIngressBuilder("", "ingress-1", "").
testIng := fuzz.NewIngressBuilder(s.Namespace, "ingress-1", "").
DefaultBackend("service-1", intstr.FromInt(80)).
AddStaticIP(addrName).
Build()
testIng, err = Framework.Clientset.NetworkingV1beta1().Ingresses(s.Namespace).Create(testIng)
crud := e2e.IngressCRUD{C: Framework.Clientset}
testIng, err = crud.Create(testIng)
if err != nil {
t.Fatalf("error creating Ingress spec: %v", err)
}
Expand Down Expand Up @@ -197,8 +200,9 @@ func TestEdge(t *testing.T) {
t.Fatalf("error creating echo service: %v", err)
}
t.Logf("Echo service created (%s/%s)", s.Namespace, "service-1")

if _, err := Framework.Clientset.NetworkingV1beta1().Ingresses(s.Namespace).Create(tc.ing); err != nil {
crud := e2e.IngressCRUD{C: Framework.Clientset}
tc.ing.Namespace = s.Namespace // namespace depends on sandbox
if _, err = crud.Create(tc.ing); err != nil {
t.Fatalf("error creating Ingress spec: %v", err)
}
t.Logf("Ingress created (%s/%s)", s.Namespace, tc.ing.Name)
Expand Down
15 changes: 7 additions & 8 deletions cmd/e2e-test/cdn_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ import (
"reflect"
"testing"

metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/intstr"
"k8s.io/ingress-gce/pkg/annotations"
backendconfig "k8s.io/ingress-gce/pkg/apis/backendconfig/v1beta1"
Expand All @@ -37,10 +36,6 @@ import (
func TestCDN(t *testing.T) {
t.Parallel()

ing := fuzz.NewIngressBuilder("", "ingress-1", "").
AddPath("test.com", "/", "service-1", intstr.FromInt(80)).
Build()

for _, tc := range []struct {
desc string
beConfig *backendconfig.BackendConfig
Expand Down Expand Up @@ -90,12 +85,16 @@ func TestCDN(t *testing.T) {
}
t.Logf("Echo service created (%s/%s)", s.Namespace, "service-1")

if _, err := Framework.Clientset.NetworkingV1beta1().Ingresses(s.Namespace).Create(ing); err != nil {
ing := fuzz.NewIngressBuilder(s.Namespace, "ingress-1", "").
AddPath("test.com", "/", "service-1", intstr.FromInt(80)).
Build()
crud := e2e.IngressCRUD{C: Framework.Clientset}
if _, err := crud.Create(ing); err != nil {
t.Fatalf("error creating Ingress spec: %v", err)
}
t.Logf("Ingress created (%s/%s)", s.Namespace, ing.Name)

ing, err := e2e.WaitForIngress(s, ing, nil)
ing, err = e2e.WaitForIngress(s, ing, nil)
if err != nil {
t.Fatalf("error waiting for Ingress to stabilize: %v", err)
}
Expand All @@ -114,7 +113,7 @@ func TestCDN(t *testing.T) {
}

// Wait for GCLB resources to be deleted.
if err := Framework.Clientset.NetworkingV1beta1().Ingresses(s.Namespace).Delete(ing.Name, &metav1.DeleteOptions{}); err != nil {
if err := crud.Delete(s.Namespace, ing.Name); err != nil {
t.Errorf("Delete(%q) = %v, want nil", ing.Name, err)
}

Expand Down
15 changes: 8 additions & 7 deletions cmd/e2e-test/draining_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,6 @@ const (
func TestDraining(t *testing.T) {
t.Parallel()

ing := fuzz.NewIngressBuilder("", "ingress-1", "").
AddPath("test.com", "/", "service-1", intstr.FromInt(80)).
Build()

for _, tc := range []struct {
desc string
beConfig *backendconfig.BackendConfig
Expand Down Expand Up @@ -86,12 +82,17 @@ func TestDraining(t *testing.T) {
}
t.Logf("Echo service created (%s/%s)", s.Namespace, "service-1")

if _, err := Framework.Clientset.NetworkingV1beta1().Ingresses(s.Namespace).Create(ing); err != nil {
ing := fuzz.NewIngressBuilder(s.Namespace, "ingress-1", "").
AddPath("test.com", "/", "service-1", intstr.FromInt(80)).
Build()
crud := e2e.IngressCRUD{C: Framework.Clientset}
if _, err := crud.Create(ing); err != nil {
t.Fatalf("error creating Ingress spec: %v", err)
}

t.Logf("Ingress created (%s/%s)", s.Namespace, ing.Name)

ing, err := e2e.WaitForIngress(s, ing, nil)
ing, err = e2e.WaitForIngress(s, ing, nil)
if err != nil {
t.Fatalf("error waiting for Ingress to stabilize: %v", err)
}
Expand Down Expand Up @@ -149,7 +150,7 @@ func TestDraining(t *testing.T) {
deleteOptions := &fuzz.GCLBDeleteOptions{
SkipDefaultBackend: true,
}
if err := Framework.Clientset.NetworkingV1beta1().Ingresses(s.Namespace).Delete(ing.Name, &metav1.DeleteOptions{}); err != nil {
if err := crud.Delete(ing.Namespace, ing.Name); err != nil {
t.Errorf("Delete(%q) = %v, want nil", ing.Name, err)
}
t.Logf("Waiting for GCLB resources to be deleted (%s/%s)", s.Namespace, ing.Name)
Expand Down
15 changes: 7 additions & 8 deletions cmd/e2e-test/iap_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ import (
"context"
"testing"

metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/intstr"
"k8s.io/ingress-gce/pkg/annotations"
backendconfig "k8s.io/ingress-gce/pkg/apis/backendconfig/v1beta1"
Expand All @@ -36,10 +35,6 @@ import (
func TestIAP(t *testing.T) {
t.Parallel()

ing := fuzz.NewIngressBuilder("", "ingress-1", "").
AddPath("test.com", "/", "service-1", intstr.FromInt(80)).
Build()

for _, tc := range []struct {
desc string
beConfig *backendconfig.BackendConfig
Expand Down Expand Up @@ -72,12 +67,16 @@ func TestIAP(t *testing.T) {
}
t.Logf("Echo service created (%s/%s)", s.Namespace, "service-1")

if _, err := Framework.Clientset.NetworkingV1beta1().Ingresses(s.Namespace).Create(ing); err != nil {
ing := fuzz.NewIngressBuilder(s.Namespace, "ingress-1", "").
AddPath("test.com", "/", "service-1", intstr.FromInt(80)).
Build()
crud := e2e.IngressCRUD{C: Framework.Clientset}
if _, err := crud.Create(ing); err != nil {
t.Fatalf("error creating Ingress spec: %v", err)
}
t.Logf("Ingress created (%s/%s)", s.Namespace, ing.Name)

ing, err := e2e.WaitForIngress(s, ing, nil)
ing, err = e2e.WaitForIngress(s, ing, nil)
if err != nil {
t.Fatalf("error waiting for Ingress to stabilize: %v", err)
}
Expand All @@ -91,7 +90,7 @@ func TestIAP(t *testing.T) {
}

// Wait for GCLB resources to be deleted.
if err := Framework.Clientset.NetworkingV1beta1().Ingresses(s.Namespace).Delete(ing.Name, &metav1.DeleteOptions{}); err != nil {
if err := crud.Delete(ing.Namespace, ing.Name); err != nil {
t.Errorf("Delete(%q) = %v, want nil", ing.Name, err)
}

Expand Down
Loading

0 comments on commit 6a27c77

Please sign in to comment.