in grpc-xds/control-plane-go/pkg/xds/cds/cluster.go [126:153]
func createHealthCheck(protocol string, port uint32, pathOrGRPCService string) *corev3.HealthCheck {
healthCheck := &corev3.HealthCheck{
AltPort: wrapperspb.UInt32(port),
HealthyThreshold: wrapperspb.UInt32(1),
Interval: healthCheckInterval,
Timeout: healthCheckTimeout,
UnhealthyThreshold: wrapperspb.UInt32(1),
}
if strings.EqualFold(protocol, "grpc") {
healthCheck.HealthChecker = &corev3.HealthCheck_GrpcHealthCheck_{
GrpcHealthCheck: &corev3.HealthCheck_GrpcHealthCheck{
ServiceName: pathOrGRPCService,
},
}
} else if strings.EqualFold(protocol, "http") {
healthCheck.HealthChecker = &corev3.HealthCheck_HttpHealthCheck_{
HttpHealthCheck: &corev3.HealthCheck_HttpHealthCheck{
Path: pathOrGRPCService,
},
}
} else {
// TCP fallback
healthCheck.HealthChecker = &corev3.HealthCheck_TcpHealthCheck_{
TcpHealthCheck: &corev3.HealthCheck_TcpHealthCheck{},
}
}
return healthCheck
}