@@ -105,7 +105,7 @@ func generateProbeConfigMap(df *resourcesv1.Dragonfly, name, key, script string)
105105
106106// GenerateDragonflyResources returns the resources required for a Dragonfly
107107// Instance
108- func GenerateDragonflyResources (df * resourcesv1.Dragonfly , defaultDragonflyImage string ) ([]client.Object , error ) {
108+ func GenerateDragonflyResources (df * resourcesv1.Dragonfly , defaultDragonflyImage , operatorNamespace string ) ([]client.Object , error ) {
109109 var resources []client.Object
110110
111111 image := df .Spec .Image
@@ -617,7 +617,7 @@ func GenerateDragonflyResources(df *resourcesv1.Dragonfly, defaultDragonflyImage
617617 }
618618
619619 if isNetworkPolicyEnabled (df ) {
620- np := generateNetworkPolicy (df )
620+ np := generateNetworkPolicy (df , operatorNamespace )
621621 resources = append (resources , & np )
622622 }
623623
@@ -628,7 +628,7 @@ func isNetworkPolicyEnabled(df *resourcesv1.Dragonfly) bool {
628628 return df .Spec .NetworkPolicyEnabled == nil || * df .Spec .NetworkPolicyEnabled
629629}
630630
631- func generateNetworkPolicy (df * resourcesv1.Dragonfly ) networkingv1.NetworkPolicy {
631+ func generateNetworkPolicy (df * resourcesv1.Dragonfly , operatorNamespace string ) networkingv1.NetworkPolicy {
632632 protocolTCP := corev1 .ProtocolTCP
633633
634634 instanceSelector := map [string ]string {
@@ -637,13 +637,33 @@ func generateNetworkPolicy(df *resourcesv1.Dragonfly) networkingv1.NetworkPolicy
637637 KubernetesAppNameLabelKey : KubernetesAppName ,
638638 }
639639
640+ sameNamespacePeer := networkingv1.NetworkPolicyPeer {
641+ PodSelector : & metav1.LabelSelector {},
642+ }
643+
640644 clientPortRule := networkingv1.NetworkPolicyIngressRule {
641645 Ports : []networkingv1.NetworkPolicyPort {
642646 {
643647 Protocol : & protocolTCP ,
644648 Port : & intstr.IntOrString {Type : intstr .Int , IntVal : DragonflyPort },
645649 },
646650 },
651+ From : []networkingv1.NetworkPolicyPeer {sameNamespacePeer },
652+ }
653+
654+ operatorPeer := networkingv1.NetworkPolicyPeer {
655+ PodSelector : & metav1.LabelSelector {
656+ MatchLabels : map [string ]string {
657+ OperatorControlPlaneLabelKey : OperatorControlPlaneLabelValue ,
658+ },
659+ },
660+ }
661+ if operatorNamespace != "" {
662+ operatorPeer .NamespaceSelector = & metav1.LabelSelector {
663+ MatchLabels : map [string ]string {
664+ KubernetesNamespaceLabelKey : operatorNamespace ,
665+ },
666+ }
647667 }
648668
649669 adminPortRule := networkingv1.NetworkPolicyIngressRule {
@@ -654,14 +674,7 @@ func generateNetworkPolicy(df *resourcesv1.Dragonfly) networkingv1.NetworkPolicy
654674 },
655675 },
656676 From : []networkingv1.NetworkPolicyPeer {
657- {
658- PodSelector : & metav1.LabelSelector {
659- MatchLabels : map [string ]string {
660- OperatorControlPlaneLabelKey : OperatorControlPlaneLabelValue ,
661- },
662- },
663- NamespaceSelector : & metav1.LabelSelector {},
664- },
677+ operatorPeer ,
665678 {
666679 PodSelector : & metav1.LabelSelector {
667680 MatchLabels : instanceSelector ,
@@ -680,6 +693,7 @@ func generateNetworkPolicy(df *resourcesv1.Dragonfly) networkingv1.NetworkPolicy
680693 Port : & intstr.IntOrString {Type : intstr .Int , IntVal : df .Spec .MemcachedPort },
681694 },
682695 },
696+ From : []networkingv1.NetworkPolicyPeer {sameNamespacePeer },
683697 }
684698 ingressRules = append (ingressRules , memcachedPortRule )
685699 }
0 commit comments