bootstrapper: return error on context cancel in WaitForCilium (#1534)

This commit is contained in:
Nils Hanke 2023-03-28 14:41:17 +02:00 committed by GitHub
parent ccb31c9570
commit 8e8124345b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -252,23 +252,26 @@ func (k *KubernetesUtil) WaitForCilium(ctx context.Context, log *logger.Logger)
// wait for cilium pod to be healthy
client := http.Client{}
for {
time.Sleep(5 * time.Second)
req, err := http.NewRequestWithContext(ctx, http.MethodGet, "http://127.0.0.1:9879/healthz", http.NoBody)
if err != nil {
return fmt.Errorf("unable to create request: %w", err)
}
resp, err := client.Do(req)
if err != nil {
log.With(zap.Error(err)).Infof("Waiting for local Cilium DaemonSet - Pod not healthy yet")
continue
}
resp.Body.Close()
if resp.StatusCode == 200 {
break
select {
case <-ctx.Done():
return ctx.Err()
default:
time.Sleep(5 * time.Second)
req, err := http.NewRequestWithContext(ctx, http.MethodGet, "http://127.0.0.1:9879/healthz", http.NoBody)
if err != nil {
return fmt.Errorf("unable to create request: %w", err)
}
resp, err := client.Do(req)
if err != nil {
log.With(zap.Error(err)).Infof("Waiting for local Cilium DaemonSet - Pod not healthy yet")
continue
}
resp.Body.Close()
if resp.StatusCode == 200 {
return nil
}
}
}
return nil
}
// FixCilium fixes https://github.com/cilium/cilium/issues/19958