Ingress — Apache Ozone
Ozone can expose multiple interfaces via Ingress, each with its own configuration. The activation is controlled by TDPConfiguration.gateway.ingress.enabled and by individual flags for each sub-ingress.
Ingress vs Gateway API
TDPConfiguration.gateway.ingress and TDPConfiguration.gateway.gatewayApi are mutually exclusive. Enable only one of them.
Services and interfaces
| Interface | Parameter | Example host |
|---|---|---|
| Ozone Manager UI | tdp-ozone.ingress.om | ozone-om.tdp.local |
| Storage Container Manager UI | tdp-ozone.ingress.scm | ozone-scm.tdp.local |
| Recon UI | tdp-ozone.ingress.recon | ozone-recon.tdp.local |
| S3 Gateway Web UI | tdp-ozone.ingress.s3g.web | ozone-s3-ui.tdp.local |
| S3 Gateway REST | tdp-ozone.ingress.s3g.rest | — |
Configuration example
TDPConfiguration:
gateway:
ingress:
enabled: true
tdp-ozone:
ingress:
om:
enabled: true
ingressClassName: <ingress-class>
hosts:
- host: ozone-om.tdp.local
scm:
enabled: true
ingressClassName: <ingress-class>
hosts:
- host: ozone-scm.tdp.local
recon:
enabled: true
ingressClassName: <ingress-class>
hosts:
- host: ozone-recon.tdp.local
s3g:
rest:
enabled: true
ingressClassName: <ingress-class>
web:
enabled: true
ingressClassName: <ingress-class>
hosts:
- host: ozone-s3-ui.tdp.local
Replace <ingress-class> with the name of the Ingress Controller in the environment (verify with kubectl get ingressclass). Enable only the interfaces you need.
TLS: configure tls in each sub-ingress according to the chart template and the Ingress Controller used.
Access
- Obtain the external IP of the Ingress Controller:
Terminal input
kubectl get svc -A -l app.kubernetes.io/name=ingress-nginx \
-o jsonpath='{.items[0].status.loadBalancer.ingress[0].ip}' - Add the hostnames to DNS or to the
/etc/hostsfile:<INGRESS_IP> ozone-om.tdp.local
<INGRESS_IP> ozone-scm.tdp.local
<INGRESS_IP> ozone-recon.tdp.local
<INGRESS_IP> ozone-s3-ui.tdp.local - Access:
- Ozone Manager UI:
http://ozone-om.tdp.local - Storage Container Manager UI:
http://ozone-scm.tdp.local - Recon UI:
http://ozone-recon.tdp.local - Use
https://if TLS is configured.
- Ozone Manager UI:
Verification
Terminal input
kubectl -n <namespace> get ingress
Troubleshooting
| Issue | Solution |
|---|---|
| Ingress not created | Verify TDPConfiguration.gateway.ingress.enabled: true, the sub-ingress with enabled: true, and that ingressClassName matches the Ingress Controller used in the cluster |
| Host does not resolve | Adjust DNS or /etc/hosts to the Ingress Controller IP |