@@ -186,6 +186,36 @@ var _ = Describe("Controllerutil", func() {
186
186
By ("returning no error" )
187
187
Expect (err ).NotTo (HaveOccurred ())
188
188
})
189
+
190
+ It ("errors when reconcile renames an object" , func () {
191
+ op , err := controllerutil .CreateOrUpdate (context .TODO (), c , deploy , deploymentSpecr (deplSpec ))
192
+
193
+ Expect (op ).To (BeEquivalentTo (controllerutil .OperationCreate ))
194
+ Expect (err ).NotTo (HaveOccurred ())
195
+
196
+ op , err = controllerutil .CreateOrUpdate (context .TODO (), c , deploy , deploymentRenamer )
197
+
198
+ By ("returning OperationNoop" )
199
+ Expect (op ).To (BeEquivalentTo (controllerutil .OperationNoop ))
200
+
201
+ By ("returning error" )
202
+ Expect (err ).To (HaveOccurred ())
203
+ })
204
+
205
+ It ("errors when object namespace changes" , func () {
206
+ op , err := controllerutil .CreateOrUpdate (context .TODO (), c , deploy , deploymentSpecr (deplSpec ))
207
+
208
+ Expect (op ).To (BeEquivalentTo (controllerutil .OperationCreate ))
209
+ Expect (err ).NotTo (HaveOccurred ())
210
+
211
+ op , err = controllerutil .CreateOrUpdate (context .TODO (), c , deploy , deploymentNamespaceChanger )
212
+
213
+ By ("returning OperationNoop" )
214
+ Expect (op ).To (BeEquivalentTo (controllerutil .OperationNoop ))
215
+
216
+ By ("returning error" )
217
+ Expect (err ).To (HaveOccurred ())
218
+ })
189
219
})
190
220
})
191
221
@@ -207,6 +237,18 @@ var deploymentIdentity controllerutil.ReconcileFn = func(obj runtime.Object) err
207
237
return nil
208
238
}
209
239
240
+ var deploymentRenamer controllerutil.ReconcileFn = func (obj runtime.Object ) error {
241
+ deploy := obj .(* appsv1.Deployment )
242
+ deploy .Name = fmt .Sprintf ("%s-1" , deploy .Name )
243
+ return nil
244
+ }
245
+
246
+ var deploymentNamespaceChanger controllerutil.ReconcileFn = func (obj runtime.Object ) error {
247
+ deploy := obj .(* appsv1.Deployment )
248
+ deploy .Namespace = fmt .Sprintf ("%s-1" , deploy .Namespace )
249
+ return nil
250
+ }
251
+
210
252
func deploymentScaler (replicas int32 ) controllerutil.ReconcileFn {
211
253
fn := func (obj runtime.Object ) error {
212
254
deploy := obj .(* appsv1.Deployment )
0 commit comments