* 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>
87 lines
1.8 KiB
Go
87 lines
1.8 KiB
Go
package framework
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"os"
|
|
"path/filepath"
|
|
"time"
|
|
|
|
"go.uber.org/zap"
|
|
"k8s.io/client-go/rest"
|
|
"sigs.k8s.io/controller-runtime/pkg/envtest"
|
|
|
|
"github.com/fission/fission/pkg/crd"
|
|
"github.com/fission/fission/pkg/utils"
|
|
"github.com/fission/fission/pkg/utils/loggerfactory"
|
|
)
|
|
|
|
const (
|
|
EXECUTOR_URL = "http://executor.fission"
|
|
STORAGESVC_URL = "http://storagesvc.fission"
|
|
)
|
|
|
|
type ServiceInfo struct {
|
|
Port int
|
|
}
|
|
|
|
type Framework struct {
|
|
env *envtest.Environment
|
|
config *rest.Config
|
|
logger *zap.Logger
|
|
ServiceInfo map[string]ServiceInfo
|
|
}
|
|
|
|
func NewFramework() *Framework {
|
|
return &Framework{
|
|
logger: loggerfactory.GetLogger(),
|
|
env: &envtest.Environment{
|
|
CRDDirectoryPaths: []string{filepath.Join("../../..", "crds", "v1")},
|
|
ErrorIfCRDPathMissing: true,
|
|
CRDInstallOptions: envtest.CRDInstallOptions{
|
|
MaxTime: 60 * time.Second,
|
|
},
|
|
BinaryAssetsDirectory: os.Getenv("KUBEBUILDER_ASSETS"),
|
|
},
|
|
ServiceInfo: make(map[string]ServiceInfo),
|
|
}
|
|
}
|
|
|
|
func (f *Framework) Start(ctx context.Context) error {
|
|
var err error
|
|
f.config, err = f.env.Start()
|
|
if err != nil {
|
|
return fmt.Errorf("error starting test env: %v", err)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (f *Framework) ToggleMetricAddr() error {
|
|
port, err := utils.FindFreePort()
|
|
if err != nil {
|
|
return fmt.Errorf("error finding unused port: %v", err)
|
|
}
|
|
os.Setenv("METRICS_ADDR", fmt.Sprint(port))
|
|
return nil
|
|
}
|
|
|
|
func (f *Framework) RestConfig() *rest.Config {
|
|
return f.config
|
|
}
|
|
|
|
func (f *Framework) Logger() *zap.Logger {
|
|
return f.logger
|
|
}
|
|
|
|
func (f *Framework) ClientGen() *crd.ClientGenerator {
|
|
return crd.NewClientGeneratorWithRestConfig(f.config)
|
|
}
|
|
|
|
func (f *Framework) Stop() error {
|
|
err := f.env.Stop()
|
|
if err != nil {
|
|
return fmt.Errorf("error stopping test env: %v", err)
|
|
}
|
|
return nil
|
|
}
|