@@ -314,6 +314,22 @@ func resourceKubernetesIngressDelete(ctx context.Context, d *schema.ResourceData
314314 return diag .Errorf ("Failed to delete Ingress %s because: %s" , d .Id (), err )
315315 }
316316
317+ err = resource .RetryContext (ctx , d .Timeout (schema .TimeoutDelete ), func () * resource.RetryError {
318+ _ , err := conn .ExtensionsV1beta1 ().Ingresses (namespace ).Get (ctx , name , metav1.GetOptions {})
319+ if err != nil {
320+ if statusErr , ok := err .(* errors.StatusError ); ok && errors .IsNotFound (statusErr ) {
321+ return nil
322+ }
323+ return resource .NonRetryableError (err )
324+ }
325+
326+ e := fmt .Errorf ("Ingress (%s) still exists" , d .Id ())
327+ return resource .RetryableError (e )
328+ })
329+ if err != nil {
330+ return diag .FromErr (err )
331+ }
332+
317333 log .Printf ("[INFO] Ingress %s deleted" , name )
318334
319335 d .SetId ("" )
@@ -334,7 +350,7 @@ func resourceKubernetesIngressExists(ctx context.Context, d *schema.ResourceData
334350 log .Printf ("[INFO] Checking ingress %s" , name )
335351 _ , err = conn .ExtensionsV1beta1 ().Ingresses (namespace ).Get (ctx , name , metav1.GetOptions {})
336352 if err != nil {
337- if statusErr , ok := err .(* errors.StatusError ); ok && statusErr . ErrStatus . Code == 404 {
353+ if statusErr , ok := err .(* errors.StatusError ); ok && errors . IsNotFound ( statusErr ) {
338354 return false , nil
339355 }
340356 log .Printf ("[DEBUG] Received error: %#v" , err )
0 commit comments