Issue with my ingress resoruce - all hosts are taken by other resources

Please use this template for troubleshooting questions.

My issue: all hosts are taken by other resources

How I encountered the problem: I am migrating my ingress-nginx service to nginx-f5. I have changed the class name and annotations properly. But when I apply I am getting the issue like **‘**all hosts are taken by other resources’

Warning Rejected nginx-ingress-controller All hosts are taken by other resources

Solutions I’ve tried: I have set the annotation allowduplicatehosts to true. But still not working

Version of NIC and/or NGINX:

app.kubernetes.io/instance: nginx-f5
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: nginx-ingress
app.kubernetes.io/version: 5.3.2
helm.sh/chart: nginx-ingress-2.4.2

Deployment environment: kubectl get ingress | grep rajdev

rajdev-example-spark nginx-f5 raj.example.com.dev 80, 443 3d6h
rajdev-ie-entry-data-ws nginx-f5 raj.example.com.dev 13.82.15.125 80, 443 3d6h

For once resource, address is resolved but for other it is giving error. I have many ingress resources that are pointing to default namespace and i dont want to put different namespaces. Please suggest the solution

1 Like

Hi @rajasekhar.yannam , thanks posting this issue. This has been answered in a previous AMA with the team; see here.

TLDR; this can be solved by using the following annotation nginx.org/mergeable-ingress-type: "master".

Example:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: cafe-ingress-master
  annotations:
    nginx.org/mergeable-ingress-type: "master"
spec:
  ingressClassName: nginx
  tls:
  - hosts:
    - cafe.example.com
    secretName: cafe-secret
  rules:
  - host: cafe.example.com

and the Ingress Minion can be configured using the following:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: cafe-ingress-tea-minion
  annotations:
    nginx.org/mergeable-ingress-type: "minion"
spec:
  ingressClassName: nginx
  rules:
  - host: cafe.example.com
    http:
      paths:
      - path: /tea
        pathType: Prefix
        backend:
          service:
            name: tea-svc
            port:
              number: 80

Heres a link to the offical docs: Ingresses Path Matching Using Path-Regex Annotation | NGINX Documentation

Let me know if this solves your issue.

1 Like

Hi Sean_Moloney, Thank you for your prompt response. Actually, I have tried this option but this option is not feasible for my ingress resources as I am using complex annotations. Is there any alternate approach could you please kindly propose?

1 Like

Hey @rajasekhar.yannam ,No problem.

would you mind sharing some of your YAML configurations and annotations?

Hi @Sean_Moloney , Please see below two ingress resources i have provided.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    meta.helm.sh/release-name: rajdev
    meta.helm.sh/release-namespace: default
    nginx.org/proxy-connect-timeout: "300"
    nginx.org/proxy-read-timeout: "300"
    nginx.org/proxy-send-timeout: "300"
    nginx.org/rewrite-target: /$1
  creationTimestamp: "2026-02-03T05:31:24Z"
  generation: 9
  labels:
    app: ie-point-data-ws
    app.kubernetes.io/managed-by: Helm
    chart: ie-point-data-ws-4.3.1-dev.6_ad77ead
    heritage: Helm
    release: rajdev
  name: rajdev-ie-point-data-ws
  namespace: default
spec:
  ingressClassName: nginx-f5
  rules:
  - host: dev.us.monte.train
    http:
      paths:
      - backend:
          service:
            name: rajdev-ie-point-data-ws
            port:
              number: 8080
        path: /rajdev/point-data/(.*)
        pathType: Prefix
  tls:
  - hosts:
    - dev.us.monte.train
    secretName: cert

Another Ingress resorice

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    meta.helm.sh/release-name: rajdev
    meta.helm.sh/release-namespace: default
    nginx.org/rewrite-target: /$1
    nginx.org/use-regex: "true"
  creationTimestamp: "2026-02-03T05:31:24Z"
  generation: 6
  labels:
    app: dse-spark
    app.kubernetes.io/managed-by: Helm
    chart: dse-spark-4.2.1-dev.3_e33f9b5
    heritage: Helm
    release: rajdev
  name: rajdev-dse-spark
  namespace: default
spec:
  ingressClassName: nginx-f5
  rules:
  - host: dev.us.monte.train
    http:
      paths:
      - backend:
          service:
            name: rajdev-dse-spark
            port:
              number: 7080
        path: /rajdev/dse-spark/(.*)
        pathType: Prefix
  tls:
  - hosts:
    - dev.us.monte.train
    secretName: cert

Like this, I have other 20+ Ingress resorices with multiple ingress annotations. Please kindly let me know if any other details required.

Thank you for your kind help.

Please refer to the list of annotations that support mergeable ingress: kubernetes-ingress/examples/ingress-resources/mergeable-ingress-types at main · nginx/kubernetes-ingress · GitHub. Are there any particular annotations for which you would like help?

1 Like

hi @Sean_Moloney @hshannon , Thank you for your help. Actually, I have fixed the host collison issue using meegeable-ingress-types. But after I merge all the resources, Now I am getting 404 error for my UI. I did not see any information or error message in my pod logs or ingress. Could you please help what could be the possible scenarios or where can i go and check further?

@rajasekhar.yannam sorry to hear you are still having issues, can you share what your setup looks like now that you are using the meegeable-ingress-types?

Sean

1 Like

hey @rajasekhar.yannam , can you check if all the Ingresses are in Normal state or they don’t have any nginx error or warning messages ? If all is good then check NIC pod logs and see if the upstream is sending 404 or not.

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.