mirror of
https://github.com/rancher/types.git
synced 2025-06-26 05:31:32 +00:00
Add events to context
This commit is contained in:
parent
6def3cbeeb
commit
e023022b6f
@ -4,23 +4,37 @@ import (
|
||||
"context"
|
||||
|
||||
"github.com/rancher/norman/controller"
|
||||
"github.com/rancher/norman/event"
|
||||
"github.com/rancher/norman/signal"
|
||||
"github.com/rancher/norman/types"
|
||||
appsv1beta2 "github.com/rancher/types/apis/apps/v1beta2"
|
||||
corev1 "github.com/rancher/types/apis/core/v1"
|
||||
extv1beta1 "github.com/rancher/types/apis/extensions/v1beta1"
|
||||
managementv3 "github.com/rancher/types/apis/management.cattle.io/v3"
|
||||
managementSchema "github.com/rancher/types/apis/management.cattle.io/v3/schema"
|
||||
projectv3 "github.com/rancher/types/apis/project.cattle.io/v3"
|
||||
rbacv1 "github.com/rancher/types/apis/rbac.authorization.k8s.io/v1"
|
||||
"github.com/sirupsen/logrus"
|
||||
"k8s.io/api/core/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/client-go/dynamic"
|
||||
"k8s.io/client-go/kubernetes"
|
||||
typedcorev1 "k8s.io/client-go/kubernetes/typed/core/v1"
|
||||
"k8s.io/client-go/rest"
|
||||
"k8s.io/client-go/tools/record"
|
||||
)
|
||||
|
||||
type ManagementContext struct {
|
||||
eventBroadcaster record.EventBroadcaster
|
||||
|
||||
LocalConfig *rest.Config
|
||||
RESTConfig rest.Config
|
||||
UnversionedClient rest.Interface
|
||||
K8sClient kubernetes.Interface
|
||||
Events record.EventRecorder
|
||||
EventLogger event.Logger
|
||||
Schemas *types.Schemas
|
||||
Scheme *runtime.Scheme
|
||||
|
||||
Management managementv3.Interface
|
||||
}
|
||||
@ -67,6 +81,11 @@ func NewManagementContext(config rest.Config) (*ManagementContext, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
context.K8sClient, err = kubernetes.NewForConfig(&config)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
dynamicConfig := config
|
||||
if dynamicConfig.NegotiatedSerializer == nil {
|
||||
configConfig := dynamic.ContentConfig()
|
||||
@ -78,11 +97,33 @@ func NewManagementContext(config rest.Config) (*ManagementContext, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
context.Schemas = types.NewSchemas().
|
||||
AddSchemas(managementSchema.Schemas)
|
||||
|
||||
context.Scheme = runtime.NewScheme()
|
||||
managementv3.AddToScheme(context.Scheme)
|
||||
|
||||
context.eventBroadcaster = record.NewBroadcaster()
|
||||
context.Events = context.eventBroadcaster.NewRecorder(context.Scheme, v1.EventSource{
|
||||
Component: "CattleManagementServer",
|
||||
})
|
||||
context.EventLogger = event.NewLogger(context.Events)
|
||||
|
||||
return context, err
|
||||
}
|
||||
|
||||
func (c *ManagementContext) Start(ctx context.Context) error {
|
||||
logrus.Info("Starting management controllers")
|
||||
|
||||
watcher := c.eventBroadcaster.StartRecordingToSink(&typedcorev1.EventSinkImpl{
|
||||
Interface: c.K8sClient.CoreV1().Events(""),
|
||||
})
|
||||
|
||||
go func() {
|
||||
<-ctx.Done()
|
||||
watcher.Stop()
|
||||
}()
|
||||
|
||||
return controller.SyncThenSync(ctx, 5, c.controllers()...)
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user