layer1: checkpoint namespace manager runtime series
This commit is contained in:
@@ -40,4 +40,4 @@ func registerBuilderNamespace(ctx context.Context, namespace string, envw builde
|
||||
if pkgw != nil {
|
||||
pkgw.AddNamespace(ctx, namespace, mgr)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,4 +49,4 @@ func TestNewNamespaceSubscriberAddAndResync(t *testing.T) {
|
||||
if envw.lastNamespace != "tenant-builder-a" || pkgw.lastNamespace != "tenant-builder-a" {
|
||||
t.Fatalf("expected namespace to be forwarded to both watchers")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,4 +29,4 @@ func NewNamespaceSubscriber(
|
||||
return nil
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,4 +34,4 @@ func TestNewNamespaceSubscriberAddAndResync(t *testing.T) {
|
||||
if poolmgr.lastNamespace != "tenant-executor-b" {
|
||||
t.Fatalf("expected namespace to be forwarded to executor type")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -71,6 +71,7 @@ import (
|
||||
"github.com/fission/fission/pkg/utils"
|
||||
"github.com/fission/fission/pkg/utils/manager"
|
||||
)
|
||||
|
||||
// StartNSWatcher registers a Kubernetes Namespace Informer that reacts immediately
|
||||
// when a Namespace with label fission.io/managed=true is created or relabeled.
|
||||
//
|
||||
|
||||
@@ -21,21 +21,25 @@ type fakeExecutorType struct {
|
||||
}
|
||||
|
||||
func (f *fakeExecutorType) Run(context.Context, manager.Interface) {}
|
||||
func (f *fakeExecutorType) GetTypeName(context.Context) fv1.ExecutorType { return fv1.ExecutorTypePoolmgr }
|
||||
func (f *fakeExecutorType) GetTypeName(context.Context) fv1.ExecutorType {
|
||||
return fv1.ExecutorTypePoolmgr
|
||||
}
|
||||
func (f *fakeExecutorType) GetFuncSvc(context.Context, *fv1.Function) (*fscache.FuncSvc, error) {
|
||||
return nil, nil
|
||||
}
|
||||
func (f *fakeExecutorType) GetFuncSvcFromCache(context.Context, *fv1.Function) (*fscache.FuncSvc, error) {
|
||||
return nil, nil
|
||||
}
|
||||
func (f *fakeExecutorType) DumpDebugInfo(context.Context) error { return nil }
|
||||
func (f *fakeExecutorType) DeleteFuncSvcFromCache(context.Context, *fscache.FuncSvc) {}
|
||||
func (f *fakeExecutorType) TapService(context.Context, string) error { return nil }
|
||||
func (f *fakeExecutorType) UnTapService(context.Context, *metav1.ObjectMeta, string) {}
|
||||
func (f *fakeExecutorType) DumpDebugInfo(context.Context) error { return nil }
|
||||
func (f *fakeExecutorType) DeleteFuncSvcFromCache(context.Context, *fscache.FuncSvc) {}
|
||||
func (f *fakeExecutorType) TapService(context.Context, string) error { return nil }
|
||||
func (f *fakeExecutorType) UnTapService(context.Context, *metav1.ObjectMeta, string) {}
|
||||
func (f *fakeExecutorType) MarkSpecializationFailure(context.Context, *metav1.ObjectMeta) {}
|
||||
func (f *fakeExecutorType) IsValid(context.Context, *fscache.FuncSvc) bool { return true }
|
||||
func (f *fakeExecutorType) RefreshFuncPods(context.Context, *zap.Logger, fv1.Function) error { return nil }
|
||||
func (f *fakeExecutorType) AdoptExistingResources(context.Context) {}
|
||||
func (f *fakeExecutorType) IsValid(context.Context, *fscache.FuncSvc) bool { return true }
|
||||
func (f *fakeExecutorType) RefreshFuncPods(context.Context, *zap.Logger, fv1.Function) error {
|
||||
return nil
|
||||
}
|
||||
func (f *fakeExecutorType) AdoptExistingResources(context.Context) {}
|
||||
func (f *fakeExecutorType) CleanupOldExecutorObjects(context.Context) {}
|
||||
func (f *fakeExecutorType) AddNamespace(ctx context.Context, ns string, mgr manager.Interface) error {
|
||||
f.addCalls++
|
||||
@@ -62,7 +66,7 @@ func TestRegisterExecutorTypes(t *testing.T) {
|
||||
|
||||
func TestRegisterExecutorTypesAggregatesErrors(t *testing.T) {
|
||||
err := registerExecutorTypes(context.Background(), zap.NewNop(), "tenant-executor-a", map[fv1.ExecutorType]executortype.ExecutorType{
|
||||
fv1.ExecutorTypePoolmgr: &fakeExecutorType{addErr: errors.New("poolmgr failed")},
|
||||
fv1.ExecutorTypePoolmgr: &fakeExecutorType{addErr: errors.New("poolmgr failed")},
|
||||
fv1.ExecutorTypeContainer: &fakeExecutorType{},
|
||||
}, nil)
|
||||
if err == nil {
|
||||
@@ -71,4 +75,4 @@ func TestRegisterExecutorTypesAggregatesErrors(t *testing.T) {
|
||||
if err.Error() != "poolmgr failed" {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,4 +28,4 @@ func registerRouterNamespace(ctx context.Context, namespace string, ts routerNam
|
||||
return nil
|
||||
}
|
||||
return ts.AddNamespace(ctx, namespace, mgr)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,4 +49,4 @@ func TestRegisterRouterNamespacePropagatesError(t *testing.T) {
|
||||
if err == nil || err.Error() != "add failed" {
|
||||
t.Fatalf("expected router add error to be propagated, got %v", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ import (
|
||||
"github.com/fission/fission/pkg/utils"
|
||||
"github.com/fission/fission/pkg/utils/manager"
|
||||
)
|
||||
|
||||
// StartNSWatcher registers a Kubernetes Namespace Informer for the router.
|
||||
// Whenever a Namespace with label fission.io/managed=true appears (or is relabeled),
|
||||
// the router immediately subscribes to HTTPTriggers and Functions in that namespace.
|
||||
|
||||
@@ -25,10 +25,10 @@ type NamespaceSubscriber interface {
|
||||
}
|
||||
|
||||
type NamespaceSubscriberFuncs struct {
|
||||
SubscriberName string
|
||||
AddFunc func(ctx context.Context, record NamespaceRecord) error
|
||||
RemoveFunc func(ctx context.Context, record NamespaceRecord) error
|
||||
ResyncFunc func(ctx context.Context, record NamespaceRecord) error
|
||||
SubscriberName string
|
||||
AddFunc func(ctx context.Context, record NamespaceRecord) error
|
||||
RemoveFunc func(ctx context.Context, record NamespaceRecord) error
|
||||
ResyncFunc func(ctx context.Context, record NamespaceRecord) error
|
||||
}
|
||||
|
||||
func (s NamespaceSubscriberFuncs) Name() string {
|
||||
|
||||
@@ -44,7 +44,7 @@ const (
|
||||
type NamespaceRemovalStrategy string
|
||||
|
||||
const (
|
||||
NamespaceRemovalStrategyTrackOnly NamespaceRemovalStrategy = "track-only"
|
||||
NamespaceRemovalStrategyTrackOnly NamespaceRemovalStrategy = "track-only"
|
||||
NamespaceRemovalStrategyDispatchRemove NamespaceRemovalStrategy = "dispatch-remove"
|
||||
)
|
||||
|
||||
|
||||
@@ -16,11 +16,11 @@ import (
|
||||
)
|
||||
|
||||
type testNamespaceSubscriber struct {
|
||||
name string
|
||||
addErr error
|
||||
removeErr error
|
||||
resyncErr error
|
||||
addCalls int
|
||||
name string
|
||||
addErr error
|
||||
removeErr error
|
||||
resyncErr error
|
||||
addCalls int
|
||||
removeCalls int
|
||||
resyncCalls int
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user