@@ -156,7 +156,7 @@ func Run(cmd *cobra.Command, args []string) (returnErr error) {
156
156
157
157
// To help users notice issues with the agent, we show the error messages in
158
158
// the agent pod's events.
159
- eventf , err := newEventf (log , config . InstallNS )
159
+ eventf , err := newEventf (log )
160
160
if err != nil {
161
161
return fmt .Errorf ("failed to create event recorder: %v" , err )
162
162
}
@@ -260,7 +260,19 @@ func Run(cmd *cobra.Command, args []string) (returnErr error) {
260
260
// POD_NAME to contain the pod name. Note that the RBAC rule allowing sending
261
261
// events is attached to the pod's service account, not the impersonated service
262
262
// account (venafi-connection).
263
- func newEventf (log logr.Logger , installNS string ) (Eventf , error ) {
263
+ func newEventf (log logr.Logger ) (Eventf , error ) {
264
+ podName := os .Getenv ("POD_NAME" )
265
+ podNode := os .Getenv ("POD_NODE" )
266
+ podUID := os .Getenv ("POD_UID" )
267
+ podNamespace := os .Getenv ("POD_NAMESPACE" )
268
+ if podName == "" || podNode == "" || podUID == "" || podNamespace == "" {
269
+ log .Info (
270
+ "Pod event recorder disabled" ,
271
+ "reason" , "The agent does not appear to be running in a Kubernetes cluster." ,
272
+ "detail" , "When running in a Kubernetes cluster the following environment variables must be set: POD_NAME, POD_NODE, POD_UID, POD_NAMESPACE" ,
273
+ )
274
+ return func (eventType , reason , msg string , args ... interface {}) {}, nil
275
+ }
264
276
restcfg , err := kubeconfig .LoadRESTConfig ("" )
265
277
if err != nil {
266
278
return nil , fmt .Errorf ("failed to load kubeconfig: %v" , err )
@@ -269,22 +281,17 @@ func newEventf(log logr.Logger, installNS string) (Eventf, error) {
269
281
_ = corev1 .AddToScheme (scheme )
270
282
271
283
var eventf Eventf
272
- if os .Getenv ("POD_NAME" ) == "" {
273
- eventf = func (eventType , reason , msg string , args ... interface {}) {}
274
- log .Error (nil , "Error messages will not show in the pod's events because the POD_NAME environment variable is empty" )
275
- } else {
276
- podName := os .Getenv ("POD_NAME" )
277
284
278
- eventClient , err := kubernetes .NewForConfig (restcfg )
279
- if err != nil {
280
- return eventf , fmt .Errorf ("failed to create event client: %v" , err )
281
- }
282
- broadcaster := record .NewBroadcaster ()
283
- broadcaster .StartRecordingToSink (& clientgocorev1.EventSinkImpl {Interface : eventClient .CoreV1 ().Events (installNS )})
284
- eventRec := broadcaster .NewRecorder (scheme , corev1.EventSource {Component : "venafi-kubernetes-agent" , Host : os . Getenv ( "POD_NODE" ) })
285
- eventf = func (eventType , reason , msg string , args ... interface {}) {
286
- eventRec .Eventf (& corev1.Pod {ObjectMeta : v1.ObjectMeta {Name : podName , Namespace : installNS , UID : types .UID (os . Getenv ( "POD_UID" ) )}}, eventType , reason , msg , args ... )
287
- }
285
+ eventClient , err := kubernetes .NewForConfig (restcfg )
286
+ if err != nil {
287
+ return eventf , fmt .Errorf ("failed to create event client: %v" , err )
288
+ }
289
+ broadcaster := record .NewBroadcaster ()
290
+ broadcaster .StartRecordingToSink (& clientgocorev1.EventSinkImpl {Interface : eventClient .CoreV1 ().Events (podNamespace )})
291
+ eventRec := broadcaster .NewRecorder (scheme , corev1.EventSource {Component : "venafi-kubernetes-agent" , Host : podNode })
292
+ eventf = func (eventType , reason , msg string , args ... interface {}) {
293
+ eventRec .Eventf (& corev1.Pod {ObjectMeta : v1.ObjectMeta {Name : podName , Namespace : podNamespace , UID : types .UID (podUID )}}, eventType , reason , msg , args ... )
294
+
288
295
}
289
296
290
297
return eventf , nil
0 commit comments