Skip to content

Commit

Permalink
Update finalizer tests to validate against an ingress finalizer
Browse files Browse the repository at this point in the history
  • Loading branch information
skmatti committed Nov 22, 2019
1 parent 5dd7e68 commit 3d1ac40
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 14 deletions.
20 changes: 8 additions & 12 deletions cmd/e2e-test/finalizer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,8 @@ func TestFinalizer(t *testing.T) {
t.Fatalf("error waiting for Ingress %s to stabilize: %v", ingKey, err)
}

ingFinalizers := ing.GetFinalizers()
if len(ingFinalizers) != 1 || ingFinalizers[0] != common.FinalizerKey {
t.Fatalf("GetFinalizers() = %+v, want [%q]", ingFinalizers, common.FinalizerKey)
if err := e2e.CheckFinalizer(ing); err != nil {
t.Fatalf("CheckFinalizer(%s) = %v, want nil", ingKey, err)
}

// Perform whitebox testing.
Expand Down Expand Up @@ -109,9 +108,8 @@ func TestFinalizerIngressClassChange(t *testing.T) {
t.Fatalf("error waiting for Ingress %s to stabilize: %v", ingKey, err)
}

ingFinalizers := ing.GetFinalizers()
if len(ingFinalizers) != 1 || ingFinalizers[0] != common.FinalizerKey {
t.Fatalf("GetFinalizers() = %+v, want [%q]", ingFinalizers, common.FinalizerKey)
if err := e2e.CheckFinalizer(ing); err != nil {
t.Fatalf("CheckFinalizer(%s) = %v, want nil", ingKey, err)
}

// Perform whitebox testing.
Expand Down Expand Up @@ -184,13 +182,11 @@ func TestFinalizerIngressesWithSharedResources(t *testing.T) {
t.Fatalf("error waiting for Ingress %s to stabilize: %v", otherIngKey, err)
}

ingFinalizers := ing.GetFinalizers()
if len(ingFinalizers) != 1 || ingFinalizers[0] != common.FinalizerKey {
t.Fatalf("GetFinalizers() = %+v, want [%q]", ingFinalizers, common.FinalizerKey)
if err := e2e.CheckFinalizer(ing); err != nil {
t.Fatalf("CheckFinalizer(%s) = %v, want nil", ingKey, err)
}
otherIngFinalizers := otherIng.GetFinalizers()
if len(otherIngFinalizers) != 1 || otherIngFinalizers[0] != common.FinalizerKey {
t.Fatalf("GetFinalizers() = %+v, want [%q]", otherIngFinalizers, common.FinalizerKey)
if err := e2e.CheckFinalizer(otherIng); err != nil {
t.Fatalf("CheckFinalizer(%s) = %v, want nil", otherIngKey, err)
}

// Perform whitebox testing.
Expand Down
6 changes: 5 additions & 1 deletion cmd/e2e-test/upgrade/finalizer.go
Original file line number Diff line number Diff line change
Expand Up @@ -103,11 +103,15 @@ func (fr *Finalizer) PostUpgrade() error {
// Ingress status is updated to unstable, which would be set back to stable
// after WaitForFinalizer below finishes successfully.
fr.s.PutStatus(e2e.Unstable)
// Wait for finalizer to be added and verify that correct finalizer is added to the ingress after the upgrade.
// Wait for an ingress finalizer to be added on the ingress after the upgrade.
ing, err := e2e.WaitForFinalizer(fr.s, fr.ing)
if err != nil {
fr.t.Fatalf("e2e.WaitForFinalizer(_, %q) = _, %v, want nil", ingKey, err)
}
// Assert that v1 finalizer is added.
if err := e2e.CheckV1Finalizer(ing); err != nil {
fr.t.Fatalf("CheckV1Finalizer(%s) = %v, want nil", ingKey, err)
}
gclb, err := e2e.WhiteboxTest(ing, fr.s, fr.framework.Cloud, "")
if err != nil {
fr.t.Fatalf("e2e.WhiteboxTest(%s, ...) = %v, want nil", ingKey, err)
Expand Down
28 changes: 27 additions & 1 deletion pkg/e2e/helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,9 @@ func WaitForFinalizer(s *Sandbox, ing *v1beta1.Ingress) (*v1beta1.Ingress, error
return false, nil
}
ingFinalizers := ing.GetFinalizers()
if len(ingFinalizers) != 1 || ingFinalizers[0] != common.FinalizerKey {
if l := len(ingFinalizers); l > 1 {
return true, fmt.Errorf("unexpected number of finalizers for ingress %v, got %d", ing, l)
} else if l != 1 {
klog.Infof("WaitForFinalizer(%s) = %v, finalizer not added for Ingress %v", ingKey, ingFinalizers, ing)
return false, nil
}
Expand Down Expand Up @@ -473,3 +475,27 @@ func CheckNegStatus(svc *v1.Service, expectSvcPors []string) (annotations.NegSta
}
return negStatus, nil
}

// CheckFinalizer asserts that an ingress finalizer exists on Ingress.
func CheckFinalizer(ing *v1beta1.Ingress) error {
ingFinalizers := ing.GetFinalizers()
if l := len(ingFinalizers); l != 1 {
return fmt.Errorf("expected 1 Finalizer but got %d", l)
}
if ingFinalizers[0] != common.FinalizerKey && ingFinalizers[0] != common.FinalizerKeyV2 {
return fmt.Errorf("unexpected finalizer %q found", ingFinalizers[0])
}
return nil
}

// CheckV1Finalizer asserts that v1 finalizer exists on Ingress.
func CheckV1Finalizer(ing *v1beta1.Ingress) error {
ingFinalizers := ing.GetFinalizers()
if l := len(ingFinalizers); l != 1 {
return fmt.Errorf("expected 1 Finalizer but got %d", l)
}
if ingFinalizers[0] != common.FinalizerKey {
return fmt.Errorf("expected Finalizer %q but got %q", common.FinalizerKey, ingFinalizers[0])
}
return nil
}

0 comments on commit 3d1ac40

Please sign in to comment.