forked from eraser-dev/eraser
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: ashnamehrotra <[email protected]>
- Loading branch information
1 parent
4a6cf31
commit 9dcdfb5
Showing
2 changed files
with
133 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
//go:build e2e | ||
// +build e2e | ||
|
||
package e2e | ||
|
||
import ( | ||
"context" | ||
"testing" | ||
|
||
"github.com/eraser-dev/eraser/test/e2e/util" | ||
|
||
eraserv1alpha1 "github.com/eraser-dev/eraser/api/v1alpha1" | ||
corev1 "k8s.io/api/core/v1" | ||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | ||
"k8s.io/apimachinery/pkg/labels" | ||
"sigs.k8s.io/e2e-framework/klient/wait" | ||
"sigs.k8s.io/e2e-framework/klient/wait/conditions" | ||
"sigs.k8s.io/e2e-framework/pkg/envconf" | ||
"sigs.k8s.io/e2e-framework/pkg/features" | ||
) | ||
|
||
func TestDeleteManager(t *testing.T) { | ||
deleteManagerFeat := features.New("Deleting manager pod while current ImageJob is running should delete ImageJob"). | ||
Assess("Delete controller-manager pod", func(ctx context.Context, t *testing.T, cfg *envconf.Config) context.Context { | ||
c, err := cfg.NewClient() | ||
if err != nil { | ||
t.Fatal("Failed to create new client", err) | ||
} | ||
|
||
var ls corev1.PodList | ||
err = c.Resources().List(ctx, &ls, func(o *metav1.ListOptions) { | ||
o.LabelSelector = labels.SelectorFromSet(map[string]string{util.ManagerLabelKey: util.ManagerLabelValue}).String() | ||
Check failure on line 32 in test/e2e/tests/collector_delete_manager/eraser_test.go GitHub Actions / Run e2e tests / E2E Tests (1.25.11, ./test/e2e/tests/collector_delete_manager)
Check failure on line 32 in test/e2e/tests/collector_delete_manager/eraser_test.go GitHub Actions / Run e2e tests / E2E Tests (1.26.6, ./test/e2e/tests/collector_delete_manager)
Check failure on line 32 in test/e2e/tests/collector_delete_manager/eraser_test.go GitHub Actions / Run e2e tests / E2E Tests (1.27.3, ./test/e2e/tests/collector_delete_manager)
|
||
}) | ||
if err != nil { | ||
t.Errorf("could not list manager pods: %v", err) | ||
} | ||
|
||
if len(ls.Items) != 1 { | ||
t.Error("incorrect number of manager pods: ", len(ls.Items)) | ||
} | ||
|
||
if err := util.KubectlDelete(cfg.KubeconfigFile(), util.TestNamespace, []string{"pod", ls.Items[0].Name}); err != nil { | ||
t.Error("unable to delete eraser-controller-manager pod") | ||
} | ||
|
||
return ctx | ||
}). | ||
Assess("Check ImageJob is deleted", func(ctx context.Context, t *testing.T, cfg *envconf.Config) context.Context { | ||
c, err := cfg.NewClient() | ||
if err != nil { | ||
t.Fatal("Failed to create new client", err) | ||
} | ||
|
||
var ls eraserv1alpha1.ImageJobList | ||
err = c.Resources().List(ctx, &ls) | ||
if err != nil { | ||
t.Errorf("could not list ImageJob: %v", err) | ||
} | ||
|
||
if len(ls.Items) != 1 { | ||
t.Error("incorrect number of ImageJobs: ", len(ls.Items)) | ||
} | ||
|
||
err = wait.For(conditions.New(c.Resources()).ResourcesDeleted(&ls), wait.WithTimeout(util.Timeout)) | ||
if err != nil { | ||
t.Errorf("error waiting for pods to be deleted: %v", err) | ||
} | ||
|
||
return ctx | ||
}). | ||
Feature() | ||
|
||
util.Testenv.Test(t, deleteManagerFeat) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
//go:build e2e | ||
// +build e2e | ||
|
||
package e2e | ||
|
||
import ( | ||
"os" | ||
"testing" | ||
|
||
eraserv1alpha1 "github.com/eraser-dev/eraser/api/v1alpha1" | ||
"github.com/eraser-dev/eraser/test/e2e/util" | ||
utilruntime "k8s.io/apimachinery/pkg/util/runtime" | ||
"k8s.io/client-go/kubernetes/scheme" | ||
"sigs.k8s.io/e2e-framework/pkg/env" | ||
"sigs.k8s.io/e2e-framework/pkg/envconf" | ||
"sigs.k8s.io/e2e-framework/pkg/envfuncs" | ||
) | ||
|
||
func TestMain(m *testing.M) { | ||
utilruntime.Must(eraserv1alpha1.AddToScheme(scheme.Scheme)) | ||
|
||
removerImage := util.ParsedImages.RemoverImage | ||
managerImage := util.ParsedImages.ManagerImage | ||
collectorImage := util.ParsedImages.CollectorImage | ||
|
||
util.Testenv = env.NewWithConfig(envconf.New()) | ||
// Create KinD Cluster | ||
util.Testenv.Setup( | ||
envfuncs.CreateKindClusterWithConfig(util.KindClusterName, util.NodeVersion, util.KindConfigPath), | ||
envfuncs.CreateNamespace(util.TestNamespace), | ||
util.LoadImageToCluster(util.KindClusterName, util.ManagerImage, util.ManagerTarballPath), | ||
util.LoadImageToCluster(util.KindClusterName, util.RemoverImage, util.RemoverTarballPath), | ||
util.LoadImageToCluster(util.KindClusterName, util.RemoverImage, util.RemoverTarballPath), | ||
util.LoadImageToCluster(util.KindClusterName, util.CollectorImage, util.CollectorTarballPath), | ||
util.LoadImageToCluster(util.KindClusterName, util.NonVulnerableImage, ""), | ||
util.HelmDeployLatestEraserRelease(util.TestNamespace, | ||
"--set", util.ScannerEnable.Set("false"), | ||
"--set", util.CollectorEnable.Set("false"), | ||
"--set", util.RemoverImageRepo.Set(removerImage.Repo), | ||
"--set", util.RemoverImageTag.Set(removerImage.Tag), | ||
"--set", util.ManagerImageRepo.Set(managerImage.Repo), | ||
"--set", util.ManagerImageTag.Set(managerImage.Tag), | ||
), | ||
util.UpgradeEraserHelm(util.TestNamespace, | ||
"--set", util.ScannerEnable.Set("false"), | ||
"--set", util.RemoverImageRepo.Set(removerImage.Repo), | ||
"--set", util.RemoverImageTag.Set(removerImage.Tag), | ||
"--set", util.CollectorEnable.Set("true"), | ||
"--set", util.CollectorImageRepo.Set(collectorImage.Repo), | ||
"--set", util.CollectorImageTag.Set(collectorImage.Tag), | ||
"--set", util.ManagerImageRepo.Set(managerImage.Repo), | ||
"--set", util.ManagerImageTag.Set(managerImage.Tag), | ||
"--set", util.CleanupOnSuccessDelay.Set("20m"), | ||
), | ||
).Finish( | ||
envfuncs.DestroyKindCluster(util.KindClusterName), | ||
) | ||
os.Exit(util.Testenv.Run(m)) | ||
} |