diff --git a/pkg/healthcheck/grpc.go b/pkg/healthcheck/grpc.go index df93b7d9f..c298c6cbd 100644 --- a/pkg/healthcheck/grpc.go +++ b/pkg/healthcheck/grpc.go @@ -3,6 +3,7 @@ package healthcheck import ( "context" "fmt" + "time" healthcheckPb "github.com/runconduit/conduit/controller/gen/common/healthcheck" "google.golang.org/grpc" @@ -24,7 +25,10 @@ func (proxy *statusCheckerProxy) SelfCheck() []*healthcheckPb.CheckResult { CheckDescription: "can query the Conduit API", } - selfCheckResponse, err := proxy.delegate.SelfCheck(context.Background(), &healthcheckPb.SelfCheckRequest{}) + ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + + selfCheckResponse, err := proxy.delegate.SelfCheck(ctx, &healthcheckPb.SelfCheckRequest{}) if err != nil { canConnectViaGrpcCheck.Status = healthcheckPb.CheckStatus_ERROR canConnectViaGrpcCheck.FriendlyMessageToUser = err.Error() diff --git a/pkg/k8s/api.go b/pkg/k8s/api.go index e29394023..fffebf1eb 100644 --- a/pkg/k8s/api.go +++ b/pkg/k8s/api.go @@ -1,11 +1,13 @@ package k8s import ( + "context" "encoding/json" "fmt" "io/ioutil" "net/http" "net/url" + "time" healthcheckPb "github.com/runconduit/conduit/controller/gen/common/healthcheck" "github.com/runconduit/conduit/pkg/healthcheck" @@ -93,7 +95,11 @@ func (kubeapi *kubernetesApi) checkApiAccess(client *http.Client) (*healthcheckP return checkResult, "" } - resp, err := client.Get(endpointToCheck.String()) + req, _ := http.NewRequest("GET", endpointToCheck.String(), nil) + ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + + resp, err := client.Do(req.WithContext(ctx)) if err != nil { checkResult.Status = healthcheckPb.CheckStatus_ERROR checkResult.FriendlyMessageToUser = fmt.Sprintf("HTTP GET request to endpoint [%s] resulted in error: [%s]", endpointToCheck, err.Error()) diff --git a/pkg/version/version.go b/pkg/version/version.go index 281f22135..898d20f84 100644 --- a/pkg/version/version.go +++ b/pkg/version/version.go @@ -90,7 +90,10 @@ func (v versionStatusChecker) SelfCheck() []*healthcheckPb.CheckResult { } func (v versionStatusChecker) getServerVersion() (string, error) { - resp, err := v.publicApiClient.Version(context.Background(), &pb.Empty{}) + ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + + resp, err := v.publicApiClient.Version(ctx, &pb.Empty{}) if err != nil { return "", err }