{"id":1349,"date":"2023-04-03T16:46:47","date_gmt":"2023-04-03T21:46:47","guid":{"rendered":"https:\/\/cloudlearning365.com\/?p=1349"},"modified":"2023-04-03T17:15:24","modified_gmt":"2023-04-03T22:15:24","slug":"unable-to-delete-gcp-vpc","status":"publish","type":"post","link":"https:\/\/cloudlearning365.com\/?p=1349","title":{"rendered":"Unable to delete GCP VPC, already being used by networkInstances"},"content":{"rendered":"\n<p>When tried to delete GCP VPC following error occurs:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>jye@cloudshell:~ (&lt;gcp-project&gt;)$ gcloud compute networks delete cloud-sql\nThe following networks will be deleted:\n - &#91;cloud-sql]\n\nDo you want to continue (Y\/n)?  y\n\nERROR: (gcloud.compute.networks.delete) Could not fetch resource:\n - The network resource 'projects\/&lt;gcp-project&gt;\/global\/networks\/cloud-sql' is already being used by 'projects\/&lt;gcp-project&gt;\/global\/networkInstances\/v-1171710760-6bcedd6c-b842-4dd0-9e64-65c2ef70f480'<\/code><\/pre>\n\n\n\n<p>Found out previously I had tried to enable App Engine access Cloud SQL privately by using <a href=\"https:\/\/cloud.google.com\/vpc\/docs\/configure-serverless-vpc-access\">Serverless VPC Connector<\/a><\/p>\n\n\n\n<p>Then in App Engine app.yaml, following statement was used to tell App Engine to use the connector<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>vpc_access_connector:\n  name: \"projects\/&lt;gcp-project&gt;\/locations\/us-central1\/connectors\/cloud-mysql\"<\/code><\/pre>\n\n\n\n<p>This has resulting the App Engine to create a network interface with the VPC specified<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"94\" src=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/04\/image-12-1024x94.png\" alt=\"\" class=\"wp-image-1350\" srcset=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/04\/image-12-1024x94.png 1024w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/04\/image-12-300x28.png 300w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/04\/image-12-768x71.png 768w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/04\/image-12-1536x142.png 1536w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/04\/image-12-2048x189.png 2048w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/04\/image-12-500x46.png 500w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Since you cannot purge App Engine, I have deployed another app that doesn&#8217;t require connection to the VPC: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>git clone https:\/\/github.com\/GoogleCloudPlatform\/python-docs-samples\ncd python-docs-samples\/appengine\/standard_python3\/building-an-app\/building-an-app-1\ngcloud app deploy\n<\/code><\/pre>\n\n\n\n<p>Now that the App Engine is no longer bind with the VPC<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"108\" src=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/04\/image-13-1024x108.png\" alt=\"\" class=\"wp-image-1351\" srcset=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/04\/image-13-1024x108.png 1024w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/04\/image-13-300x32.png 300w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/04\/image-13-768x81.png 768w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/04\/image-13-1536x163.png 1536w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/04\/image-13-500x53.png 500w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/04\/image-13.png 1831w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Make sure to delete the Serverless VPC connector<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"299\" src=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/04\/image-14-1024x299.png\" alt=\"\" class=\"wp-image-1353\" srcset=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/04\/image-14-1024x299.png 1024w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/04\/image-14-300x88.png 300w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/04\/image-14-768x224.png 768w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/04\/image-14-1536x448.png 1536w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/04\/image-14-2048x598.png 2048w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/04\/image-14-500x146.png 500w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>In App Engine, <span style=\"text-decoration: underline;\">make sure to purge versions<\/span> that uses the Serverless VPC connector.<\/p>\n\n\n\n<p>Then try to delete the VPC again<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>gcloud compute networks delete cloud-sql\nThe following networks will be deleted:\n - &#91;cloud-sql]\n\nDo you want to continue (Y\/n)?  y\n\nDeleted &#91;https:\/\/www.googleapis.com\/compute\/v1\/projects\/jye-01\/global\/networks\/cloud-sql].<\/code><\/pre>\n\n\n\n<p>Success!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>When tried to delete GCP VPC following error occurs: Found out previously I had tried to enable App Engine access Cloud SQL privately by using Serverless VPC Connector Then in App Engine app.yaml, following statement was used to tell App &hellip; <a href=\"https:\/\/cloudlearning365.com\/?p=1349\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[5],"tags":[],"class_list":["post-1349","post","type-post","status-publish","format-standard","hentry","category-gcp"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/cloudlearning365.com\/index.php?rest_route=\/wp\/v2\/posts\/1349","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudlearning365.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudlearning365.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudlearning365.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudlearning365.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1349"}],"version-history":[{"count":4,"href":"https:\/\/cloudlearning365.com\/index.php?rest_route=\/wp\/v2\/posts\/1349\/revisions"}],"predecessor-version":[{"id":1357,"href":"https:\/\/cloudlearning365.com\/index.php?rest_route=\/wp\/v2\/posts\/1349\/revisions\/1357"}],"wp:attachment":[{"href":"https:\/\/cloudlearning365.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1349"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudlearning365.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1349"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudlearning365.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1349"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}