@@ -26,6 +26,7 @@ import (
2626 "agones.dev/agones/pkg/client/informers/externalversions"
2727 listerv1alpha1 "agones.dev/agones/pkg/client/listers/stable/v1alpha1"
2828 "agones.dev/agones/pkg/util/crd"
29+ "agones.dev/agones/pkg/util/logfields"
2930 "agones.dev/agones/pkg/util/runtime"
3031 "agones.dev/agones/pkg/util/webhooks"
3132 "agones.dev/agones/pkg/util/workerqueue"
@@ -50,7 +51,7 @@ import (
5051
5152// Controller is a the GameServerSet controller
5253type Controller struct {
53- logger * logrus.Entry
54+ baseLogger * logrus.Entry
5455 crdGetter v1beta1.CustomResourceDefinitionInterface
5556 gameServerSetGetter getterv1alpha1.GameServerSetsGetter
5657 gameServerSetLister listerv1alpha1.GameServerSetLister
@@ -87,12 +88,12 @@ func NewController(
8788 fleetSynced : fInformer .HasSynced ,
8889 }
8990
90- c .logger = runtime .NewLoggerWithType (c )
91- c .workerqueue = workerqueue .NewWorkerQueue (c .syncFleet , c .logger , stable .GroupName + ".FleetController" )
91+ c .baseLogger = runtime .NewLoggerWithType (c )
92+ c .workerqueue = workerqueue .NewWorkerQueue (c .syncFleet , c .baseLogger , logfields . FleetKey , stable .GroupName + ".FleetController" )
9293 health .AddLivenessCheck ("fleet-workerqueue" , healthcheck .Check (c .workerqueue .Healthy ))
9394
9495 eventBroadcaster := record .NewBroadcaster ()
95- eventBroadcaster .StartLogging (c .logger .Infof )
96+ eventBroadcaster .StartLogging (c .baseLogger .Infof )
9697 eventBroadcaster .StartRecordingToSink (& typedcorev1.EventSinkImpl {Interface : kubeClient .CoreV1 ().Events ("" )})
9798 c .recorder = eventBroadcaster .NewRecorder (scheme .Scheme , corev1.EventSource {Component : "fleet-controller" })
9899
@@ -126,7 +127,7 @@ func NewController(
126127// Should only be called on fleet create operations.
127128// nolint:dupl
128129func (c * Controller ) creationMutationHandler (review admv1beta1.AdmissionReview ) (admv1beta1.AdmissionReview , error ) {
129- c .logger .WithField ("review" , review ).Info ("creationMutationHandler" )
130+ c .baseLogger .WithField ("review" , review ).Info ("creationMutationHandler" )
130131
131132 obj := review .Request .Object
132133 fleet := & stablev1alpha1.Fleet {}
@@ -154,7 +155,7 @@ func (c *Controller) creationMutationHandler(review admv1beta1.AdmissionReview)
154155 return review , errors .Wrapf (err , "error creating json for patch for Fleet %s" , fleet .ObjectMeta .Name )
155156 }
156157
157- c .logger . WithField ( " fleet" , fleet . ObjectMeta . Name ).WithField ("patch" , string (jsn )).Infof ("patch created!" )
158+ c .loggerForFleet ( fleet ).WithField ("patch" , string (jsn )).Infof ("patch created!" )
158159
159160 pt := admv1beta1 .PatchTypeJSONPatch
160161 review .Response .PatchType = & pt
@@ -166,7 +167,7 @@ func (c *Controller) creationMutationHandler(review admv1beta1.AdmissionReview)
166167// creationValidationHandler that validates a Fleet when it is created
167168// Should only be called on Fleet create and Update operations.
168169func (c * Controller ) creationValidationHandler (review admv1beta1.AdmissionReview ) (admv1beta1.AdmissionReview , error ) {
169- c .logger .WithField ("review" , review ).Info ("creationValidationHandler" )
170+ c .baseLogger .WithField ("review" , review ).Info ("creationValidationHandler" )
170171
171172 obj := review .Request .Object
172173 fleet := & stablev1alpha1.Fleet {}
@@ -191,7 +192,7 @@ func (c *Controller) creationValidationHandler(review admv1beta1.AdmissionReview
191192 Details : & details ,
192193 }
193194
194- c .logger .WithField ("review" , review ).Info ("Invalid Fleet" )
195+ c .loggerForFleet ( fleet ) .WithField ("review" , review ).Info ("Invalid Fleet" )
195196 return review , nil
196197 }
197198
@@ -201,12 +202,12 @@ func (c *Controller) creationValidationHandler(review admv1beta1.AdmissionReview
201202// Run the Fleet controller. Will block until stop is closed.
202203// Runs threadiness number workers to process the rate limited queue
203204func (c * Controller ) Run (workers int , stop <- chan struct {}) error {
204- err := crd .WaitForEstablishedCRD (c .crdGetter , "fleets.stable.agones.dev" , c .logger )
205+ err := crd .WaitForEstablishedCRD (c .crdGetter , "fleets.stable.agones.dev" , c .baseLogger )
205206 if err != nil {
206207 return err
207208 }
208209
209- c .logger .Info ("Wait for cache sync" )
210+ c .baseLogger .Info ("Wait for cache sync" )
210211 if ! cache .WaitForCacheSync (stop , c .gameServerSetSynced , c .fleetSynced ) {
211212 return errors .New ("failed to wait for caches to sync" )
212213 }
@@ -215,6 +216,14 @@ func (c *Controller) Run(workers int, stop <-chan struct{}) error {
215216 return nil
216217}
217218
219+ func (c * Controller ) loggerForFleetKey (key string ) * logrus.Entry {
220+ return logfields .AugmentLogEntry (c .baseLogger , logfields .FleetKey , key )
221+ }
222+
223+ func (c * Controller ) loggerForFleet (f * v1alpha1.Fleet ) * logrus.Entry {
224+ return c .loggerForFleetKey (f .Namespace + "/" + f .Name ).WithField ("fleet" , f )
225+ }
226+
218227// gameServerSetEventHandler enqueues the owning Fleet for this GameServerSet,
219228// assuming that it has one
220229func (c * Controller ) gameServerSetEventHandler (obj interface {}) {
@@ -227,9 +236,9 @@ func (c *Controller) gameServerSetEventHandler(obj interface{}) {
227236 fleet , err := c .fleetLister .Fleets (gsSet .ObjectMeta .Namespace ).Get (ref .Name )
228237 if err != nil {
229238 if k8serrors .IsNotFound (err ) {
230- c .logger .WithField ("ref" , ref ).Info ("Owner Fleet no longer available for syncing" )
239+ c .baseLogger .WithField ("ref" , ref ).Info ("Owner Fleet no longer available for syncing" )
231240 } else {
232- runtime .HandleError (c .logger . WithField ( " fleet" , fleet . ObjectMeta . Name ).WithField ("ref" , ref ),
241+ runtime .HandleError (c .loggerForFleet ( fleet ).WithField ("ref" , ref ),
233242 errors .Wrap (err , "error retrieving GameServerSet owner" ))
234243 }
235244 return
@@ -240,20 +249,20 @@ func (c *Controller) gameServerSetEventHandler(obj interface{}) {
240249// syncFleet synchronised the fleet CRDs and configures/updates
241250// backing GameServerSets
242251func (c * Controller ) syncFleet (key string ) error {
243- c .logger . WithField ( "key" , key ).Info ("Synchronising" )
252+ c .loggerForFleetKey ( key ).Info ("Synchronising" )
244253
245254 // Convert the namespace/name string into a distinct namespace and name
246255 namespace , name , err := cache .SplitMetaNamespaceKey (key )
247256 if err != nil {
248257 // don't return an error, as we don't want this retried
249- runtime .HandleError (c .logger . WithField ( "key" , key ), errors .Wrapf (err , "invalid resource key" ))
258+ runtime .HandleError (c .loggerForFleetKey ( key ), errors .Wrapf (err , "invalid resource key" ))
250259 return nil
251260 }
252261
253262 fleet , err := c .fleetLister .Fleets (namespace ).Get (name )
254263 if err != nil {
255264 if k8serrors .IsNotFound (err ) {
256- c .logger . WithField ( "key" , key ).Info ("Fleet is no longer available for syncing" )
265+ c .loggerForFleetKey ( key ).Info ("Fleet is no longer available for syncing" )
257266 return nil
258267 }
259268 return errors .Wrapf (err , "error retrieving fleet %s from namespace %s" , name , namespace )
@@ -267,7 +276,7 @@ func (c *Controller) syncFleet(key string) error {
267276 active , rest := c .filterGameServerSetByActive (fleet , list )
268277 // if there isn't an active gameServerSet, create one (but don't persist yet)
269278 if active == nil {
270- c .logger . WithField ( " fleet" , fleet . ObjectMeta . Name ).Info ("could not find active GameServerSet, creating" )
279+ c .loggerForFleet ( fleet ).Info ("could not find active GameServerSet, creating" )
271280 active = fleet .GameServerSet ()
272281 }
273282
@@ -371,7 +380,7 @@ func (c *Controller) deleteEmptyGameServerSets(fleet *stablev1alpha1.Fleet, list
371380func (c * Controller ) recreateDeployment (fleet * stablev1alpha1.Fleet , rest []* stablev1alpha1.GameServerSet ) (int32 , error ) {
372381 for _ , gsSet := range rest {
373382 if gsSet .Spec .Replicas != 0 {
374- c .logger .WithField ("gameserverset" , gsSet .ObjectMeta .Name ).Info ("applying recreate deployment: scaling to 0" )
383+ c .loggerForFleet ( fleet ) .WithField ("gameserverset" , gsSet .ObjectMeta .Name ).Info ("applying recreate deployment: scaling to 0" )
375384 gsSetCopy := gsSet .DeepCopy ()
376385 gsSetCopy .Spec .Replicas = 0
377386 if _ , err := c .gameServerSetGetter .GameServerSets (gsSetCopy .ObjectMeta .Namespace ).Update (gsSetCopy ); err != nil {
@@ -434,7 +443,7 @@ func (c *Controller) rollingUpdateActive(fleet *stablev1alpha1.Fleet, active *st
434443 replicas = fleet .LowerBoundReplicas (replicas - sumAllocated )
435444 }
436445
437- c .logger .WithField ("gameserverset" , active .ObjectMeta .Name ).WithField ("replicas" , replicas ).
446+ c .loggerForFleet ( fleet ) .WithField ("gameserverset" , active .ObjectMeta .Name ).WithField ("replicas" , replicas ).
438447 Info ("applying rolling update to active gameserverset" )
439448
440449 return replicas , nil
@@ -467,7 +476,7 @@ func (c *Controller) rollingUpdateRest(fleet *stablev1alpha1.Fleet, rest []*stab
467476 gsSetCopy := gsSet .DeepCopy ()
468477 gsSetCopy .Spec .Replicas = fleet .LowerBoundReplicas (gsSetCopy .Spec .Replicas - unavailable )
469478
470- c .logger .WithField ("gameserverset" , gsSet .ObjectMeta .Name ).WithField ("replicas" , gsSetCopy .Spec .Replicas ).
479+ c .loggerForFleet ( fleet ) .WithField ("gameserverset" , gsSet .ObjectMeta .Name ).WithField ("replicas" , gsSetCopy .Spec .Replicas ).
471480 Info ("applying rolling update to inactive gameserverset" )
472481
473482 if _ , err := c .gameServerSetGetter .GameServerSets (gsSetCopy .ObjectMeta .Namespace ).Update (gsSetCopy ); err != nil {
@@ -486,8 +495,7 @@ func (c *Controller) rollingUpdateRest(fleet *stablev1alpha1.Fleet, rest []*stab
486495// updateFleetStatus gets the GameServerSets for this Fleet and then
487496// calculates the counts for the status, and updates the Fleet
488497func (c * Controller ) updateFleetStatus (fleet * stablev1alpha1.Fleet ) error {
489-
490- c .logger .WithField ("key" , fleet .Name ).Info ("Update Fleet Status" )
498+ c .loggerForFleet (fleet ).Info ("Update Fleet Status" )
491499
492500 list , err := ListGameServerSetsByFleetOwner (c .gameServerSetLister , fleet )
493501 if err != nil {
0 commit comments