Configuring keycloak admin console using a different port

Kubernetes version:1.26.3
Cloud being used: bare-metal
Installation method: 3rd party
Host OS: unknown
CNI and version: unknown
CRI and version: unknown

Hi, I’m new to Kubernetes but currently have a project where it is being used. The Kubernetes platform is managed by a 3rd party supplier so I wasn’t involved in the deployment of the servers or the cluster.
My responsibility has been to configure the drone CI pipeline to deploy the resources for an application that runs within the K8S platform. There are 9 sub-applications in total including keycloak and oauth2 proxy. The problem I have is based on a recent pen test which has stated that the keycloak admin console should be accessed using a non standard port. Currently the way traffic is directed into kubernetes is:

Client > load balancer > Ingress controller > Service > pod

All inbound traffic is via https: on port 443.

The platform uses an nginx ingress controller and this is currently supporting 80 and 443, I believe this to be default.

ingress-nginx ingress-nginx-controller NodePort x.x.x.x 80:32356/TCP,443:30577/TCP 195d

The 3rd party company who built the kubernetes platform deployed the ingress controller.

If I want keycloak to use port 9009 as an example, I think this will require the nginx ingress controller to be configured to support this.
My ingress looks like this:
spec:
ingressClassName: nginx
rules:
- host: {{ .KEYCLOAK_NAME }}.company.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: {{ .KEYCLOAK_NAME }}
port:
number: 80
- path: /admin
pathType: Prefix
backend:
service:
name: {{ .KEYCLOAK_NAME }}
port:
number: 9009
The service looks like this:

apiVersion: v1
kind: Service
metadata:
name: {{ .KEYCLOAK_NAME }}
spec:
selector:
name: {{ .KEYCLOAK_NAME }}
type: ClusterIP
ports:
- name: http
port: 80
targetPort: 8080
- name: port-9009
port: 9009
targetport: 8080

Trying to get this working is turning into a pain, Keycloak works fine using the standard port and the app also works, but I’m struggling to find a way forward with what needs to change. No matter what I try, it doesn’t work.

Any help will be appreciated. Thanks