Allow namespace configuration for different CRD resources in Fission (#2539)
* Allow multiple namespaces for builder manager * Enable multiple namespaces for executor informers * Added missing context * helm chart support for multiple namespaces * Directly consume map type from GetInformerForNamespaces fn * Optimize function resolver by choosing namespace-specific informer * helm chart support for multiple namespaces * consider default namespace and move duplicate code to helm template * Improve documentation for fission namespace values Signed-off-by: Sanket Sudake <sanketsudake@gmail.com> Co-authored-by: shubham bansal <shubhambansaliimtgn@gmail.com>
This commit is contained in:
co-authored by
shubham bansal
parent
facd14de90
commit
827baea974
@@ -26,8 +26,8 @@ import (
|
||||
|
||||
fv1 "github.com/fission/fission/pkg/apis/core/v1"
|
||||
"github.com/fission/fission/pkg/generated/clientset/versioned"
|
||||
genInformer "github.com/fission/fission/pkg/generated/informers/externalversions"
|
||||
"github.com/fission/fission/pkg/mqtrigger/messageQueue"
|
||||
"github.com/fission/fission/pkg/utils"
|
||||
"github.com/fission/fission/pkg/utils/metrics"
|
||||
)
|
||||
|
||||
@@ -80,12 +80,12 @@ func MakeMessageQueueTriggerManager(logger *zap.Logger,
|
||||
|
||||
func (mqt *MessageQueueTriggerManager) Run(ctx context.Context) {
|
||||
go mqt.service()
|
||||
informerFactory := genInformer.NewSharedInformerFactory(mqt.fissionClient, time.Minute*30)
|
||||
mqTriggerInformer := informerFactory.Core().V1().MessageQueueTriggers().Informer()
|
||||
mqTriggerInformer.AddEventHandler(mqt.mqtInformerHandlers())
|
||||
go mqTriggerInformer.Run(ctx.Done())
|
||||
if ok := k8sCache.WaitForCacheSync(ctx.Done(), mqTriggerInformer.HasSynced); !ok {
|
||||
mqt.logger.Fatal("failed to wait for caches to sync")
|
||||
for _, informer := range utils.GetInformersForNamespaces(mqt.fissionClient, time.Minute*30, fv1.MessageQueueResource) {
|
||||
informer.AddEventHandler(mqt.mqtInformerHandlers())
|
||||
go informer.Run(ctx.Done())
|
||||
if ok := k8sCache.WaitForCacheSync(ctx.Done(), informer.HasSynced); !ok {
|
||||
mqt.logger.Fatal("failed to wait for caches to sync")
|
||||
}
|
||||
}
|
||||
go metrics.ServeMetrics(ctx, mqt.logger)
|
||||
}
|
||||
|
||||
@@ -24,7 +24,6 @@ import (
|
||||
fv1 "github.com/fission/fission/pkg/apis/core/v1"
|
||||
"github.com/fission/fission/pkg/crd"
|
||||
"github.com/fission/fission/pkg/executor/util"
|
||||
genInformer "github.com/fission/fission/pkg/generated/informers/externalversions"
|
||||
"github.com/fission/fission/pkg/utils"
|
||||
)
|
||||
|
||||
@@ -158,10 +157,14 @@ func StartScalerManager(ctx context.Context, logger *zap.Logger, routerURL strin
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "error waiting for CRDs")
|
||||
}
|
||||
informerFactory := genInformer.NewSharedInformerFactory(fissionClient, time.Minute*30)
|
||||
mqTriggerInformer := informerFactory.Core().V1().MessageQueueTriggers().Informer()
|
||||
mqTriggerInformer.AddEventHandler(mqTriggerEventHandlers(ctx, logger, kubeClient, routerURL))
|
||||
mqTriggerInformer.Run(ctx.Done())
|
||||
|
||||
for _, informer := range utils.GetInformersForNamespaces(fissionClient, time.Minute*30, fv1.MessageQueueResource) {
|
||||
informer.AddEventHandler(mqTriggerEventHandlers(ctx, logger, kubeClient, routerURL))
|
||||
go informer.Run(ctx.Done())
|
||||
if ok := k8sCache.WaitForCacheSync(ctx.Done(), informer.HasSynced); !ok {
|
||||
logger.Fatal("failed to wait for caches to sync")
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user