Skip to content

Commit 083ea1f

Browse files
kabicinKirby Chin
authored andcommitted
Add DNS network policy for OCP
1 parent 1f49e30 commit 083ea1f

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
@@ -412,8 +412,30 @@ func (r *ReconcileWebSphereLiberty) Reconcile(ctx context.Context, request ctrl.
412412
OperatorAllowAPIServerAccessLabel: "true",
413413
},
414414
}
415+
// Add OpenShift DNS NetworkPolicy (if applicable)
416+
if r.IsOpenShift() {
417+
dnsRule := networkingv1.NetworkPolicyEgressRule{}
418+
if dnsEndpoints, err := r.getEndpoints("dns-default", "openshift-dns"); err == nil {
419+
if endpointPort := lutils.GetEndpointPortByName(&dnsEndpoints.Subsets[0].Ports, "dns"); endpointPort != nil {
420+
dnsRule.Ports = append(dnsRule.Ports, lutils.CreateNetworkPolicyPortFromEndpointPort(endpointPort))
421+
}
422+
if endpointPort := lutils.GetEndpointPortByName(&dnsEndpoints.Subsets[0].Ports, "dns-tcp"); endpointPort != nil {
423+
dnsRule.Ports = append(dnsRule.Ports, lutils.CreateNetworkPolicyPortFromEndpointPort(endpointPort))
424+
}
425+
reqLogger.Info("Found endpoints for dns-default service in the openshift-dns namespace")
426+
} else {
427+
peer := networkingv1.NetworkPolicyPeer{}
428+
peer.NamespaceSelector = &metav1.LabelSelector{
429+
MatchLabels: map[string]string{},
430+
}
431+
dnsRule.To = append(dnsRule.To, peer)
432+
reqLogger.Info("Failed to retrieve endpoints for dns-default service in the openshift-dns namespace. Using more permissive rule.")
433+
}
434+
apiServerNetworkPolicy.Spec.Egress = append(apiServerNetworkPolicy.Spec.Egress, dnsRule)
435+
}
436+
415437
rule := networkingv1.NetworkPolicyEgressRule{}
416-
if apiServerEndpoints, err := r.getKubeAPIServerEndpoints(); err == nil {
438+
if apiServerEndpoints, err := r.getEndpoints("kubernetes", "default"); err == nil {
417439
// Define the port
418440
port := networkingv1.NetworkPolicyPort{}
419441
port.Protocol = &apiServerEndpoints.Subsets[0].Ports[0].Protocol

0 commit comments

Comments
 (0)