Migrating from GCP to Quake AI
Coming from another cloud?
▸Google Cloud·VM instances, Storage
VM instances
- Uses REST API 'instances.insert' instead of Nova 'servers.create' with different auth via service accounts vs Keystone.
- Supports bare metal instances (no hypervisor), not in standard OpenStack Nova.
- Network interfaces tied to VPC subnets; differs from Neutron ports/floating IPs.
Migrating from GCP to Quake AI
This guide walks you through moving workloads from Google Cloud Platform to Quake AI, service by service. Object storage has a dedicated migration how-to guide. Practical notes below cover compute, networking, and IaC. Managed services (Cloud SQL, Cloud Functions, BigQuery) have no direct equivalent and require self-managed alternatives.
If you have not reviewed the concept differences, start with Coming from GCP for the full mapping table.
Before you migrate#
- Review the concept translation guide for concept-by-concept mapping
- Inventory your GCP resources: Compute Engine VMs, Cloud Storage buckets, VPCs, firewall rules, GKE clusters, and any managed services
- Identify Cloud SQL, Cloud Functions, Pub/Sub, and BigQuery dependencies that need self-managed alternatives
Migration phases#
1. Evaluate and plan#
Inventory your GCP resources: Compute Engine VMs, Cloud Storage buckets, VPCs, firewall rules, Deployment Manager or Terraform configs. Identify managed services with no direct Quake AI equivalent (Cloud SQL, Cloud Functions, BigQuery) and plan self-managed replacements.
2. Account setup#
Create your Quake AI project, generate application credentials, and install the OpenStack CLI.
- Quickstart
- Generate application credentials
- Access & Credentials for the OpenStack CLI
3. Object storage (Cloud Storage → Swift)#
Object storage has the most direct migration path from GCP. Quake AI's Swift endpoint is S3-compatible, and rclone handles the transfer from GCS natively.
What to watch for: GCS storage classes (Nearline, Coldline, Archive) have minimum storage duration charges. If you delete objects before the minimum duration, GCS charges early deletion fees. Factor this into your migration timeline. GCS lifecycle rules and IAM policies do not transfer.
For the full cutover procedure, see Migrate from Google Cloud Storage.
4. Infrastructure as code (gcloud and Deployment manager → OpenTofu)#
GCP uses gcloud for imperative operations and the google Terraform provider for declarative infrastructure. Rewrite resources using the openstack provider. No automatic conversion tool exists.
Key resource mappings:
| GCP (Terraform) | Quake AI (OpenTofu) |
|---|---|
google_compute_instance | openstack_compute_instance_v2 |
google_storage_bucket | openstack_objectstorage_container_v1 |
google_compute_firewall | openstack_networking_secgroup_v2 + rules |
google_compute_network / google_compute_subnetwork | openstack_networking_network_v2 / openstack_networking_subnet_v2 |
google_compute_address | openstack_networking_floatingip_v2 |
google_compute_forwarding_rule | Edge reverse proxy, WAF, or API gateway on Nova with a Neutron floating IP |
Get started with Infrastructure as Code with OpenTofu.
5. Compute (Compute engine → Nova)#
GCP provides gcloud compute images export, which exports a Compute Engine image to a Cloud Storage bucket in VMDK, VHDX, VPC, QCOW2, or VDI format. Cross-platform image compatibility (drivers, cloud-init configuration, kernel choices) is often imperfect, so the practical migration approach is to provision new instances and migrate application data:
Containerized applications: Migrate container images and deploy on Nova instances. For GKE workloads, self-managed Kubernetes on Nova (via RKE2 or k3s) is the recommended path; see Migrate from GKE to Kubernetes on Quake AI for the full guide.
Non-containerized applications: Provision a new Nova instance with the same base image, install your application stack, and rsync data from the GCE instance. Use cloud-init or OpenTofu to make provisioning repeatable.
GKE to self-managed K8s: Export your manifests, Helm charts, and configs. Provision self-managed K8s on Nova instances and apply them. Replace Workload Identity, Config Connector CRDs, and GKE Ingress with open-source equivalents. See the full GKE migration guide for details.
See Create an instance for the full workflow. For the full guide, see Migrate from GCP Compute Engine to Quake AI Compute.
6. Networking (VPC → Neutron)#
Re-create your GCP VPC as a network, subnet, and router in Neutron.
Firewall rules → Security groups: GCP firewall rules support allow and deny with priority ordering; Neutron security groups are allow-only and additive. Re-map each allow rule; rethink any deny rules or priority-ordered logic for the additive model.
Static external IP → Floating IP: Allocate from the external pool and associate with your instance's port.
Key how-to guides:
For topology diagrams, three-tier security rule translation, and public-address migration, see Migrate from GCP VPC to Quake AI. Translate HTTP routing and backend services into an edge reverse proxy or API gateway.
7. Validation and cutover#
Before decommissioning GCP resources:
- Verify that applications respond on Quake AI instances with the expected behavior
- Confirm object storage data integrity between Cloud Storage and Swift
- Update DNS records to point to Quake AI floating IPs; use low TTLs during the transition
- Validate security group rules cover the same traffic patterns as your GCP firewall rules
- Confirm monitoring and alerting are in place (self-managed Prometheus, Grafana, or equivalent)
Service mapping reference#
The table below shows how GCP services map to Quake AI equivalents, with confidence ratings and documented divergences. The <ProviderMappings> component reads from the platform knowledge graph.
Compute· 30 mappings
Cloud Identity / IAM
→ Rumble: Authentication
high4 diffs›
Cloud Identity / IAM
→ Rumble: Authentication
- •Role-based with predefined/custom roles (permissions as service.resource.verb); Keystone uses simpler flat roles assigned to user-project/domain pairs without granular permissions.
- •Hierarchical inheritance across Org > Folder > Project; OpenStack Keystone assignments scoped per project/domain without automatic inheritance.
- •Supports IAM Conditions for attribute/time-based access, deny policies, VPC Service Controls; no direct OpenStack equivalent.
- •Principals include Google groups/service accounts/federated; Keystone uses local users/groups with federation add-ons.
Cloud Load Balancing
→ Rumble: Load balancer
high4 diffs›
Cloud Load Balancing
→ Rumble: Load balancer
- •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.
Cloud NAT
→ Rumble: NAT
high3 diffs›
Cloud NAT
→ Rumble: NAT
- •GCP 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 allocation (static/dynamic), min/max ports per VM; OpenStack SNAT allocates ports dynamically.
- •GCP NAT Gateway billed per hour + per GB processed; OpenStack SNAT is typically included in router costs.
Cloud Router
→ Rumble: Routers
high3 diffs›
Cloud Router
→ Rumble: Routers
- •GCP Cloud Router is a BGP speaker for dynamic route exchange with VPN/Interconnect; OpenStack routers are L3 gateways with static routes.
- •GCP routers enable Cloud NAT but are separate resources; OpenStack router SNAT is built into the router service.
- •GCP routers regional, created per region for VPN/Interconnect; OpenStack routers can be shared/distributed across AZs.
Cloud Storage S3-compatible XML API
→ Rumble: S3 compatibility
high4 diffs›
Cloud Storage S3-compatible XML API
→ Rumble: S3 compatibility
- •GCP Cloud Storage has an S3-compatible XML API at storage.googleapis.com; auth uses HMAC keys generated separately from GCP service account credentials. Quake AI uses EC2-style credentials (access key + secret) generated via Keystone POST /v3/users/{user_id}/credentials/OS-EC2.
- •GCP S3 XML API endpoint is storage.googleapis.com (path-style); Quake AI endpoint is provider-specific. GCP does not support S3 multipart upload via the XML API — the GCS resumable upload API must be used instead. Quake AI's Swift s3api supports S3 multipart upload.
- •IAM policies on GCS buckets cannot be managed via S3 ACL API calls through the compatibility layer; bucket IAM must be managed via GCP-native tooling (gcloud, Resource Manager API).
- •GCP HMAC keys inherit all permissions of the associated service account with no ability to restrict to a subset of operations. Keystone EC2 credentials inherit the Keystone role of the user who creates them.
Compute Engine
→ Rumble: Compute
›
Compute Engine
→ Rumble: Compute
No specific divergences documented yet.
View GCP docs →Default server-side encryption
→ Rumble: Encryption
high4 diffs›
Default server-side encryption
→ Rumble: Encryption
- •GCP always-on AES-256-GCM Google-managed (no config), +CMEK/CSEK; Swift optional proxy middleware (keymaster+encryption), AES-256-CTR on body/ETag/user-meta (plaintext client→encrypt cluster), requires root secret config/daemon.
- •GCP encrypts metadata/checksums; Swift selective (no names/size/sysmeta).
- •GCP auto decrypt reads; Swift decrypts GET/HEAD w/ keymaster.
- •GCP client optional; Swift recommends client-side for transit+storage.
Deployment Manager
→ Rumble: Automation
high4 diffs›
Deployment Manager
→ Rumble: Automation
- •Uses YAML configurations with optional Jinja2/Python templates expanded server-side; Quake AI offers Heat (legacy, HOT/YAML) and recommends OpenTofu (HCL) for new work.
- •Resource types named as service.v1.resource (e.g., compute.v1.instance) tied to GCP APIs, vs OpenStack prefixed types like OS::Nova::Server.
- •Single integrated GCP service (no separate API/engine processes); Heat has a multi-service architecture (heat-api, heat-engine) but is legacy. OpenTofu runs client-side with no server component.
- •No additional service fee; bills only for deployed GCP resources, same as OpenStack resources billing via provider.
Disk Clones
→ Rumble: Clones
high4 diffs›
Disk Clones
→ Rumble: Clones
- •Direct disk-to-disk cloning (zonal-to-zonal or zonal-to-regional) without intermediate snapshot, synchronous and instantly usable (regional averages 3 min to full sync).
- •Must match source disk type; rate limits (1 every 30s, 1000 per lineage); clone size >= source.
- •Cross-project supported via full resource path; source VM cannot power on during clone.
- •API uses compute.disks.insert with sourceDisk field, differing from Cinder's clone volume API.
Firewall Rules
→ Rumble: Security groups
high4 diffs›
Firewall Rules
→ Rumble: Security groups
- •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.
GKE Cluster
→ Rumble: Kubernetes
high4 diffs›
GKE Cluster
→ Rumble: Kubernetes
- •GKE provides Autopilot mode with fully managed node provisioning and scaling by Google; on Quake AI you provision clusters through Magnum or self-managed Kubernetes on Nova instances and manage node scaling yourself.
- •Control plane is fully managed with automatic upgrades through release channels; Quake AI requires user-provisioned and user-managed control plane nodes.
- •Cluster creation uses gcloud CLI vs OpenStack CLI (openstack coe cluster create).
- •Custom machine types, spot VMs, accelerators in node pools; Quake AI K8s nodes use standard Nova flavors.
GKE Pricing
→ Rumble: Billing
high4 diffs›
GKE Pricing
→ Rumble: Billing
- •Per-hour cluster platform fee with a free tier allowance; Autopilot offers pod-based billing as an alternative model. On Quake AI, whether you use Magnum or self-managed Kubernetes, you pay only for the underlying Nova instances and associated resources, with no Kubernetes platform fee.
- •Separate Cloud Billing Account linked to multiple projects, with self-serve/invoiced, postpay/prepay cycles; OpenStack typically uses external billing systems integrated via usage notifications, no built-in account.
- •Payments via Google Payments Profile (cards/ACH/wire); OpenStack has no native payment processing.
- •Billing-specific IAM roles (e.g., Billing Account Creator) inherited from Org; OpenStack quotas/usage per project via Keystone/Nova, no billing IAM.
Google Compute Engine Pay-As-You-Go (per-second billing, automatic sustained use discounts)
→ Rumble: Pricing
high4 diffs›
Google Compute Engine Pay-As-You-Go (per-second billing, automatic sustained use discounts)
→ Rumble: Pricing
- •GCP bills all VM instances per second with no minimum charge per instance. Sustained use discounts apply automatically (up to 30% discount) after using an instance for more than 25% of a month; no commitment required and no OpenStack equivalent.
- •GCP pricing is not embedded in the machine type API; it requires the Cloud Billing Catalog API (GET /v1/services/{serviceId}/skus) or the Pricing Calculator.
- •GCP bills network egress by destination: egress to internet by region (varies), within-region egress is free. Quake AI's egress pricing is operator-defined.
- •Preemptible (now Spot) VMs on GCP offer up to 91% discount with no-notice termination. OpenStack does not natively support preemptible or spot instances.
Machine Images (full VM state capture)
→ Rumble: Images
high3 diffs›
Machine Images (full VM state capture)
→ Rumble: Images
- •Public images shareable across projects (e.g. debian-cloud); OpenStack typically tenant-private.
- •Image families point to latest version; no OpenStack equivalent.
- •Custom images stored in Cloud Storage with licensing fees for premium OS.
Machine types
→ Rumble: Flavors
high3 diffs›
Machine types
→ Rumble: Flavors
- •Organized by families/series (e.g. N2 general-purpose); OpenStack flavors flat list.
- •Custom types +5% premium for N/E series; no such billing in OpenStack.
- •Naming 'n2-standard-4'; shared-core bursting types absent in OpenStack.
N/A (No subscription layer — GCP Billing Accounts linked to Projects)
→ Rumble: Subscriptions
high4 diffs›
N/A (No subscription layer — GCP Billing Accounts linked to Projects)
→ Rumble: Subscriptions
- •GCP has no subscription concept. A Billing Account is linked to one or more Projects; usage across linked projects is aggregated and invoiced together. OpenStack projects do not have a native billing account concept.
- •GCP Billing Accounts can be linked to up to 5 projects by default (quota increase required for more); each project can only have one billing account. OpenStack projects have no billing account concept built in.
- •GCP Projects are resource containers and quota boundaries; the Billing Account is purely a financial construct. OpenStack projects serve both purposes (resource isolation and, in some deployments, billing isolation).
- •GCP billing exports to BigQuery are a first-class feature for cost analysis at the billing account level. No OpenStack equivalent; billing data requires custom instrumentation.
Network Interface (VM network config)
→ Rumble: Ports
high3 diffs›
Network Interface (VM network config)
→ Rumble: Ports
- •GCP VMs have network interfaces attached at creation; OpenStack ports are explicit Neutron resources manageable independently.
- •GCP multi-NIC VMs require one interface per VPC (max 8); OpenStack supports multiple ports on same or different networks.
- •GCP alias IP ranges allow multiple IPs per interface without additional resources; OpenStack uses allowed_address_pairs.
Object Versioning
→ Rumble: Versioning
high4 diffs›
Object Versioning
→ Rumble: Versioning
- •GCP bucket-level enable, auto live/noncurrent via generation/metageneration, DELETE noncurrent permanent (w/gen), costs all versions + lifecycle mgmt; Swift container-level X-Versions/Histor y-Location modes (archive on PUT/DELETE, naming <len>obj/ts>), middleware required, DELETE behavior mode-dependent (restore vs archive).
- •GCP soft delete separate/interactive; Swift no soft delete mention.
- •GCP no manifest versioning; Swift same.
- •GCP disable retains versions; Swift similar.
Organizations
→ Rumble: Organizations
high3 diffs›
Organizations
→ Rumble: Organizations
- •Organizations auto-provisioned for Google Workspace/Cloud Identity accounts with immutable owner directory ID; OpenStack domains are manually created without such tight identity coupling.
- •Single org per company as root with Folders for sub-grouping (e.g., departments); OpenStack lacks native multi-level folders, using domains/projects.
- •Central point for IAM policy inheritance to all descendants and organization policies (constraints); Keystone domain-scoped assignments don't inherit multi-level.
Persistent Disk
→ Rumble: Volumes
high4 diffs›
Persistent Disk
→ Rumble: Volumes
- •Uses Google Compute Engine REST API instead of OpenStack Cinder API.
- •Offers multiple performance tiers (pd-standard HDD, pd-balanced SSD, pd-ssd, pd-extreme) with performance scaling linearly with provisioned size, unlike Cinder's backend-dependent performance.
- •Supports regional disks replicated synchronously across 2 zones for higher availability (better than 99.9999% durability), while Cinder volumes are typically zonal unless using replication features.
- •Online resize to increase size without detaching; no manual striping/RAID needed as GCP handles distribution automatically.
Projects
→ Rumble: Projects
high3 diffs›
Projects
→ Rumble: Projects
- •GCP Projects have both human-readable Project ID (custom) and auto-generated numeric Project Number, used interchangeably in APIs unlike OpenStack projects which use single ID.
- •Projects required to enable billing and host all service resources; no direct equivalent to OpenStack's billing per project without linking to Billing Account.
- •Projects inherit IAM policies from Org/Folders; moving project changes inheritance, unlike flat OpenStack project isolation.
Sole-Tenant Nodes / Instance Groups
→ Rumble: Server groups
high3 diffs›
Sole-Tenant Nodes / Instance Groups
→ Rumble: Server groups
- •MIGs offer autoscaling, autohealing, rolling updates via templates; OpenStack only scheduling policies (affinity etc.).
- •Zonal/regional with HA/load balancing integration; no management in OpenStack groups.
- •App health checks trigger recreation; requires external orchestration in OpenStack.
SSH keys
→ Rumble: Key pairs
high3 diffs›
SSH keys
→ Rumble: Key pairs
- •Managed in project/instance metadata or OS Login (IAM); no central 'keypairs' resource like Nova.
- •Auto-generates ephemeral keys for CLI/console; manual upload only in OpenStack.
- •Public key includes username suffix; injected differently.
Standard/Archive Snapshots
→ Rumble: Snapshots
high4 diffs›
Standard/Archive Snapshots
→ Rumble: Snapshots
- •Crash-consistent point-in-time copies stored incrementally in Cloud Storage (geo-redundant by default), unlike Cinder snapshots which depend on backend (often full copies).
- •Two types: Standard (faster recovery) and Archive (cheaper long-term); supports snapshot schedules (standard only).
- •Global by default, shareable across projects/regions/zones with network egress costs for cross-region restore; regional scoping (preview) for location control.
- •Frequency limit: max 6 snapshots per disk every 60 minutes.
Static External IP
→ Rumble: Floating IPs
high3 diffs›
Static External IP
→ Rumble: Floating IPs
- •GCP static IPs are regional or global resources, with unassociated IPs metered per-hour; OpenStack floating IPs are pool-based. See the GCP pricing page for current rates.
- •GCP supports both ephemeral (auto-released on stop) and static IPs; OpenStack floating IPs are always explicit.
- •GCP global static IPs used with global load balancers only; no direct OpenStack equivalent.
Subnets
→ Rumble: Subnets
high3 diffs›
Subnets
→ Rumble: Subnets
- •GCP subnets are regional (cover all zones in a region); OpenStack subnets are project-scoped within a network.
- •GCP supports secondary IP ranges for alias IPs/GKE pods; OpenStack subnets have single CIDR.
- •GCP private Google access allows VMs without external IPs to reach Google APIs; OpenStack has no equivalent.
Terraform google provider
→ Rumble: Terraform
high2 diffs›
Terraform google provider
→ Rumble: Terraform
- •Uses HCL with google_compute_instance, google_storage_bucket etc.; Quake AI uses the OpenStack Terraform/OpenTofu provider with openstack_compute_instance_v2 and equivalent resources.
- •Remote state stored in GCS backend; OpenStack uses Terraform state stored locally or in S3-compatible backend.
VM instances
→ Rumble: Instances
high3 diffs›
VM instances
→ Rumble: Instances
- •Uses REST API 'instances.insert' instead of Nova 'servers.create' with different auth via service accounts vs Keystone.
- •Supports bare metal instances (no hypervisor), not in standard OpenStack Nova.
- •Network interfaces tied to VPC subnets; differs from Neutron ports/floating IPs.
VPC Network
→ Rumble: Networks
high4 diffs›
VPC Network
→ Rumble: Networks
- •GCP VPC is global (spans all regions) whereas OpenStack Neutron networks are project-scoped and region-local.
- •GCP uses shared VPC for cross-project networking (requires org-level config); OpenStack uses shared networks via admin.
- •Subnets in GCP are regional, auto-mode creates one per region automatically; OpenStack requires explicit subnet creation.
- •GCP VPC Flow Logs per-subnet; OpenStack has no native equivalent without external tools.
VPC Networking
→ Rumble: Networking
high2 diffs›
VPC Networking
→ Rumble: Networking
- •Per-cluster Neutron networks + floating IPs; GKE shared VPC with alias IP ranges.
- •Kubernetes LoadBalancer behavior replaces Google Cloud Load Balancers after migration.
Network· 30 mappings
Cloud Identity / IAM
→ Rumble: Authentication
high4 diffs›
Cloud Identity / IAM
→ Rumble: Authentication
- •Role-based with predefined/custom roles (permissions as service.resource.verb); Keystone uses simpler flat roles assigned to user-project/domain pairs without granular permissions.
- •Hierarchical inheritance across Org > Folder > Project; OpenStack Keystone assignments scoped per project/domain without automatic inheritance.
- •Supports IAM Conditions for attribute/time-based access, deny policies, VPC Service Controls; no direct OpenStack equivalent.
- •Principals include Google groups/service accounts/federated; Keystone uses local users/groups with federation add-ons.
Cloud Load Balancing
→ Rumble: Load balancer
high4 diffs›
Cloud Load Balancing
→ Rumble: Load balancer
- •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.
Cloud NAT
→ Rumble: NAT
high3 diffs›
Cloud NAT
→ Rumble: NAT
- •GCP 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 allocation (static/dynamic), min/max ports per VM; OpenStack SNAT allocates ports dynamically.
- •GCP NAT Gateway billed per hour + per GB processed; OpenStack SNAT is typically included in router costs.
Cloud Router
→ Rumble: Routers
high3 diffs›
Cloud Router
→ Rumble: Routers
- •GCP Cloud Router is a BGP speaker for dynamic route exchange with VPN/Interconnect; OpenStack routers are L3 gateways with static routes.
- •GCP routers enable Cloud NAT but are separate resources; OpenStack router SNAT is built into the router service.
- •GCP routers regional, created per region for VPN/Interconnect; OpenStack routers can be shared/distributed across AZs.
Cloud Storage S3-compatible XML API
→ Rumble: S3 compatibility
high4 diffs›
Cloud Storage S3-compatible XML API
→ Rumble: S3 compatibility
- •GCP Cloud Storage has an S3-compatible XML API at storage.googleapis.com; auth uses HMAC keys generated separately from GCP service account credentials. Quake AI uses EC2-style credentials (access key + secret) generated via Keystone POST /v3/users/{user_id}/credentials/OS-EC2.
- •GCP S3 XML API endpoint is storage.googleapis.com (path-style); Quake AI endpoint is provider-specific. GCP does not support S3 multipart upload via the XML API — the GCS resumable upload API must be used instead. Quake AI's Swift s3api supports S3 multipart upload.
- •IAM policies on GCS buckets cannot be managed via S3 ACL API calls through the compatibility layer; bucket IAM must be managed via GCP-native tooling (gcloud, Resource Manager API).
- •GCP HMAC keys inherit all permissions of the associated service account with no ability to restrict to a subset of operations. Keystone EC2 credentials inherit the Keystone role of the user who creates them.
Compute Engine
→ Rumble: Compute
›
Compute Engine
→ Rumble: Compute
No specific divergences documented yet.
View GCP docs →Default server-side encryption
→ Rumble: Encryption
high4 diffs›
Default server-side encryption
→ Rumble: Encryption
- •GCP always-on AES-256-GCM Google-managed (no config), +CMEK/CSEK; Swift optional proxy middleware (keymaster+encryption), AES-256-CTR on body/ETag/user-meta (plaintext client→encrypt cluster), requires root secret config/daemon.
- •GCP encrypts metadata/checksums; Swift selective (no names/size/sysmeta).
- •GCP auto decrypt reads; Swift decrypts GET/HEAD w/ keymaster.
- •GCP client optional; Swift recommends client-side for transit+storage.
Deployment Manager
→ Rumble: Automation
high4 diffs›
Deployment Manager
→ Rumble: Automation
- •Uses YAML configurations with optional Jinja2/Python templates expanded server-side; Quake AI offers Heat (legacy, HOT/YAML) and recommends OpenTofu (HCL) for new work.
- •Resource types named as service.v1.resource (e.g., compute.v1.instance) tied to GCP APIs, vs OpenStack prefixed types like OS::Nova::Server.
- •Single integrated GCP service (no separate API/engine processes); Heat has a multi-service architecture (heat-api, heat-engine) but is legacy. OpenTofu runs client-side with no server component.
- •No additional service fee; bills only for deployed GCP resources, same as OpenStack resources billing via provider.
Disk Clones
→ Rumble: Clones
high4 diffs›
Disk Clones
→ Rumble: Clones
- •Direct disk-to-disk cloning (zonal-to-zonal or zonal-to-regional) without intermediate snapshot, synchronous and instantly usable (regional averages 3 min to full sync).
- •Must match source disk type; rate limits (1 every 30s, 1000 per lineage); clone size >= source.
- •Cross-project supported via full resource path; source VM cannot power on during clone.
- •API uses compute.disks.insert with sourceDisk field, differing from Cinder's clone volume API.
Firewall Rules
→ Rumble: Security groups
high4 diffs›
Firewall Rules
→ Rumble: Security groups
- •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.
GKE Cluster
→ Rumble: Kubernetes
high4 diffs›
GKE Cluster
→ Rumble: Kubernetes
- •GKE provides Autopilot mode with fully managed node provisioning and scaling by Google; on Quake AI you provision clusters through Magnum or self-managed Kubernetes on Nova instances and manage node scaling yourself.
- •Control plane is fully managed with automatic upgrades through release channels; Quake AI requires user-provisioned and user-managed control plane nodes.
- •Cluster creation uses gcloud CLI vs OpenStack CLI (openstack coe cluster create).
- •Custom machine types, spot VMs, accelerators in node pools; Quake AI K8s nodes use standard Nova flavors.
GKE Pricing
→ Rumble: Billing
high4 diffs›
GKE Pricing
→ Rumble: Billing
- •Per-hour cluster platform fee with a free tier allowance; Autopilot offers pod-based billing as an alternative model. On Quake AI, whether you use Magnum or self-managed Kubernetes, you pay only for the underlying Nova instances and associated resources, with no Kubernetes platform fee.
- •Separate Cloud Billing Account linked to multiple projects, with self-serve/invoiced, postpay/prepay cycles; OpenStack typically uses external billing systems integrated via usage notifications, no built-in account.
- •Payments via Google Payments Profile (cards/ACH/wire); OpenStack has no native payment processing.
- •Billing-specific IAM roles (e.g., Billing Account Creator) inherited from Org; OpenStack quotas/usage per project via Keystone/Nova, no billing IAM.
Google Compute Engine Pay-As-You-Go (per-second billing, automatic sustained use discounts)
→ Rumble: Pricing
high4 diffs›
Google Compute Engine Pay-As-You-Go (per-second billing, automatic sustained use discounts)
→ Rumble: Pricing
- •GCP bills all VM instances per second with no minimum charge per instance. Sustained use discounts apply automatically (up to 30% discount) after using an instance for more than 25% of a month; no commitment required and no OpenStack equivalent.
- •GCP pricing is not embedded in the machine type API; it requires the Cloud Billing Catalog API (GET /v1/services/{serviceId}/skus) or the Pricing Calculator.
- •GCP bills network egress by destination: egress to internet by region (varies), within-region egress is free. Quake AI's egress pricing is operator-defined.
- •Preemptible (now Spot) VMs on GCP offer up to 91% discount with no-notice termination. OpenStack does not natively support preemptible or spot instances.
Machine Images (full VM state capture)
→ Rumble: Images
high3 diffs›
Machine Images (full VM state capture)
→ Rumble: Images
- •Public images shareable across projects (e.g. debian-cloud); OpenStack typically tenant-private.
- •Image families point to latest version; no OpenStack equivalent.
- •Custom images stored in Cloud Storage with licensing fees for premium OS.
Machine types
→ Rumble: Flavors
high3 diffs›
Machine types
→ Rumble: Flavors
- •Organized by families/series (e.g. N2 general-purpose); OpenStack flavors flat list.
- •Custom types +5% premium for N/E series; no such billing in OpenStack.
- •Naming 'n2-standard-4'; shared-core bursting types absent in OpenStack.
N/A (No subscription layer — GCP Billing Accounts linked to Projects)
→ Rumble: Subscriptions
high4 diffs›
N/A (No subscription layer — GCP Billing Accounts linked to Projects)
→ Rumble: Subscriptions
- •GCP has no subscription concept. A Billing Account is linked to one or more Projects; usage across linked projects is aggregated and invoiced together. OpenStack projects do not have a native billing account concept.
- •GCP Billing Accounts can be linked to up to 5 projects by default (quota increase required for more); each project can only have one billing account. OpenStack projects have no billing account concept built in.
- •GCP Projects are resource containers and quota boundaries; the Billing Account is purely a financial construct. OpenStack projects serve both purposes (resource isolation and, in some deployments, billing isolation).
- •GCP billing exports to BigQuery are a first-class feature for cost analysis at the billing account level. No OpenStack equivalent; billing data requires custom instrumentation.
Network Interface (VM network config)
→ Rumble: Ports
high3 diffs›
Network Interface (VM network config)
→ Rumble: Ports
- •GCP VMs have network interfaces attached at creation; OpenStack ports are explicit Neutron resources manageable independently.
- •GCP multi-NIC VMs require one interface per VPC (max 8); OpenStack supports multiple ports on same or different networks.
- •GCP alias IP ranges allow multiple IPs per interface without additional resources; OpenStack uses allowed_address_pairs.
Object Versioning
→ Rumble: Versioning
high4 diffs›
Object Versioning
→ Rumble: Versioning
- •GCP bucket-level enable, auto live/noncurrent via generation/metageneration, DELETE noncurrent permanent (w/gen), costs all versions + lifecycle mgmt; Swift container-level X-Versions/Histor y-Location modes (archive on PUT/DELETE, naming <len>obj/ts>), middleware required, DELETE behavior mode-dependent (restore vs archive).
- •GCP soft delete separate/interactive; Swift no soft delete mention.
- •GCP no manifest versioning; Swift same.
- •GCP disable retains versions; Swift similar.
Organizations
→ Rumble: Organizations
high3 diffs›
Organizations
→ Rumble: Organizations
- •Organizations auto-provisioned for Google Workspace/Cloud Identity accounts with immutable owner directory ID; OpenStack domains are manually created without such tight identity coupling.
- •Single org per company as root with Folders for sub-grouping (e.g., departments); OpenStack lacks native multi-level folders, using domains/projects.
- •Central point for IAM policy inheritance to all descendants and organization policies (constraints); Keystone domain-scoped assignments don't inherit multi-level.
Persistent Disk
→ Rumble: Volumes
high4 diffs›
Persistent Disk
→ Rumble: Volumes
- •Uses Google Compute Engine REST API instead of OpenStack Cinder API.
- •Offers multiple performance tiers (pd-standard HDD, pd-balanced SSD, pd-ssd, pd-extreme) with performance scaling linearly with provisioned size, unlike Cinder's backend-dependent performance.
- •Supports regional disks replicated synchronously across 2 zones for higher availability (better than 99.9999% durability), while Cinder volumes are typically zonal unless using replication features.
- •Online resize to increase size without detaching; no manual striping/RAID needed as GCP handles distribution automatically.
Projects
→ Rumble: Projects
high3 diffs›
Projects
→ Rumble: Projects
- •GCP Projects have both human-readable Project ID (custom) and auto-generated numeric Project Number, used interchangeably in APIs unlike OpenStack projects which use single ID.
- •Projects required to enable billing and host all service resources; no direct equivalent to OpenStack's billing per project without linking to Billing Account.
- •Projects inherit IAM policies from Org/Folders; moving project changes inheritance, unlike flat OpenStack project isolation.
Sole-Tenant Nodes / Instance Groups
→ Rumble: Server groups
high3 diffs›
Sole-Tenant Nodes / Instance Groups
→ Rumble: Server groups
- •MIGs offer autoscaling, autohealing, rolling updates via templates; OpenStack only scheduling policies (affinity etc.).
- •Zonal/regional with HA/load balancing integration; no management in OpenStack groups.
- •App health checks trigger recreation; requires external orchestration in OpenStack.
SSH keys
→ Rumble: Key pairs
high3 diffs›
SSH keys
→ Rumble: Key pairs
- •Managed in project/instance metadata or OS Login (IAM); no central 'keypairs' resource like Nova.
- •Auto-generates ephemeral keys for CLI/console; manual upload only in OpenStack.
- •Public key includes username suffix; injected differently.
Standard/Archive Snapshots
→ Rumble: Snapshots
high4 diffs›
Standard/Archive Snapshots
→ Rumble: Snapshots
- •Crash-consistent point-in-time copies stored incrementally in Cloud Storage (geo-redundant by default), unlike Cinder snapshots which depend on backend (often full copies).
- •Two types: Standard (faster recovery) and Archive (cheaper long-term); supports snapshot schedules (standard only).
- •Global by default, shareable across projects/regions/zones with network egress costs for cross-region restore; regional scoping (preview) for location control.
- •Frequency limit: max 6 snapshots per disk every 60 minutes.
Static External IP
→ Rumble: Floating IPs
high3 diffs›
Static External IP
→ Rumble: Floating IPs
- •GCP static IPs are regional or global resources, with unassociated IPs metered per-hour; OpenStack floating IPs are pool-based. See the GCP pricing page for current rates.
- •GCP supports both ephemeral (auto-released on stop) and static IPs; OpenStack floating IPs are always explicit.
- •GCP global static IPs used with global load balancers only; no direct OpenStack equivalent.
Subnets
→ Rumble: Subnets
high3 diffs›
Subnets
→ Rumble: Subnets
- •GCP subnets are regional (cover all zones in a region); OpenStack subnets are project-scoped within a network.
- •GCP supports secondary IP ranges for alias IPs/GKE pods; OpenStack subnets have single CIDR.
- •GCP private Google access allows VMs without external IPs to reach Google APIs; OpenStack has no equivalent.
Terraform google provider
→ Rumble: Terraform
high2 diffs›
Terraform google provider
→ Rumble: Terraform
- •Uses HCL with google_compute_instance, google_storage_bucket etc.; Quake AI uses the OpenStack Terraform/OpenTofu provider with openstack_compute_instance_v2 and equivalent resources.
- •Remote state stored in GCS backend; OpenStack uses Terraform state stored locally or in S3-compatible backend.
VM instances
→ Rumble: Instances
high3 diffs›
VM instances
→ Rumble: Instances
- •Uses REST API 'instances.insert' instead of Nova 'servers.create' with different auth via service accounts vs Keystone.
- •Supports bare metal instances (no hypervisor), not in standard OpenStack Nova.
- •Network interfaces tied to VPC subnets; differs from Neutron ports/floating IPs.
VPC Network
→ Rumble: Networks
high4 diffs›
VPC Network
→ Rumble: Networks
- •GCP VPC is global (spans all regions) whereas OpenStack Neutron networks are project-scoped and region-local.
- •GCP uses shared VPC for cross-project networking (requires org-level config); OpenStack uses shared networks via admin.
- •Subnets in GCP are regional, auto-mode creates one per region automatically; OpenStack requires explicit subnet creation.
- •GCP VPC Flow Logs per-subnet; OpenStack has no native equivalent without external tools.
VPC Networking
→ Rumble: Networking
high2 diffs›
VPC Networking
→ Rumble: Networking
- •Per-cluster Neutron networks + floating IPs; GKE shared VPC with alias IP ranges.
- •Kubernetes LoadBalancer behavior replaces Google Cloud Load Balancers after migration.
Object storage· 30 mappings
Cloud Identity / IAM
→ Rumble: Authentication
high4 diffs›
Cloud Identity / IAM
→ Rumble: Authentication
- •Role-based with predefined/custom roles (permissions as service.resource.verb); Keystone uses simpler flat roles assigned to user-project/domain pairs without granular permissions.
- •Hierarchical inheritance across Org > Folder > Project; OpenStack Keystone assignments scoped per project/domain without automatic inheritance.
- •Supports IAM Conditions for attribute/time-based access, deny policies, VPC Service Controls; no direct OpenStack equivalent.
- •Principals include Google groups/service accounts/federated; Keystone uses local users/groups with federation add-ons.
Cloud Load Balancing
→ Rumble: Load balancer
high4 diffs›
Cloud Load Balancing
→ Rumble: Load balancer
- •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.
Cloud NAT
→ Rumble: NAT
high3 diffs›
Cloud NAT
→ Rumble: NAT
- •GCP 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 allocation (static/dynamic), min/max ports per VM; OpenStack SNAT allocates ports dynamically.
- •GCP NAT Gateway billed per hour + per GB processed; OpenStack SNAT is typically included in router costs.
Cloud Router
→ Rumble: Routers
high3 diffs›
Cloud Router
→ Rumble: Routers
- •GCP Cloud Router is a BGP speaker for dynamic route exchange with VPN/Interconnect; OpenStack routers are L3 gateways with static routes.
- •GCP routers enable Cloud NAT but are separate resources; OpenStack router SNAT is built into the router service.
- •GCP routers regional, created per region for VPN/Interconnect; OpenStack routers can be shared/distributed across AZs.
Cloud Storage S3-compatible XML API
→ Rumble: S3 compatibility
high4 diffs›
Cloud Storage S3-compatible XML API
→ Rumble: S3 compatibility
- •GCP Cloud Storage has an S3-compatible XML API at storage.googleapis.com; auth uses HMAC keys generated separately from GCP service account credentials. Quake AI uses EC2-style credentials (access key + secret) generated via Keystone POST /v3/users/{user_id}/credentials/OS-EC2.
- •GCP S3 XML API endpoint is storage.googleapis.com (path-style); Quake AI endpoint is provider-specific. GCP does not support S3 multipart upload via the XML API — the GCS resumable upload API must be used instead. Quake AI's Swift s3api supports S3 multipart upload.
- •IAM policies on GCS buckets cannot be managed via S3 ACL API calls through the compatibility layer; bucket IAM must be managed via GCP-native tooling (gcloud, Resource Manager API).
- •GCP HMAC keys inherit all permissions of the associated service account with no ability to restrict to a subset of operations. Keystone EC2 credentials inherit the Keystone role of the user who creates them.
Compute Engine
→ Rumble: Compute
›
Compute Engine
→ Rumble: Compute
No specific divergences documented yet.
View GCP docs →Default server-side encryption
→ Rumble: Encryption
high4 diffs›
Default server-side encryption
→ Rumble: Encryption
- •GCP always-on AES-256-GCM Google-managed (no config), +CMEK/CSEK; Swift optional proxy middleware (keymaster+encryption), AES-256-CTR on body/ETag/user-meta (plaintext client→encrypt cluster), requires root secret config/daemon.
- •GCP encrypts metadata/checksums; Swift selective (no names/size/sysmeta).
- •GCP auto decrypt reads; Swift decrypts GET/HEAD w/ keymaster.
- •GCP client optional; Swift recommends client-side for transit+storage.
Deployment Manager
→ Rumble: Automation
high4 diffs›
Deployment Manager
→ Rumble: Automation
- •Uses YAML configurations with optional Jinja2/Python templates expanded server-side; Quake AI offers Heat (legacy, HOT/YAML) and recommends OpenTofu (HCL) for new work.
- •Resource types named as service.v1.resource (e.g., compute.v1.instance) tied to GCP APIs, vs OpenStack prefixed types like OS::Nova::Server.
- •Single integrated GCP service (no separate API/engine processes); Heat has a multi-service architecture (heat-api, heat-engine) but is legacy. OpenTofu runs client-side with no server component.
- •No additional service fee; bills only for deployed GCP resources, same as OpenStack resources billing via provider.
Disk Clones
→ Rumble: Clones
high4 diffs›
Disk Clones
→ Rumble: Clones
- •Direct disk-to-disk cloning (zonal-to-zonal or zonal-to-regional) without intermediate snapshot, synchronous and instantly usable (regional averages 3 min to full sync).
- •Must match source disk type; rate limits (1 every 30s, 1000 per lineage); clone size >= source.
- •Cross-project supported via full resource path; source VM cannot power on during clone.
- •API uses compute.disks.insert with sourceDisk field, differing from Cinder's clone volume API.
Firewall Rules
→ Rumble: Security groups
high4 diffs›
Firewall Rules
→ Rumble: Security groups
- •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.
GKE Cluster
→ Rumble: Kubernetes
high4 diffs›
GKE Cluster
→ Rumble: Kubernetes
- •GKE provides Autopilot mode with fully managed node provisioning and scaling by Google; on Quake AI you provision clusters through Magnum or self-managed Kubernetes on Nova instances and manage node scaling yourself.
- •Control plane is fully managed with automatic upgrades through release channels; Quake AI requires user-provisioned and user-managed control plane nodes.
- •Cluster creation uses gcloud CLI vs OpenStack CLI (openstack coe cluster create).
- •Custom machine types, spot VMs, accelerators in node pools; Quake AI K8s nodes use standard Nova flavors.
GKE Pricing
→ Rumble: Billing
high4 diffs›
GKE Pricing
→ Rumble: Billing
- •Per-hour cluster platform fee with a free tier allowance; Autopilot offers pod-based billing as an alternative model. On Quake AI, whether you use Magnum or self-managed Kubernetes, you pay only for the underlying Nova instances and associated resources, with no Kubernetes platform fee.
- •Separate Cloud Billing Account linked to multiple projects, with self-serve/invoiced, postpay/prepay cycles; OpenStack typically uses external billing systems integrated via usage notifications, no built-in account.
- •Payments via Google Payments Profile (cards/ACH/wire); OpenStack has no native payment processing.
- •Billing-specific IAM roles (e.g., Billing Account Creator) inherited from Org; OpenStack quotas/usage per project via Keystone/Nova, no billing IAM.
Google Compute Engine Pay-As-You-Go (per-second billing, automatic sustained use discounts)
→ Rumble: Pricing
high4 diffs›
Google Compute Engine Pay-As-You-Go (per-second billing, automatic sustained use discounts)
→ Rumble: Pricing
- •GCP bills all VM instances per second with no minimum charge per instance. Sustained use discounts apply automatically (up to 30% discount) after using an instance for more than 25% of a month; no commitment required and no OpenStack equivalent.
- •GCP pricing is not embedded in the machine type API; it requires the Cloud Billing Catalog API (GET /v1/services/{serviceId}/skus) or the Pricing Calculator.
- •GCP bills network egress by destination: egress to internet by region (varies), within-region egress is free. Quake AI's egress pricing is operator-defined.
- •Preemptible (now Spot) VMs on GCP offer up to 91% discount with no-notice termination. OpenStack does not natively support preemptible or spot instances.
Machine Images (full VM state capture)
→ Rumble: Images
high3 diffs›
Machine Images (full VM state capture)
→ Rumble: Images
- •Public images shareable across projects (e.g. debian-cloud); OpenStack typically tenant-private.
- •Image families point to latest version; no OpenStack equivalent.
- •Custom images stored in Cloud Storage with licensing fees for premium OS.
Machine types
→ Rumble: Flavors
high3 diffs›
Machine types
→ Rumble: Flavors
- •Organized by families/series (e.g. N2 general-purpose); OpenStack flavors flat list.
- •Custom types +5% premium for N/E series; no such billing in OpenStack.
- •Naming 'n2-standard-4'; shared-core bursting types absent in OpenStack.
N/A (No subscription layer — GCP Billing Accounts linked to Projects)
→ Rumble: Subscriptions
high4 diffs›
N/A (No subscription layer — GCP Billing Accounts linked to Projects)
→ Rumble: Subscriptions
- •GCP has no subscription concept. A Billing Account is linked to one or more Projects; usage across linked projects is aggregated and invoiced together. OpenStack projects do not have a native billing account concept.
- •GCP Billing Accounts can be linked to up to 5 projects by default (quota increase required for more); each project can only have one billing account. OpenStack projects have no billing account concept built in.
- •GCP Projects are resource containers and quota boundaries; the Billing Account is purely a financial construct. OpenStack projects serve both purposes (resource isolation and, in some deployments, billing isolation).
- •GCP billing exports to BigQuery are a first-class feature for cost analysis at the billing account level. No OpenStack equivalent; billing data requires custom instrumentation.
Network Interface (VM network config)
→ Rumble: Ports
high3 diffs›
Network Interface (VM network config)
→ Rumble: Ports
- •GCP VMs have network interfaces attached at creation; OpenStack ports are explicit Neutron resources manageable independently.
- •GCP multi-NIC VMs require one interface per VPC (max 8); OpenStack supports multiple ports on same or different networks.
- •GCP alias IP ranges allow multiple IPs per interface without additional resources; OpenStack uses allowed_address_pairs.
Object Versioning
→ Rumble: Versioning
high4 diffs›
Object Versioning
→ Rumble: Versioning
- •GCP bucket-level enable, auto live/noncurrent via generation/metageneration, DELETE noncurrent permanent (w/gen), costs all versions + lifecycle mgmt; Swift container-level X-Versions/Histor y-Location modes (archive on PUT/DELETE, naming <len>obj/ts>), middleware required, DELETE behavior mode-dependent (restore vs archive).
- •GCP soft delete separate/interactive; Swift no soft delete mention.
- •GCP no manifest versioning; Swift same.
- •GCP disable retains versions; Swift similar.
Organizations
→ Rumble: Organizations
high3 diffs›
Organizations
→ Rumble: Organizations
- •Organizations auto-provisioned for Google Workspace/Cloud Identity accounts with immutable owner directory ID; OpenStack domains are manually created without such tight identity coupling.
- •Single org per company as root with Folders for sub-grouping (e.g., departments); OpenStack lacks native multi-level folders, using domains/projects.
- •Central point for IAM policy inheritance to all descendants and organization policies (constraints); Keystone domain-scoped assignments don't inherit multi-level.
Persistent Disk
→ Rumble: Volumes
high4 diffs›
Persistent Disk
→ Rumble: Volumes
- •Uses Google Compute Engine REST API instead of OpenStack Cinder API.
- •Offers multiple performance tiers (pd-standard HDD, pd-balanced SSD, pd-ssd, pd-extreme) with performance scaling linearly with provisioned size, unlike Cinder's backend-dependent performance.
- •Supports regional disks replicated synchronously across 2 zones for higher availability (better than 99.9999% durability), while Cinder volumes are typically zonal unless using replication features.
- •Online resize to increase size without detaching; no manual striping/RAID needed as GCP handles distribution automatically.
Projects
→ Rumble: Projects
high3 diffs›
Projects
→ Rumble: Projects
- •GCP Projects have both human-readable Project ID (custom) and auto-generated numeric Project Number, used interchangeably in APIs unlike OpenStack projects which use single ID.
- •Projects required to enable billing and host all service resources; no direct equivalent to OpenStack's billing per project without linking to Billing Account.
- •Projects inherit IAM policies from Org/Folders; moving project changes inheritance, unlike flat OpenStack project isolation.
Sole-Tenant Nodes / Instance Groups
→ Rumble: Server groups
high3 diffs›
Sole-Tenant Nodes / Instance Groups
→ Rumble: Server groups
- •MIGs offer autoscaling, autohealing, rolling updates via templates; OpenStack only scheduling policies (affinity etc.).
- •Zonal/regional with HA/load balancing integration; no management in OpenStack groups.
- •App health checks trigger recreation; requires external orchestration in OpenStack.
SSH keys
→ Rumble: Key pairs
high3 diffs›
SSH keys
→ Rumble: Key pairs
- •Managed in project/instance metadata or OS Login (IAM); no central 'keypairs' resource like Nova.
- •Auto-generates ephemeral keys for CLI/console; manual upload only in OpenStack.
- •Public key includes username suffix; injected differently.
Standard/Archive Snapshots
→ Rumble: Snapshots
high4 diffs›
Standard/Archive Snapshots
→ Rumble: Snapshots
- •Crash-consistent point-in-time copies stored incrementally in Cloud Storage (geo-redundant by default), unlike Cinder snapshots which depend on backend (often full copies).
- •Two types: Standard (faster recovery) and Archive (cheaper long-term); supports snapshot schedules (standard only).
- •Global by default, shareable across projects/regions/zones with network egress costs for cross-region restore; regional scoping (preview) for location control.
- •Frequency limit: max 6 snapshots per disk every 60 minutes.
Static External IP
→ Rumble: Floating IPs
high3 diffs›
Static External IP
→ Rumble: Floating IPs
- •GCP static IPs are regional or global resources, with unassociated IPs metered per-hour; OpenStack floating IPs are pool-based. See the GCP pricing page for current rates.
- •GCP supports both ephemeral (auto-released on stop) and static IPs; OpenStack floating IPs are always explicit.
- •GCP global static IPs used with global load balancers only; no direct OpenStack equivalent.
Subnets
→ Rumble: Subnets
high3 diffs›
Subnets
→ Rumble: Subnets
- •GCP subnets are regional (cover all zones in a region); OpenStack subnets are project-scoped within a network.
- •GCP supports secondary IP ranges for alias IPs/GKE pods; OpenStack subnets have single CIDR.
- •GCP private Google access allows VMs without external IPs to reach Google APIs; OpenStack has no equivalent.
Terraform google provider
→ Rumble: Terraform
high2 diffs›
Terraform google provider
→ Rumble: Terraform
- •Uses HCL with google_compute_instance, google_storage_bucket etc.; Quake AI uses the OpenStack Terraform/OpenTofu provider with openstack_compute_instance_v2 and equivalent resources.
- •Remote state stored in GCS backend; OpenStack uses Terraform state stored locally or in S3-compatible backend.
VM instances
→ Rumble: Instances
high3 diffs›
VM instances
→ Rumble: Instances
- •Uses REST API 'instances.insert' instead of Nova 'servers.create' with different auth via service accounts vs Keystone.
- •Supports bare metal instances (no hypervisor), not in standard OpenStack Nova.
- •Network interfaces tied to VPC subnets; differs from Neutron ports/floating IPs.
VPC Network
→ Rumble: Networks
high4 diffs›
VPC Network
→ Rumble: Networks
- •GCP VPC is global (spans all regions) whereas OpenStack Neutron networks are project-scoped and region-local.
- •GCP uses shared VPC for cross-project networking (requires org-level config); OpenStack uses shared networks via admin.
- •Subnets in GCP are regional, auto-mode creates one per region automatically; OpenStack requires explicit subnet creation.
- •GCP VPC Flow Logs per-subnet; OpenStack has no native equivalent without external tools.
VPC Networking
→ Rumble: Networking
high2 diffs›
VPC Networking
→ Rumble: Networking
- •Per-cluster Neutron networks + floating IPs; GKE shared VPC with alias IP ranges.
- •Kubernetes LoadBalancer behavior replaces Google Cloud Load Balancers after migration.
Block storage· 2 mappings
Disk Clones
→ Rumble: Clones
high4 diffs›
Disk Clones
→ Rumble: Clones
- •Direct disk-to-disk cloning (zonal-to-zonal or zonal-to-regional) without intermediate snapshot, synchronous and instantly usable (regional averages 3 min to full sync).
- •Must match source disk type; rate limits (1 every 30s, 1000 per lineage); clone size >= source.
- •Cross-project supported via full resource path; source VM cannot power on during clone.
- •API uses compute.disks.insert with sourceDisk field, differing from Cinder's clone volume API.
Persistent Disk
→ Rumble: Volumes
high4 diffs›
Persistent Disk
→ Rumble: Volumes
- •Uses Google Compute Engine REST API instead of OpenStack Cinder API.
- •Offers multiple performance tiers (pd-standard HDD, pd-balanced SSD, pd-ssd, pd-extreme) with performance scaling linearly with provisioned size, unlike Cinder's backend-dependent performance.
- •Supports regional disks replicated synchronously across 2 zones for higher availability (better than 99.9999% durability), while Cinder volumes are typically zonal unless using replication features.
- •Online resize to increase size without detaching; no manual striping/RAID needed as GCP handles distribution automatically.
Kubernetes· 30 mappings
Cloud Identity / IAM
→ Rumble: Authentication
high4 diffs›
Cloud Identity / IAM
→ Rumble: Authentication
- •Role-based with predefined/custom roles (permissions as service.resource.verb); Keystone uses simpler flat roles assigned to user-project/domain pairs without granular permissions.
- •Hierarchical inheritance across Org > Folder > Project; OpenStack Keystone assignments scoped per project/domain without automatic inheritance.
- •Supports IAM Conditions for attribute/time-based access, deny policies, VPC Service Controls; no direct OpenStack equivalent.
- •Principals include Google groups/service accounts/federated; Keystone uses local users/groups with federation add-ons.
Cloud Load Balancing
→ Rumble: Load balancer
high4 diffs›
Cloud Load Balancing
→ Rumble: Load balancer
- •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.
Cloud NAT
→ Rumble: NAT
high3 diffs›
Cloud NAT
→ Rumble: NAT
- •GCP 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 allocation (static/dynamic), min/max ports per VM; OpenStack SNAT allocates ports dynamically.
- •GCP NAT Gateway billed per hour + per GB processed; OpenStack SNAT is typically included in router costs.
Cloud Router
→ Rumble: Routers
high3 diffs›
Cloud Router
→ Rumble: Routers
- •GCP Cloud Router is a BGP speaker for dynamic route exchange with VPN/Interconnect; OpenStack routers are L3 gateways with static routes.
- •GCP routers enable Cloud NAT but are separate resources; OpenStack router SNAT is built into the router service.
- •GCP routers regional, created per region for VPN/Interconnect; OpenStack routers can be shared/distributed across AZs.
Cloud Storage S3-compatible XML API
→ Rumble: S3 compatibility
high4 diffs›
Cloud Storage S3-compatible XML API
→ Rumble: S3 compatibility
- •GCP Cloud Storage has an S3-compatible XML API at storage.googleapis.com; auth uses HMAC keys generated separately from GCP service account credentials. Quake AI uses EC2-style credentials (access key + secret) generated via Keystone POST /v3/users/{user_id}/credentials/OS-EC2.
- •GCP S3 XML API endpoint is storage.googleapis.com (path-style); Quake AI endpoint is provider-specific. GCP does not support S3 multipart upload via the XML API — the GCS resumable upload API must be used instead. Quake AI's Swift s3api supports S3 multipart upload.
- •IAM policies on GCS buckets cannot be managed via S3 ACL API calls through the compatibility layer; bucket IAM must be managed via GCP-native tooling (gcloud, Resource Manager API).
- •GCP HMAC keys inherit all permissions of the associated service account with no ability to restrict to a subset of operations. Keystone EC2 credentials inherit the Keystone role of the user who creates them.
Compute Engine
→ Rumble: Compute
›
Compute Engine
→ Rumble: Compute
No specific divergences documented yet.
View GCP docs →Default server-side encryption
→ Rumble: Encryption
high4 diffs›
Default server-side encryption
→ Rumble: Encryption
- •GCP always-on AES-256-GCM Google-managed (no config), +CMEK/CSEK; Swift optional proxy middleware (keymaster+encryption), AES-256-CTR on body/ETag/user-meta (plaintext client→encrypt cluster), requires root secret config/daemon.
- •GCP encrypts metadata/checksums; Swift selective (no names/size/sysmeta).
- •GCP auto decrypt reads; Swift decrypts GET/HEAD w/ keymaster.
- •GCP client optional; Swift recommends client-side for transit+storage.
Deployment Manager
→ Rumble: Automation
high4 diffs›
Deployment Manager
→ Rumble: Automation
- •Uses YAML configurations with optional Jinja2/Python templates expanded server-side; Quake AI offers Heat (legacy, HOT/YAML) and recommends OpenTofu (HCL) for new work.
- •Resource types named as service.v1.resource (e.g., compute.v1.instance) tied to GCP APIs, vs OpenStack prefixed types like OS::Nova::Server.
- •Single integrated GCP service (no separate API/engine processes); Heat has a multi-service architecture (heat-api, heat-engine) but is legacy. OpenTofu runs client-side with no server component.
- •No additional service fee; bills only for deployed GCP resources, same as OpenStack resources billing via provider.
Disk Clones
→ Rumble: Clones
high4 diffs›
Disk Clones
→ Rumble: Clones
- •Direct disk-to-disk cloning (zonal-to-zonal or zonal-to-regional) without intermediate snapshot, synchronous and instantly usable (regional averages 3 min to full sync).
- •Must match source disk type; rate limits (1 every 30s, 1000 per lineage); clone size >= source.
- •Cross-project supported via full resource path; source VM cannot power on during clone.
- •API uses compute.disks.insert with sourceDisk field, differing from Cinder's clone volume API.
Firewall Rules
→ Rumble: Security groups
high4 diffs›
Firewall Rules
→ Rumble: Security groups
- •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.
GKE Cluster
→ Rumble: Kubernetes
high4 diffs›
GKE Cluster
→ Rumble: Kubernetes
- •GKE provides Autopilot mode with fully managed node provisioning and scaling by Google; on Quake AI you provision clusters through Magnum or self-managed Kubernetes on Nova instances and manage node scaling yourself.
- •Control plane is fully managed with automatic upgrades through release channels; Quake AI requires user-provisioned and user-managed control plane nodes.
- •Cluster creation uses gcloud CLI vs OpenStack CLI (openstack coe cluster create).
- •Custom machine types, spot VMs, accelerators in node pools; Quake AI K8s nodes use standard Nova flavors.
GKE Pricing
→ Rumble: Billing
high4 diffs›
GKE Pricing
→ Rumble: Billing
- •Per-hour cluster platform fee with a free tier allowance; Autopilot offers pod-based billing as an alternative model. On Quake AI, whether you use Magnum or self-managed Kubernetes, you pay only for the underlying Nova instances and associated resources, with no Kubernetes platform fee.
- •Separate Cloud Billing Account linked to multiple projects, with self-serve/invoiced, postpay/prepay cycles; OpenStack typically uses external billing systems integrated via usage notifications, no built-in account.
- •Payments via Google Payments Profile (cards/ACH/wire); OpenStack has no native payment processing.
- •Billing-specific IAM roles (e.g., Billing Account Creator) inherited from Org; OpenStack quotas/usage per project via Keystone/Nova, no billing IAM.
Google Compute Engine Pay-As-You-Go (per-second billing, automatic sustained use discounts)
→ Rumble: Pricing
high4 diffs›
Google Compute Engine Pay-As-You-Go (per-second billing, automatic sustained use discounts)
→ Rumble: Pricing
- •GCP bills all VM instances per second with no minimum charge per instance. Sustained use discounts apply automatically (up to 30% discount) after using an instance for more than 25% of a month; no commitment required and no OpenStack equivalent.
- •GCP pricing is not embedded in the machine type API; it requires the Cloud Billing Catalog API (GET /v1/services/{serviceId}/skus) or the Pricing Calculator.
- •GCP bills network egress by destination: egress to internet by region (varies), within-region egress is free. Quake AI's egress pricing is operator-defined.
- •Preemptible (now Spot) VMs on GCP offer up to 91% discount with no-notice termination. OpenStack does not natively support preemptible or spot instances.
Machine Images (full VM state capture)
→ Rumble: Images
high3 diffs›
Machine Images (full VM state capture)
→ Rumble: Images
- •Public images shareable across projects (e.g. debian-cloud); OpenStack typically tenant-private.
- •Image families point to latest version; no OpenStack equivalent.
- •Custom images stored in Cloud Storage with licensing fees for premium OS.
Machine types
→ Rumble: Flavors
high3 diffs›
Machine types
→ Rumble: Flavors
- •Organized by families/series (e.g. N2 general-purpose); OpenStack flavors flat list.
- •Custom types +5% premium for N/E series; no such billing in OpenStack.
- •Naming 'n2-standard-4'; shared-core bursting types absent in OpenStack.
N/A (No subscription layer — GCP Billing Accounts linked to Projects)
→ Rumble: Subscriptions
high4 diffs›
N/A (No subscription layer — GCP Billing Accounts linked to Projects)
→ Rumble: Subscriptions
- •GCP has no subscription concept. A Billing Account is linked to one or more Projects; usage across linked projects is aggregated and invoiced together. OpenStack projects do not have a native billing account concept.
- •GCP Billing Accounts can be linked to up to 5 projects by default (quota increase required for more); each project can only have one billing account. OpenStack projects have no billing account concept built in.
- •GCP Projects are resource containers and quota boundaries; the Billing Account is purely a financial construct. OpenStack projects serve both purposes (resource isolation and, in some deployments, billing isolation).
- •GCP billing exports to BigQuery are a first-class feature for cost analysis at the billing account level. No OpenStack equivalent; billing data requires custom instrumentation.
Network Interface (VM network config)
→ Rumble: Ports
high3 diffs›
Network Interface (VM network config)
→ Rumble: Ports
- •GCP VMs have network interfaces attached at creation; OpenStack ports are explicit Neutron resources manageable independently.
- •GCP multi-NIC VMs require one interface per VPC (max 8); OpenStack supports multiple ports on same or different networks.
- •GCP alias IP ranges allow multiple IPs per interface without additional resources; OpenStack uses allowed_address_pairs.
Object Versioning
→ Rumble: Versioning
high4 diffs›
Object Versioning
→ Rumble: Versioning
- •GCP bucket-level enable, auto live/noncurrent via generation/metageneration, DELETE noncurrent permanent (w/gen), costs all versions + lifecycle mgmt; Swift container-level X-Versions/Histor y-Location modes (archive on PUT/DELETE, naming <len>obj/ts>), middleware required, DELETE behavior mode-dependent (restore vs archive).
- •GCP soft delete separate/interactive; Swift no soft delete mention.
- •GCP no manifest versioning; Swift same.
- •GCP disable retains versions; Swift similar.
Organizations
→ Rumble: Organizations
high3 diffs›
Organizations
→ Rumble: Organizations
- •Organizations auto-provisioned for Google Workspace/Cloud Identity accounts with immutable owner directory ID; OpenStack domains are manually created without such tight identity coupling.
- •Single org per company as root with Folders for sub-grouping (e.g., departments); OpenStack lacks native multi-level folders, using domains/projects.
- •Central point for IAM policy inheritance to all descendants and organization policies (constraints); Keystone domain-scoped assignments don't inherit multi-level.
Persistent Disk
→ Rumble: Volumes
high4 diffs›
Persistent Disk
→ Rumble: Volumes
- •Uses Google Compute Engine REST API instead of OpenStack Cinder API.
- •Offers multiple performance tiers (pd-standard HDD, pd-balanced SSD, pd-ssd, pd-extreme) with performance scaling linearly with provisioned size, unlike Cinder's backend-dependent performance.
- •Supports regional disks replicated synchronously across 2 zones for higher availability (better than 99.9999% durability), while Cinder volumes are typically zonal unless using replication features.
- •Online resize to increase size without detaching; no manual striping/RAID needed as GCP handles distribution automatically.
Projects
→ Rumble: Projects
high3 diffs›
Projects
→ Rumble: Projects
- •GCP Projects have both human-readable Project ID (custom) and auto-generated numeric Project Number, used interchangeably in APIs unlike OpenStack projects which use single ID.
- •Projects required to enable billing and host all service resources; no direct equivalent to OpenStack's billing per project without linking to Billing Account.
- •Projects inherit IAM policies from Org/Folders; moving project changes inheritance, unlike flat OpenStack project isolation.
Sole-Tenant Nodes / Instance Groups
→ Rumble: Server groups
high3 diffs›
Sole-Tenant Nodes / Instance Groups
→ Rumble: Server groups
- •MIGs offer autoscaling, autohealing, rolling updates via templates; OpenStack only scheduling policies (affinity etc.).
- •Zonal/regional with HA/load balancing integration; no management in OpenStack groups.
- •App health checks trigger recreation; requires external orchestration in OpenStack.
SSH keys
→ Rumble: Key pairs
high3 diffs›
SSH keys
→ Rumble: Key pairs
- •Managed in project/instance metadata or OS Login (IAM); no central 'keypairs' resource like Nova.
- •Auto-generates ephemeral keys for CLI/console; manual upload only in OpenStack.
- •Public key includes username suffix; injected differently.
Standard/Archive Snapshots
→ Rumble: Snapshots
high4 diffs›
Standard/Archive Snapshots
→ Rumble: Snapshots
- •Crash-consistent point-in-time copies stored incrementally in Cloud Storage (geo-redundant by default), unlike Cinder snapshots which depend on backend (often full copies).
- •Two types: Standard (faster recovery) and Archive (cheaper long-term); supports snapshot schedules (standard only).
- •Global by default, shareable across projects/regions/zones with network egress costs for cross-region restore; regional scoping (preview) for location control.
- •Frequency limit: max 6 snapshots per disk every 60 minutes.
Static External IP
→ Rumble: Floating IPs
high3 diffs›
Static External IP
→ Rumble: Floating IPs
- •GCP static IPs are regional or global resources, with unassociated IPs metered per-hour; OpenStack floating IPs are pool-based. See the GCP pricing page for current rates.
- •GCP supports both ephemeral (auto-released on stop) and static IPs; OpenStack floating IPs are always explicit.
- •GCP global static IPs used with global load balancers only; no direct OpenStack equivalent.
Subnets
→ Rumble: Subnets
high3 diffs›
Subnets
→ Rumble: Subnets
- •GCP subnets are regional (cover all zones in a region); OpenStack subnets are project-scoped within a network.
- •GCP supports secondary IP ranges for alias IPs/GKE pods; OpenStack subnets have single CIDR.
- •GCP private Google access allows VMs without external IPs to reach Google APIs; OpenStack has no equivalent.
Terraform google provider
→ Rumble: Terraform
high2 diffs›
Terraform google provider
→ Rumble: Terraform
- •Uses HCL with google_compute_instance, google_storage_bucket etc.; Quake AI uses the OpenStack Terraform/OpenTofu provider with openstack_compute_instance_v2 and equivalent resources.
- •Remote state stored in GCS backend; OpenStack uses Terraform state stored locally or in S3-compatible backend.
VM instances
→ Rumble: Instances
high3 diffs›
VM instances
→ Rumble: Instances
- •Uses REST API 'instances.insert' instead of Nova 'servers.create' with different auth via service accounts vs Keystone.
- •Supports bare metal instances (no hypervisor), not in standard OpenStack Nova.
- •Network interfaces tied to VPC subnets; differs from Neutron ports/floating IPs.
VPC Network
→ Rumble: Networks
high4 diffs›
VPC Network
→ Rumble: Networks
- •GCP VPC is global (spans all regions) whereas OpenStack Neutron networks are project-scoped and region-local.
- •GCP uses shared VPC for cross-project networking (requires org-level config); OpenStack uses shared networks via admin.
- •Subnets in GCP are regional, auto-mode creates one per region automatically; OpenStack requires explicit subnet creation.
- •GCP VPC Flow Logs per-subnet; OpenStack has no native equivalent without external tools.
VPC Networking
→ Rumble: Networking
high2 diffs›
VPC Networking
→ Rumble: Networking
- •Per-cluster Neutron networks + floating IPs; GKE shared VPC with alias IP ranges.
- •Kubernetes LoadBalancer behavior replaces Google Cloud Load Balancers after migration.
Automation· 2 mappings
Deployment Manager
→ Rumble: Automation
high4 diffs›
Deployment Manager
→ Rumble: Automation
- •Uses YAML configurations with optional Jinja2/Python templates expanded server-side; Quake AI offers Heat (legacy, HOT/YAML) and recommends OpenTofu (HCL) for new work.
- •Resource types named as service.v1.resource (e.g., compute.v1.instance) tied to GCP APIs, vs OpenStack prefixed types like OS::Nova::Server.
- •Single integrated GCP service (no separate API/engine processes); Heat has a multi-service architecture (heat-api, heat-engine) but is legacy. OpenTofu runs client-side with no server component.
- •No additional service fee; bills only for deployed GCP resources, same as OpenStack resources billing via provider.
Terraform google provider
→ Rumble: Terraform
high2 diffs›
Terraform google provider
→ Rumble: Terraform
- •Uses HCL with google_compute_instance, google_storage_bucket etc.; Quake AI uses the OpenStack Terraform/OpenTofu provider with openstack_compute_instance_v2 and equivalent resources.
- •Remote state stored in GCS backend; OpenStack uses Terraform state stored locally or in S3-compatible backend.
Account· 3 mappings
Cloud Identity / IAM
→ Rumble: Authentication
high4 diffs›
Cloud Identity / IAM
→ Rumble: Authentication
- •Role-based with predefined/custom roles (permissions as service.resource.verb); Keystone uses simpler flat roles assigned to user-project/domain pairs without granular permissions.
- •Hierarchical inheritance across Org > Folder > Project; OpenStack Keystone assignments scoped per project/domain without automatic inheritance.
- •Supports IAM Conditions for attribute/time-based access, deny policies, VPC Service Controls; no direct OpenStack equivalent.
- •Principals include Google groups/service accounts/federated; Keystone uses local users/groups with federation add-ons.
Organizations
→ Rumble: Organizations
high3 diffs›
Organizations
→ Rumble: Organizations
- •Organizations auto-provisioned for Google Workspace/Cloud Identity accounts with immutable owner directory ID; OpenStack domains are manually created without such tight identity coupling.
- •Single org per company as root with Folders for sub-grouping (e.g., departments); OpenStack lacks native multi-level folders, using domains/projects.
- •Central point for IAM policy inheritance to all descendants and organization policies (constraints); Keystone domain-scoped assignments don't inherit multi-level.
Projects
→ Rumble: Projects
high3 diffs›
Projects
→ Rumble: Projects
- •GCP Projects have both human-readable Project ID (custom) and auto-generated numeric Project Number, used interchangeably in APIs unlike OpenStack projects which use single ID.
- •Projects required to enable billing and host all service resources; no direct equivalent to OpenStack's billing per project without linking to Billing Account.
- •Projects inherit IAM policies from Org/Folders; moving project changes inheritance, unlike flat OpenStack project isolation.
Billing· 3 mappings
GKE Pricing
→ Rumble: Billing
high4 diffs›
GKE Pricing
→ Rumble: Billing
- •Per-hour cluster platform fee with a free tier allowance; Autopilot offers pod-based billing as an alternative model. On Quake AI, whether you use Magnum or self-managed Kubernetes, you pay only for the underlying Nova instances and associated resources, with no Kubernetes platform fee.
- •Separate Cloud Billing Account linked to multiple projects, with self-serve/invoiced, postpay/prepay cycles; OpenStack typically uses external billing systems integrated via usage notifications, no built-in account.
- •Payments via Google Payments Profile (cards/ACH/wire); OpenStack has no native payment processing.
- •Billing-specific IAM roles (e.g., Billing Account Creator) inherited from Org; OpenStack quotas/usage per project via Keystone/Nova, no billing IAM.
Google Compute Engine Pay-As-You-Go (per-second billing, automatic sustained use discounts)
→ Rumble: Pricing
high4 diffs›
Google Compute Engine Pay-As-You-Go (per-second billing, automatic sustained use discounts)
→ Rumble: Pricing
- •GCP bills all VM instances per second with no minimum charge per instance. Sustained use discounts apply automatically (up to 30% discount) after using an instance for more than 25% of a month; no commitment required and no OpenStack equivalent.
- •GCP pricing is not embedded in the machine type API; it requires the Cloud Billing Catalog API (GET /v1/services/{serviceId}/skus) or the Pricing Calculator.
- •GCP bills network egress by destination: egress to internet by region (varies), within-region egress is free. Quake AI's egress pricing is operator-defined.
- •Preemptible (now Spot) VMs on GCP offer up to 91% discount with no-notice termination. OpenStack does not natively support preemptible or spot instances.
N/A (No subscription layer — GCP Billing Accounts linked to Projects)
→ Rumble: Subscriptions
high4 diffs›
N/A (No subscription layer — GCP Billing Accounts linked to Projects)
→ Rumble: Subscriptions
- •GCP has no subscription concept. A Billing Account is linked to one or more Projects; usage across linked projects is aggregated and invoiced together. OpenStack projects do not have a native billing account concept.
- •GCP Billing Accounts can be linked to up to 5 projects by default (quota increase required for more); each project can only have one billing account. OpenStack projects have no billing account concept built in.
- •GCP Projects are resource containers and quota boundaries; the Billing Account is purely a financial construct. OpenStack projects serve both purposes (resource isolation and, in some deployments, billing isolation).
- •GCP billing exports to BigQuery are a first-class feature for cost analysis at the billing account level. No OpenStack equivalent; billing data requires custom instrumentation.
Self-managed services and deployment patterns#
| GCP service | Status on Quake AI | Alternative |
|---|---|---|
| Cloud Functions / Cloud Run | Not available | Containers on VMs or Kubernetes |
| Cloud SQL | Not available | Self-managed PostgreSQL or MySQL on a VM |
| BigQuery | Not available | Self-managed ClickHouse, PostgreSQL, or similar |
| Pub/Sub | Not available | Self-managed RabbitMQ, Redis, or NATS |
| Memorystore | Not available | Self-managed Redis on a VM |
| Cloud DNS | Not available | External DNS provider (Cloudflare or similar) |
For the full comparison, see Coming from GCP: What GCP has that Quake AI does not.
Next steps#
- Coming from GCP: concept translation reference
- Migrate from Google Cloud Storage
- Infrastructure as Code with OpenTofu
- All migration guides
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
See Also
Migrating from AWS to Quake AI
Shares: Automation, Migration
Migrating from Azure to Quake AI
Shares: Automation, Migration
Migrating from DigitalOcean to Quake AI
Shares: Automation, Migration
Migrating from Hetzner Cloud to Quake AI
Shares: Automation, Migration
Migrating from Linode (Akamai Cloud Computing) to Quake AI
Shares: Automation, Migration