Skip to content

Appendices

Appendices and References

Definitions and Abbreviations

  • API: Application Programming Interface
  • CRD: Custom Resource Definition - Kubernetes extension mechanism
  • Dataplane API: HAProxy's management interface for runtime configuration
  • GVR: GroupVersionResource - Kubernetes resource identifier
  • HAProxy: High Availability Proxy - Load balancer and reverse proxy
  • IC: Ingress Controller
  • Informer: Kubernetes client-go pattern for watching and caching resources
  • O(1): Constant time complexity - performance independent of input size
  • Runtime API: HAProxy's socket-based interface for zero-reload updates
  • SharedInformerFactory: client-go factory for creating resource watchers with shared caches

References

  1. HAProxy Documentation
  2. Configuration Manual: https://www.haproxy.com/documentation/haproxy-configuration-manual/latest/
  3. Dataplane API: https://www.haproxy.com/documentation/haproxy-data-plane-api/
  4. Runtime API: https://www.haproxy.com/documentation/haproxy-runtime-api/

  5. HAProxy Go Libraries

  6. client-native: https://github.com/haproxytech/client-native
    • Configuration parser and validator
    • Used for syntax validation without running HAProxy
  7. dataplaneapi: https://github.com/haproxytech/dataplaneapi

    • Reference implementation for validation strategies
    • Configuration management patterns
  8. Kubernetes Client Libraries

  9. client-go: https://github.com/kubernetes/client-go
    • Official Kubernetes Go client
    • Informer pattern documentation
  10. apimachinery: https://github.com/kubernetes/apimachinery

    • Common machinery for Kubernetes API interactions
  11. Template Engines

  12. Scriggo: https://scriggo.com/

    • Go-native template engine with dynamic include support
    • Actively maintained with regular releases
    • Recommended for Go template syntax with advanced features
  13. Observability

  14. Prometheus client_golang: https://github.com/prometheus/client_golang
  15. OpenTelemetry Go: https://github.com/open-telemetry/opentelemetry-go

  16. Design Patterns

  17. Kubernetes Operator Pattern: https://kubernetes.io/docs/concepts/extend-kubernetes/operator/
  18. Controller Pattern: https://kubernetes.io/docs/concepts/architecture/controller/