Open
Description
Version
edge
What Kubernetes platforms are you running on?
Other
Steps to reproduce
Using Microk8s
Deployment
- 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
- 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"
- 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.