Configuration Guide
Overview
Haltdos Ingress Controller supports centralized and dynamic configuration using Kubernetes-native constructs. Global and ingress-level behavior can be customized using ConfigMaps, Secrets, and standard Ingress resources, allowing administrators to control traffic handling, security policies, SSL behavior, and performance tuning in a declarative manner.
Configuration changes are applied dynamically without requiring service restarts, enabling seamless updates across Kubernetes environments.
Configuration Model
Haltdos Ingress Controller follows a layered configuration model to ensure flexibility and control:
- Global Configuration – Applied across all ingress routes using ConfigMaps
- Ingress-Specific Configuration – Applied per application using Kubernetes Ingress definitions
- Secret-Based Configuration – Used for certificates, authentication credentials, and trust material
This layered approach ensures consistent policy enforcement while still allowing application-specific customization where required.
Global Configuration Using ConfigMaps
A Kubernetes ConfigMap is used to define global behavior for the ingress controller. Settings defined here affect all applications managed by the controller and are typically used for security, traffic control, and performance defaults.
Access Control
Administrators can control client access using IP-based policies configured at the global level. These controls help restrict access to trusted sources and protect applications from unauthorized traffic.
Typical access control capabilities include:
- Allowing traffic only from trusted IP addresses or CIDR ranges
- Blocking traffic from known malicious or unwanted sources
- Supporting both allow-list and deny-list based policies
Access control is commonly implemented using options such as allow-list, whitelist, deny-list, and blacklist.
Detailed behavior and usage of these options are documented in the Configuration Reference section.
Authentication and Authorization
The ingress controller supports authentication mechanisms that protect applications and sensitive endpoints from unauthorized access.
Authentication capabilities include:
- Basic authentication enforced at the ingress layer
- Configurable authentication realms presented to users
- Secure storage of credentials using Kubernetes Secrets
Authentication behavior is controlled using configuration options such as auth-type, auth-realm, and auth-secret.
Refer to the Configuration Reference for detailed explanations of these parameters.
SSL/TLS Configuration
SSL and TLS behavior can be customized globally to balance security, compatibility, and performance requirements.
Supported SSL/TLS capabilities include:
- SSL/TLS termination at the ingress layer
- SSL passthrough for end-to-end encryption
- HTTP-to-HTTPS redirection
- TLS protocol and cipher selection
- Client certificate authentication (mTLS)
- Certificate validation using trusted CA bundles
Common configuration options include ssl-certificate, ssl-passthrough, ssl-redirect, client-ca, client-crt-optional, and tls-alpn.
Detailed definitions and usage scenarios are available in the Configuration Reference section.
Traffic Routing and Load Balancing
Traffic routing and load balancing behavior can be tuned to ensure high availability and optimal distribution across backend services.
Key capabilities include:
- Multiple load-balancing algorithms
- Session persistence using cookies
- Health checks to monitor backend availability
- Path-based routing and request rewriting
These features are controlled using options such as load-balance, cookie-persistence, check, check-http, check-interval, path-rewrite, and scale-server-slots.
Traffic Management and Rate Limiting
To protect applications from abuse, traffic spikes, and denial-of-service scenarios, the ingress controller provides fine-grained traffic management controls.
Traffic protection capabilities include:
- Request rate limiting
- Connection limiting
- Configurable rate thresholds and evaluation windows
- Custom response behavior when limits are exceeded
Rate limiting behavior is managed using options such as rate-limit-requests, rate-limit-period, rate-limit-size, and rate-limit-status-code.
Header Manipulation
Administrators can modify HTTP headers to support backend integration, observability, and security requirements.
Header management capabilities include:
- Adding or modifying request headers before forwarding traffic
- Adding or modifying response headers before sending responses to clients
- Forwarding client identity and SSL metadata upstream
- Overriding Host headers when required
These behaviors are implemented using options such as request-set-header, response-set-header, set-host, forwarded-for, and src-ip-header.
Logging and Monitoring Configuration
The ingress controller provides flexible logging and observability options to support troubleshooting, monitoring, and auditing.
Logging and monitoring features include:
- Customizable HTTP and TCP log formats
- Request and response data capture
- Integration with external syslog servers
- Support for real-time metrics and monitoring platforms
Logging-related configuration is handled using options such as log-format, log-format-tcp, logasap, dontlognull, request-capture, request-capture-len, and syslog-server.
Timeouts and Performance Tuning
Connection handling and performance behavior can be optimized to suit different workloads and traffic patterns.
Performance tuning options include:
- Client-side and server-side connection timeouts
- Backend connection and request timeouts
- Queue and tunnel timeout management
- Maximum connection limits
- Worker thread configuration
These settings are controlled using options such as timeout-client, timeout-server, timeout-connect, timeout-http-request, timeout-queue, timeout-tunnel, maxconn, pod-maxconn, and nbthread.