AlinsRan opened a new pull request, #2763:
URL: https://github.com/apache/apisix-ingress-controller/pull/2763

   ## Summary
   
   This PR adds health check support to `BackendTrafficPolicy`, allowing users 
to configure active and passive health checks for upstream backends directly 
through the `BackendTrafficPolicy` resource.
   
   ## Changes
   
   ### New API types (`api/v1alpha1/backendtrafficpolicy_types.go`)
   - Added `HealthCheck` struct with `Active` and `Passive` fields to 
`BackendTrafficPolicySpec`
   - `ActiveHealthCheck`: configures HTTP/TCP probes with configurable 
interval, timeout, thresholds, and TLS settings
   - `PassiveHealthCheck`: configures passive (observational) health monitoring 
with configurable thresholds
   - Timeouts field uses `BackendTrafficPolicyTimeouts` struct (renamed json 
tag from `timeout` to `timeouts` for consistency)
   
   ### Translation (`internal/adc/translator/policies.go`)
   - Translates `BackendTrafficPolicy.Spec.HealthCheck` into APISIX upstream 
`checks` configuration
   - Active health check intervals are clamped to a minimum of 1 second (APISIX 
requirement)
   - Supports both HTTP and TCP active health check types
   - Maps all threshold fields: healthy/unhealthy HTTP statuses, TCP 
success/failure counts
   
   ### CRD regeneration
   - Updated `config/crd/bases/apisix.apache.org_backendtrafficpolicies.yaml` 
with health check schema
   - Updated deepcopy functions
   
   ### E2E tests (`test/e2e/crds/v1alpha1/backendtrafficpolicy.go`)
   - End-to-end tests covering:
     - Active HTTP health check configuration (interval, timeout, thresholds, 
HTTP path)
     - Active TCP health check configuration
     - Passive health check configuration
     - Health check deletion (verifies checks are removed from upstream)
   
   ## Example
   
   ```yaml
   apiVersion: apisix.apache.org/v1alpha1
   kind: BackendTrafficPolicy
   metadata:
     name: my-policy
   spec:
     targetRef:
       group: gateway.networking.k8s.io
       kind: HTTPRoute
       name: my-route
     healthCheck:
       active:
         type: HTTP
         interval: 10s
         timeout: 3s
         httpPath: /healthz
         healthy:
           httpStatuses: [200, 201]
           successes: 3
         unhealthy:
           httpStatuses: [500, 502, 503]
           httpFailures: 3
   ```
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to