import ( "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/client-go/tools/record" ) func main() { // create a new event recorder object eventRecorder := record.NewFakeRecorder(100) // create an event object to record object, err := runtime.UnknownToAny(nil) if err != nil { panic(err) } event := record.Event{ Type: "Normal", Reason: "Created", Object: object, Message: "New object created", } // record the event eventRecorder.Event(object, event.Type, event.Reason, event.Message) }
import ( "k8s.io/client-go/tools/record" ) func main() { // create a new event recorder object eventRecorder := record.NewRecorder(nil, "test-controller") // create an event object to record eventRecorder.Eventf(nil, "Normal", "Created", "New object %s created", "test-object") }Example 2 creates a new `eventRecorder` using the `record.NewRecorder(*corev1client.Clientset, string)` method. This creates a new event recording object backed by the Kubernetes API server. In this example, we are using a `nil` Kubernetes client set, which means that the events will not be persisted to the API server. The code then creates a new event using the `eventRecorder.Eventf()` method. The `Eventf()` method formats a message string using `fmt.Sprintf()` and records the event against a Kubernetes object. In both examples, the `k8s.io/client-go/tools/record` package is used.