Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2998)

Unified Diff: appengine/chrome_infra_mon_proxy/scripts/nat_setup.sh

Issue 928043005: Monitoring proxy for time series data (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Responded to comments Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: appengine/chrome_infra_mon_proxy/scripts/nat_setup.sh
diff --git a/appengine/chrome_infra_mon_proxy/scripts/nat_setup.sh b/appengine/chrome_infra_mon_proxy/scripts/nat_setup.sh
new file mode 100755
index 0000000000000000000000000000000000000000..634bb3a3a3c97c6fcfeff8a089c2b3bf068a972d
--- /dev/null
+++ b/appengine/chrome_infra_mon_proxy/scripts/nat_setup.sh
@@ -0,0 +1,83 @@
+#!/bin/bash
+# Run this script from its directory, to correctly pick up nat_startup.sh:
+# cd scripts
+# ./nat_setup.sh [command]
+
+PROJECT="chrome-infra-mon-proxy"
+REGION="us-central1"
+INSTANCE_TYPE="n1-standard-2"
+GAE_VM1_TAG="managed-gae-vm1"
+GAE_VM2_TAG="managed-gae-vm2"
+GAE_VM3_TAG="managed-gae-vm3"
+
+function delete_instance {
+ # delete_instance instance-name zone-name
+ echo "Deleting $1"
+ gcloud compute -q --project "$PROJECT" instances delete "$1" --zone "$2"
+}
+function create_instance {
+ # create_instance instance-name zone-name ip-name
+ echo "Creating $1"
+ gcloud compute -q --project "$PROJECT" instances create $1 --project "$PROJECT" --machine-type $INSTANCE_TYPE --zone $2 --image ubuntu-14-04 --network default --can-ip-forward --tags nat --address $3 --metadata-from-file startup-script=nat_startup.sh
+}
+
+function create_nat_route {
+ # create_nat_route route-name tag instance-name instance-zone
+ echo "Creating new route to hijack traffic from VM tag $2"
+ gcloud compute --project "$PROJECT" routes create "$1" --network default --destination-range 0.0.0.0/0 --next-hop-instance "$3" --next-hop-instance-zone "$4" --tags "$2" --priority 800
+}
+
+function delete_nat_route {
+ echo "Deleting route $1"
+ gcloud compute --project "$PROJECT" routes delete "$1"
+}
+
+function delete_nat_backend {
+ # Deletes NAT routes.
+ delete_nat_route managed-vm1-nat-route
+ delete_nat_route managed-vm2-nat-route
+ delete_nat_route managed-vm3-nat-route
+}
+
+function create_nat_backend {
+ create_nat_route managed-vm1-nat-route "$GAE_VM1_TAG" nat-box1 "$REGION-a"
+ create_nat_route managed-vm2-nat-route "$GAE_VM2_TAG" nat-box2 "$REGION-b"
+ create_nat_route managed-vm3-nat-route "$GAE_VM3_TAG" nat-box3 "$REGION-f"
+}
+
+# Respin the NAT box VMs. Controlled individually, in case only some
+# of them have problems.
+function respin_nat1 {
+ delete_instance nat-box1 "$REGION-a"
+ create_instance nat-box1 "$REGION-a" proxy1
+}
+
+function respin_nat2 {
+ delete_instance nat-box2 "$REGION-b"
+ create_instance nat-box2 "$REGION-b" proxy2
+}
+
+function respin_nat3 {
+ delete_instance nat-box3 "$REGION-f"
+ create_instance nat-box3 "$REGION-f" proxy3
+}
+
+case $1 in
+ nat1)
+ respin_nat1
+ ;;
+ nat2)
+ respin_nat2
+ ;;
+ nat3)
+ respin_nat3
+ ;;
+ create-routes)
+ create_nat_backend
+ ;;
+ delete-routes)
+ delete_nat_backend
+ ;;
+ *)
+ echo "Unknown command: $1. Use nat[1-3], create-routes, delete-routes."
+esac

Powered by Google App Engine
This is Rietveld 408576698