Skip to content

Commit a918a7a

Browse files
committed
Add DNS network policy for OCP
1 parent 5216179 commit a918a7a

File tree

1 file changed

+23
-1
lines changed

1 file changed

+23
-1
lines changed

controllers/webspherelibertyapplication_controller.go

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -408,8 +408,30 @@ func (r *ReconcileWebSphereLiberty) Reconcile(ctx context.Context, request ctrl.
408408
OperatorAllowAPIServerAccessLabel: "true",
409409
},
410410
}
411+
// Add OpenShift DNS NetworkPolicy (if applicable)
412+
if r.IsOpenShift() {
413+
dnsRule := networkingv1.NetworkPolicyEgressRule{}
414+
if dnsEndpoints, err := r.getEndpoints("dns-default", "openshift-dns"); err == nil {
415+
if endpointPort := lutils.GetEndpointPortByName(&dnsEndpoints.Subsets[0].Ports, "dns"); endpointPort != nil {
416+
dnsRule.Ports = append(dnsRule.Ports, lutils.CreateNetworkPolicyPortFromEndpointPort(endpointPort))
417+
}
418+
if endpointPort := lutils.GetEndpointPortByName(&dnsEndpoints.Subsets[0].Ports, "dns-tcp"); endpointPort != nil {
419+
dnsRule.Ports = append(dnsRule.Ports, lutils.CreateNetworkPolicyPortFromEndpointPort(endpointPort))
420+
}
421+
reqLogger.Info("Found endpoints for dns-default service in the openshift-dns namespace")
422+
} else {
423+
peer := networkingv1.NetworkPolicyPeer{}
424+
peer.NamespaceSelector = &metav1.LabelSelector{
425+
MatchLabels: map[string]string{},
426+
}
427+
dnsRule.To = append(dnsRule.To, peer)
428+
reqLogger.Info("Failed to retrieve endpoints for dns-default service in the openshift-dns namespace. Using more permissive rule.")
429+
}
430+
apiServerNetworkPolicy.Spec.Egress = append(apiServerNetworkPolicy.Spec.Egress, dnsRule)
431+
}
432+
411433
rule := networkingv1.NetworkPolicyEgressRule{}
412-
if apiServerEndpoints, err := r.getKubeAPIServerEndpoints(); err == nil {
434+
if apiServerEndpoints, err := r.getEndpoints("kubernetes", "default"); err == nil {
413435
// Define the port
414436
port := networkingv1.NetworkPolicyPort{}
415437
port.Protocol = &apiServerEndpoints.Subsets[0].Ports[0].Protocol

0 commit comments

Comments
 (0)