@@ -122,8 +122,13 @@ func (s *configMapCatalogSourceDecorator) Pod(image string, defaultPodSecurityCo
122122 ownerutil .AddOwner (pod , s .CatalogSource , false , true )
123123 return pod , nil
124124}
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 )
127132}
128133
129134func (s * configMapCatalogSourceDecorator ) ServiceAccount () * corev1.ServiceAccount {
@@ -214,11 +219,21 @@ func (c *ConfigMapRegistryReconciler) currentService(source configMapCatalogSour
214219 return service , nil
215220}
216221
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 ()
219234 np , err := c .Lister .NetworkingV1 ().NetworkPolicyLister ().NetworkPolicies (source .GetNamespace ()).Get (npName )
220235 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" )
222237 return nil
223238 }
224239 return np
@@ -342,8 +357,11 @@ func (c *ConfigMapRegistryReconciler) EnsureRegistryServer(logger *logrus.Entry,
342357 }
343358
344359 //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 ())
347365 }
348366 if err := c .ensureServiceAccount (source , overwrite ); err != nil {
349367 return pkgerrors .Wrapf (err , "error ensuring service account: %s" , source .serviceAccountName ())
@@ -382,17 +400,28 @@ func (c *ConfigMapRegistryReconciler) EnsureRegistryServer(logger *logrus.Entry,
382400 return nil
383401}
384402
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 ) {
389418 return nil
390419 }
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 ) {
392421 return err
393422 }
394423 }
395- _ , err := c .OpClient .CreateNetworkPolicy (networkPolicy )
424+ _ , err := c .OpClient .CreateNetworkPolicy (desired )
396425 return err
397426}
398427
@@ -528,14 +557,26 @@ func (c *ConfigMapRegistryReconciler) CheckRegistryServer(logger *logrus.Entry,
528557 // Check on registry resources
529558 // TODO: more complex checks for resources
530559 // 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 )
532573 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" )
534575 healthy = false
535576 return
536577 }
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" )
539580 healthy = false
540581 return
541582 }
0 commit comments