If you have an nginx ingress controller already deployed in your K8s cluster, you can reuse the same for directing traffic to Deepfactor portal services. The following describes how you can achieve this.
Ingress-nginx installed using yaml files #
If you have installed or will install the NGINX Ingress Controller via yaml files, then you need to make the following changes.
Step 1: Create a config map with the below details
apiVersion: v1 data: "13443": deepfactor/df-stable-nginx:13443 kind: ConfigMap metadata: name: ingress-nginx-tcp namespace: ingress-nginx
deepfactor/df-stable-nginx:13443 is the K8s endpoint of nginx service used by Deepfactor.
Note: deepfactor is the namespace in which the Deepfactor is installed. If you installed Deepfactor in a different namespace, please update the endpoint above.
Step 2: Update the nginx deployment yaml file
Please add the following under container args in the nginx deployment file used for installing nginx in your K8s cluster.
--tcp-services-configmap=$(POD_NAMESPACE)/ingress-nginx-tcp
Also expose port 13443 by adding the following to podspec in the nginx deployment file.
- containerPort: 13443 name: 13443-tcp protocol: TCP
Step 3: Update the nginx ingress controller service yaml file
In the nginx ingress controller service yaml file, please add the below config to expose port 13443.
- name: 13443-tcp nodePort: 31379 port: 13443 protocol: TCP targetPort: 13443-tcp
Ingress-nginx installed using Helm charts #
If you have installed or will install the NGINX Ingress Controller via its Helm chart, then you will need to add the following option to the chart via override.yaml before running the helm install/upgrade command.
tcp: 13443: "deepfactor/df-stable-nginx:13443"
Update Deepfactor portal to use existing ingress controller #
After you have installed nginx ingress controller with the above mentioned changes, you will need to update the Deepfactor override.yaml file to disable creation of internal ingress controller. Please add the following section to Deepfactor override.yaml file before running the helm install/upgrade command.
ingress-nginx: enablemodule: false nginx: ingress: className: nginx