Skip to content

Commit b47a5b6

Browse files
committed
Use standard EventRecord to use event compression
1 parent 6cac1c9 commit b47a5b6

File tree

12 files changed

+57
-83
lines changed

12 files changed

+57
-83
lines changed

main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,11 @@ import (
3939
"k8s.io/api/core/v1"
4040
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
4141
"k8s.io/client-go/kubernetes"
42-
"k8s.io/client-go/kubernetes/scheme"
4342
v1core "k8s.io/client-go/kubernetes/typed/core/v1"
4443
"k8s.io/client-go/tools/record"
4544

4645
"github.com/arangodb/kube-arangodb/pkg/client"
46+
scheme "github.com/arangodb/kube-arangodb/pkg/generated/clientset/versioned/scheme"
4747
"github.com/arangodb/kube-arangodb/pkg/logging"
4848
"github.com/arangodb/kube-arangodb/pkg/operator"
4949
"github.com/arangodb/kube-arangodb/pkg/server"

pkg/deployment/deployment.go

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,9 @@ import (
3232
"github.com/arangodb/arangosync/client"
3333
"github.com/rs/zerolog"
3434
"github.com/rs/zerolog/log"
35-
"k8s.io/api/core/v1"
3635
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3736
"k8s.io/client-go/kubernetes"
38-
corev1 "k8s.io/client-go/kubernetes/typed/core/v1"
37+
"k8s.io/client-go/tools/record"
3938

4039
api "github.com/arangodb/kube-arangodb/pkg/apis/deployment/v1alpha"
4140
"github.com/arangodb/kube-arangodb/pkg/deployment/chaos"
@@ -60,6 +59,7 @@ type Dependencies struct {
6059
Log zerolog.Logger
6160
KubeCli kubernetes.Interface
6261
DatabaseCRCli versioned.Interface
62+
EventRecorder record.EventRecorder
6363
}
6464

6565
// deploymentEventType strongly typed type of event
@@ -96,8 +96,6 @@ type Deployment struct {
9696
stopCh chan struct{}
9797
stopped int32
9898

99-
eventsCli corev1.EventInterface
100-
10199
inspectTrigger trigger.Trigger
102100
updateDeploymentTrigger trigger.Trigger
103101
clientCache *clientCache
@@ -121,7 +119,6 @@ func New(config Config, deps Dependencies, apiObject *api.ArangoDeployment) (*De
121119
deps: deps,
122120
eventCh: make(chan *deploymentEvent, deploymentEventQueueSize),
123121
stopCh: make(chan struct{}),
124-
eventsCli: deps.KubeCli.Core().Events(apiObject.GetNamespace()),
125122
clientCache: newClientCache(deps.KubeCli, apiObject),
126123
}
127124
d.status.last = *(apiObject.Status.DeepCopy())
@@ -337,11 +334,8 @@ func (d *Deployment) handleArangoDeploymentUpdatedEvent() error {
337334

338335
// CreateEvent creates a given event.
339336
// On error, the error is logged.
340-
func (d *Deployment) CreateEvent(evt *v1.Event) {
341-
_, err := d.eventsCli.Create(evt)
342-
if err != nil {
343-
d.deps.Log.Error().Err(err).Interface("event", *evt).Msg("Failed to record event")
344-
}
337+
func (d *Deployment) CreateEvent(evt *k8sutil.Event) {
338+
d.deps.EventRecorder.Event(evt.InvolvedObject, evt.Type, evt.Reason, evt.Message)
345339
}
346340

347341
// Update the status of the API object from the internal status

pkg/deployment/members.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ import (
2828

2929
"github.com/dchest/uniuri"
3030
"github.com/rs/zerolog"
31-
"k8s.io/api/core/v1"
3231
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3332

3433
api "github.com/arangodb/kube-arangodb/pkg/apis/deployment/v1alpha"
@@ -42,7 +41,7 @@ func (d *Deployment) createInitialMembers(apiObject *api.ArangoDeployment) error
4241
log.Debug().Msg("creating initial members...")
4342

4443
// Go over all groups and create members
45-
var events []*v1.Event
44+
var events []*k8sutil.Event
4645
status, lastVersion := d.GetStatus()
4746
if err := apiObject.ForeachServerGroup(func(group api.ServerGroup, spec api.ServerGroupSpec, members *api.MemberStatusList) error {
4847
for len(*members) < spec.GetCount() {

pkg/deployment/reconcile/context.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ type Context interface {
5959
GetSyncServerClient(ctx context.Context, group api.ServerGroup, id string) (client.API, error)
6060
// CreateEvent creates a given event.
6161
// On error, the error is logged.
62-
CreateEvent(evt *v1.Event)
62+
CreateEvent(evt *k8sutil.Event)
6363
// CreateMember adds a new member to the given group.
6464
// If ID is non-empty, it will be used, otherwise a new ID is created.
6565
CreateMember(group api.ServerGroup, id string) error

pkg/deployment/resources/context.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ type Context interface {
6464
GetNamespace() string
6565
// CreateEvent creates a given event.
6666
// On error, the error is logged.
67-
CreateEvent(evt *v1.Event)
67+
CreateEvent(evt *k8sutil.Event)
6868
// GetOwnedPods returns a list of all pods owned by the deployment.
6969
GetOwnedPods() ([]v1.Pod, error)
7070
// GetOwnedPVCs returns a list of all PVCs owned by the deployment.

pkg/deployment/resources/pod_inspector.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ import (
2727
"fmt"
2828
"time"
2929

30-
"k8s.io/api/core/v1"
3130
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3231

3332
api "github.com/arangodb/kube-arangodb/pkg/apis/deployment/v1alpha"
@@ -47,7 +46,7 @@ const (
4746
// the member status of the deployment accordingly.
4847
func (r *Resources) InspectPods(ctx context.Context) error {
4948
log := r.log
50-
var events []*v1.Event
49+
var events []*k8sutil.Event
5150

5251
pods, err := r.context.GetOwnedPods()
5352
if err != nil {

pkg/operator/operator_deployment.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,7 @@ func (o *Operator) makeDeploymentConfigAndDeps(apiObject *api.ArangoDeployment)
212212
Logger(),
213213
KubeCli: o.Dependencies.KubeCli,
214214
DatabaseCRCli: o.Dependencies.CRCli,
215+
EventRecorder: o.Dependencies.EventRecorder,
215216
}
216217
return cfg, deps
217218
}

pkg/operator/operator_deployment_relication.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -208,8 +208,9 @@ func (o *Operator) makeDeploymentReplicationConfigAndDeps(apiObject *api.ArangoD
208208
Log: o.Dependencies.LogService.MustGetLogger("deployment-replication").With().
209209
Str("deployment-replication", apiObject.GetName()).
210210
Logger(),
211-
KubeCli: o.Dependencies.KubeCli,
212-
CRCli: o.Dependencies.CRCli,
211+
KubeCli: o.Dependencies.KubeCli,
212+
CRCli: o.Dependencies.CRCli,
213+
EventRecorder: o.Dependencies.EventRecorder,
213214
}
214215
return cfg, deps
215216
}

pkg/operator/operator_local_storage.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,8 +210,9 @@ func (o *Operator) makeLocalStorageConfigAndDeps(apiObject *api.ArangoLocalStora
210210
Log: o.Dependencies.LogService.MustGetLogger("storage").With().
211211
Str("localStorage", apiObject.GetName()).
212212
Logger(),
213-
KubeCli: o.Dependencies.KubeCli,
214-
StorageCRCli: o.Dependencies.CRCli,
213+
KubeCli: o.Dependencies.KubeCli,
214+
StorageCRCli: o.Dependencies.CRCli,
215+
EventRecorder: o.Dependencies.EventRecorder,
215216
}
216217
return cfg, deps
217218
}

pkg/replication/deployment_replication.go

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,9 @@ import (
2929
"time"
3030

3131
"github.com/rs/zerolog"
32-
"k8s.io/api/core/v1"
3332
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3433
"k8s.io/client-go/kubernetes"
35-
corev1 "k8s.io/client-go/kubernetes/typed/core/v1"
34+
"k8s.io/client-go/tools/record"
3635

3736
"github.com/arangodb/arangosync/client"
3837
api "github.com/arangodb/kube-arangodb/pkg/apis/replication/v1alpha"
@@ -49,9 +48,10 @@ type Config struct {
4948

5049
// Dependencies holds dependent services for a DeploymentReplication
5150
type Dependencies struct {
52-
Log zerolog.Logger
53-
KubeCli kubernetes.Interface
54-
CRCli versioned.Interface
51+
Log zerolog.Logger
52+
KubeCli kubernetes.Interface
53+
CRCli versioned.Interface
54+
EventRecorder record.EventRecorder
5555
}
5656

5757
// deploymentReplicationEvent strongly typed type of event
@@ -84,8 +84,6 @@ type DeploymentReplication struct {
8484
stopCh chan struct{}
8585
stopped int32
8686

87-
eventsCli corev1.EventInterface
88-
8987
inspectTrigger trigger.Trigger
9088
recentInspectionErrors int
9189
clientCache client.ClientCache
@@ -103,7 +101,6 @@ func New(config Config, deps Dependencies, apiObject *api.ArangoDeploymentReplic
103101
deps: deps,
104102
eventCh: make(chan *deploymentReplicationEvent, deploymentReplicationEventQueueSize),
105103
stopCh: make(chan struct{}),
106-
eventsCli: deps.KubeCli.Core().Events(apiObject.GetNamespace()),
107104
}
108105

109106
go dr.run()
@@ -241,10 +238,8 @@ func (dr *DeploymentReplication) handleArangoDeploymentReplicationUpdatedEvent(e
241238

242239
// createEvent creates a given event.
243240
// On error, the error is logged.
244-
func (dr *DeploymentReplication) createEvent(evt *v1.Event) {
245-
if _, err := dr.eventsCli.Create(evt); err != nil {
246-
dr.deps.Log.Error().Err(err).Interface("event", *evt).Msg("Failed to record event")
247-
}
241+
func (dr *DeploymentReplication) createEvent(evt *k8sutil.Event) {
242+
dr.deps.EventRecorder.Event(evt.InvolvedObject, evt.Type, evt.Reason, evt.Message)
248243
}
249244

250245
// Update the status of the API object from the internal status

0 commit comments

Comments
 (0)