func createHealthCheck()

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
}