@@ -33,7 +33,7 @@ func NewK3dServer(ctx context.Context, cfg *integration.BackendConfig, dockerAdd
3333
3434 clusterName = "bk-" + identity .NewID ()
3535
36- createCtx , cancelCreate := context .WithTimeout (ctx , 90 * time .Second )
36+ createCtx , cancelCreate := context .WithTimeoutCause (ctx , 90 * time .Second , errors . New ( "timed out creating k3d cluster" ) )
3737 defer cancelCreate ()
3838
3939 args := []string {
@@ -48,11 +48,13 @@ func NewK3dServer(ctx context.Context, cfg *integration.BackendConfig, dockerAdd
4848 cmd .Env = k3dEnv (dockerAddress )
4949 out , err := cmd .CombinedOutput ()
5050 if err != nil {
51- diag := KubernetesDiagnostics (clusterName , dockerAddress )
51+ diag := KubernetesDiagnostics (ctx , clusterName , dockerAddress )
5252 return "" , "" , nil , errors .Wrapf (err , "failed to create k3d cluster %s: %s\n %s\n outer dockerd logs: %s" , clusterName , strings .TrimSpace (string (out )), diag , integration .FormatLogs (cfg .Logs ))
5353 }
5454 deferF .Append (func () error {
55- cmd := exec .Command (k3dBin , "cluster" , "delete" , clusterName )
55+ deleteCtx , cancelDelete := context .WithTimeoutCause (context .WithoutCancel (ctx ), 30 * time .Second , errors .New ("timed out deleting k3d cluster" ))
56+ defer cancelDelete ()
57+ cmd := exec .CommandContext (deleteCtx , k3dBin , "cluster" , "delete" , clusterName )
5658 cmd .Env = k3dEnv (dockerAddress )
5759 out , err := cmd .CombinedOutput ()
5860 if err != nil {
@@ -61,14 +63,14 @@ func NewK3dServer(ctx context.Context, cfg *integration.BackendConfig, dockerAdd
6163 return nil
6264 })
6365
64- kubeconfigCtx , cancelKubeconfig := context .WithTimeout (ctx , 30 * time .Second )
66+ kubeconfigCtx , cancelKubeconfig := context .WithTimeoutCause (ctx , 30 * time .Second , errors . New ( "timed out writing k3d kubeconfig" ) )
6567 defer cancelKubeconfig ()
6668
6769 cmd = exec .CommandContext (kubeconfigCtx , k3dBin , "kubeconfig" , "write" , clusterName )
6870 cmd .Env = k3dEnv (dockerAddress )
6971 out , err = cmd .CombinedOutput ()
7072 if err != nil {
71- diag := KubernetesDiagnostics (clusterName , dockerAddress )
73+ diag := KubernetesDiagnostics (ctx , clusterName , dockerAddress )
7274 return "" , "" , nil , errors .Wrapf (err , "failed to write kubeconfig for cluster %s: %s\n %s\n outer dockerd logs: %s" , clusterName , strings .TrimSpace (string (out )), diag , integration .FormatLogs (cfg .Logs ))
7375 }
7476 kubeConfig = strings .TrimSpace (string (out ))
0 commit comments