Skip to main content
resource · kubernetes

Ingress

live rule families
1
schedulable
no
category
networking-services

Does ZopNight manage Ingress?

Ingress objects route external HTTP traffic to Services through a controller-managed load balancer shared across the class. ZopNight marks an Ingress pending until it has an address, records ingressClassName, hosts, rules, and a tlsEnabled flag, and raises RC-1720/1820/1920 (high severity) for any Ingress serving without TLS, exempting only cert-manager's cm-acme-http-solver Ingresses.

An Ingress declares HTTP routing rules (which hosts and paths reach which Services) and hands them to an ingress controller to implement. The object is free and shares its controller’s load balancer with every other Ingress in the class, which is exactly what makes it the cheaper alternative to per-Service LoadBalancers.

Pending until the controller answers

An Ingress with no load-balancer address in its status maps to pending: either the controller has not reconciled it yet, or no controller matches its ingressClassName at all, a misconfiguration that otherwise fails silently. Once addressed, it reports active. Discovery keeps the class name, the host list, the routing rules, the TLS host list, and a computed tlsEnabled flag per object.

The no-TLS rule and its one deliberate exception

Ingress Without TLS (RC-1720 / RC-1820 / RC-1920, high severity) fires on any Ingress whose spec configures no TLS section: traffic between clients and the controller travels plaintext. The rule carries exactly 1 unconditional exemption, for Ingresses whose name starts with cm-acme-http-solver-. Those are created by cert-manager to answer ACME HTTP-01 challenges, must serve plain HTTP for domain validation to work, and exist precisely to obtain the certificate whose absence the rule would otherwise flag. When the TLS flag cannot be determined the rule abstains instead of guessing.

Hosts and rules as discovered topology

The recorded hosts and per-path backend rules turn the Ingress inventory into a routing map: which external names exist, which Services they land on, and which Ingresses route to Services that no longer resolve. Read next to the EndpointSlice data, that answers the practical question behind most incident pages. Does this hostname currently lead to any ready pod?

Terminal window
kubectl get ingress -A -o custom-columns=NS:.metadata.namespace,NAME:.metadata.name,CLASS:.spec.ingressClassName,HOSTS:.spec.rules[*].host,TLS:.spec.tls[*].hosts,ADDRESS:.status.loadBalancer.ingress[0].hostname

One frontend, many routes

Because all Ingresses in a class share one controller-managed load balancer, adding a route costs nothing while adding a LoadBalancer Service adds an hourly meter. Consolidating stray LoadBalancer Services behind the existing Ingress class is the standing recommendation the two Service-type advisories point toward.

See it fire on your bill.

Connect an account read-only. The first findings land in minutes.

417 rule families across 353 resource types on 22 platforms. Every threshold, metric, and IAM action is documented on these pages before you grant anything.

417 rule families documented
353 resource types covered
read-only default access level
Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console· Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console·