-
Notifications
You must be signed in to change notification settings - Fork 4
DOC-854-ensure CPU and SSD headroom for GCP #401
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DOC-854-ensure CPU and SSD headroom for GCP #401
Conversation
✅ Deploy Preview for rp-cloud ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
Important Review skippedAuto incremental reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the 📝 WalkthroughWalkthroughThe PR updates GCP BYOC documentation. It adds a new quotas partial (gpq-quotas.adoc) and includes it in the BYOC GCP creation and BYOVPC guides. The BYOC creation page gains detailed step-by-step instructions, notes on private networking and CIDR overlap, advanced labels, and deployment guidance. The BYOVPC guide is expanded with prescriptive service-account–based authentication, new service accounts and roles, explicit workload identity bindings, VPC/NAT/firewall setup steps, validation commands, and a new limitation about not changing VPC post-creation. Sequence Diagram(s)sequenceDiagram
autonumber
participant User
participant CloudUI as Redpanda Cloud UI
participant GCP as GCP (Quotas/Resources)
Note over User,CloudUI: Create BYOC (GCP)
User->>CloudUI: Open Create BYOC cluster
CloudUI-->>User: Display tiers, regions, quota headroom notes
User->>CloudUI: Enter cluster details (name, region, version)
User->>CloudUI: Configure networking (BYOVPC, CIDRs)
alt Quota insufficient
CloudUI-->>User: Show quota headroom guidance
else Quota sufficient
User->>CloudUI: Deploy
CloudUI->>GCP: Provision resources (async)
GCP-->>CloudUI: Status updates
CloudUI-->>User: Deployment status
end
sequenceDiagram
autonumber
participant Admin as GCP Admin
participant gcloud as gcloud CLI
participant GCP IAM as GCP IAM
participant RPK as rpk
Note over Admin,gcloud: Service-account based setup (BYOVPC)
Admin->>gcloud: Create service accounts and roles
gcloud->>GCP IAM: Apply roles and workload identity bindings
Admin->>gcloud: Set GOOGLE_APPLICATION_CREDENTIALS / active account
Admin->>RPK: rpk cloud byoc gcp apply --validate-only
RPK->>GCP IAM: Check permissions
GCP IAM-->>RPK: Validation result
RPK-->>Admin: Report validation status
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Assessment against linked issues
Assessment against linked issues: Out-of-scope changes
Possibly related PRs
Suggested reviewers
✨ Finishing Touches🧪 Generate unit tests
🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
modules/get-started/pages/cluster-types/byoc/gcp/vpc-byo-gcp.adoc (2)
62-62: Add --project to address creation to match host project used by router/NAT.Without
--project <host-project-id>, the address may be created in the default project and break NAT config.-gcloud compute addresses create <address-name> --region <region> +gcloud compute addresses create <address-name> --project <host-project-id> --region <region>
351-353: Line continuation bug: trailing space after backslash breaks the command.The backslash must be the final character on the line; otherwise the next line is parsed as a new command.
-gcloud iam service-accounts create redpanda-connect-api \ +gcloud iam service-accounts create redpanda-connect-api \ --display-name="Redpanda Connect API Service Account"
🧹 Nitpick comments (2)
modules/get-started/partials/gpq-quotas.adoc (2)
7-9: Clarify scope: apply headroom per VM family and per node pool.Readers with multiple node pools or families may misapply the formula. Add a one-line note to state the calculation applies per VM family in the region.
* Local SSD spare (GB) = `3 x (Storage size per node in GB)` + +Note: If your cluster uses multiple node pools or VM families, apply these headroom calculations per VM family in the selected region.
3-3: Use exact GCP quota display names to avoid confusion.Minor copy edit to align with Console labels (“CPUs” and “Local SSD (GB)”) while keeping the API key reference.
-Quotas such as vCPUs per VM family (for example, N2D) and Local SSD total per VM family (quota key: `LOCAL_SSD_TOTAL_GB_PER_VM_FAMILY`) are listed for each tier on the *Create BYOC cluster* page in the Redpanda Cloud UI. +Quotas such as CPUs per VM family (for example, N2D) and Local SSD (GB) per VM family (Cloud API quota key: `LOCAL_SSD_TOTAL_GB_PER_VM_FAMILY`) are listed for each tier on the *Create BYOC cluster* page in the Redpanda Cloud UI.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (3)
modules/get-started/pages/cluster-types/byoc/gcp/create-byoc-cluster-gcp.adoc(1 hunks)modules/get-started/pages/cluster-types/byoc/gcp/vpc-byo-gcp.adoc(1 hunks)modules/get-started/partials/gpq-quotas.adoc(1 hunks)
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
Learnt from: micheleRP
PR: redpanda-data/cloud-docs#377
File: modules/networking/pages/dedicated/gcp/configure-psc-in-ui.adoc:35-71
Timestamp: 2025-08-07T16:36:45.111Z
Learning: In Redpanda Cloud documentation, NAT subnet and firewall rule creation commands for GCP Private Service Connect are producer-side infrastructure steps that only BYOC (Bring Your Own Cloud) customers need to perform, since they manage their own VPC. Dedicated cluster customers don't need these steps because Redpanda manages the infrastructure for them. The ifdef::env-byoc[] guard correctly hides these commands from Dedicated users.
Learnt from: micheleRP
PR: redpanda-data/cloud-docs#361
File: modules/networking/pages/cloud-security-network.adoc:176-179
Timestamp: 2025-07-21T21:52:17.061Z
Learning: In Redpanda Cloud documentation, BYOVPC and BYOVNet are different product names for different cloud providers: BYOVPC is used for AWS and GCP, while BYOVNet is used for Azure. When documentation sections cover multiple cloud providers, the combined notation "BYOVPC/BYOVNet" is correct and should not be changed to use only one term.
📚 Learning: 2025-08-07T16:36:45.111Z
Learnt from: micheleRP
PR: redpanda-data/cloud-docs#377
File: modules/networking/pages/dedicated/gcp/configure-psc-in-ui.adoc:35-71
Timestamp: 2025-08-07T16:36:45.111Z
Learning: In Redpanda Cloud documentation, NAT subnet and firewall rule creation commands for GCP Private Service Connect are producer-side infrastructure steps that only BYOC (Bring Your Own Cloud) customers need to perform, since they manage their own VPC. Dedicated cluster customers don't need these steps because Redpanda manages the infrastructure for them. The ifdef::env-byoc[] guard correctly hides these commands from Dedicated users.
Applied to files:
modules/get-started/partials/gpq-quotas.adocmodules/get-started/pages/cluster-types/byoc/gcp/create-byoc-cluster-gcp.adocmodules/get-started/pages/cluster-types/byoc/gcp/vpc-byo-gcp.adoc
📚 Learning: 2025-07-21T21:52:17.061Z
Learnt from: micheleRP
PR: redpanda-data/cloud-docs#361
File: modules/networking/pages/cloud-security-network.adoc:176-179
Timestamp: 2025-07-21T21:52:17.061Z
Learning: In Redpanda Cloud documentation, BYOVPC and BYOVNet are different product names for different cloud providers: BYOVPC is used for AWS and GCP, while BYOVNet is used for Azure. When documentation sections cover multiple cloud providers, the combined notation "BYOVPC/BYOVNet" is correct and should not be changed to use only one term.
Applied to files:
modules/get-started/pages/cluster-types/byoc/gcp/vpc-byo-gcp.adoc
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: Redirect rules - rp-cloud
- GitHub Check: Header rules - rp-cloud
- GitHub Check: Pages changed - rp-cloud
🔇 Additional comments (3)
modules/get-started/partials/gpq-quotas.adoc (1)
3-3: Confirmed GCP quota display names and API keys
- CPU quotas in the Quotas UI appear as “CPUs” (for project-wide/regional limits) and as “<VM family> CPUs” for family-specific limits (e.g. “N2D CPUs”). Corresponding API keys include
CPUS,N2D_CPUS, and, for families that share a pool,CPUS_PER_VM_FAMILY(cloud.google.com)- Local SSD quotas are labeled “Local SSD per machine family (GB)” in the Compute Engine Quotas page and “Local SSD disk per VM family (GB)” in Cloud Monitoring. The API key remains
LOCAL_SSD_TOTAL_GB_PER_VM_FAMILY(cloud.google.com)- Local SSD device sizes continue to be sold in 375 GiB (and, for certain machine types, 3 TiB) increments; the gcloud CLI only accepts 375 GB per
--local-ssdflag, up to 24 partitions (9 TB total) (cloud.google.com)Please update the snippet to use these exact display names and API keys before merging.
modules/get-started/pages/cluster-types/byoc/gcp/create-byoc-cluster-gcp.adoc (1)
11-13: Good call including quotas in Prerequisites.Placing the quotas partial up front is clear and aligns with the PR goal to prevent upgrade/creation stalls.
modules/get-started/pages/cluster-types/byoc/gcp/vpc-byo-gcp.adoc (1)
24-25: Quotas partial inclusion is appropriate here.Surfacing quota headroom in BYOVPC prereqs matches customer-managed capacity responsibilities.
| @@ -0,0 +1,10 @@ | |||
| === GCP quotas | |||
|
|
|||
| Ensure at least three nodes of headroom in the relevant GCP quotas in the same region as your cluster. During maintenance, GKE may temporarily create extra nodes. Quotas such as vCPUs per VM family (for example, N2D) and Local SSD total per VM family (quota key: `LOCAL_SSD_TOTAL_GB_PER_VM_FAMILY`) are listed for each tier on the *Create BYOC cluster* page in the Redpanda Cloud UI. | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Minor tweak: The maintenance is done by us, not GKE
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Feediver1
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
Description
This pull request adds a prereq for GCP quotas required for BYOC and BYOVPC cluster creation. The changes ensure users are aware of the necessary quota headroom and provide formulas and examples for calculating spare capacity.
Added a new partial file
gpq-quotas.adocwith detailed information on required GCP quotas, including headroom formulas and example calculations for vCPU and Local SSD quotas.Included the new GCP quota requirements partial in the BYOC cluster creation guide (
create-byoc-cluster-gcp.adoc)Included the GCP quota requirements partial in the VPC BYOC guide (
vpc-byo-gcp.adoc)Resolves https://redpandadata.atlassian.net/browse/DOC-854
Review deadline:
Page previews
Create a BYOC cluster on GCP - Prereqs
Create a BYOVPC cluster on GCP - Prereqs
Checks