service-controller is a Kubernetes controller that enables automatic discovery and configuration of BFE Layer 7 services based on Kubernetes Service resources.
The controller solves the problem of manually managing service registration between Kubernetes and BFE by continuously monitoring changes to Service resources in the cluster and automatically registering eligible services into BFE configurations. It watches for Services annotated with specific labels, filters them by namespace and product line, and synchronizes their configuration with a BFE API Server, enabling seamless traffic integration without manual intervention.
Adoption suits organizations running BFE as their Layer 7 load balancer and wanting to eliminate manual service registration workflows. The tool is particularly valuable for multi-tenant environments where different business lines need isolated BFE cluster configurations. It supports granular filtering by namespace and product line, multi-port service mappings to different BFE instance pools, and works across x86_64 and ARM64 architectures. The controller requires Kubernetes 1.18 or later and a deployed BFE API Server with proper network connectivity and authentication tokens configured.
The project maintains active development with regular commits addressing operational concerns. The codebase includes comprehensive health check endpoints for readiness and liveness probes, enabling reliable integration into Kubernetes environments. Operation auditing is built in through ConfigMap recording of successful configurations and Kubernetes Events logging for monitoring system integration. The project provides customizable retry intervals to handle varying network conditions, and the lightweight Alpine-based container image reflects attention to deployment efficiency and security.