@@ -122,8 +122,13 @@ func (s *configMapCatalogSourceDecorator) Pod(image string, defaultPodSecurityCo
122
122
ownerutil .AddOwner (pod , s .CatalogSource , false , true )
123
123
return pod , nil
124
124
}
125
- func (s * configMapCatalogSourceDecorator ) NetworkPolicy () * networkingv1.NetworkPolicy {
126
- return DesiredRegistryNetworkPolicy (s .CatalogSource , s .Labels ())
125
+
126
+ func (s * configMapCatalogSourceDecorator ) GRPCServerNetworkPolicy () * networkingv1.NetworkPolicy {
127
+ return DesiredGRPCServerNetworkPolicy (s .CatalogSource , s .Labels ())
128
+ }
129
+
130
+ func (s * configMapCatalogSourceDecorator ) UnpackBundlesNetworkPolicy () * networkingv1.NetworkPolicy {
131
+ return DesiredUnpackBundlesNetworkPolicy (s .CatalogSource )
127
132
}
128
133
129
134
func (s * configMapCatalogSourceDecorator ) ServiceAccount () * corev1.ServiceAccount {
@@ -214,11 +219,21 @@ func (c *ConfigMapRegistryReconciler) currentService(source configMapCatalogSour
214
219
return service , nil
215
220
}
216
221
217
- func (c * ConfigMapRegistryReconciler ) currentNetworkPolicy (source configMapCatalogSourceDecorator ) * networkingv1.NetworkPolicy {
218
- npName := source .NetworkPolicy ().GetName ()
222
+ func (c * ConfigMapRegistryReconciler ) currentGRPCServerNetworkPolicy (source configMapCatalogSourceDecorator ) * networkingv1.NetworkPolicy {
223
+ npName := source .GRPCServerNetworkPolicy ().GetName ()
224
+ np , err := c .Lister .NetworkingV1 ().NetworkPolicyLister ().NetworkPolicies (source .GetNamespace ()).Get (npName )
225
+ if err != nil {
226
+ logrus .WithField ("networkPolicy" , npName ).WithError (err ).Debug ("couldn't find grpc server network policy in cache" )
227
+ return nil
228
+ }
229
+ return np
230
+ }
231
+
232
+ func (c * ConfigMapRegistryReconciler ) currentUnpackBundlesNetworkPolicy (source configMapCatalogSourceDecorator ) * networkingv1.NetworkPolicy {
233
+ npName := source .UnpackBundlesNetworkPolicy ().GetName ()
219
234
np , err := c .Lister .NetworkingV1 ().NetworkPolicyLister ().NetworkPolicies (source .GetNamespace ()).Get (npName )
220
235
if err != nil {
221
- logrus .WithField ("networkPolicy" , npName ).WithError (err ).Debug ("couldn't find network policy in cache" )
236
+ logrus .WithField ("networkPolicy" , npName ).WithError (err ).Debug ("couldn't find unpack bundles network policy in cache" )
222
237
return nil
223
238
}
224
239
return np
@@ -342,8 +357,11 @@ func (c *ConfigMapRegistryReconciler) EnsureRegistryServer(logger *logrus.Entry,
342
357
}
343
358
344
359
//TODO: if any of these error out, we should write a status back (possibly set RegistryServiceStatus to nil so they get recreated)
345
- if err := c .ensureNetworkPolicy (source ); err != nil {
346
- return pkgerrors .Wrapf (err , "error ensuring network policy: %s" , source .GetName ())
360
+ if err := c .ensureGRPCServerNetworkPolicy (source ); err != nil {
361
+ return pkgerrors .Wrapf (err , "error ensuring grpc server network policy: %s" , source .GetName ())
362
+ }
363
+ if err := c .ensureUnpackBundlesNetworkPolicy (source ); err != nil {
364
+ return pkgerrors .Wrapf (err , "error ensuring unpack bundles network policy: %s" , source .GetName ())
347
365
}
348
366
if err := c .ensureServiceAccount (source , overwrite ); err != nil {
349
367
return pkgerrors .Wrapf (err , "error ensuring service account: %s" , source .serviceAccountName ())
@@ -382,17 +400,28 @@ func (c *ConfigMapRegistryReconciler) EnsureRegistryServer(logger *logrus.Entry,
382
400
return nil
383
401
}
384
402
385
- func (c * ConfigMapRegistryReconciler ) ensureNetworkPolicy (source configMapCatalogSourceDecorator ) error {
386
- networkPolicy := source .NetworkPolicy ()
387
- if currentNetworkPolicy := c .currentNetworkPolicy (source ); currentNetworkPolicy != nil {
388
- if sanitizedDeepEqual (networkPolicy , currentNetworkPolicy ) {
403
+ func (c * ConfigMapRegistryReconciler ) ensureGRPCServerNetworkPolicy (source configMapCatalogSourceDecorator ) error {
404
+ desired := source .GRPCServerNetworkPolicy ()
405
+ current := c .currentGRPCServerNetworkPolicy (source )
406
+ return c .ensureNetworkPolicy (desired , current )
407
+ }
408
+
409
+ func (c * ConfigMapRegistryReconciler ) ensureUnpackBundlesNetworkPolicy (source configMapCatalogSourceDecorator ) error {
410
+ desired := source .UnpackBundlesNetworkPolicy ()
411
+ current := c .currentUnpackBundlesNetworkPolicy (source )
412
+ return c .ensureNetworkPolicy (desired , current )
413
+ }
414
+
415
+ func (c * ConfigMapRegistryReconciler ) ensureNetworkPolicy (desired , current * networkingv1.NetworkPolicy ) error {
416
+ if current != nil {
417
+ if sanitizedDeepEqual (desired , current ) {
389
418
return nil
390
419
}
391
- if err := c .OpClient .DeleteNetworkPolicy (networkPolicy .GetNamespace (), networkPolicy .GetName (), metav1 .NewDeleteOptions (0 )); err != nil && ! apierrors .IsNotFound (err ) {
420
+ if err := c .OpClient .DeleteNetworkPolicy (current .GetNamespace (), current .GetName (), metav1 .NewDeleteOptions (0 )); err != nil && ! apierrors .IsNotFound (err ) {
392
421
return err
393
422
}
394
423
}
395
- _ , err := c .OpClient .CreateNetworkPolicy (networkPolicy )
424
+ _ , err := c .OpClient .CreateNetworkPolicy (desired )
396
425
return err
397
426
}
398
427
@@ -528,14 +557,26 @@ func (c *ConfigMapRegistryReconciler) CheckRegistryServer(logger *logrus.Entry,
528
557
// Check on registry resources
529
558
// TODO: more complex checks for resources
530
559
// TODO: add gRPC health check
531
- np := c .currentNetworkPolicy (source )
560
+ np := c .currentGRPCServerNetworkPolicy (source )
561
+ if np == nil {
562
+ logger .Error ("registry service not healthy: could not get grpc server network policy" )
563
+ healthy = false
564
+ return
565
+ }
566
+ if ! sanitizedDeepEqual (source .GRPCServerNetworkPolicy (), np ) {
567
+ logger .Error ("registry service not healthy: unexpected grpc server network policy" )
568
+ healthy = false
569
+ return
570
+ }
571
+
572
+ np = c .currentUnpackBundlesNetworkPolicy (source )
532
573
if np == nil {
533
- logger .Error ("registry service not healthy: could not get network policy" )
574
+ logger .Error ("registry service not healthy: could not get unpack bundles network policy" )
534
575
healthy = false
535
576
return
536
577
}
537
- if ! sanitizedDeepEqual (source .NetworkPolicy (), np ) {
538
- logger .Error ("registry service not healthy: unexpected network policy" )
578
+ if ! sanitizedDeepEqual (source .UnpackBundlesNetworkPolicy (), np ) {
579
+ logger .Error ("registry service not healthy: unexpected unpack bundles network policy" )
539
580
healthy = false
540
581
return
541
582
}
0 commit comments