Skip to content

[Bug]: mergeable master ingress: minion ingress cannot find the host specified using wildcard #7777

Open
@hadibadjian

Description

@hadibadjian

Version

edge

What Kubernetes platforms are you running on?

Other

Steps to reproduce

Using Microk8s

Deployment

  1. Install using helm v2.1.0, image tag latest.

values.yaml

ingressClass: &ingressClass "internal"

nginx-ingress:
  controller:
    config:
      entries: {}
    disableIPV6: true
    image:
      tag: "latest"
    ingressClass:
      name: *ingressClass
      setAsDefaultIngress: true
    service:
      externalTrafficPolicy: Local
      httpsPort:
        enable: false
  1. Define an ingress to act as the master in "network" namespace.

ingress.yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: {{ .Release.Name }}-ingress-master-example
  annotations:
    nginx.org/mergeable-ingress-type: "master"
spec:
  ingressClassName: {{ .Values.ingressClass }}
  rules:
    - host: "*.example.com"
  1. Configure a minion ingress in "storage" namespace (created by the minio chart).

Rendered ingress.yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    meta.helm.sh/release-name: minio-dev
    meta.helm.sh/release-namespace: storage
    nginx.org/mergeable-ingress-type: minion
  creationTimestamp: "2025-04-23T16:38:56Z"
  generation: 3
  labels:
    app.kubernetes.io/instance: minio-dev
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: minio
    app.kubernetes.io/version: 2025.4.22
    helm.sh/chart: minio-16.0.10
  name: minio-dev
  namespace: storage
  resourceVersion: "71539545"
  uid: d6f8c781-8554-4b57-a4ae-99bbf6f4c219
spec:
  ingressClassName: internal
  rules:
  - host: s3.example.com
    http:
      paths:
      - backend:
          service:
            name: minio-dev
            port:
              name: minio-console
        path: /
        pathType: ImplementationSpecific
status:
  loadBalancer: {}

Result

nginx controller pod has the following warning log.

Event(v1.ObjectReference{Kind:"Ingress", Namespace:"storage", Name:"minio-dev", UID:"d6f8c781-8554-4b57-a4ae-99bbf6f4c219", APIVersion:"networking.k8s.io/v1", ResourceVersion:"71307330", FieldPath:""}): type: 'Warning' reason: 'NoIngressMasterFound' Ingress master is invalid or doesn't exist

Note: minio-dev is the ingress name.

Test

If the host in the master ingress is changed to an exact value of s3.example.com, the minion is correctly recognized and the location is correctly added to the server block. This is verified by viewing the conf created under /etc/nginx/conf.d of the ingress controller pod.

Changing the master host back to "*.example.com" and updating the helm results in the location block removed from the server in the minion ingress conf.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugAn issue reporting a potential bugneeds triageAn issue that needs to be triaged

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions