F5 BIG-IP
Learn how to use F5 IngressLink with NGINX Ingress Controller to configure your F5 BIG-IP device.
F5 IngressLink is an integration between NGINX Ingress Controller and F5 BIG-IP Container Ingress Services (CIS) that configures an F5 BIG-IP device as a load balancer for NGINX Ingress Controller pods.
The steps to enable the integration depend on the option chosen to install NGINX Ingress Controller: Using Manifests or using the Helm chart.
- 
Create a service for the Ingress Controller pods for ports 80 and 443. For example: yamlapiVersion: v1 kind: Service metadata: name: nginx-ingress-ingresslink namespace: nginx-ingress labels: app: ingresslink spec: ports: - port: 80 targetPort: 80 protocol: TCP name: http - port: 443 targetPort: 443 protocol: TCP name: https selector: app: nginx-ingressNote the label app: ingresslink. We will use it in the Configure CIS step.
- 
In the ConfigMap resource enable the proxy protocol, which the BIG-IP system will use to pass the client IP and port information to NGINX. For the set-real-ip-fromkey, use the subnet of the IP which the BIG-IP system uses to send traffic to NGINX:yamlproxy-protocol: "True" real-ip-header: "proxy_protocol" set-real-ip-from: "0.0.0.0/0"
- 
Deploy NGINX Ingress Controller with additional command-line arguments: yamlargs: - -ingresslink=nginx-ingress - -report-ingress-status . . .where ingresslinkreferences the name of the IngressLink resource from step 1, andreport-ingress-statusenables reporting ingress statuses.
Install a Helm release with the following values:
controller:
  config:
    entries:
      proxy-protocol: "True"
      real-ip-header: "proxy_protocol"
      set-real-ip-from: "0.0.0.0/0"
  reportIngressStatus:
    ingressLink: nginx-ingress
  service:
    type: ClusterIP
    externalTrafficPolicy: Cluster
    extraLabels:
      app: ingresslinkWe will use the ingressLink and extraLabels parameter values to configure CIS in the next section. For the  set-real-ip-from key, use the subnet of the IP which the BIG-IP system uses to send traffic to NGINX.
To enable the integration, F5 BIG-IP Container Ingress Services must be deployed in the cluster and configured to support the integration. Follow the instructions on the CIS documentation portal.
Make sure that:
- The name of the IngressLink resource is the same as the one used during the installation of NGINX Ingress Controller (nginx-ingressin the previous example).
- The selector in the IngressLink resource is the same as the Service labels configured during Ingress Controller installation (app: ingresslinkin the previous example).
- The IngressLink must belong to the same namespace as the Ingress Controller pod (nginx-ingressor the namespace used for installing the Helm chart).