@@ -23,12 +23,11 @@ import (
23
23
corev1 "k8s.io/api/core/v1"
24
24
eventsv1 "k8s.io/api/events/v1"
25
25
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
26
+ "k8s.io/apimachinery/pkg/fields"
26
27
"k8s.io/apimachinery/pkg/watch"
27
- "k8s.io/client-go/kubernetes"
28
28
"k8s.io/client-go/kubernetes/scheme"
29
29
ref "k8s.io/client-go/tools/reference"
30
30
"sigs.k8s.io/controller-runtime/pkg/controller"
31
- "sigs.k8s.io/controller-runtime/pkg/envtest"
32
31
"sigs.k8s.io/controller-runtime/pkg/handler"
33
32
"sigs.k8s.io/controller-runtime/pkg/manager"
34
33
"sigs.k8s.io/controller-runtime/pkg/reconcile"
@@ -46,13 +45,15 @@ var _ = Describe("recorder", func() {
46
45
Expect (err ).NotTo (HaveOccurred ())
47
46
48
47
By ("Creating the Controller" )
49
- recorder := cm .GetEventRecorderFor ("test-deprecated-recorder" ) //nolint:staticcheck
48
+ deprecatedRecorder := cm .GetEventRecorderFor ("test-deprecated-recorder" ) //nolint:staticcheck
49
+ recorder := cm .GetEventRecorder ("test-deprecated-recorder" )
50
50
instance , err := controller .New ("foo-controller" , cm , controller.Options {
51
51
Reconciler : reconcile .Func (
52
52
func (ctx context.Context , request reconcile.Request ) (reconcile.Result , error ) {
53
53
dp , err := clientset .AppsV1 ().Deployments (request .Namespace ).Get (ctx , request .Name , metav1.GetOptions {})
54
54
Expect (err ).NotTo (HaveOccurred ())
55
- recorder .Event (dp , corev1 .EventTypeNormal , "test-reason" , "test-msg" )
55
+ deprecatedRecorder .Event (dp , corev1 .EventTypeNormal , "deprecated-test-reason" , "deprecated-test-msg" )
56
+ recorder .Eventf (dp , nil , corev1 .EventTypeNormal , "test-reason" , "test-action" , "test-note" )
56
57
return reconcile.Result {}, nil
57
58
}),
58
59
})
@@ -92,107 +93,41 @@ var _ = Describe("recorder", func() {
92
93
deployment , err = clientset .AppsV1 ().Deployments ("default" ).Create (ctx , deployment , metav1.CreateOptions {})
93
94
Expect (err ).NotTo (HaveOccurred ())
94
95
95
- By ("Validate event is published as expected" )
96
- evtWatcher , err := clientset .CoreV1 ().Events ("default" ).Watch (ctx , metav1.ListOptions {})
96
+ // watch both deprecated and new events based on the reason
97
+ By ("Validate deprecated event is published as expected" )
98
+ deprecatedEvtWatcher , err := clientset .CoreV1 ().Events ("default" ).Watch (ctx ,
99
+ metav1.ListOptions {FieldSelector : fields .OneTermEqualSelector ("reason" , "deprecated-test-reason" ).String ()})
97
100
Expect (err ).NotTo (HaveOccurred ())
98
101
99
- resultEvent := <- evtWatcher .ResultChan ()
102
+ resultEvent := <- deprecatedEvtWatcher .ResultChan ()
100
103
101
104
Expect (resultEvent .Type ).To (Equal (watch .Added ))
102
- evt , isEvent := resultEvent .Object .(* corev1.Event )
105
+ deprecatedEvt , isEvent := resultEvent .Object .(* corev1.Event )
103
106
Expect (isEvent ).To (BeTrue ())
104
107
105
108
dpRef , err := ref .GetReference (scheme .Scheme , deployment )
106
109
Expect (err ).NotTo (HaveOccurred ())
107
110
108
- Expect (evt .InvolvedObject ).To (Equal (* dpRef ))
109
- Expect (evt .Type ).To (Equal (corev1 .EventTypeNormal ))
110
- Expect (evt .Reason ).To (Equal ("test-reason" ))
111
- Expect (evt .Message ).To (Equal ("test-msg" ))
112
- })
113
- })
114
-
115
- Describe ("recorder" , func () {
116
- It ("should publish events" , func (ctx SpecContext ) {
117
- By ("Creating the Manager" )
118
- // this test needs its own env for now to not interfere with the previous one.
119
- // Once the deprecated API is removed this can be removed.
120
- testenv := & envtest.Environment {}
121
-
122
- cfg , err := testenv .Start ()
123
- Expect (err ).NotTo (HaveOccurred ())
124
- defer testenv .Stop () //nolint:errcheck
125
-
126
- clientset , err := kubernetes .NewForConfig (cfg )
127
- Expect (err ).NotTo (HaveOccurred ())
128
-
129
- cm , err := manager .New (cfg , manager.Options {})
130
- Expect (err ).NotTo (HaveOccurred ())
131
-
132
- By ("Creating the Controller" )
133
- recorder := cm .GetEventRecorder ("test-recorder" )
134
- instance , err := controller .New ("bar-controller" , cm , controller.Options {
135
- Reconciler : reconcile .Func (
136
- func (ctx context.Context , request reconcile.Request ) (reconcile.Result , error ) {
137
- dp , err := clientset .AppsV1 ().Deployments (request .Namespace ).Get (ctx , request .Name , metav1.GetOptions {})
138
- Expect (err ).NotTo (HaveOccurred ())
139
- recorder .Eventf (dp , nil , corev1 .EventTypeNormal , "test-reason" , "test-action" , "test-msg" )
140
- return reconcile.Result {}, nil
141
- }),
142
- })
143
- Expect (err ).NotTo (HaveOccurred ())
144
-
145
- By ("Watching Resources" )
146
- err = instance .Watch (source .Kind (cm .GetCache (), & appsv1.Deployment {}, & handler.TypedEnqueueRequestForObject [* appsv1.Deployment ]{}))
147
- Expect (err ).NotTo (HaveOccurred ())
148
-
149
- By ("Starting the Manager" )
150
- go func () {
151
- defer GinkgoRecover ()
152
- Expect (cm .Start (ctx )).NotTo (HaveOccurred ())
153
- }()
154
-
155
- deployment := & appsv1.Deployment {
156
- ObjectMeta : metav1.ObjectMeta {Name : "deployment-name" },
157
- Spec : appsv1.DeploymentSpec {
158
- Selector : & metav1.LabelSelector {
159
- MatchLabels : map [string ]string {"foo" : "bar" },
160
- },
161
- Template : corev1.PodTemplateSpec {
162
- ObjectMeta : metav1.ObjectMeta {Labels : map [string ]string {"foo" : "bar" }},
163
- Spec : corev1.PodSpec {
164
- Containers : []corev1.Container {
165
- {
166
- Name : "nginx" ,
167
- Image : "nginx" ,
168
- },
169
- },
170
- },
171
- },
172
- },
173
- }
174
-
175
- By ("Invoking Reconciling" )
176
- deployment , err = clientset .AppsV1 ().Deployments ("default" ).Create (ctx , deployment , metav1.CreateOptions {})
177
- Expect (err ).NotTo (HaveOccurred ())
111
+ Expect (deprecatedEvt .InvolvedObject ).To (Equal (* dpRef ))
112
+ Expect (deprecatedEvt .Type ).To (Equal (corev1 .EventTypeNormal ))
113
+ Expect (deprecatedEvt .Reason ).To (Equal ("deprecated-test-reason" ))
114
+ Expect (deprecatedEvt .Message ).To (Equal ("deprecated-test-msg" ))
178
115
179
116
By ("Validate event is published as expected" )
180
- evtWatcher , err := clientset .EventsV1 ().Events ("default" ).Watch (ctx , metav1.ListOptions {})
117
+ evtWatcher , err := clientset .EventsV1 ().Events ("default" ).Watch (ctx ,
118
+ metav1.ListOptions {FieldSelector : fields .OneTermEqualSelector ("reason" , "test-reason" ).String ()})
181
119
Expect (err ).NotTo (HaveOccurred ())
182
120
183
- resultEvent : = <- evtWatcher .ResultChan ()
121
+ resultEvent = <- evtWatcher .ResultChan ()
184
122
185
123
Expect (resultEvent .Type ).To (Equal (watch .Added ))
186
124
evt , isEvent := resultEvent .Object .(* eventsv1.Event )
187
125
Expect (isEvent ).To (BeTrue ())
188
126
189
- dpRef , err := ref .GetReference (scheme .Scheme , deployment )
190
- Expect (err ).NotTo (HaveOccurred ())
191
-
192
127
Expect (evt .Regarding ).To (Equal (* dpRef ))
193
128
Expect (evt .Type ).To (Equal (corev1 .EventTypeNormal ))
194
129
Expect (evt .Reason ).To (Equal ("test-reason" ))
195
- Expect (evt .Note ).To (Equal ("test-msg " ))
130
+ Expect (evt .Note ).To (Equal ("test-note " ))
196
131
})
197
132
})
198
133
})
0 commit comments