Envtest based integration tests for Fission (#2858)

* skeleton for envtest fission
* Refactor code and add CLI test
* hack
* Update server test
* remove skip-ci for lint tests
* Pass client go storagesvc
* Add clientGen interface across code
* Fix storagesvc test
* Fix cmd client
* add retry in server test
* Fix concurrenct access to pool deployment
* Remove old executor test
* get rid of ginkgo/gomega
* disable flaky test
* flaky test
* revert ci change
* handle err from ParseBool

---------

Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
Co-authored-by: Pranoy Kundu <pranoy1998k@gmail.com>
This commit is contained in:
Sanket Sudake
2023-10-26 12:09:11 +05:30
committed by GitHub
co-authored by Pranoy Kundu
parent 15e16fcc82
commit 8a17d391c5
44 changed files with 534 additions and 524 deletions
+1 -2
View File
@@ -39,8 +39,7 @@ type ArchivePruner struct {
const defaultPruneInterval int = 60 // in minutes
func MakeArchivePruner(logger *zap.Logger, stowClient *StowClient, pruneInterval time.Duration) (*ArchivePruner, error) {
clientGen := crd.NewClientGenerator()
func MakeArchivePruner(logger *zap.Logger, clientGen crd.ClientGeneratorInterface, stowClient *StowClient, pruneInterval time.Duration) (*ArchivePruner, error) {
fissionClient, err := clientGen.GetFissionClient()
if err != nil {
return nil, errors.Wrap(err, "failed to get fission client")
+3 -2
View File
@@ -33,6 +33,7 @@ import (
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
"github.com/fission/fission/pkg/crd"
"github.com/fission/fission/pkg/storagesvc"
)
@@ -138,7 +139,7 @@ func TestS3StorageService(t *testing.T) {
storage := storagesvc.NewS3Storage()
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
_ = storagesvc.Start(ctx, logger, storage, port)
_ = storagesvc.Start(ctx, crd.NewClientGenerator(), logger, storage, port)
time.Sleep(time.Second)
client := MakeClient(fmt.Sprintf("http://localhost:%v/", 8081))
@@ -216,7 +217,7 @@ func TestLocalStorageService(t *testing.T) {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
os.Setenv("METRICS_ADDR", "8083")
_ = storagesvc.Start(ctx, logger, storage, port)
_ = storagesvc.Start(ctx, crd.NewClientGenerator(), logger, storage, port)
time.Sleep(time.Second)
client := MakeClient(fmt.Sprintf("http://localhost:%v/", port))
+4 -3
View File
@@ -30,6 +30,7 @@ import (
"github.com/pkg/errors"
"go.uber.org/zap"
"github.com/fission/fission/pkg/crd"
"github.com/fission/fission/pkg/utils/httpserver"
"github.com/fission/fission/pkg/utils/metrics"
otelUtils "github.com/fission/fission/pkg/utils/otel"
@@ -281,7 +282,7 @@ func (ss *StorageService) Start(ctx context.Context, port int) {
}
// Start runs storage service
func Start(ctx context.Context, logger *zap.Logger, storage Storage, port int) error {
func Start(ctx context.Context, clientGen crd.ClientGeneratorInterface, logger *zap.Logger, storage Storage, port int) error {
enablePruner, err := strconv.ParseBool(os.Getenv("PRUNE_ENABLED"))
if err != nil {
logger.Warn("PRUNE_ENABLED value not set. Enabling archive pruner by default.", zap.Error(err))
@@ -295,7 +296,7 @@ func Start(ctx context.Context, logger *zap.Logger, storage Storage, port int) e
// create http handlers
storageService := MakeStorageService(logger, storageClient, port)
go metrics.ServeMetrics(ctx, logger)
go metrics.ServeMetrics(ctx, "storagesvc", logger)
go storageService.Start(ctx, port)
// enablePruner prevents storagesvc unit test from needing to talk to kubernetes
@@ -305,7 +306,7 @@ func Start(ctx context.Context, logger *zap.Logger, storage Storage, port int) e
if err != nil {
pruneInterval = defaultPruneInterval
}
pruner, err := MakeArchivePruner(logger, storageClient, time.Duration(pruneInterval))
pruner, err := MakeArchivePruner(logger, clientGen, storageClient, time.Duration(pruneInterval))
if err != nil {
return errors.Wrap(err, "Error creating archivePruner")
}