Skip to content

Migrate from GCP VPC to Quake AI

Migration · Updated Jun 2026

Coming from another cloud?

▸Google Cloud·VPC, Firewall Rules, Cloud Load Balancing, Cloud DNS

Firewall Ruleshigh

  • GCP firewall rules are VPC-level with target filtering by network tags or service accounts; OpenStack security groups attach to ports.
  • GCP rules are stateful (implied return traffic); OpenStack security groups also stateful but per Neutron port.
  • GCP firewall supports priority (0-65535) with explicit deny rules; OpenStack security groups are allow-only (implicit deny).
  • GCP hierarchical firewall policies apply org/folder-wide; OpenStack has no equivalent scope.
Google Cloud docs ↗

Cloud Load Balancinghigh

  • GCP offers external and internal, global and regional, HTTP, TCP, and UDP load balancers. Quake AI workloads use a self-managed reverse proxy or Kubernetes LoadBalancer Service.
  • GCP global HTTP(S) load balancing uses one anycast IP across regions. Self-managed Quake AI edges use the public IP and topology you provision.
  • GCP integrates Cloud CDN, Cloud Armor (WAF/DDoS) with LBs; OpenStack has no native CDN/WAF integration.
  • GCP backend services use health checks and instance groups or NEGs. Self-managed Quake AI edges use proxy upstreams or Kubernetes service selectors.
Google Cloud docs ↗

Migrate from GCP VPC to Quake AI

GCP's global VPC model is architecturally unique among cloud providers and requires the most significant conceptual restructuring for migration. A single GCP VPC spans all regions within a project, with regional subnets, global firewall rules that support both allow and deny actions with priority ordering, and hierarchical firewall policies. On Quake AI, the Network service (OpenStack Neutron) is regional by design: each region gets its own network, subnet, and router. Firewall deny rules and policy hierarchies collapse into flat, allow-only security groups.

Service mapping#

Google Cloud to Quake AI

Google Cloud serviceQuake AI equivalentKey difference
Static External IPFloating IPsGCP static IPs are regional or global resources, with unassociated IPs metered per-hour; OpenStack floating IPs are pool-based. See the GCP... see details
Cloud NATNATGCP Cloud NAT is a managed service on top of Cloud Router; OpenStack SNAT is built into the L3 router agent/OVN. GCP NAT supports port... see details
Cloud Load BalancingNetworkGCP offers external and internal, global and regional, HTTP, TCP, and UDP load balancers. Quake AI workloads use a self-managed reverse... see details
VPC NetworkingNetworkingPer-cluster Neutron networks + floating IPs; GKE shared VPC with alias IP ranges. Kubernetes LoadBalancer behavior replaces Google Cloud... see details
VPC NetworkNetworksGCP VPC is global (spans all regions) whereas OpenStack Neutron networks are project-scoped and region-local. GCP uses shared VPC for... see details
Network Interface (VM network config)PortsGCP VMs have network interfaces attached at creation; OpenStack ports are explicit Neutron resources manageable independently. GCP... see details
Cloud RouterRoutersGCP Cloud Router is a BGP speaker for dynamic route exchange with VPN/Interconnect; OpenStack routers are L3 gateways with static routes.... see details
Firewall RulesSecurity GroupsGCP firewall rules are VPC-level with target filtering by network tags or service accounts; OpenStack security groups attach to ports. GCP... see details
SubnetsSubnetsGCP subnets are regional (cover all zones in a region); OpenStack subnets are project-scoped within a network. GCP supports secondary IP... see details

Prerequisites#

  • A Quake AI account with application credentials
  • The OpenStack CLI installed and configured
  • An inventory of your GCP resources: VPCs, subnets, firewall rules (including hierarchical policies), Cloud NAT, static external IPs, Cloud Load Balancers, and Cloud DNS zones
  • An SSH key pair imported to Quake AI (openstack keypair create --public-key)

Topology mapping#

The key restructuring: GCP's single global VPC with regional subnets becomes per-region Neutron deployments. Applications that relied on cross-region VM communication within one GCP VPC require explicit connectivity setup on Quake AI.

GCP Global VPCQuake AI (per-region)Region ARegion BCloud NATFirewall Rules (priority-ordered)Static External IPRegion ARegion BSubnetSubnetNetworkRouter (SNAT)Security GroupFloating IPNetworkRouter (SNAT)Security GroupFloating IP priority-orderedallow-onlyallow-onlymaps to (one VPC becomes N independent regions)
Click to zoom
GCP global VPC with regional subnets and priority firewall rules maps to per-region Neutron networks with allow-only security groups and floating IPs
GCP conceptNeutron equivalentNotes
VPC (global)Network (regional)GCP VPC spans all regions; Neutron networks are per-region
Regional SubnetSubnetDirect match; Neutron subnets are inherently regional
Cloud RouterNo equivalentBGP dynamic routing for HA VPN and Cloud Interconnect, and the control plane for Cloud NAT. On Quake AI, the Neutron router provides SNAT directly.
VPN GatewaySoftware VPN on instanceNo managed VPN; implement WireGuard or OpenVPN
External static IPFloating IPRegional, reservable, re-assignable
Firewall Rules (allow)Security Group rulesTarget tags become security group references
Firewall Rules (deny)No equivalentNeutron SGs are allow-only; see translation below
Hierarchical Firewall PoliciesNo equivalentNo policy hierarchy; all rules are flat per SG
Network tagsSecurity Group assignmentTags target firewall rules; SGs assign to ports
Service Account network tagsNo equivalentMust use SG IDs as proxy
Cloud NATRouter (SNAT)Router SNAT is the equivalent; no separate object
Shared VPCNo equivalentCross-project network sharing. In GCP Shared VPC, a host project owns the network and service projects attach workloads. On Quake AI, each project (tenant) has its own isolated network. Map each GCP service project to a separate Quake AI project with its own network stack, and use a VPN overlay or public endpoints for cross-project communication.
VPC Network PeeringNo equivalentNo network peering on Quake AI

Set up the Neutron equivalent#

For each GCP region your workloads occupy, create a separate Neutron network:

bash
openstack network create my-network

openstack subnet create my-subnet \
  --network my-network \
  --subnet-range 10.0.0.0/24 \
  --gateway 10.0.0.1 \
  --dns-nameserver 8.8.8.8

openstack router create my-router
openstack router set my-router --external-gateway PublicStatic
openstack router add subnet my-router my-subnet

Security rule translation#

GCP's firewall model is the most different from Neutron of the five providers: it supports both allow and deny rules with priority ordering, hierarchical policies (Org, Folder, VPC level), and targeting by network tags or service accounts.

DimensionGCP Firewall RulesNeutron Security Groups
Rule modelAllow and denyAllow-only
EvaluationPriority-ordered (0 = highest)All rules additive
Default inboundDeny-all (custom VPC; the GCP default VPC includes default-allow-internal and other permissive rules to audit before migration)Deny-all
Default outboundAllow-all (implied)Allow-all
Applied toVMs via network tags or service accountPorts via security group assignment
ScopeVPC-level (all matching VMs)Per-port
HierarchicalYes (Org/Folder/VPC policies)No hierarchy
Source typesCIDR, tags, service accountsCIDR, Security Group ID

Translating deny rules#

GCP commonly uses explicit deny rules to block specific traffic at a lower priority than allow rules. In Neutron, you cannot create deny rules. The migration approach:

  1. For each deny rule, identify what traffic it blocks.
  2. Verify that no allow rule exists in your Neutron security groups for that traffic. Neutron's implicit deny-all ingress handles the rest.
  3. For deny rules that carve out exceptions from a broader allow rule (e.g., allow 0.0.0.0/0 except 10.0.0.0/8), split the allow rules into specific non-overlapping CIDRs that exclude the denied range.

Translating hierarchical policies#

GCP hierarchical firewall policies (Org, Folder, VPC) with goto_next delegation have no Neutron equivalent. Consolidate all policy layers into a flat set of security group rules:

  1. Enumerate all effective rules per instance (accounting for priority at each policy level).
  2. Group instances by access pattern.
  3. Create one Neutron security group per access pattern.

3-tier app example#

GCP source:

Priority 100: Allow TCP 80,443 from 0.0.0.0/0 to tag web-tier
Priority 100: Allow TCP 8080 from tag web-tier to tag app-tier
Priority 100: Allow TCP 5432 from tag app-tier to tag db-tier
Priority 65534: Deny all ingress (implicit)
Priority 65535: Allow all egress (implied)

Neutron target:

bash
openstack security group create sg-web
openstack security group rule create sg-web \
  --protocol tcp --dst-port 80 --remote-ip 0.0.0.0/0 --ingress
openstack security group rule create sg-web \
  --protocol tcp --dst-port 443 --remote-ip 0.0.0.0/0 --ingress

openstack security group create sg-app
openstack security group rule create sg-app \
  --protocol tcp --dst-port 8080 --remote-group sg-web --ingress

openstack security group create sg-db
openstack security group rule create sg-db \
  --protocol tcp --dst-port 5432 --remote-group sg-app --ingress

Each GCP network tag maps to a Neutron security group. All deny rules are dropped because Neutron's implicit deny-all achieves the same result when the corresponding allow rules are absent. The hierarchical policy layer collapses into these three flat security groups.

Load balancer migration#

Replace GCP load balancing with a regional reverse proxy on Quake AI and an external edge where the source architecture uses global services.

GCP sourceQuake AI migration pattern
Global External HTTP(S) Load BalancerExternal CDN or DNS traffic manager in front of a Quake AI origin
Regional External HTTP(S) Load BalancerHAProxy, Nginx, Caddy, Traefik, or Envoy on a Compute instance
External Network Load BalancerHAProxy or Nginx stream proxy
Cloud ArmorExternal CDN/WAF
URL mapsHost and path routing in the reverse proxy

Assign a floating IP to the proxy instance. Install TLS certificates on the proxy with Certbot, use Caddy's ACME support, or terminate public TLS at the external edge.

Floating IP setup#

GCP External Static IPNeutron Floating IP
Regional or global scopeRegional only
Reservable by name, attachable to VM/LBAllocatable from pool, attachable to port
Global IPs used for global LBs (anycast)No global anycast available
Premium vs Standard network tierSingle tier on Quake AI. GCP Premium routes over Google's backbone and Standard routes over the internet; both assign regional IPs to VMs.
IPv6 supportedIPv6 not documented on Quake AI
Charged when unattached on GCPIncluded in Quake AI pricing
bash
openstack floating ip create PublicStatic
openstack server add floating ip MY_INSTANCE FLOATING_IP_ADDRESS

DNS cutover#

GCP Cloud DNS must be replaced by an external provider. Quake AI has no managed DNS service.

  1. Export records: gcloud dns record-sets list --zone=ZONE_NAME --format=json
  2. Lower TTLs: Use gcloud dns record-sets update to lower TTLs to 300 seconds; wait for current TTL propagation.
  3. Import at new provider: Standard BIND zone file or Terraform.
  4. Validate: dig @NEW_NAMESERVER example.com A
  5. Update registrar NS records.
  6. Monitor for 48 hours and restore TTLs after successful cutover.

Validation checklist#

  • Per-region Neutron networks, subnets, and routers are operational
  • Security group rules cover the intent of all GCP firewall allow rules
  • GCP deny rules are handled by the absence of corresponding allow rules in Neutron
  • Hierarchical policy intent is captured in flat security group rules
  • Network tag-to-security-group mapping is documented and applied to ports
  • Cross-region communication is functional (VPN overlay or public endpoints)
  • Floating IPs are associated with the correct instance ports
  • Reverse proxy health checks pass for application backends
  • DNS records resolve to the proxy floating IP or external edge hostname
  • Applications respond correctly through the full network path

Provider-specific gotchas#

TopicDetail
Global VPC re-architectureGCP workloads in multiple regions under one VPC have internal routing without configuration. On Quake AI, each region is a separate deployment. Cross-region communication must be redesigned.
Egress pricingGCP bills egress per-GiB with rates that vary by source-destination pair, often higher for cross-continental routes. Quake AI's bandwidth-inclusive model is a major cost reduction for egress-heavy workloads. See GCP network pricing.
Cloud Armor / DDoSGCP Cloud Armor provides DDoS mitigation and WAF at the global load balancer. Place a CDN/WAF edge service in front of the Quake AI origin.
Shared VPCGCP Shared VPC (XPN) shares a network across multiple projects. Each Quake AI project is isolated. Cross-project networking must be redesigned.
Firewall rule migration at scaleLarge GCP deployments may have hundreds of firewall rules with complex tag targeting and hierarchical policies. Script the migration: enumerate effective rules per instance, group by access pattern, and generate Neutron SG definitions.

See also#

Usage Guidelines

The sample code, software libraries, command line tools, proofs of concept, templates, and other related technology on this page (including any of the foregoing that is provided by Quake AI personnel) is provided to you as Quake AI Content under the Quake AI Customer Agreement, or the relevant written agreement between you and Quake AI (whichever applies). Do not use this Quake AI Content in your production accounts, or on production or other critical data. You are responsible for testing, securing, and optimizing the Quake AI Content (such as sample code) as appropriate for production grade use based on your specific quality control practices and standards. Deploying Quake AI Content may incur Quake AI charges for creating or using Quake AI chargeable resources, such as running Compute instances or storing data in Object Storage. Your use is also subject to the Acceptable Use Policy.

Comparisons to third-party providers in this material reflect publicly documented behavior as of the validation date below. Pricing, quotas, service limits, and feature availability change frequently on every cloud. Verify provider-specific claims against the provider's own current documentation before relying on them for a procurement, architecture, or migration decision.

For the full policy, see Usage Guidelines.

Last validated: 22.06.2026

Was this page helpful?