The OpenShift router is an ingress controller written in Go that manages traffic routing for OpenShift and Kubernetes clusters. The repository contains implementations for multiple routing backends including NGINX, HAProxy, and F5, with HAProxy serving as the reference implementation. These routers read Route objects from the OpenShift API and enable ingress to services within the cluster, functioning as a core component of OpenShift's networking infrastructure.
The template router code operates as a generic framework that generates configuration files on disk based on the current state of the cluster. It launches proxy processes as child processes and automatically triggers reloads whenever new configurations are written. The standard logic embedded in the router handles several critical functions including conflict resolution for competing routes, wildcard support, status reporting back to Route objects, and metrics collection. This design allows the router to manage complex routing scenarios while maintaining visibility into route health and performance.
In OpenShift 4.0 and later clusters, these router images are managed by the cluster-ingress-operator, which handles their lifecycle and deployment. The router can also be deployed against vanilla Kubernetes clusters, though some of the security protections available through OpenShift's native API are not possible when using Kubernetes Custom Resource Definitions instead. Deployment to Kubernetes involves cloning the repository and applying the deployment manifests, after which users can create Route objects that point to services and the router pod automatically forwards traffic from port 80 to the appropriate service endpoints.
The repository spans multiple classification domains reflecting its comprehensive role in infrastructure management. It covers security policies, TLS termination, SSL offloading, HTTP routing, load balancing, service mesh integration, and API gateway functionality. The router handles both HTTP and HTTPS traffic management, implementing L7 load balancing capabilities and web traffic management at the application layer.
Activity tracking shows that the repository maintains moderate engagement with a median issue and pull request response latency of 107.5 hours across tracked items, though some items show significantly longer resolution times. The most frequently applied issue labels include lifecycle/rotten and lifecycle/frozen designations, suggesting some issues experience extended periods without active resolution. Candita emerges as the most active contributor tracked by GitGenius with five events, followed by vahidmohsseni with three events and adhanshe-tibco with two events. The repository shares overlapping contributors with keycloak/keycloak, quarkusio/quarkus, and kubernetes-sigs/gateway-api, indicating cross-project collaboration within the broader Kubernetes and OpenShift ecosystem.
The router's design emphasizes flexibility and extensibility, supporting multiple backend implementations while maintaining a consistent interface for route management. Users can deploy example configurations to quickly test routing functionality, accessing routes through node IPs or localhost addresses depending on their deployment environment. The repository provides both the core routing logic and practical deployment examples, making it accessible for operators managing ingress traffic in both OpenShift and Kubernetes environments.