def delete_replication_controller(name,
                                   namespace='default',
                                   wait=False,
-                                  **kwargs):    # pragma: no cover
+                                  skip_codes=None,
+                                  **kwargs):
     # pylint: disable=unused-argument
+    skip_codes = [] if not skip_codes else skip_codes
     core_v1_api = get_core_api()
     body = kwargs.get('body', client.V1DeleteOptions())
     kwargs.pop('body', None)
                                                              namespace,
                                                              body,
                                                              **kwargs)
-    except ApiException:
-        LOG.exception('Delete replication controller failed')
-        raise
+    except ApiException as e:
+        if e.status in skip_codes:
+            LOG.info(e.reason)
+        else:
+            raise exceptions.KubernetesApiException(
+                action='delete', resource='ReplicationController')
 
 
 def delete_pod(name,
 
 
         mock_get_api.return_value = mock_api
         kubernetes_utils.delete_service(mock.ANY, skip_codes=[404])
+
+
+class DeleteReplicationControllerTestCase(base.BaseUnitTestCase):
+    @mock.patch.object(kubernetes_utils, 'get_core_api')
+    def test_execute_correct(self, mock_get_api):
+        mock_api = mock.Mock()
+        mock_get_api.return_value = mock_api
+        kubernetes_utils.delete_replication_controller(
+            "name", "default", body=None)
+
+        mock_api.delete_namespaced_replication_controller.assert_called_once_with(
+            "name", "default", None)
+
+    @mock.patch.object(kubernetes_utils, 'get_core_api')
+    def test_execute_exception(self, mock_get_api):
+        mock_api = mock.Mock()
+        mock_api.delete_namespaced_replication_controller.side_effect = (
+            rest.ApiException(status=200)
+        )
+
+        mock_get_api.return_value = mock_api
+        with self.assertRaises(exceptions.KubernetesApiException):
+            kubernetes_utils.delete_replication_controller(mock.ANY, skip_codes=[404])
+
+    @mock.patch.object(kubernetes_utils, 'get_core_api')
+    @mock.patch.object(kubernetes_utils, 'LOG')
+    def test_execute_skip_exception(self, mock_log, mock_get_api):
+        mock_api = mock.Mock()
+        mock_api.delete_namespaced_replication_controller.side_effect = (
+            rest.ApiException(status=404)
+        )
+
+        mock_get_api.return_value = mock_api
+        kubernetes_utils.delete_replication_controller(mock.ANY, skip_codes=[404])
+
+        mock_log.info.assert_called_once()