[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-cockroachdb-managing-cluster-capacity":3,"mdc--3qylys-key":36,"related-repo-cockroachdb-managing-cluster-capacity":3271,"related-org-cockroachdb-managing-cluster-capacity":3366},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":22,"repoUrl":23,"updatedAt":24,"license":25,"forks":26,"topics":27,"repo":31,"sourceUrl":34,"mdContent":35},"managing-cluster-capacity","manage CockroachDB cluster capacity and scaling","Manages CockroachDB cluster capacity across all tiers. Self-Hosted covers node decommissioning for permanent removal and adding nodes for expansion. Advanced\u002FBYOC covers scaling node count and machine size via Cloud Console, API, or Terraform. Standard covers adjusting provisioned compute (vCPUs). Basic auto-scales — guidance covers spending limits and cost management. Use when scaling capacity up or down, permanently removing nodes, or managing costs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"cockroachdb","CockroachDB","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fcockroachdb.png",[12,16,19],{"name":13,"slug":14,"type":15},"Operations","operations","tag",{"name":17,"slug":18,"type":15},"Database","database",{"name":20,"slug":21,"type":15},"Infrastructure","infrastructure",3,"https:\u002F\u002Fgithub.com\u002Fcockroachdb\u002Fclaude-plugin","2026-07-12T07:57:08.217907",null,2,[28,29,8,30],"claude","cockroach-cloud","developer-tools",{"repoUrl":23,"stars":22,"forks":26,"topics":32,"description":33},[28,29,8,30],"CockroachDB development plugin for Claude","https:\u002F\u002Fgithub.com\u002Fcockroachdb\u002Fclaude-plugin\u002Ftree\u002FHEAD\u002Fskills\u002Fcockroachdb-operations-and-lifecycle\u002Fmanaging-cluster-capacity","---\nname: managing-cluster-capacity\ndescription: Manages CockroachDB cluster capacity across all tiers. Self-Hosted covers node decommissioning for permanent removal and adding nodes for expansion. Advanced\u002FBYOC covers scaling node count and machine size via Cloud Console, API, or Terraform. Standard covers adjusting provisioned compute (vCPUs). Basic auto-scales — guidance covers spending limits and cost management. Use when scaling capacity up or down, permanently removing nodes, or managing costs.\ncompatibility: Self-Hosted requires CLI access and admin role. Advanced\u002FBYOC requires Cloud Console with Cluster Admin role. Standard requires Cloud Console. Basic has no capacity management — spending limits only.\nmetadata:\n  author: cockroachdb\n  version: \"2.0\"\n---\n\n# Managing Cluster Capacity\n\nManages cluster capacity across all CockroachDB deployment tiers. What \"capacity\" means varies by tier — Self-Hosted manages individual nodes, Advanced\u002FBYOC manage node count and machine size, Standard manages provisioned vCPUs, and Basic auto-scales with cost controls.\n\n## When to Use This Skill\n\n- Permanently removing a node from a cluster (Self-Hosted)\n- Adding nodes to increase capacity (Self-Hosted)\n- Scaling cluster node count or machine size (Advanced, BYOC)\n- Adjusting provisioned compute (Standard)\n- Managing costs on a serverless cluster (Basic)\n- Replacing hardware or migrating infrastructure (Self-Hosted, BYOC)\n- Replacing a failed or dead node (Self-Hosted)\n- Managing storage utilization and disk pressure (Self-Hosted)\n\n**For temporary maintenance (not capacity changes):** Use [performing-cluster-maintenance](..\u002Fperforming-cluster-maintenance\u002FSKILL.md).\n**For pre-operation health check:** Use [reviewing-cluster-health](..\u002Freviewing-cluster-health\u002FSKILL.md).\n\n---\n\n## Step 1: Gather Context\n\n### Required Context\n\n| Question | Options | Why It Matters |\n|----------|---------|----------------|\n| **Deployment tier?** | Self-Hosted, Advanced, BYOC, Standard, Basic | Different capacity model per tier |\n| **Direction?** | Scale up (add capacity), Scale down (reduce capacity) | Determines procedure |\n\n### Additional Context (by tier)\n\n**If Self-Hosted (scaling down):**\n\n| Question | Options | Why It Matters |\n|----------|---------|----------------|\n| **How many nodes to remove?** | 1, multiple | Multi-node decommission should be done simultaneously |\n| **Target node IDs?** | Node IDs from `cockroach node status` | Required for CLI commands |\n| **Is the node alive or dead?** | Alive, Dead | Dead nodes use a different procedure |\n| **Deployment platform?** | Bare metal, VMs, Kubernetes | Changes CLI and cleanup steps |\n| **Current replication factor?** | 3, 5, custom | Must have enough nodes remaining |\n| **Current node count?** | Number | Validates remaining capacity |\n| **Storage utilization?** | Low (\u003C60%), Medium (60-80%), High (>80%) | Determines urgency and whether storage maintenance is needed |\n\n**If Advanced or BYOC:**\n\n| Question | Options | Why It Matters |\n|----------|---------|----------------|\n| **Scale method?** | Cloud Console, API, Terraform | Determines procedure |\n| **Current and target configuration?** | e.g., 5 nodes → 3 nodes, or 4 vCPU → 8 vCPU | Validates constraints |\n| **Cloud provider?** (BYOC only) | AWS, GCP, Azure | Affects infrastructure verification |\n\n**If Standard:**\n\n| Question | Options | Why It Matters |\n|----------|---------|----------------|\n| **Current provisioned vCPUs?** | Number | Context for scaling decision |\n| **Target vCPUs?** | Number | Validates workload will fit |\n\n**If Basic:** Gather cost management goals — Basic auto-scales with no manual capacity control.\n\n### Context-Driven Routing\n\n| Tier | Go To |\n|------|-------|\n| Self-Hosted | [Self-Hosted Capacity Management](#self-hosted-capacity-management) |\n| Advanced | [Advanced Scaling](#advanced-scaling) |\n| BYOC | [BYOC Scaling](#byoc-scaling) |\n| Standard | [Standard Compute Management](#standard-compute-management) |\n| Basic | [Basic Cost Management](#basic-cost-management) |\n\n---\n\n## Self-Hosted Capacity Management\n\n**Applies when:** Tier = Self-Hosted\n\n### Scaling Down: Decommission Nodes\n\n#### Pre-Decommission Validation\n\n```bash\n# All nodes live, version-consistent, with replication and per-node range counts\ncockroach node status --decommission --certs-dir=\u003Ccerts-dir> --host=\u003Cany-live-node>\n```\n\nInspect the output for:\n- `is_live = true` for every node\n- `ranges_underreplicated` is `0` everywhere (all ranges fully replicated)\n\n```sql\n-- Replication factor (and other zone-level settings)\nSHOW ZONE CONFIGURATION FOR RANGE default;\n```\n\nFor per-store capacity (so you can verify remaining nodes won't exceed 60% utilization after absorbing the decommissioned node's data), use the DB Console **Overview** → **Storage** page or scrape the Prometheus metrics endpoint:\n\n```bash\ncurl -ks https:\u002F\u002F\u003Cnode>:8080\u002F_status\u002Fvars | grep '^capacity'\n```\n\nNode count after decommission must be ≥ the zone's `num_replicas`.\n\n#### If Node Is Alive: Drain Then Decommission\n\n```bash\n# Step 1: Drain\ncockroach node drain \u003Cnode_id> --certs-dir=\u003Ccerts-dir> --host=\u003Cany-live-node>\n\n# Step 2: Decommission (single node)\ncockroach node decommission \u003Cnode_id> --certs-dir=\u003Ccerts-dir> --host=\u003Cany-live-node>\n\n# Step 2: Decommission (multiple nodes — more efficient, do simultaneously)\ncockroach node decommission \u003Cid_1> \u003Cid_2> \u003Cid_3> --certs-dir=\u003Ccerts-dir> --host=\u003Cany-live-node>\n```\n\n#### If Node Is Dead: Replace Failed Node\n\nWhen a node has been dead longer than `server.time_until_store_dead` (default 5m), CockroachDB automatically re-replicates its data to surviving nodes. Use this procedure to clean up the dead node and optionally add a replacement.\n\n**Step 1: Confirm the node is dead and data is safe**\n\n```bash\n# Confirm the dead node and verify replication has caught up\ncockroach node status --decommission --certs-dir=\u003Ccerts-dir> --host=\u003Cany-live-node>\n```\n\nIn the output: the dead node should show `is_live = false`, and every surviving node should show `ranges_underreplicated = 0`. For per-store capacity on the surviving nodes, use the DB Console **Overview** → **Storage** page.\n\nIf under-replicated ranges exist, wait for re-replication to complete before proceeding.\n\n**Step 2: Decommission the dead node (metadata cleanup)**\n\n```bash\ncockroach node decommission \u003Cdead_node_id> --certs-dir=\u003Ccerts-dir> --host=\u003Cany-live-node>\n```\n\n**Step 3: Add a replacement node (recommended)**\n\nIf remaining nodes are above 60% utilization, provision a replacement node using the [Scaling Up: Add Nodes](#scaling-up-add-nodes) procedure.\n\n**Multiple dead nodes:** Decommission all dead nodes simultaneously:\n```bash\ncockroach node decommission \u003Cid_1> \u003Cid_2> --certs-dir=\u003Ccerts-dir> --host=\u003Cany-live-node>\n```\n\nSee [replacing-failed-nodes reference](references\u002Freplacing-failed-nodes.md) for detailed failure scenarios and recovery procedures.\n\n#### Monitor Decommission Progress\n\n```bash\ncockroach node status --decommission --certs-dir=\u003Ccerts-dir> --host=\u003Cany-live-node>\n```\n\nWait for `gossiped_replicas = 0` and `membership = 'decommissioned'`. Then stop the process on the decommissioned node.\n\n#### Cancel a Decommission\n\n```bash\ncockroach node recommission \u003Cnode_id> --certs-dir=\u003Ccerts-dir> --host=\u003Cany-live-node>\n```\n\nOnly works while still in `decommissioning` state.\n\n### Scaling Up: Add Nodes\n\n1. Provision new hardware\u002FVM with same specs as existing nodes\n2. Install same CockroachDB version (`cockroach version` to confirm)\n3. Start node with `--join` pointing to existing cluster nodes\n4. Verify join and monitor rebalancing:\n   ```bash\n   cockroach node status --certs-dir=\u003Ccerts-dir> --host=\u003Cany-live-node>\n   ```\n   The new node should appear in the output with `is_live = true`. The `ranges` column climbs as data rebalances toward the new node.\n\n### Post-Scaling Verification\n\n```bash\ncockroach node status --decommission --certs-dir=\u003Ccerts-dir> --host=\u003Cany-live-node>\n```\n\nExpect `ranges_underreplicated = 0` on every node and a balanced `ranges` count across nodes. For per-store capacity utilization, use the DB Console **Overview** → **Storage** page.\n\n---\n\n## Advanced Scaling\n\n**Applies when:** Tier = Advanced\n\nAdvanced clusters are managed by Cockroach Labs. Capacity is adjusted by changing node count or machine size.\n\n### Via Cloud Console\n\n1. **Cluster → Capacity**\n2. Adjust node count or machine type (vCPUs per node)\n3. CRL handles all node operations (drain, decommission, provisioning) safely\n4. Monitor progress in Cloud Console\n\n### Via Cloud API\n\n```bash\n# Scale node count\ncurl -X PATCH -H \"Authorization: Bearer $COCKROACH_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"config\": {\"num_nodes\": \u003Cnew_count>}}' \\\n  \"https:\u002F\u002Fcockroachlabs.cloud\u002Fapi\u002Fv1\u002Fclusters\u002F\u003Ccluster-id>\"\n```\n\n### Via Terraform\n\n```hcl\nresource \"cockroach_cluster\" \"example\" {\n  dedicated {\n    num_virtual_cpus = 8     # vCPUs per node\n    storage_gib      = 150\n    num_nodes        = 5     # total nodes\n  }\n}\n```\n\n### Pre-Scaling Check\n\n```sql\n-- Ensure no disruptive jobs are running before scaling down\nWITH j AS (SHOW JOBS)\nSELECT job_type, status, COUNT(*) FROM j WHERE status = 'running' GROUP BY 1, 2;\n```\n\n### Constraints\n\n- **Minimum:** 3 nodes x 4 vCPUs (12 vCPUs total)\n- **Scale down:** Data must fit on remaining nodes; zone configs must be satisfiable\n- **Scale up:** Additional nodes available within your plan limits\n\n---\n\n## BYOC Scaling\n\n**Applies when:** Tier = BYOC\n\nFollow all [Advanced Scaling](#advanced-scaling) steps. BYOC scaling is managed through the same Cloud Console\u002FAPI\u002FTerraform interfaces.\n\n### Cloud Provider Verification (after scaling down)\n\n**If AWS:**\n```bash\naws ec2 describe-instances --filters \"Name=tag:cockroach-cluster,Values=\u003Ccluster-name>\" \\\n  --query 'Reservations[].Instances[].{ID:InstanceId,State:State.Name}'\n```\n\n**If GCP:**\n```bash\ngcloud compute instances list --filter=\"labels.cockroach-cluster=\u003Ccluster-name>\"\n```\n\n**If Azure:**\n```bash\naz vm list --resource-group \u003Crg> --query \"[?tags.cockroachCluster=='\u003Cname>']\"\n```\n\n### Additional BYOC Considerations\n\n- Verify security groups\u002Ffirewall rules after scaling\n- Update reserved instance or committed use discount allocations\n- Verify network connectivity (PrivateLink\u002FPSC\u002FVPC Peering) is unaffected\n- Check cloud billing reflects the new instance count\n\n---\n\n## Standard Compute Management\n\n**Applies when:** Tier = Standard\n\nStandard is a multi-tenant managed service. There are no individual nodes. Capacity is managed by adjusting provisioned compute (vCPUs).\n\n### Adjust Provisioned vCPUs\n\n1. **Cloud Console → Cluster → Capacity**\n2. Increase or decrease provisioned vCPUs\n3. Change takes effect without downtime\n\n### Before Scaling Down\n\n- Review CPU utilization in Cloud Console — ensure workload fits within reduced compute\n- Storage is usage-based and unaffected by compute changes\n\n### After Scaling\n\nMonitor P99 latency and QPS in Cloud Console for 24-48 hours. If latency increases after scaling down, scale compute back up.\n\n---\n\n## Basic Cost Management\n\n**Applies when:** Tier = Basic\n\nBasic is a serverless offering that auto-scales. There are no nodes or provisioned compute to manage. Capacity scales automatically based on demand. Cost is managed through spending controls.\n\n### Manage Spending\n\n- **Set spending limits:** Cloud Console → Cluster → Settings → configure monthly spending cap\n- **Review usage:** Cloud Console shows Request Unit (RU) consumption over time\n- **Optimize queries:** Reduce RU consumption through query tuning and indexing\n- **Archive data:** Delete unused tables or databases to reduce storage costs\n\n### When to Consider Upgrading\n\nIf you need explicit control over compute capacity (guaranteed vCPUs), consider upgrading to Standard. If you need dedicated infrastructure, consider Advanced.\n\n---\n\n## Safety Considerations\n\n| Operation | Tier | Reversible? |\n|-----------|------|-------------|\n| `cockroach node decommission` | SH | Recommission only before completion |\n| Stop decommissioned node | SH | No (must rejoin as new node) |\n| Add node to cluster | SH | Yes (decommission to remove) |\n| Scale via Console\u002FAPI | ADV\u002FBYOC | Contact support to reverse |\n| Adjust provisioned vCPUs | STD | Yes (scale back) |\n| Set spending limit | BAS | Yes (adjust anytime) |\n\n**Critical (Self-Hosted):**\n- Never decommission below the replication factor\n- Always drain before decommission (for live nodes)\n- Decommission multiple nodes simultaneously (not sequentially)\n- Verify remaining capacity can absorb the data\n- For dead nodes: wait for re-replication to complete before decommissioning\n- Monitor storage utilization — nodes above 80% risk performance degradation\n\n## Troubleshooting\n\n| Issue | Tier | Fix |\n|-------|------|-----|\n| Decommission hangs | SH | Check zone config constraints; investigate stalled ranges |\n| Recommission fails | SH | Node already fully decommissioned; must rejoin as new |\n| New node not rebalancing | SH | Wait for automatic rebalancing; check `range_count` |\n| Scale-down rejected | ADV\u002FBYOC | Below minimum or data won't fit |\n| Latency spike after reduction | STD | Scale provisioned vCPUs back up |\n| Cloud instances not cleaned up | BYOC | Contact support; verify in cloud console |\n| Dead node not re-replicating | SH | Check `server.time_until_store_dead`; verify surviving nodes have capacity |\n| Storage utilization high after scale-down | SH | Add replacement node or increase disk size |\n\n## References\n\n**Skill references:**\n- [Replacing failed nodes](references\u002Freplacing-failed-nodes.md)\n- [Storage management](references\u002Fstorage-management.md)\n\n**Related skills:**\n- [reviewing-cluster-health](..\u002Freviewing-cluster-health\u002FSKILL.md) — Pre\u002Fpost health checks\n- [performing-cluster-maintenance](..\u002Fperforming-cluster-maintenance\u002FSKILL.md) — Drain procedure (SH)\n- [upgrading-cluster-version](..\u002Fupgrading-cluster-version\u002FSKILL.md) — Upgrades and lifecycle\n\n**Official CockroachDB Documentation:**\n- [cockroach node decommission](https:\u002F\u002Fwww.cockroachlabs.com\u002Fdocs\u002Fstable\u002Fcockroach-node.html)\n- [Node Shutdown](https:\u002F\u002Fwww.cockroachlabs.com\u002Fdocs\u002Fstable\u002Fnode-shutdown)\n- [Manage Advanced Cluster](https:\u002F\u002Fwww.cockroachlabs.com\u002Fdocs\u002Fcockroachcloud\u002Fadvanced-cluster-management)\n- [Manage Standard Cluster](https:\u002F\u002Fwww.cockroachlabs.com\u002Fdocs\u002Fcockroachcloud\u002Fcluster-management)\n- [Cloud API](https:\u002F\u002Fwww.cockroachlabs.com\u002Fdocs\u002Fcockroachcloud\u002Fcloud-api)\n",{"data":37,"body":41},{"name":4,"description":6,"compatibility":38,"metadata":39},"Self-Hosted requires CLI access and admin role. Advanced\u002FBYOC requires Cloud Console with Cluster Admin role. Standard requires Cloud Console. Basic has no capacity management — spending limits only.",{"author":8,"version":40},"2.0",{"type":42,"children":43},"root",[44,52,58,65,110,144,148,154,161,236,242,250,428,436,524,532,596,606,612,719,722,727,737,743,750,838,843,876,901,920,994,1006,1012,1282,1288,1301,1309,1375,1407,1412,1420,1491,1499,1512,1522,1600,1613,1619,1677,1698,1704,1775,1788,1793,1904,1910,1967,1996,1999,2004,2013,2018,2024,2050,2056,2187,2193,2258,2264,2295,2301,2334,2337,2342,2351,2362,2368,2376,2444,2452,2500,2508,2573,2579,2602,2605,2610,2619,2624,2630,2651,2657,2670,2676,2681,2684,2689,2698,2703,2709,2752,2758,2763,2766,2772,2908,2916,2949,2955,3130,3136,3144,3164,3172,3204,3212,3265],{"type":45,"tag":46,"props":47,"children":48},"element","h1",{"id":4},[49],{"type":50,"value":51},"text","Managing Cluster Capacity",{"type":45,"tag":53,"props":54,"children":55},"p",{},[56],{"type":50,"value":57},"Manages cluster capacity across all CockroachDB deployment tiers. What \"capacity\" means varies by tier — Self-Hosted manages individual nodes, Advanced\u002FBYOC manage node count and machine size, Standard manages provisioned vCPUs, and Basic auto-scales with cost controls.",{"type":45,"tag":59,"props":60,"children":62},"h2",{"id":61},"when-to-use-this-skill",[63],{"type":50,"value":64},"When to Use This Skill",{"type":45,"tag":66,"props":67,"children":68},"ul",{},[69,75,80,85,90,95,100,105],{"type":45,"tag":70,"props":71,"children":72},"li",{},[73],{"type":50,"value":74},"Permanently removing a node from a cluster (Self-Hosted)",{"type":45,"tag":70,"props":76,"children":77},{},[78],{"type":50,"value":79},"Adding nodes to increase capacity (Self-Hosted)",{"type":45,"tag":70,"props":81,"children":82},{},[83],{"type":50,"value":84},"Scaling cluster node count or machine size (Advanced, BYOC)",{"type":45,"tag":70,"props":86,"children":87},{},[88],{"type":50,"value":89},"Adjusting provisioned compute (Standard)",{"type":45,"tag":70,"props":91,"children":92},{},[93],{"type":50,"value":94},"Managing costs on a serverless cluster (Basic)",{"type":45,"tag":70,"props":96,"children":97},{},[98],{"type":50,"value":99},"Replacing hardware or migrating infrastructure (Self-Hosted, BYOC)",{"type":45,"tag":70,"props":101,"children":102},{},[103],{"type":50,"value":104},"Replacing a failed or dead node (Self-Hosted)",{"type":45,"tag":70,"props":106,"children":107},{},[108],{"type":50,"value":109},"Managing storage utilization and disk pressure (Self-Hosted)",{"type":45,"tag":53,"props":111,"children":112},{},[113,119,121,128,130,135,136,142],{"type":45,"tag":114,"props":115,"children":116},"strong",{},[117],{"type":50,"value":118},"For temporary maintenance (not capacity changes):",{"type":50,"value":120}," Use ",{"type":45,"tag":122,"props":123,"children":125},"a",{"href":124},"..\u002Fperforming-cluster-maintenance\u002FSKILL.md",[126],{"type":50,"value":127},"performing-cluster-maintenance",{"type":50,"value":129},".\n",{"type":45,"tag":114,"props":131,"children":132},{},[133],{"type":50,"value":134},"For pre-operation health check:",{"type":50,"value":120},{"type":45,"tag":122,"props":137,"children":139},{"href":138},"..\u002Freviewing-cluster-health\u002FSKILL.md",[140],{"type":50,"value":141},"reviewing-cluster-health",{"type":50,"value":143},".",{"type":45,"tag":145,"props":146,"children":147},"hr",{},[],{"type":45,"tag":59,"props":149,"children":151},{"id":150},"step-1-gather-context",[152],{"type":50,"value":153},"Step 1: Gather Context",{"type":45,"tag":155,"props":156,"children":158},"h3",{"id":157},"required-context",[159],{"type":50,"value":160},"Required Context",{"type":45,"tag":162,"props":163,"children":164},"table",{},[165,189],{"type":45,"tag":166,"props":167,"children":168},"thead",{},[169],{"type":45,"tag":170,"props":171,"children":172},"tr",{},[173,179,184],{"type":45,"tag":174,"props":175,"children":176},"th",{},[177],{"type":50,"value":178},"Question",{"type":45,"tag":174,"props":180,"children":181},{},[182],{"type":50,"value":183},"Options",{"type":45,"tag":174,"props":185,"children":186},{},[187],{"type":50,"value":188},"Why It Matters",{"type":45,"tag":190,"props":191,"children":192},"tbody",{},[193,215],{"type":45,"tag":170,"props":194,"children":195},{},[196,205,210],{"type":45,"tag":197,"props":198,"children":199},"td",{},[200],{"type":45,"tag":114,"props":201,"children":202},{},[203],{"type":50,"value":204},"Deployment tier?",{"type":45,"tag":197,"props":206,"children":207},{},[208],{"type":50,"value":209},"Self-Hosted, Advanced, BYOC, Standard, Basic",{"type":45,"tag":197,"props":211,"children":212},{},[213],{"type":50,"value":214},"Different capacity model per tier",{"type":45,"tag":170,"props":216,"children":217},{},[218,226,231],{"type":45,"tag":197,"props":219,"children":220},{},[221],{"type":45,"tag":114,"props":222,"children":223},{},[224],{"type":50,"value":225},"Direction?",{"type":45,"tag":197,"props":227,"children":228},{},[229],{"type":50,"value":230},"Scale up (add capacity), Scale down (reduce capacity)",{"type":45,"tag":197,"props":232,"children":233},{},[234],{"type":50,"value":235},"Determines procedure",{"type":45,"tag":155,"props":237,"children":239},{"id":238},"additional-context-by-tier",[240],{"type":50,"value":241},"Additional Context (by tier)",{"type":45,"tag":53,"props":243,"children":244},{},[245],{"type":45,"tag":114,"props":246,"children":247},{},[248],{"type":50,"value":249},"If Self-Hosted (scaling down):",{"type":45,"tag":162,"props":251,"children":252},{},[253,271],{"type":45,"tag":166,"props":254,"children":255},{},[256],{"type":45,"tag":170,"props":257,"children":258},{},[259,263,267],{"type":45,"tag":174,"props":260,"children":261},{},[262],{"type":50,"value":178},{"type":45,"tag":174,"props":264,"children":265},{},[266],{"type":50,"value":183},{"type":45,"tag":174,"props":268,"children":269},{},[270],{"type":50,"value":188},{"type":45,"tag":190,"props":272,"children":273},{},[274,295,323,344,365,386,407],{"type":45,"tag":170,"props":275,"children":276},{},[277,285,290],{"type":45,"tag":197,"props":278,"children":279},{},[280],{"type":45,"tag":114,"props":281,"children":282},{},[283],{"type":50,"value":284},"How many nodes to remove?",{"type":45,"tag":197,"props":286,"children":287},{},[288],{"type":50,"value":289},"1, multiple",{"type":45,"tag":197,"props":291,"children":292},{},[293],{"type":50,"value":294},"Multi-node decommission should be done simultaneously",{"type":45,"tag":170,"props":296,"children":297},{},[298,306,318],{"type":45,"tag":197,"props":299,"children":300},{},[301],{"type":45,"tag":114,"props":302,"children":303},{},[304],{"type":50,"value":305},"Target node IDs?",{"type":45,"tag":197,"props":307,"children":308},{},[309,311],{"type":50,"value":310},"Node IDs from ",{"type":45,"tag":312,"props":313,"children":315},"code",{"className":314},[],[316],{"type":50,"value":317},"cockroach node status",{"type":45,"tag":197,"props":319,"children":320},{},[321],{"type":50,"value":322},"Required for CLI commands",{"type":45,"tag":170,"props":324,"children":325},{},[326,334,339],{"type":45,"tag":197,"props":327,"children":328},{},[329],{"type":45,"tag":114,"props":330,"children":331},{},[332],{"type":50,"value":333},"Is the node alive or dead?",{"type":45,"tag":197,"props":335,"children":336},{},[337],{"type":50,"value":338},"Alive, Dead",{"type":45,"tag":197,"props":340,"children":341},{},[342],{"type":50,"value":343},"Dead nodes use a different procedure",{"type":45,"tag":170,"props":345,"children":346},{},[347,355,360],{"type":45,"tag":197,"props":348,"children":349},{},[350],{"type":45,"tag":114,"props":351,"children":352},{},[353],{"type":50,"value":354},"Deployment platform?",{"type":45,"tag":197,"props":356,"children":357},{},[358],{"type":50,"value":359},"Bare metal, VMs, Kubernetes",{"type":45,"tag":197,"props":361,"children":362},{},[363],{"type":50,"value":364},"Changes CLI and cleanup steps",{"type":45,"tag":170,"props":366,"children":367},{},[368,376,381],{"type":45,"tag":197,"props":369,"children":370},{},[371],{"type":45,"tag":114,"props":372,"children":373},{},[374],{"type":50,"value":375},"Current replication factor?",{"type":45,"tag":197,"props":377,"children":378},{},[379],{"type":50,"value":380},"3, 5, custom",{"type":45,"tag":197,"props":382,"children":383},{},[384],{"type":50,"value":385},"Must have enough nodes remaining",{"type":45,"tag":170,"props":387,"children":388},{},[389,397,402],{"type":45,"tag":197,"props":390,"children":391},{},[392],{"type":45,"tag":114,"props":393,"children":394},{},[395],{"type":50,"value":396},"Current node count?",{"type":45,"tag":197,"props":398,"children":399},{},[400],{"type":50,"value":401},"Number",{"type":45,"tag":197,"props":403,"children":404},{},[405],{"type":50,"value":406},"Validates remaining capacity",{"type":45,"tag":170,"props":408,"children":409},{},[410,418,423],{"type":45,"tag":197,"props":411,"children":412},{},[413],{"type":45,"tag":114,"props":414,"children":415},{},[416],{"type":50,"value":417},"Storage utilization?",{"type":45,"tag":197,"props":419,"children":420},{},[421],{"type":50,"value":422},"Low (\u003C60%), Medium (60-80%), High (>80%)",{"type":45,"tag":197,"props":424,"children":425},{},[426],{"type":50,"value":427},"Determines urgency and whether storage maintenance is needed",{"type":45,"tag":53,"props":429,"children":430},{},[431],{"type":45,"tag":114,"props":432,"children":433},{},[434],{"type":50,"value":435},"If Advanced or BYOC:",{"type":45,"tag":162,"props":437,"children":438},{},[439,457],{"type":45,"tag":166,"props":440,"children":441},{},[442],{"type":45,"tag":170,"props":443,"children":444},{},[445,449,453],{"type":45,"tag":174,"props":446,"children":447},{},[448],{"type":50,"value":178},{"type":45,"tag":174,"props":450,"children":451},{},[452],{"type":50,"value":183},{"type":45,"tag":174,"props":454,"children":455},{},[456],{"type":50,"value":188},{"type":45,"tag":190,"props":458,"children":459},{},[460,480,501],{"type":45,"tag":170,"props":461,"children":462},{},[463,471,476],{"type":45,"tag":197,"props":464,"children":465},{},[466],{"type":45,"tag":114,"props":467,"children":468},{},[469],{"type":50,"value":470},"Scale method?",{"type":45,"tag":197,"props":472,"children":473},{},[474],{"type":50,"value":475},"Cloud Console, API, Terraform",{"type":45,"tag":197,"props":477,"children":478},{},[479],{"type":50,"value":235},{"type":45,"tag":170,"props":481,"children":482},{},[483,491,496],{"type":45,"tag":197,"props":484,"children":485},{},[486],{"type":45,"tag":114,"props":487,"children":488},{},[489],{"type":50,"value":490},"Current and target configuration?",{"type":45,"tag":197,"props":492,"children":493},{},[494],{"type":50,"value":495},"e.g., 5 nodes → 3 nodes, or 4 vCPU → 8 vCPU",{"type":45,"tag":197,"props":497,"children":498},{},[499],{"type":50,"value":500},"Validates constraints",{"type":45,"tag":170,"props":502,"children":503},{},[504,514,519],{"type":45,"tag":197,"props":505,"children":506},{},[507,512],{"type":45,"tag":114,"props":508,"children":509},{},[510],{"type":50,"value":511},"Cloud provider?",{"type":50,"value":513}," (BYOC only)",{"type":45,"tag":197,"props":515,"children":516},{},[517],{"type":50,"value":518},"AWS, GCP, Azure",{"type":45,"tag":197,"props":520,"children":521},{},[522],{"type":50,"value":523},"Affects infrastructure verification",{"type":45,"tag":53,"props":525,"children":526},{},[527],{"type":45,"tag":114,"props":528,"children":529},{},[530],{"type":50,"value":531},"If Standard:",{"type":45,"tag":162,"props":533,"children":534},{},[535,553],{"type":45,"tag":166,"props":536,"children":537},{},[538],{"type":45,"tag":170,"props":539,"children":540},{},[541,545,549],{"type":45,"tag":174,"props":542,"children":543},{},[544],{"type":50,"value":178},{"type":45,"tag":174,"props":546,"children":547},{},[548],{"type":50,"value":183},{"type":45,"tag":174,"props":550,"children":551},{},[552],{"type":50,"value":188},{"type":45,"tag":190,"props":554,"children":555},{},[556,576],{"type":45,"tag":170,"props":557,"children":558},{},[559,567,571],{"type":45,"tag":197,"props":560,"children":561},{},[562],{"type":45,"tag":114,"props":563,"children":564},{},[565],{"type":50,"value":566},"Current provisioned vCPUs?",{"type":45,"tag":197,"props":568,"children":569},{},[570],{"type":50,"value":401},{"type":45,"tag":197,"props":572,"children":573},{},[574],{"type":50,"value":575},"Context for scaling decision",{"type":45,"tag":170,"props":577,"children":578},{},[579,587,591],{"type":45,"tag":197,"props":580,"children":581},{},[582],{"type":45,"tag":114,"props":583,"children":584},{},[585],{"type":50,"value":586},"Target vCPUs?",{"type":45,"tag":197,"props":588,"children":589},{},[590],{"type":50,"value":401},{"type":45,"tag":197,"props":592,"children":593},{},[594],{"type":50,"value":595},"Validates workload will fit",{"type":45,"tag":53,"props":597,"children":598},{},[599,604],{"type":45,"tag":114,"props":600,"children":601},{},[602],{"type":50,"value":603},"If Basic:",{"type":50,"value":605}," Gather cost management goals — Basic auto-scales with no manual capacity control.",{"type":45,"tag":155,"props":607,"children":609},{"id":608},"context-driven-routing",[610],{"type":50,"value":611},"Context-Driven Routing",{"type":45,"tag":162,"props":613,"children":614},{},[615,631],{"type":45,"tag":166,"props":616,"children":617},{},[618],{"type":45,"tag":170,"props":619,"children":620},{},[621,626],{"type":45,"tag":174,"props":622,"children":623},{},[624],{"type":50,"value":625},"Tier",{"type":45,"tag":174,"props":627,"children":628},{},[629],{"type":50,"value":630},"Go To",{"type":45,"tag":190,"props":632,"children":633},{},[634,651,668,685,702],{"type":45,"tag":170,"props":635,"children":636},{},[637,642],{"type":45,"tag":197,"props":638,"children":639},{},[640],{"type":50,"value":641},"Self-Hosted",{"type":45,"tag":197,"props":643,"children":644},{},[645],{"type":45,"tag":122,"props":646,"children":648},{"href":647},"#self-hosted-capacity-management",[649],{"type":50,"value":650},"Self-Hosted Capacity Management",{"type":45,"tag":170,"props":652,"children":653},{},[654,659],{"type":45,"tag":197,"props":655,"children":656},{},[657],{"type":50,"value":658},"Advanced",{"type":45,"tag":197,"props":660,"children":661},{},[662],{"type":45,"tag":122,"props":663,"children":665},{"href":664},"#advanced-scaling",[666],{"type":50,"value":667},"Advanced Scaling",{"type":45,"tag":170,"props":669,"children":670},{},[671,676],{"type":45,"tag":197,"props":672,"children":673},{},[674],{"type":50,"value":675},"BYOC",{"type":45,"tag":197,"props":677,"children":678},{},[679],{"type":45,"tag":122,"props":680,"children":682},{"href":681},"#byoc-scaling",[683],{"type":50,"value":684},"BYOC Scaling",{"type":45,"tag":170,"props":686,"children":687},{},[688,693],{"type":45,"tag":197,"props":689,"children":690},{},[691],{"type":50,"value":692},"Standard",{"type":45,"tag":197,"props":694,"children":695},{},[696],{"type":45,"tag":122,"props":697,"children":699},{"href":698},"#standard-compute-management",[700],{"type":50,"value":701},"Standard Compute Management",{"type":45,"tag":170,"props":703,"children":704},{},[705,710],{"type":45,"tag":197,"props":706,"children":707},{},[708],{"type":50,"value":709},"Basic",{"type":45,"tag":197,"props":711,"children":712},{},[713],{"type":45,"tag":122,"props":714,"children":716},{"href":715},"#basic-cost-management",[717],{"type":50,"value":718},"Basic Cost Management",{"type":45,"tag":145,"props":720,"children":721},{},[],{"type":45,"tag":59,"props":723,"children":725},{"id":724},"self-hosted-capacity-management",[726],{"type":50,"value":650},{"type":45,"tag":53,"props":728,"children":729},{},[730,735],{"type":45,"tag":114,"props":731,"children":732},{},[733],{"type":50,"value":734},"Applies when:",{"type":50,"value":736}," Tier = Self-Hosted",{"type":45,"tag":155,"props":738,"children":740},{"id":739},"scaling-down-decommission-nodes",[741],{"type":50,"value":742},"Scaling Down: Decommission Nodes",{"type":45,"tag":744,"props":745,"children":747},"h4",{"id":746},"pre-decommission-validation",[748],{"type":50,"value":749},"Pre-Decommission Validation",{"type":45,"tag":751,"props":752,"children":757},"pre",{"className":753,"code":754,"language":755,"meta":756,"style":756},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# All nodes live, version-consistent, with replication and per-node range counts\ncockroach node status --decommission --certs-dir=\u003Ccerts-dir> --host=\u003Cany-live-node>\n","bash","",[758],{"type":45,"tag":312,"props":759,"children":760},{"__ignoreMap":756},[761,773],{"type":45,"tag":762,"props":763,"children":766},"span",{"class":764,"line":765},"line",1,[767],{"type":45,"tag":762,"props":768,"children":770},{"style":769},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[771],{"type":50,"value":772},"# All nodes live, version-consistent, with replication and per-node range counts\n",{"type":45,"tag":762,"props":774,"children":775},{"class":764,"line":26},[776,782,788,793,798,803,809,814,819,824,828,833],{"type":45,"tag":762,"props":777,"children":779},{"style":778},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[780],{"type":50,"value":781},"cockroach",{"type":45,"tag":762,"props":783,"children":785},{"style":784},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[786],{"type":50,"value":787}," node",{"type":45,"tag":762,"props":789,"children":790},{"style":784},[791],{"type":50,"value":792}," status",{"type":45,"tag":762,"props":794,"children":795},{"style":784},[796],{"type":50,"value":797}," --decommission",{"type":45,"tag":762,"props":799,"children":800},{"style":784},[801],{"type":50,"value":802}," --certs-dir=",{"type":45,"tag":762,"props":804,"children":806},{"style":805},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[807],{"type":50,"value":808},"\u003C",{"type":45,"tag":762,"props":810,"children":811},{"style":784},[812],{"type":50,"value":813},"certs-dir",{"type":45,"tag":762,"props":815,"children":816},{"style":805},[817],{"type":50,"value":818},">",{"type":45,"tag":762,"props":820,"children":821},{"style":784},[822],{"type":50,"value":823}," --host=",{"type":45,"tag":762,"props":825,"children":826},{"style":805},[827],{"type":50,"value":808},{"type":45,"tag":762,"props":829,"children":830},{"style":784},[831],{"type":50,"value":832},"any-live-node",{"type":45,"tag":762,"props":834,"children":835},{"style":805},[836],{"type":50,"value":837},">\n",{"type":45,"tag":53,"props":839,"children":840},{},[841],{"type":50,"value":842},"Inspect the output for:",{"type":45,"tag":66,"props":844,"children":845},{},[846,857],{"type":45,"tag":70,"props":847,"children":848},{},[849,855],{"type":45,"tag":312,"props":850,"children":852},{"className":851},[],[853],{"type":50,"value":854},"is_live = true",{"type":50,"value":856}," for every node",{"type":45,"tag":70,"props":858,"children":859},{},[860,866,868,874],{"type":45,"tag":312,"props":861,"children":863},{"className":862},[],[864],{"type":50,"value":865},"ranges_underreplicated",{"type":50,"value":867}," is ",{"type":45,"tag":312,"props":869,"children":871},{"className":870},[],[872],{"type":50,"value":873},"0",{"type":50,"value":875}," everywhere (all ranges fully replicated)",{"type":45,"tag":751,"props":877,"children":881},{"className":878,"code":879,"language":880,"meta":756,"style":756},"language-sql shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","-- Replication factor (and other zone-level settings)\nSHOW ZONE CONFIGURATION FOR RANGE default;\n","sql",[882],{"type":45,"tag":312,"props":883,"children":884},{"__ignoreMap":756},[885,893],{"type":45,"tag":762,"props":886,"children":887},{"class":764,"line":765},[888],{"type":45,"tag":762,"props":889,"children":890},{},[891],{"type":50,"value":892},"-- Replication factor (and other zone-level settings)\n",{"type":45,"tag":762,"props":894,"children":895},{"class":764,"line":26},[896],{"type":45,"tag":762,"props":897,"children":898},{},[899],{"type":50,"value":900},"SHOW ZONE CONFIGURATION FOR RANGE default;\n",{"type":45,"tag":53,"props":902,"children":903},{},[904,906,911,913,918],{"type":50,"value":905},"For per-store capacity (so you can verify remaining nodes won't exceed 60% utilization after absorbing the decommissioned node's data), use the DB Console ",{"type":45,"tag":114,"props":907,"children":908},{},[909],{"type":50,"value":910},"Overview",{"type":50,"value":912}," → ",{"type":45,"tag":114,"props":914,"children":915},{},[916],{"type":50,"value":917},"Storage",{"type":50,"value":919}," page or scrape the Prometheus metrics endpoint:",{"type":45,"tag":751,"props":921,"children":923},{"className":753,"code":922,"language":755,"meta":756,"style":756},"curl -ks https:\u002F\u002F\u003Cnode>:8080\u002F_status\u002Fvars | grep '^capacity'\n",[924],{"type":45,"tag":312,"props":925,"children":926},{"__ignoreMap":756},[927],{"type":45,"tag":762,"props":928,"children":929},{"class":764,"line":765},[930,935,940,945,949,954,960,964,969,974,979,984,989],{"type":45,"tag":762,"props":931,"children":932},{"style":778},[933],{"type":50,"value":934},"curl",{"type":45,"tag":762,"props":936,"children":937},{"style":784},[938],{"type":50,"value":939}," -ks",{"type":45,"tag":762,"props":941,"children":942},{"style":784},[943],{"type":50,"value":944}," https:\u002F\u002F",{"type":45,"tag":762,"props":946,"children":947},{"style":805},[948],{"type":50,"value":808},{"type":45,"tag":762,"props":950,"children":951},{"style":784},[952],{"type":50,"value":953},"nod",{"type":45,"tag":762,"props":955,"children":957},{"style":956},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[958],{"type":50,"value":959},"e",{"type":45,"tag":762,"props":961,"children":962},{"style":805},[963],{"type":50,"value":818},{"type":45,"tag":762,"props":965,"children":966},{"style":784},[967],{"type":50,"value":968},":8080\u002F_status\u002Fvars",{"type":45,"tag":762,"props":970,"children":971},{"style":805},[972],{"type":50,"value":973}," |",{"type":45,"tag":762,"props":975,"children":976},{"style":778},[977],{"type":50,"value":978}," grep",{"type":45,"tag":762,"props":980,"children":981},{"style":805},[982],{"type":50,"value":983}," '",{"type":45,"tag":762,"props":985,"children":986},{"style":784},[987],{"type":50,"value":988},"^capacity",{"type":45,"tag":762,"props":990,"children":991},{"style":805},[992],{"type":50,"value":993},"'\n",{"type":45,"tag":53,"props":995,"children":996},{},[997,999,1005],{"type":50,"value":998},"Node count after decommission must be ≥ the zone's ",{"type":45,"tag":312,"props":1000,"children":1002},{"className":1001},[],[1003],{"type":50,"value":1004},"num_replicas",{"type":50,"value":143},{"type":45,"tag":744,"props":1007,"children":1009},{"id":1008},"if-node-is-alive-drain-then-decommission",[1010],{"type":50,"value":1011},"If Node Is Alive: Drain Then Decommission",{"type":45,"tag":751,"props":1013,"children":1015},{"className":753,"code":1014,"language":755,"meta":756,"style":756},"# Step 1: Drain\ncockroach node drain \u003Cnode_id> --certs-dir=\u003Ccerts-dir> --host=\u003Cany-live-node>\n\n# Step 2: Decommission (single node)\ncockroach node decommission \u003Cnode_id> --certs-dir=\u003Ccerts-dir> --host=\u003Cany-live-node>\n\n# Step 2: Decommission (multiple nodes — more efficient, do simultaneously)\ncockroach node decommission \u003Cid_1> \u003Cid_2> \u003Cid_3> --certs-dir=\u003Ccerts-dir> --host=\u003Cany-live-node>\n",[1016],{"type":45,"tag":312,"props":1017,"children":1018},{"__ignoreMap":756},[1019,1027,1094,1103,1112,1177,1185,1194],{"type":45,"tag":762,"props":1020,"children":1021},{"class":764,"line":765},[1022],{"type":45,"tag":762,"props":1023,"children":1024},{"style":769},[1025],{"type":50,"value":1026},"# Step 1: Drain\n",{"type":45,"tag":762,"props":1028,"children":1029},{"class":764,"line":26},[1030,1034,1038,1043,1048,1053,1058,1062,1066,1070,1074,1078,1082,1086,1090],{"type":45,"tag":762,"props":1031,"children":1032},{"style":778},[1033],{"type":50,"value":781},{"type":45,"tag":762,"props":1035,"children":1036},{"style":784},[1037],{"type":50,"value":787},{"type":45,"tag":762,"props":1039,"children":1040},{"style":784},[1041],{"type":50,"value":1042}," drain",{"type":45,"tag":762,"props":1044,"children":1045},{"style":805},[1046],{"type":50,"value":1047}," \u003C",{"type":45,"tag":762,"props":1049,"children":1050},{"style":784},[1051],{"type":50,"value":1052},"node_i",{"type":45,"tag":762,"props":1054,"children":1055},{"style":956},[1056],{"type":50,"value":1057},"d",{"type":45,"tag":762,"props":1059,"children":1060},{"style":805},[1061],{"type":50,"value":818},{"type":45,"tag":762,"props":1063,"children":1064},{"style":784},[1065],{"type":50,"value":802},{"type":45,"tag":762,"props":1067,"children":1068},{"style":805},[1069],{"type":50,"value":808},{"type":45,"tag":762,"props":1071,"children":1072},{"style":784},[1073],{"type":50,"value":813},{"type":45,"tag":762,"props":1075,"children":1076},{"style":805},[1077],{"type":50,"value":818},{"type":45,"tag":762,"props":1079,"children":1080},{"style":784},[1081],{"type":50,"value":823},{"type":45,"tag":762,"props":1083,"children":1084},{"style":805},[1085],{"type":50,"value":808},{"type":45,"tag":762,"props":1087,"children":1088},{"style":784},[1089],{"type":50,"value":832},{"type":45,"tag":762,"props":1091,"children":1092},{"style":805},[1093],{"type":50,"value":837},{"type":45,"tag":762,"props":1095,"children":1096},{"class":764,"line":22},[1097],{"type":45,"tag":762,"props":1098,"children":1100},{"emptyLinePlaceholder":1099},true,[1101],{"type":50,"value":1102},"\n",{"type":45,"tag":762,"props":1104,"children":1106},{"class":764,"line":1105},4,[1107],{"type":45,"tag":762,"props":1108,"children":1109},{"style":769},[1110],{"type":50,"value":1111},"# Step 2: Decommission (single node)\n",{"type":45,"tag":762,"props":1113,"children":1115},{"class":764,"line":1114},5,[1116,1120,1124,1129,1133,1137,1141,1145,1149,1153,1157,1161,1165,1169,1173],{"type":45,"tag":762,"props":1117,"children":1118},{"style":778},[1119],{"type":50,"value":781},{"type":45,"tag":762,"props":1121,"children":1122},{"style":784},[1123],{"type":50,"value":787},{"type":45,"tag":762,"props":1125,"children":1126},{"style":784},[1127],{"type":50,"value":1128}," decommission",{"type":45,"tag":762,"props":1130,"children":1131},{"style":805},[1132],{"type":50,"value":1047},{"type":45,"tag":762,"props":1134,"children":1135},{"style":784},[1136],{"type":50,"value":1052},{"type":45,"tag":762,"props":1138,"children":1139},{"style":956},[1140],{"type":50,"value":1057},{"type":45,"tag":762,"props":1142,"children":1143},{"style":805},[1144],{"type":50,"value":818},{"type":45,"tag":762,"props":1146,"children":1147},{"style":784},[1148],{"type":50,"value":802},{"type":45,"tag":762,"props":1150,"children":1151},{"style":805},[1152],{"type":50,"value":808},{"type":45,"tag":762,"props":1154,"children":1155},{"style":784},[1156],{"type":50,"value":813},{"type":45,"tag":762,"props":1158,"children":1159},{"style":805},[1160],{"type":50,"value":818},{"type":45,"tag":762,"props":1162,"children":1163},{"style":784},[1164],{"type":50,"value":823},{"type":45,"tag":762,"props":1166,"children":1167},{"style":805},[1168],{"type":50,"value":808},{"type":45,"tag":762,"props":1170,"children":1171},{"style":784},[1172],{"type":50,"value":832},{"type":45,"tag":762,"props":1174,"children":1175},{"style":805},[1176],{"type":50,"value":837},{"type":45,"tag":762,"props":1178,"children":1180},{"class":764,"line":1179},6,[1181],{"type":45,"tag":762,"props":1182,"children":1183},{"emptyLinePlaceholder":1099},[1184],{"type":50,"value":1102},{"type":45,"tag":762,"props":1186,"children":1188},{"class":764,"line":1187},7,[1189],{"type":45,"tag":762,"props":1190,"children":1191},{"style":769},[1192],{"type":50,"value":1193},"# Step 2: Decommission (multiple nodes — more efficient, do simultaneously)\n",{"type":45,"tag":762,"props":1195,"children":1197},{"class":764,"line":1196},8,[1198,1202,1206,1210,1214,1219,1224,1228,1232,1237,1241,1245,1250,1254,1258,1262,1266,1270,1274,1278],{"type":45,"tag":762,"props":1199,"children":1200},{"style":778},[1201],{"type":50,"value":781},{"type":45,"tag":762,"props":1203,"children":1204},{"style":784},[1205],{"type":50,"value":787},{"type":45,"tag":762,"props":1207,"children":1208},{"style":784},[1209],{"type":50,"value":1128},{"type":45,"tag":762,"props":1211,"children":1212},{"style":805},[1213],{"type":50,"value":1047},{"type":45,"tag":762,"props":1215,"children":1216},{"style":784},[1217],{"type":50,"value":1218},"id_",{"type":45,"tag":762,"props":1220,"children":1221},{"style":805},[1222],{"type":50,"value":1223},"1>",{"type":45,"tag":762,"props":1225,"children":1226},{"style":805},[1227],{"type":50,"value":1047},{"type":45,"tag":762,"props":1229,"children":1230},{"style":784},[1231],{"type":50,"value":1218},{"type":45,"tag":762,"props":1233,"children":1234},{"style":805},[1235],{"type":50,"value":1236},"2>",{"type":45,"tag":762,"props":1238,"children":1239},{"style":805},[1240],{"type":50,"value":1047},{"type":45,"tag":762,"props":1242,"children":1243},{"style":784},[1244],{"type":50,"value":1218},{"type":45,"tag":762,"props":1246,"children":1247},{"style":805},[1248],{"type":50,"value":1249},"3>",{"type":45,"tag":762,"props":1251,"children":1252},{"style":784},[1253],{"type":50,"value":802},{"type":45,"tag":762,"props":1255,"children":1256},{"style":805},[1257],{"type":50,"value":808},{"type":45,"tag":762,"props":1259,"children":1260},{"style":784},[1261],{"type":50,"value":813},{"type":45,"tag":762,"props":1263,"children":1264},{"style":805},[1265],{"type":50,"value":818},{"type":45,"tag":762,"props":1267,"children":1268},{"style":784},[1269],{"type":50,"value":823},{"type":45,"tag":762,"props":1271,"children":1272},{"style":805},[1273],{"type":50,"value":808},{"type":45,"tag":762,"props":1275,"children":1276},{"style":784},[1277],{"type":50,"value":832},{"type":45,"tag":762,"props":1279,"children":1280},{"style":805},[1281],{"type":50,"value":837},{"type":45,"tag":744,"props":1283,"children":1285},{"id":1284},"if-node-is-dead-replace-failed-node",[1286],{"type":50,"value":1287},"If Node Is Dead: Replace Failed Node",{"type":45,"tag":53,"props":1289,"children":1290},{},[1291,1293,1299],{"type":50,"value":1292},"When a node has been dead longer than ",{"type":45,"tag":312,"props":1294,"children":1296},{"className":1295},[],[1297],{"type":50,"value":1298},"server.time_until_store_dead",{"type":50,"value":1300}," (default 5m), CockroachDB automatically re-replicates its data to surviving nodes. Use this procedure to clean up the dead node and optionally add a replacement.",{"type":45,"tag":53,"props":1302,"children":1303},{},[1304],{"type":45,"tag":114,"props":1305,"children":1306},{},[1307],{"type":50,"value":1308},"Step 1: Confirm the node is dead and data is safe",{"type":45,"tag":751,"props":1310,"children":1312},{"className":753,"code":1311,"language":755,"meta":756,"style":756},"# Confirm the dead node and verify replication has caught up\ncockroach node status --decommission --certs-dir=\u003Ccerts-dir> --host=\u003Cany-live-node>\n",[1313],{"type":45,"tag":312,"props":1314,"children":1315},{"__ignoreMap":756},[1316,1324],{"type":45,"tag":762,"props":1317,"children":1318},{"class":764,"line":765},[1319],{"type":45,"tag":762,"props":1320,"children":1321},{"style":769},[1322],{"type":50,"value":1323},"# Confirm the dead node and verify replication has caught up\n",{"type":45,"tag":762,"props":1325,"children":1326},{"class":764,"line":26},[1327,1331,1335,1339,1343,1347,1351,1355,1359,1363,1367,1371],{"type":45,"tag":762,"props":1328,"children":1329},{"style":778},[1330],{"type":50,"value":781},{"type":45,"tag":762,"props":1332,"children":1333},{"style":784},[1334],{"type":50,"value":787},{"type":45,"tag":762,"props":1336,"children":1337},{"style":784},[1338],{"type":50,"value":792},{"type":45,"tag":762,"props":1340,"children":1341},{"style":784},[1342],{"type":50,"value":797},{"type":45,"tag":762,"props":1344,"children":1345},{"style":784},[1346],{"type":50,"value":802},{"type":45,"tag":762,"props":1348,"children":1349},{"style":805},[1350],{"type":50,"value":808},{"type":45,"tag":762,"props":1352,"children":1353},{"style":784},[1354],{"type":50,"value":813},{"type":45,"tag":762,"props":1356,"children":1357},{"style":805},[1358],{"type":50,"value":818},{"type":45,"tag":762,"props":1360,"children":1361},{"style":784},[1362],{"type":50,"value":823},{"type":45,"tag":762,"props":1364,"children":1365},{"style":805},[1366],{"type":50,"value":808},{"type":45,"tag":762,"props":1368,"children":1369},{"style":784},[1370],{"type":50,"value":832},{"type":45,"tag":762,"props":1372,"children":1373},{"style":805},[1374],{"type":50,"value":837},{"type":45,"tag":53,"props":1376,"children":1377},{},[1378,1380,1386,1388,1394,1396,1400,1401,1405],{"type":50,"value":1379},"In the output: the dead node should show ",{"type":45,"tag":312,"props":1381,"children":1383},{"className":1382},[],[1384],{"type":50,"value":1385},"is_live = false",{"type":50,"value":1387},", and every surviving node should show ",{"type":45,"tag":312,"props":1389,"children":1391},{"className":1390},[],[1392],{"type":50,"value":1393},"ranges_underreplicated = 0",{"type":50,"value":1395},". For per-store capacity on the surviving nodes, use the DB Console ",{"type":45,"tag":114,"props":1397,"children":1398},{},[1399],{"type":50,"value":910},{"type":50,"value":912},{"type":45,"tag":114,"props":1402,"children":1403},{},[1404],{"type":50,"value":917},{"type":50,"value":1406}," page.",{"type":45,"tag":53,"props":1408,"children":1409},{},[1410],{"type":50,"value":1411},"If under-replicated ranges exist, wait for re-replication to complete before proceeding.",{"type":45,"tag":53,"props":1413,"children":1414},{},[1415],{"type":45,"tag":114,"props":1416,"children":1417},{},[1418],{"type":50,"value":1419},"Step 2: Decommission the dead node (metadata cleanup)",{"type":45,"tag":751,"props":1421,"children":1423},{"className":753,"code":1422,"language":755,"meta":756,"style":756},"cockroach node decommission \u003Cdead_node_id> --certs-dir=\u003Ccerts-dir> --host=\u003Cany-live-node>\n",[1424],{"type":45,"tag":312,"props":1425,"children":1426},{"__ignoreMap":756},[1427],{"type":45,"tag":762,"props":1428,"children":1429},{"class":764,"line":765},[1430,1434,1438,1442,1446,1451,1455,1459,1463,1467,1471,1475,1479,1483,1487],{"type":45,"tag":762,"props":1431,"children":1432},{"style":778},[1433],{"type":50,"value":781},{"type":45,"tag":762,"props":1435,"children":1436},{"style":784},[1437],{"type":50,"value":787},{"type":45,"tag":762,"props":1439,"children":1440},{"style":784},[1441],{"type":50,"value":1128},{"type":45,"tag":762,"props":1443,"children":1444},{"style":805},[1445],{"type":50,"value":1047},{"type":45,"tag":762,"props":1447,"children":1448},{"style":784},[1449],{"type":50,"value":1450},"dead_node_i",{"type":45,"tag":762,"props":1452,"children":1453},{"style":956},[1454],{"type":50,"value":1057},{"type":45,"tag":762,"props":1456,"children":1457},{"style":805},[1458],{"type":50,"value":818},{"type":45,"tag":762,"props":1460,"children":1461},{"style":784},[1462],{"type":50,"value":802},{"type":45,"tag":762,"props":1464,"children":1465},{"style":805},[1466],{"type":50,"value":808},{"type":45,"tag":762,"props":1468,"children":1469},{"style":784},[1470],{"type":50,"value":813},{"type":45,"tag":762,"props":1472,"children":1473},{"style":805},[1474],{"type":50,"value":818},{"type":45,"tag":762,"props":1476,"children":1477},{"style":784},[1478],{"type":50,"value":823},{"type":45,"tag":762,"props":1480,"children":1481},{"style":805},[1482],{"type":50,"value":808},{"type":45,"tag":762,"props":1484,"children":1485},{"style":784},[1486],{"type":50,"value":832},{"type":45,"tag":762,"props":1488,"children":1489},{"style":805},[1490],{"type":50,"value":837},{"type":45,"tag":53,"props":1492,"children":1493},{},[1494],{"type":45,"tag":114,"props":1495,"children":1496},{},[1497],{"type":50,"value":1498},"Step 3: Add a replacement node (recommended)",{"type":45,"tag":53,"props":1500,"children":1501},{},[1502,1504,1510],{"type":50,"value":1503},"If remaining nodes are above 60% utilization, provision a replacement node using the ",{"type":45,"tag":122,"props":1505,"children":1507},{"href":1506},"#scaling-up-add-nodes",[1508],{"type":50,"value":1509},"Scaling Up: Add Nodes",{"type":50,"value":1511}," procedure.",{"type":45,"tag":53,"props":1513,"children":1514},{},[1515,1520],{"type":45,"tag":114,"props":1516,"children":1517},{},[1518],{"type":50,"value":1519},"Multiple dead nodes:",{"type":50,"value":1521}," Decommission all dead nodes simultaneously:",{"type":45,"tag":751,"props":1523,"children":1525},{"className":753,"code":1524,"language":755,"meta":756,"style":756},"cockroach node decommission \u003Cid_1> \u003Cid_2> --certs-dir=\u003Ccerts-dir> --host=\u003Cany-live-node>\n",[1526],{"type":45,"tag":312,"props":1527,"children":1528},{"__ignoreMap":756},[1529],{"type":45,"tag":762,"props":1530,"children":1531},{"class":764,"line":765},[1532,1536,1540,1544,1548,1552,1556,1560,1564,1568,1572,1576,1580,1584,1588,1592,1596],{"type":45,"tag":762,"props":1533,"children":1534},{"style":778},[1535],{"type":50,"value":781},{"type":45,"tag":762,"props":1537,"children":1538},{"style":784},[1539],{"type":50,"value":787},{"type":45,"tag":762,"props":1541,"children":1542},{"style":784},[1543],{"type":50,"value":1128},{"type":45,"tag":762,"props":1545,"children":1546},{"style":805},[1547],{"type":50,"value":1047},{"type":45,"tag":762,"props":1549,"children":1550},{"style":784},[1551],{"type":50,"value":1218},{"type":45,"tag":762,"props":1553,"children":1554},{"style":805},[1555],{"type":50,"value":1223},{"type":45,"tag":762,"props":1557,"children":1558},{"style":805},[1559],{"type":50,"value":1047},{"type":45,"tag":762,"props":1561,"children":1562},{"style":784},[1563],{"type":50,"value":1218},{"type":45,"tag":762,"props":1565,"children":1566},{"style":805},[1567],{"type":50,"value":1236},{"type":45,"tag":762,"props":1569,"children":1570},{"style":784},[1571],{"type":50,"value":802},{"type":45,"tag":762,"props":1573,"children":1574},{"style":805},[1575],{"type":50,"value":808},{"type":45,"tag":762,"props":1577,"children":1578},{"style":784},[1579],{"type":50,"value":813},{"type":45,"tag":762,"props":1581,"children":1582},{"style":805},[1583],{"type":50,"value":818},{"type":45,"tag":762,"props":1585,"children":1586},{"style":784},[1587],{"type":50,"value":823},{"type":45,"tag":762,"props":1589,"children":1590},{"style":805},[1591],{"type":50,"value":808},{"type":45,"tag":762,"props":1593,"children":1594},{"style":784},[1595],{"type":50,"value":832},{"type":45,"tag":762,"props":1597,"children":1598},{"style":805},[1599],{"type":50,"value":837},{"type":45,"tag":53,"props":1601,"children":1602},{},[1603,1605,1611],{"type":50,"value":1604},"See ",{"type":45,"tag":122,"props":1606,"children":1608},{"href":1607},"references\u002Freplacing-failed-nodes.md",[1609],{"type":50,"value":1610},"replacing-failed-nodes reference",{"type":50,"value":1612}," for detailed failure scenarios and recovery procedures.",{"type":45,"tag":744,"props":1614,"children":1616},{"id":1615},"monitor-decommission-progress",[1617],{"type":50,"value":1618},"Monitor Decommission Progress",{"type":45,"tag":751,"props":1620,"children":1622},{"className":753,"code":1621,"language":755,"meta":756,"style":756},"cockroach node status --decommission --certs-dir=\u003Ccerts-dir> --host=\u003Cany-live-node>\n",[1623],{"type":45,"tag":312,"props":1624,"children":1625},{"__ignoreMap":756},[1626],{"type":45,"tag":762,"props":1627,"children":1628},{"class":764,"line":765},[1629,1633,1637,1641,1645,1649,1653,1657,1661,1665,1669,1673],{"type":45,"tag":762,"props":1630,"children":1631},{"style":778},[1632],{"type":50,"value":781},{"type":45,"tag":762,"props":1634,"children":1635},{"style":784},[1636],{"type":50,"value":787},{"type":45,"tag":762,"props":1638,"children":1639},{"style":784},[1640],{"type":50,"value":792},{"type":45,"tag":762,"props":1642,"children":1643},{"style":784},[1644],{"type":50,"value":797},{"type":45,"tag":762,"props":1646,"children":1647},{"style":784},[1648],{"type":50,"value":802},{"type":45,"tag":762,"props":1650,"children":1651},{"style":805},[1652],{"type":50,"value":808},{"type":45,"tag":762,"props":1654,"children":1655},{"style":784},[1656],{"type":50,"value":813},{"type":45,"tag":762,"props":1658,"children":1659},{"style":805},[1660],{"type":50,"value":818},{"type":45,"tag":762,"props":1662,"children":1663},{"style":784},[1664],{"type":50,"value":823},{"type":45,"tag":762,"props":1666,"children":1667},{"style":805},[1668],{"type":50,"value":808},{"type":45,"tag":762,"props":1670,"children":1671},{"style":784},[1672],{"type":50,"value":832},{"type":45,"tag":762,"props":1674,"children":1675},{"style":805},[1676],{"type":50,"value":837},{"type":45,"tag":53,"props":1678,"children":1679},{},[1680,1682,1688,1690,1696],{"type":50,"value":1681},"Wait for ",{"type":45,"tag":312,"props":1683,"children":1685},{"className":1684},[],[1686],{"type":50,"value":1687},"gossiped_replicas = 0",{"type":50,"value":1689}," and ",{"type":45,"tag":312,"props":1691,"children":1693},{"className":1692},[],[1694],{"type":50,"value":1695},"membership = 'decommissioned'",{"type":50,"value":1697},". Then stop the process on the decommissioned node.",{"type":45,"tag":744,"props":1699,"children":1701},{"id":1700},"cancel-a-decommission",[1702],{"type":50,"value":1703},"Cancel a Decommission",{"type":45,"tag":751,"props":1705,"children":1707},{"className":753,"code":1706,"language":755,"meta":756,"style":756},"cockroach node recommission \u003Cnode_id> --certs-dir=\u003Ccerts-dir> --host=\u003Cany-live-node>\n",[1708],{"type":45,"tag":312,"props":1709,"children":1710},{"__ignoreMap":756},[1711],{"type":45,"tag":762,"props":1712,"children":1713},{"class":764,"line":765},[1714,1718,1722,1727,1731,1735,1739,1743,1747,1751,1755,1759,1763,1767,1771],{"type":45,"tag":762,"props":1715,"children":1716},{"style":778},[1717],{"type":50,"value":781},{"type":45,"tag":762,"props":1719,"children":1720},{"style":784},[1721],{"type":50,"value":787},{"type":45,"tag":762,"props":1723,"children":1724},{"style":784},[1725],{"type":50,"value":1726}," recommission",{"type":45,"tag":762,"props":1728,"children":1729},{"style":805},[1730],{"type":50,"value":1047},{"type":45,"tag":762,"props":1732,"children":1733},{"style":784},[1734],{"type":50,"value":1052},{"type":45,"tag":762,"props":1736,"children":1737},{"style":956},[1738],{"type":50,"value":1057},{"type":45,"tag":762,"props":1740,"children":1741},{"style":805},[1742],{"type":50,"value":818},{"type":45,"tag":762,"props":1744,"children":1745},{"style":784},[1746],{"type":50,"value":802},{"type":45,"tag":762,"props":1748,"children":1749},{"style":805},[1750],{"type":50,"value":808},{"type":45,"tag":762,"props":1752,"children":1753},{"style":784},[1754],{"type":50,"value":813},{"type":45,"tag":762,"props":1756,"children":1757},{"style":805},[1758],{"type":50,"value":818},{"type":45,"tag":762,"props":1760,"children":1761},{"style":784},[1762],{"type":50,"value":823},{"type":45,"tag":762,"props":1764,"children":1765},{"style":805},[1766],{"type":50,"value":808},{"type":45,"tag":762,"props":1768,"children":1769},{"style":784},[1770],{"type":50,"value":832},{"type":45,"tag":762,"props":1772,"children":1773},{"style":805},[1774],{"type":50,"value":837},{"type":45,"tag":53,"props":1776,"children":1777},{},[1778,1780,1786],{"type":50,"value":1779},"Only works while still in ",{"type":45,"tag":312,"props":1781,"children":1783},{"className":1782},[],[1784],{"type":50,"value":1785},"decommissioning",{"type":50,"value":1787}," state.",{"type":45,"tag":155,"props":1789,"children":1791},{"id":1790},"scaling-up-add-nodes",[1792],{"type":50,"value":1509},{"type":45,"tag":1794,"props":1795,"children":1796},"ol",{},[1797,1802,1815,1828],{"type":45,"tag":70,"props":1798,"children":1799},{},[1800],{"type":50,"value":1801},"Provision new hardware\u002FVM with same specs as existing nodes",{"type":45,"tag":70,"props":1803,"children":1804},{},[1805,1807,1813],{"type":50,"value":1806},"Install same CockroachDB version (",{"type":45,"tag":312,"props":1808,"children":1810},{"className":1809},[],[1811],{"type":50,"value":1812},"cockroach version",{"type":50,"value":1814}," to confirm)",{"type":45,"tag":70,"props":1816,"children":1817},{},[1818,1820,1826],{"type":50,"value":1819},"Start node with ",{"type":45,"tag":312,"props":1821,"children":1823},{"className":1822},[],[1824],{"type":50,"value":1825},"--join",{"type":50,"value":1827}," pointing to existing cluster nodes",{"type":45,"tag":70,"props":1829,"children":1830},{},[1831,1833,1887,1889,1894,1896,1902],{"type":50,"value":1832},"Verify join and monitor rebalancing:\n",{"type":45,"tag":751,"props":1834,"children":1836},{"className":753,"code":1835,"language":755,"meta":756,"style":756},"cockroach node status --certs-dir=\u003Ccerts-dir> --host=\u003Cany-live-node>\n",[1837],{"type":45,"tag":312,"props":1838,"children":1839},{"__ignoreMap":756},[1840],{"type":45,"tag":762,"props":1841,"children":1842},{"class":764,"line":765},[1843,1847,1851,1855,1859,1863,1867,1871,1875,1879,1883],{"type":45,"tag":762,"props":1844,"children":1845},{"style":778},[1846],{"type":50,"value":781},{"type":45,"tag":762,"props":1848,"children":1849},{"style":784},[1850],{"type":50,"value":787},{"type":45,"tag":762,"props":1852,"children":1853},{"style":784},[1854],{"type":50,"value":792},{"type":45,"tag":762,"props":1856,"children":1857},{"style":784},[1858],{"type":50,"value":802},{"type":45,"tag":762,"props":1860,"children":1861},{"style":805},[1862],{"type":50,"value":808},{"type":45,"tag":762,"props":1864,"children":1865},{"style":784},[1866],{"type":50,"value":813},{"type":45,"tag":762,"props":1868,"children":1869},{"style":805},[1870],{"type":50,"value":818},{"type":45,"tag":762,"props":1872,"children":1873},{"style":784},[1874],{"type":50,"value":823},{"type":45,"tag":762,"props":1876,"children":1877},{"style":805},[1878],{"type":50,"value":808},{"type":45,"tag":762,"props":1880,"children":1881},{"style":784},[1882],{"type":50,"value":832},{"type":45,"tag":762,"props":1884,"children":1885},{"style":805},[1886],{"type":50,"value":837},{"type":50,"value":1888},"\nThe new node should appear in the output with ",{"type":45,"tag":312,"props":1890,"children":1892},{"className":1891},[],[1893],{"type":50,"value":854},{"type":50,"value":1895},". The ",{"type":45,"tag":312,"props":1897,"children":1899},{"className":1898},[],[1900],{"type":50,"value":1901},"ranges",{"type":50,"value":1903}," column climbs as data rebalances toward the new node.",{"type":45,"tag":155,"props":1905,"children":1907},{"id":1906},"post-scaling-verification",[1908],{"type":50,"value":1909},"Post-Scaling Verification",{"type":45,"tag":751,"props":1911,"children":1912},{"className":753,"code":1621,"language":755,"meta":756,"style":756},[1913],{"type":45,"tag":312,"props":1914,"children":1915},{"__ignoreMap":756},[1916],{"type":45,"tag":762,"props":1917,"children":1918},{"class":764,"line":765},[1919,1923,1927,1931,1935,1939,1943,1947,1951,1955,1959,1963],{"type":45,"tag":762,"props":1920,"children":1921},{"style":778},[1922],{"type":50,"value":781},{"type":45,"tag":762,"props":1924,"children":1925},{"style":784},[1926],{"type":50,"value":787},{"type":45,"tag":762,"props":1928,"children":1929},{"style":784},[1930],{"type":50,"value":792},{"type":45,"tag":762,"props":1932,"children":1933},{"style":784},[1934],{"type":50,"value":797},{"type":45,"tag":762,"props":1936,"children":1937},{"style":784},[1938],{"type":50,"value":802},{"type":45,"tag":762,"props":1940,"children":1941},{"style":805},[1942],{"type":50,"value":808},{"type":45,"tag":762,"props":1944,"children":1945},{"style":784},[1946],{"type":50,"value":813},{"type":45,"tag":762,"props":1948,"children":1949},{"style":805},[1950],{"type":50,"value":818},{"type":45,"tag":762,"props":1952,"children":1953},{"style":784},[1954],{"type":50,"value":823},{"type":45,"tag":762,"props":1956,"children":1957},{"style":805},[1958],{"type":50,"value":808},{"type":45,"tag":762,"props":1960,"children":1961},{"style":784},[1962],{"type":50,"value":832},{"type":45,"tag":762,"props":1964,"children":1965},{"style":805},[1966],{"type":50,"value":837},{"type":45,"tag":53,"props":1968,"children":1969},{},[1970,1972,1977,1979,1984,1986,1990,1991,1995],{"type":50,"value":1971},"Expect ",{"type":45,"tag":312,"props":1973,"children":1975},{"className":1974},[],[1976],{"type":50,"value":1393},{"type":50,"value":1978}," on every node and a balanced ",{"type":45,"tag":312,"props":1980,"children":1982},{"className":1981},[],[1983],{"type":50,"value":1901},{"type":50,"value":1985}," count across nodes. For per-store capacity utilization, use the DB Console ",{"type":45,"tag":114,"props":1987,"children":1988},{},[1989],{"type":50,"value":910},{"type":50,"value":912},{"type":45,"tag":114,"props":1992,"children":1993},{},[1994],{"type":50,"value":917},{"type":50,"value":1406},{"type":45,"tag":145,"props":1997,"children":1998},{},[],{"type":45,"tag":59,"props":2000,"children":2002},{"id":2001},"advanced-scaling",[2003],{"type":50,"value":667},{"type":45,"tag":53,"props":2005,"children":2006},{},[2007,2011],{"type":45,"tag":114,"props":2008,"children":2009},{},[2010],{"type":50,"value":734},{"type":50,"value":2012}," Tier = Advanced",{"type":45,"tag":53,"props":2014,"children":2015},{},[2016],{"type":50,"value":2017},"Advanced clusters are managed by Cockroach Labs. Capacity is adjusted by changing node count or machine size.",{"type":45,"tag":155,"props":2019,"children":2021},{"id":2020},"via-cloud-console",[2022],{"type":50,"value":2023},"Via Cloud Console",{"type":45,"tag":1794,"props":2025,"children":2026},{},[2027,2035,2040,2045],{"type":45,"tag":70,"props":2028,"children":2029},{},[2030],{"type":45,"tag":114,"props":2031,"children":2032},{},[2033],{"type":50,"value":2034},"Cluster → Capacity",{"type":45,"tag":70,"props":2036,"children":2037},{},[2038],{"type":50,"value":2039},"Adjust node count or machine type (vCPUs per node)",{"type":45,"tag":70,"props":2041,"children":2042},{},[2043],{"type":50,"value":2044},"CRL handles all node operations (drain, decommission, provisioning) safely",{"type":45,"tag":70,"props":2046,"children":2047},{},[2048],{"type":50,"value":2049},"Monitor progress in Cloud Console",{"type":45,"tag":155,"props":2051,"children":2053},{"id":2052},"via-cloud-api",[2054],{"type":50,"value":2055},"Via Cloud API",{"type":45,"tag":751,"props":2057,"children":2059},{"className":753,"code":2058,"language":755,"meta":756,"style":756},"# Scale node count\ncurl -X PATCH -H \"Authorization: Bearer $COCKROACH_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"config\": {\"num_nodes\": \u003Cnew_count>}}' \\\n  \"https:\u002F\u002Fcockroachlabs.cloud\u002Fapi\u002Fv1\u002Fclusters\u002F\u003Ccluster-id>\"\n",[2060],{"type":45,"tag":312,"props":2061,"children":2062},{"__ignoreMap":756},[2063,2071,2118,2143,2169],{"type":45,"tag":762,"props":2064,"children":2065},{"class":764,"line":765},[2066],{"type":45,"tag":762,"props":2067,"children":2068},{"style":769},[2069],{"type":50,"value":2070},"# Scale node count\n",{"type":45,"tag":762,"props":2072,"children":2073},{"class":764,"line":26},[2074,2078,2083,2088,2093,2098,2103,2108,2113],{"type":45,"tag":762,"props":2075,"children":2076},{"style":778},[2077],{"type":50,"value":934},{"type":45,"tag":762,"props":2079,"children":2080},{"style":784},[2081],{"type":50,"value":2082}," -X",{"type":45,"tag":762,"props":2084,"children":2085},{"style":784},[2086],{"type":50,"value":2087}," PATCH",{"type":45,"tag":762,"props":2089,"children":2090},{"style":784},[2091],{"type":50,"value":2092}," -H",{"type":45,"tag":762,"props":2094,"children":2095},{"style":805},[2096],{"type":50,"value":2097}," \"",{"type":45,"tag":762,"props":2099,"children":2100},{"style":784},[2101],{"type":50,"value":2102},"Authorization: Bearer ",{"type":45,"tag":762,"props":2104,"children":2105},{"style":956},[2106],{"type":50,"value":2107},"$COCKROACH_API_KEY",{"type":45,"tag":762,"props":2109,"children":2110},{"style":805},[2111],{"type":50,"value":2112},"\"",{"type":45,"tag":762,"props":2114,"children":2115},{"style":956},[2116],{"type":50,"value":2117}," \\\n",{"type":45,"tag":762,"props":2119,"children":2120},{"class":764,"line":22},[2121,2126,2130,2135,2139],{"type":45,"tag":762,"props":2122,"children":2123},{"style":784},[2124],{"type":50,"value":2125},"  -H",{"type":45,"tag":762,"props":2127,"children":2128},{"style":805},[2129],{"type":50,"value":2097},{"type":45,"tag":762,"props":2131,"children":2132},{"style":784},[2133],{"type":50,"value":2134},"Content-Type: application\u002Fjson",{"type":45,"tag":762,"props":2136,"children":2137},{"style":805},[2138],{"type":50,"value":2112},{"type":45,"tag":762,"props":2140,"children":2141},{"style":956},[2142],{"type":50,"value":2117},{"type":45,"tag":762,"props":2144,"children":2145},{"class":764,"line":1105},[2146,2151,2155,2160,2165],{"type":45,"tag":762,"props":2147,"children":2148},{"style":784},[2149],{"type":50,"value":2150},"  -d",{"type":45,"tag":762,"props":2152,"children":2153},{"style":805},[2154],{"type":50,"value":983},{"type":45,"tag":762,"props":2156,"children":2157},{"style":784},[2158],{"type":50,"value":2159},"{\"config\": {\"num_nodes\": \u003Cnew_count>}}",{"type":45,"tag":762,"props":2161,"children":2162},{"style":805},[2163],{"type":50,"value":2164},"'",{"type":45,"tag":762,"props":2166,"children":2167},{"style":956},[2168],{"type":50,"value":2117},{"type":45,"tag":762,"props":2170,"children":2171},{"class":764,"line":1114},[2172,2177,2182],{"type":45,"tag":762,"props":2173,"children":2174},{"style":805},[2175],{"type":50,"value":2176},"  \"",{"type":45,"tag":762,"props":2178,"children":2179},{"style":784},[2180],{"type":50,"value":2181},"https:\u002F\u002Fcockroachlabs.cloud\u002Fapi\u002Fv1\u002Fclusters\u002F\u003Ccluster-id>",{"type":45,"tag":762,"props":2183,"children":2184},{"style":805},[2185],{"type":50,"value":2186},"\"\n",{"type":45,"tag":155,"props":2188,"children":2190},{"id":2189},"via-terraform",[2191],{"type":50,"value":2192},"Via Terraform",{"type":45,"tag":751,"props":2194,"children":2198},{"className":2195,"code":2196,"language":2197,"meta":756,"style":756},"language-hcl shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","resource \"cockroach_cluster\" \"example\" {\n  dedicated {\n    num_virtual_cpus = 8     # vCPUs per node\n    storage_gib      = 150\n    num_nodes        = 5     # total nodes\n  }\n}\n","hcl",[2199],{"type":45,"tag":312,"props":2200,"children":2201},{"__ignoreMap":756},[2202,2210,2218,2226,2234,2242,2250],{"type":45,"tag":762,"props":2203,"children":2204},{"class":764,"line":765},[2205],{"type":45,"tag":762,"props":2206,"children":2207},{},[2208],{"type":50,"value":2209},"resource \"cockroach_cluster\" \"example\" {\n",{"type":45,"tag":762,"props":2211,"children":2212},{"class":764,"line":26},[2213],{"type":45,"tag":762,"props":2214,"children":2215},{},[2216],{"type":50,"value":2217},"  dedicated {\n",{"type":45,"tag":762,"props":2219,"children":2220},{"class":764,"line":22},[2221],{"type":45,"tag":762,"props":2222,"children":2223},{},[2224],{"type":50,"value":2225},"    num_virtual_cpus = 8     # vCPUs per node\n",{"type":45,"tag":762,"props":2227,"children":2228},{"class":764,"line":1105},[2229],{"type":45,"tag":762,"props":2230,"children":2231},{},[2232],{"type":50,"value":2233},"    storage_gib      = 150\n",{"type":45,"tag":762,"props":2235,"children":2236},{"class":764,"line":1114},[2237],{"type":45,"tag":762,"props":2238,"children":2239},{},[2240],{"type":50,"value":2241},"    num_nodes        = 5     # total nodes\n",{"type":45,"tag":762,"props":2243,"children":2244},{"class":764,"line":1179},[2245],{"type":45,"tag":762,"props":2246,"children":2247},{},[2248],{"type":50,"value":2249},"  }\n",{"type":45,"tag":762,"props":2251,"children":2252},{"class":764,"line":1187},[2253],{"type":45,"tag":762,"props":2254,"children":2255},{},[2256],{"type":50,"value":2257},"}\n",{"type":45,"tag":155,"props":2259,"children":2261},{"id":2260},"pre-scaling-check",[2262],{"type":50,"value":2263},"Pre-Scaling Check",{"type":45,"tag":751,"props":2265,"children":2267},{"className":878,"code":2266,"language":880,"meta":756,"style":756},"-- Ensure no disruptive jobs are running before scaling down\nWITH j AS (SHOW JOBS)\nSELECT job_type, status, COUNT(*) FROM j WHERE status = 'running' GROUP BY 1, 2;\n",[2268],{"type":45,"tag":312,"props":2269,"children":2270},{"__ignoreMap":756},[2271,2279,2287],{"type":45,"tag":762,"props":2272,"children":2273},{"class":764,"line":765},[2274],{"type":45,"tag":762,"props":2275,"children":2276},{},[2277],{"type":50,"value":2278},"-- Ensure no disruptive jobs are running before scaling down\n",{"type":45,"tag":762,"props":2280,"children":2281},{"class":764,"line":26},[2282],{"type":45,"tag":762,"props":2283,"children":2284},{},[2285],{"type":50,"value":2286},"WITH j AS (SHOW JOBS)\n",{"type":45,"tag":762,"props":2288,"children":2289},{"class":764,"line":22},[2290],{"type":45,"tag":762,"props":2291,"children":2292},{},[2293],{"type":50,"value":2294},"SELECT job_type, status, COUNT(*) FROM j WHERE status = 'running' GROUP BY 1, 2;\n",{"type":45,"tag":155,"props":2296,"children":2298},{"id":2297},"constraints",[2299],{"type":50,"value":2300},"Constraints",{"type":45,"tag":66,"props":2302,"children":2303},{},[2304,2314,2324],{"type":45,"tag":70,"props":2305,"children":2306},{},[2307,2312],{"type":45,"tag":114,"props":2308,"children":2309},{},[2310],{"type":50,"value":2311},"Minimum:",{"type":50,"value":2313}," 3 nodes x 4 vCPUs (12 vCPUs total)",{"type":45,"tag":70,"props":2315,"children":2316},{},[2317,2322],{"type":45,"tag":114,"props":2318,"children":2319},{},[2320],{"type":50,"value":2321},"Scale down:",{"type":50,"value":2323}," Data must fit on remaining nodes; zone configs must be satisfiable",{"type":45,"tag":70,"props":2325,"children":2326},{},[2327,2332],{"type":45,"tag":114,"props":2328,"children":2329},{},[2330],{"type":50,"value":2331},"Scale up:",{"type":50,"value":2333}," Additional nodes available within your plan limits",{"type":45,"tag":145,"props":2335,"children":2336},{},[],{"type":45,"tag":59,"props":2338,"children":2340},{"id":2339},"byoc-scaling",[2341],{"type":50,"value":684},{"type":45,"tag":53,"props":2343,"children":2344},{},[2345,2349],{"type":45,"tag":114,"props":2346,"children":2347},{},[2348],{"type":50,"value":734},{"type":50,"value":2350}," Tier = BYOC",{"type":45,"tag":53,"props":2352,"children":2353},{},[2354,2356,2360],{"type":50,"value":2355},"Follow all ",{"type":45,"tag":122,"props":2357,"children":2358},{"href":664},[2359],{"type":50,"value":667},{"type":50,"value":2361}," steps. BYOC scaling is managed through the same Cloud Console\u002FAPI\u002FTerraform interfaces.",{"type":45,"tag":155,"props":2363,"children":2365},{"id":2364},"cloud-provider-verification-after-scaling-down",[2366],{"type":50,"value":2367},"Cloud Provider Verification (after scaling down)",{"type":45,"tag":53,"props":2369,"children":2370},{},[2371],{"type":45,"tag":114,"props":2372,"children":2373},{},[2374],{"type":50,"value":2375},"If AWS:",{"type":45,"tag":751,"props":2377,"children":2379},{"className":753,"code":2378,"language":755,"meta":756,"style":756},"aws ec2 describe-instances --filters \"Name=tag:cockroach-cluster,Values=\u003Ccluster-name>\" \\\n  --query 'Reservations[].Instances[].{ID:InstanceId,State:State.Name}'\n",[2380],{"type":45,"tag":312,"props":2381,"children":2382},{"__ignoreMap":756},[2383,2423],{"type":45,"tag":762,"props":2384,"children":2385},{"class":764,"line":765},[2386,2391,2396,2401,2406,2410,2415,2419],{"type":45,"tag":762,"props":2387,"children":2388},{"style":778},[2389],{"type":50,"value":2390},"aws",{"type":45,"tag":762,"props":2392,"children":2393},{"style":784},[2394],{"type":50,"value":2395}," ec2",{"type":45,"tag":762,"props":2397,"children":2398},{"style":784},[2399],{"type":50,"value":2400}," describe-instances",{"type":45,"tag":762,"props":2402,"children":2403},{"style":784},[2404],{"type":50,"value":2405}," --filters",{"type":45,"tag":762,"props":2407,"children":2408},{"style":805},[2409],{"type":50,"value":2097},{"type":45,"tag":762,"props":2411,"children":2412},{"style":784},[2413],{"type":50,"value":2414},"Name=tag:cockroach-cluster,Values=\u003Ccluster-name>",{"type":45,"tag":762,"props":2416,"children":2417},{"style":805},[2418],{"type":50,"value":2112},{"type":45,"tag":762,"props":2420,"children":2421},{"style":956},[2422],{"type":50,"value":2117},{"type":45,"tag":762,"props":2424,"children":2425},{"class":764,"line":26},[2426,2431,2435,2440],{"type":45,"tag":762,"props":2427,"children":2428},{"style":784},[2429],{"type":50,"value":2430},"  --query",{"type":45,"tag":762,"props":2432,"children":2433},{"style":805},[2434],{"type":50,"value":983},{"type":45,"tag":762,"props":2436,"children":2437},{"style":784},[2438],{"type":50,"value":2439},"Reservations[].Instances[].{ID:InstanceId,State:State.Name}",{"type":45,"tag":762,"props":2441,"children":2442},{"style":805},[2443],{"type":50,"value":993},{"type":45,"tag":53,"props":2445,"children":2446},{},[2447],{"type":45,"tag":114,"props":2448,"children":2449},{},[2450],{"type":50,"value":2451},"If GCP:",{"type":45,"tag":751,"props":2453,"children":2455},{"className":753,"code":2454,"language":755,"meta":756,"style":756},"gcloud compute instances list --filter=\"labels.cockroach-cluster=\u003Ccluster-name>\"\n",[2456],{"type":45,"tag":312,"props":2457,"children":2458},{"__ignoreMap":756},[2459],{"type":45,"tag":762,"props":2460,"children":2461},{"class":764,"line":765},[2462,2467,2472,2477,2482,2487,2491,2496],{"type":45,"tag":762,"props":2463,"children":2464},{"style":778},[2465],{"type":50,"value":2466},"gcloud",{"type":45,"tag":762,"props":2468,"children":2469},{"style":784},[2470],{"type":50,"value":2471}," compute",{"type":45,"tag":762,"props":2473,"children":2474},{"style":784},[2475],{"type":50,"value":2476}," instances",{"type":45,"tag":762,"props":2478,"children":2479},{"style":784},[2480],{"type":50,"value":2481}," list",{"type":45,"tag":762,"props":2483,"children":2484},{"style":784},[2485],{"type":50,"value":2486}," --filter=",{"type":45,"tag":762,"props":2488,"children":2489},{"style":805},[2490],{"type":50,"value":2112},{"type":45,"tag":762,"props":2492,"children":2493},{"style":784},[2494],{"type":50,"value":2495},"labels.cockroach-cluster=\u003Ccluster-name>",{"type":45,"tag":762,"props":2497,"children":2498},{"style":805},[2499],{"type":50,"value":2186},{"type":45,"tag":53,"props":2501,"children":2502},{},[2503],{"type":45,"tag":114,"props":2504,"children":2505},{},[2506],{"type":50,"value":2507},"If Azure:",{"type":45,"tag":751,"props":2509,"children":2511},{"className":753,"code":2510,"language":755,"meta":756,"style":756},"az vm list --resource-group \u003Crg> --query \"[?tags.cockroachCluster=='\u003Cname>']\"\n",[2512],{"type":45,"tag":312,"props":2513,"children":2514},{"__ignoreMap":756},[2515],{"type":45,"tag":762,"props":2516,"children":2517},{"class":764,"line":765},[2518,2523,2528,2532,2537,2541,2546,2551,2555,2560,2564,2569],{"type":45,"tag":762,"props":2519,"children":2520},{"style":778},[2521],{"type":50,"value":2522},"az",{"type":45,"tag":762,"props":2524,"children":2525},{"style":784},[2526],{"type":50,"value":2527}," vm",{"type":45,"tag":762,"props":2529,"children":2530},{"style":784},[2531],{"type":50,"value":2481},{"type":45,"tag":762,"props":2533,"children":2534},{"style":784},[2535],{"type":50,"value":2536}," --resource-group",{"type":45,"tag":762,"props":2538,"children":2539},{"style":805},[2540],{"type":50,"value":1047},{"type":45,"tag":762,"props":2542,"children":2543},{"style":784},[2544],{"type":50,"value":2545},"r",{"type":45,"tag":762,"props":2547,"children":2548},{"style":956},[2549],{"type":50,"value":2550},"g",{"type":45,"tag":762,"props":2552,"children":2553},{"style":805},[2554],{"type":50,"value":818},{"type":45,"tag":762,"props":2556,"children":2557},{"style":784},[2558],{"type":50,"value":2559}," --query",{"type":45,"tag":762,"props":2561,"children":2562},{"style":805},[2563],{"type":50,"value":2097},{"type":45,"tag":762,"props":2565,"children":2566},{"style":784},[2567],{"type":50,"value":2568},"[?tags.cockroachCluster=='\u003Cname>']",{"type":45,"tag":762,"props":2570,"children":2571},{"style":805},[2572],{"type":50,"value":2186},{"type":45,"tag":155,"props":2574,"children":2576},{"id":2575},"additional-byoc-considerations",[2577],{"type":50,"value":2578},"Additional BYOC Considerations",{"type":45,"tag":66,"props":2580,"children":2581},{},[2582,2587,2592,2597],{"type":45,"tag":70,"props":2583,"children":2584},{},[2585],{"type":50,"value":2586},"Verify security groups\u002Ffirewall rules after scaling",{"type":45,"tag":70,"props":2588,"children":2589},{},[2590],{"type":50,"value":2591},"Update reserved instance or committed use discount allocations",{"type":45,"tag":70,"props":2593,"children":2594},{},[2595],{"type":50,"value":2596},"Verify network connectivity (PrivateLink\u002FPSC\u002FVPC Peering) is unaffected",{"type":45,"tag":70,"props":2598,"children":2599},{},[2600],{"type":50,"value":2601},"Check cloud billing reflects the new instance count",{"type":45,"tag":145,"props":2603,"children":2604},{},[],{"type":45,"tag":59,"props":2606,"children":2608},{"id":2607},"standard-compute-management",[2609],{"type":50,"value":701},{"type":45,"tag":53,"props":2611,"children":2612},{},[2613,2617],{"type":45,"tag":114,"props":2614,"children":2615},{},[2616],{"type":50,"value":734},{"type":50,"value":2618}," Tier = Standard",{"type":45,"tag":53,"props":2620,"children":2621},{},[2622],{"type":50,"value":2623},"Standard is a multi-tenant managed service. There are no individual nodes. Capacity is managed by adjusting provisioned compute (vCPUs).",{"type":45,"tag":155,"props":2625,"children":2627},{"id":2626},"adjust-provisioned-vcpus",[2628],{"type":50,"value":2629},"Adjust Provisioned vCPUs",{"type":45,"tag":1794,"props":2631,"children":2632},{},[2633,2641,2646],{"type":45,"tag":70,"props":2634,"children":2635},{},[2636],{"type":45,"tag":114,"props":2637,"children":2638},{},[2639],{"type":50,"value":2640},"Cloud Console → Cluster → Capacity",{"type":45,"tag":70,"props":2642,"children":2643},{},[2644],{"type":50,"value":2645},"Increase or decrease provisioned vCPUs",{"type":45,"tag":70,"props":2647,"children":2648},{},[2649],{"type":50,"value":2650},"Change takes effect without downtime",{"type":45,"tag":155,"props":2652,"children":2654},{"id":2653},"before-scaling-down",[2655],{"type":50,"value":2656},"Before Scaling Down",{"type":45,"tag":66,"props":2658,"children":2659},{},[2660,2665],{"type":45,"tag":70,"props":2661,"children":2662},{},[2663],{"type":50,"value":2664},"Review CPU utilization in Cloud Console — ensure workload fits within reduced compute",{"type":45,"tag":70,"props":2666,"children":2667},{},[2668],{"type":50,"value":2669},"Storage is usage-based and unaffected by compute changes",{"type":45,"tag":155,"props":2671,"children":2673},{"id":2672},"after-scaling",[2674],{"type":50,"value":2675},"After Scaling",{"type":45,"tag":53,"props":2677,"children":2678},{},[2679],{"type":50,"value":2680},"Monitor P99 latency and QPS in Cloud Console for 24-48 hours. If latency increases after scaling down, scale compute back up.",{"type":45,"tag":145,"props":2682,"children":2683},{},[],{"type":45,"tag":59,"props":2685,"children":2687},{"id":2686},"basic-cost-management",[2688],{"type":50,"value":718},{"type":45,"tag":53,"props":2690,"children":2691},{},[2692,2696],{"type":45,"tag":114,"props":2693,"children":2694},{},[2695],{"type":50,"value":734},{"type":50,"value":2697}," Tier = Basic",{"type":45,"tag":53,"props":2699,"children":2700},{},[2701],{"type":50,"value":2702},"Basic is a serverless offering that auto-scales. There are no nodes or provisioned compute to manage. Capacity scales automatically based on demand. Cost is managed through spending controls.",{"type":45,"tag":155,"props":2704,"children":2706},{"id":2705},"manage-spending",[2707],{"type":50,"value":2708},"Manage Spending",{"type":45,"tag":66,"props":2710,"children":2711},{},[2712,2722,2732,2742],{"type":45,"tag":70,"props":2713,"children":2714},{},[2715,2720],{"type":45,"tag":114,"props":2716,"children":2717},{},[2718],{"type":50,"value":2719},"Set spending limits:",{"type":50,"value":2721}," Cloud Console → Cluster → Settings → configure monthly spending cap",{"type":45,"tag":70,"props":2723,"children":2724},{},[2725,2730],{"type":45,"tag":114,"props":2726,"children":2727},{},[2728],{"type":50,"value":2729},"Review usage:",{"type":50,"value":2731}," Cloud Console shows Request Unit (RU) consumption over time",{"type":45,"tag":70,"props":2733,"children":2734},{},[2735,2740],{"type":45,"tag":114,"props":2736,"children":2737},{},[2738],{"type":50,"value":2739},"Optimize queries:",{"type":50,"value":2741}," Reduce RU consumption through query tuning and indexing",{"type":45,"tag":70,"props":2743,"children":2744},{},[2745,2750],{"type":45,"tag":114,"props":2746,"children":2747},{},[2748],{"type":50,"value":2749},"Archive data:",{"type":50,"value":2751}," Delete unused tables or databases to reduce storage costs",{"type":45,"tag":155,"props":2753,"children":2755},{"id":2754},"when-to-consider-upgrading",[2756],{"type":50,"value":2757},"When to Consider Upgrading",{"type":45,"tag":53,"props":2759,"children":2760},{},[2761],{"type":50,"value":2762},"If you need explicit control over compute capacity (guaranteed vCPUs), consider upgrading to Standard. If you need dedicated infrastructure, consider Advanced.",{"type":45,"tag":145,"props":2764,"children":2765},{},[],{"type":45,"tag":59,"props":2767,"children":2769},{"id":2768},"safety-considerations",[2770],{"type":50,"value":2771},"Safety Considerations",{"type":45,"tag":162,"props":2773,"children":2774},{},[2775,2795],{"type":45,"tag":166,"props":2776,"children":2777},{},[2778],{"type":45,"tag":170,"props":2779,"children":2780},{},[2781,2786,2790],{"type":45,"tag":174,"props":2782,"children":2783},{},[2784],{"type":50,"value":2785},"Operation",{"type":45,"tag":174,"props":2787,"children":2788},{},[2789],{"type":50,"value":625},{"type":45,"tag":174,"props":2791,"children":2792},{},[2793],{"type":50,"value":2794},"Reversible?",{"type":45,"tag":190,"props":2796,"children":2797},{},[2798,2820,2837,2854,2872,2890],{"type":45,"tag":170,"props":2799,"children":2800},{},[2801,2810,2815],{"type":45,"tag":197,"props":2802,"children":2803},{},[2804],{"type":45,"tag":312,"props":2805,"children":2807},{"className":2806},[],[2808],{"type":50,"value":2809},"cockroach node decommission",{"type":45,"tag":197,"props":2811,"children":2812},{},[2813],{"type":50,"value":2814},"SH",{"type":45,"tag":197,"props":2816,"children":2817},{},[2818],{"type":50,"value":2819},"Recommission only before completion",{"type":45,"tag":170,"props":2821,"children":2822},{},[2823,2828,2832],{"type":45,"tag":197,"props":2824,"children":2825},{},[2826],{"type":50,"value":2827},"Stop decommissioned node",{"type":45,"tag":197,"props":2829,"children":2830},{},[2831],{"type":50,"value":2814},{"type":45,"tag":197,"props":2833,"children":2834},{},[2835],{"type":50,"value":2836},"No (must rejoin as new node)",{"type":45,"tag":170,"props":2838,"children":2839},{},[2840,2845,2849],{"type":45,"tag":197,"props":2841,"children":2842},{},[2843],{"type":50,"value":2844},"Add node to cluster",{"type":45,"tag":197,"props":2846,"children":2847},{},[2848],{"type":50,"value":2814},{"type":45,"tag":197,"props":2850,"children":2851},{},[2852],{"type":50,"value":2853},"Yes (decommission to remove)",{"type":45,"tag":170,"props":2855,"children":2856},{},[2857,2862,2867],{"type":45,"tag":197,"props":2858,"children":2859},{},[2860],{"type":50,"value":2861},"Scale via Console\u002FAPI",{"type":45,"tag":197,"props":2863,"children":2864},{},[2865],{"type":50,"value":2866},"ADV\u002FBYOC",{"type":45,"tag":197,"props":2868,"children":2869},{},[2870],{"type":50,"value":2871},"Contact support to reverse",{"type":45,"tag":170,"props":2873,"children":2874},{},[2875,2880,2885],{"type":45,"tag":197,"props":2876,"children":2877},{},[2878],{"type":50,"value":2879},"Adjust provisioned vCPUs",{"type":45,"tag":197,"props":2881,"children":2882},{},[2883],{"type":50,"value":2884},"STD",{"type":45,"tag":197,"props":2886,"children":2887},{},[2888],{"type":50,"value":2889},"Yes (scale back)",{"type":45,"tag":170,"props":2891,"children":2892},{},[2893,2898,2903],{"type":45,"tag":197,"props":2894,"children":2895},{},[2896],{"type":50,"value":2897},"Set spending limit",{"type":45,"tag":197,"props":2899,"children":2900},{},[2901],{"type":50,"value":2902},"BAS",{"type":45,"tag":197,"props":2904,"children":2905},{},[2906],{"type":50,"value":2907},"Yes (adjust anytime)",{"type":45,"tag":53,"props":2909,"children":2910},{},[2911],{"type":45,"tag":114,"props":2912,"children":2913},{},[2914],{"type":50,"value":2915},"Critical (Self-Hosted):",{"type":45,"tag":66,"props":2917,"children":2918},{},[2919,2924,2929,2934,2939,2944],{"type":45,"tag":70,"props":2920,"children":2921},{},[2922],{"type":50,"value":2923},"Never decommission below the replication factor",{"type":45,"tag":70,"props":2925,"children":2926},{},[2927],{"type":50,"value":2928},"Always drain before decommission (for live nodes)",{"type":45,"tag":70,"props":2930,"children":2931},{},[2932],{"type":50,"value":2933},"Decommission multiple nodes simultaneously (not sequentially)",{"type":45,"tag":70,"props":2935,"children":2936},{},[2937],{"type":50,"value":2938},"Verify remaining capacity can absorb the data",{"type":45,"tag":70,"props":2940,"children":2941},{},[2942],{"type":50,"value":2943},"For dead nodes: wait for re-replication to complete before decommissioning",{"type":45,"tag":70,"props":2945,"children":2946},{},[2947],{"type":50,"value":2948},"Monitor storage utilization — nodes above 80% risk performance degradation",{"type":45,"tag":59,"props":2950,"children":2952},{"id":2951},"troubleshooting",[2953],{"type":50,"value":2954},"Troubleshooting",{"type":45,"tag":162,"props":2956,"children":2957},{},[2958,2978],{"type":45,"tag":166,"props":2959,"children":2960},{},[2961],{"type":45,"tag":170,"props":2962,"children":2963},{},[2964,2969,2973],{"type":45,"tag":174,"props":2965,"children":2966},{},[2967],{"type":50,"value":2968},"Issue",{"type":45,"tag":174,"props":2970,"children":2971},{},[2972],{"type":50,"value":625},{"type":45,"tag":174,"props":2974,"children":2975},{},[2976],{"type":50,"value":2977},"Fix",{"type":45,"tag":190,"props":2979,"children":2980},{},[2981,2998,3015,3038,3055,3072,3089,3113],{"type":45,"tag":170,"props":2982,"children":2983},{},[2984,2989,2993],{"type":45,"tag":197,"props":2985,"children":2986},{},[2987],{"type":50,"value":2988},"Decommission hangs",{"type":45,"tag":197,"props":2990,"children":2991},{},[2992],{"type":50,"value":2814},{"type":45,"tag":197,"props":2994,"children":2995},{},[2996],{"type":50,"value":2997},"Check zone config constraints; investigate stalled ranges",{"type":45,"tag":170,"props":2999,"children":3000},{},[3001,3006,3010],{"type":45,"tag":197,"props":3002,"children":3003},{},[3004],{"type":50,"value":3005},"Recommission fails",{"type":45,"tag":197,"props":3007,"children":3008},{},[3009],{"type":50,"value":2814},{"type":45,"tag":197,"props":3011,"children":3012},{},[3013],{"type":50,"value":3014},"Node already fully decommissioned; must rejoin as new",{"type":45,"tag":170,"props":3016,"children":3017},{},[3018,3023,3027],{"type":45,"tag":197,"props":3019,"children":3020},{},[3021],{"type":50,"value":3022},"New node not rebalancing",{"type":45,"tag":197,"props":3024,"children":3025},{},[3026],{"type":50,"value":2814},{"type":45,"tag":197,"props":3028,"children":3029},{},[3030,3032],{"type":50,"value":3031},"Wait for automatic rebalancing; check ",{"type":45,"tag":312,"props":3033,"children":3035},{"className":3034},[],[3036],{"type":50,"value":3037},"range_count",{"type":45,"tag":170,"props":3039,"children":3040},{},[3041,3046,3050],{"type":45,"tag":197,"props":3042,"children":3043},{},[3044],{"type":50,"value":3045},"Scale-down rejected",{"type":45,"tag":197,"props":3047,"children":3048},{},[3049],{"type":50,"value":2866},{"type":45,"tag":197,"props":3051,"children":3052},{},[3053],{"type":50,"value":3054},"Below minimum or data won't fit",{"type":45,"tag":170,"props":3056,"children":3057},{},[3058,3063,3067],{"type":45,"tag":197,"props":3059,"children":3060},{},[3061],{"type":50,"value":3062},"Latency spike after reduction",{"type":45,"tag":197,"props":3064,"children":3065},{},[3066],{"type":50,"value":2884},{"type":45,"tag":197,"props":3068,"children":3069},{},[3070],{"type":50,"value":3071},"Scale provisioned vCPUs back up",{"type":45,"tag":170,"props":3073,"children":3074},{},[3075,3080,3084],{"type":45,"tag":197,"props":3076,"children":3077},{},[3078],{"type":50,"value":3079},"Cloud instances not cleaned up",{"type":45,"tag":197,"props":3081,"children":3082},{},[3083],{"type":50,"value":675},{"type":45,"tag":197,"props":3085,"children":3086},{},[3087],{"type":50,"value":3088},"Contact support; verify in cloud console",{"type":45,"tag":170,"props":3090,"children":3091},{},[3092,3097,3101],{"type":45,"tag":197,"props":3093,"children":3094},{},[3095],{"type":50,"value":3096},"Dead node not re-replicating",{"type":45,"tag":197,"props":3098,"children":3099},{},[3100],{"type":50,"value":2814},{"type":45,"tag":197,"props":3102,"children":3103},{},[3104,3106,3111],{"type":50,"value":3105},"Check ",{"type":45,"tag":312,"props":3107,"children":3109},{"className":3108},[],[3110],{"type":50,"value":1298},{"type":50,"value":3112},"; verify surviving nodes have capacity",{"type":45,"tag":170,"props":3114,"children":3115},{},[3116,3121,3125],{"type":45,"tag":197,"props":3117,"children":3118},{},[3119],{"type":50,"value":3120},"Storage utilization high after scale-down",{"type":45,"tag":197,"props":3122,"children":3123},{},[3124],{"type":50,"value":2814},{"type":45,"tag":197,"props":3126,"children":3127},{},[3128],{"type":50,"value":3129},"Add replacement node or increase disk size",{"type":45,"tag":59,"props":3131,"children":3133},{"id":3132},"references",[3134],{"type":50,"value":3135},"References",{"type":45,"tag":53,"props":3137,"children":3138},{},[3139],{"type":45,"tag":114,"props":3140,"children":3141},{},[3142],{"type":50,"value":3143},"Skill references:",{"type":45,"tag":66,"props":3145,"children":3146},{},[3147,3155],{"type":45,"tag":70,"props":3148,"children":3149},{},[3150],{"type":45,"tag":122,"props":3151,"children":3152},{"href":1607},[3153],{"type":50,"value":3154},"Replacing failed nodes",{"type":45,"tag":70,"props":3156,"children":3157},{},[3158],{"type":45,"tag":122,"props":3159,"children":3161},{"href":3160},"references\u002Fstorage-management.md",[3162],{"type":50,"value":3163},"Storage management",{"type":45,"tag":53,"props":3165,"children":3166},{},[3167],{"type":45,"tag":114,"props":3168,"children":3169},{},[3170],{"type":50,"value":3171},"Related skills:",{"type":45,"tag":66,"props":3173,"children":3174},{},[3175,3184,3193],{"type":45,"tag":70,"props":3176,"children":3177},{},[3178,3182],{"type":45,"tag":122,"props":3179,"children":3180},{"href":138},[3181],{"type":50,"value":141},{"type":50,"value":3183}," — Pre\u002Fpost health checks",{"type":45,"tag":70,"props":3185,"children":3186},{},[3187,3191],{"type":45,"tag":122,"props":3188,"children":3189},{"href":124},[3190],{"type":50,"value":127},{"type":50,"value":3192}," — Drain procedure (SH)",{"type":45,"tag":70,"props":3194,"children":3195},{},[3196,3202],{"type":45,"tag":122,"props":3197,"children":3199},{"href":3198},"..\u002Fupgrading-cluster-version\u002FSKILL.md",[3200],{"type":50,"value":3201},"upgrading-cluster-version",{"type":50,"value":3203}," — Upgrades and lifecycle",{"type":45,"tag":53,"props":3205,"children":3206},{},[3207],{"type":45,"tag":114,"props":3208,"children":3209},{},[3210],{"type":50,"value":3211},"Official CockroachDB Documentation:",{"type":45,"tag":66,"props":3213,"children":3214},{},[3215,3225,3235,3245,3255],{"type":45,"tag":70,"props":3216,"children":3217},{},[3218],{"type":45,"tag":122,"props":3219,"children":3223},{"href":3220,"rel":3221},"https:\u002F\u002Fwww.cockroachlabs.com\u002Fdocs\u002Fstable\u002Fcockroach-node.html",[3222],"nofollow",[3224],{"type":50,"value":2809},{"type":45,"tag":70,"props":3226,"children":3227},{},[3228],{"type":45,"tag":122,"props":3229,"children":3232},{"href":3230,"rel":3231},"https:\u002F\u002Fwww.cockroachlabs.com\u002Fdocs\u002Fstable\u002Fnode-shutdown",[3222],[3233],{"type":50,"value":3234},"Node Shutdown",{"type":45,"tag":70,"props":3236,"children":3237},{},[3238],{"type":45,"tag":122,"props":3239,"children":3242},{"href":3240,"rel":3241},"https:\u002F\u002Fwww.cockroachlabs.com\u002Fdocs\u002Fcockroachcloud\u002Fadvanced-cluster-management",[3222],[3243],{"type":50,"value":3244},"Manage Advanced Cluster",{"type":45,"tag":70,"props":3246,"children":3247},{},[3248],{"type":45,"tag":122,"props":3249,"children":3252},{"href":3250,"rel":3251},"https:\u002F\u002Fwww.cockroachlabs.com\u002Fdocs\u002Fcockroachcloud\u002Fcluster-management",[3222],[3253],{"type":50,"value":3254},"Manage Standard Cluster",{"type":45,"tag":70,"props":3256,"children":3257},{},[3258],{"type":45,"tag":122,"props":3259,"children":3262},{"href":3260,"rel":3261},"https:\u002F\u002Fwww.cockroachlabs.com\u002Fdocs\u002Fcockroachcloud\u002Fcloud-api",[3222],[3263],{"type":50,"value":3264},"Cloud API",{"type":45,"tag":3266,"props":3267,"children":3268},"style",{},[3269],{"type":50,"value":3270},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":3272,"total":3365},[3273,3287,3301,3318,3329,3342,3355],{"slug":3274,"name":3274,"fn":3275,"description":3276,"org":3277,"tags":3278,"stars":22,"repoUrl":23,"updatedAt":3286},"analyzing-range-distribution","analyze CockroachDB range distribution and health","Analyzes CockroachDB range distribution across tables and indexes using SHOW RANGES to identify range count, size patterns, leaseholder placement, and replication health. Use when investigating hotspots, uneven data distribution, range fragmentation, or validating zone configuration effects without DB Console access.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3279,3280,3283],{"name":17,"slug":18,"type":15},{"name":3281,"slug":3282,"type":15},"Monitoring","monitoring",{"name":3284,"slug":3285,"type":15},"Performance","performance","2026-07-12T07:57:18.753533",{"slug":3288,"name":3288,"fn":3289,"description":3290,"org":3291,"tags":3292,"stars":22,"repoUrl":23,"updatedAt":3300},"analyzing-schema-change-storage-risk","analyze schema change storage requirements","Estimates storage requirements for CockroachDB online schema change backfills using SHOW RANGES WITH DETAILS, KEYS, INDEXES. Use before CREATE INDEX, ADD COLUMN with INDEX\u002FUNIQUE, ALTER PRIMARY KEY, CREATE MATERIALIZED VIEW, CREATE TABLE AS, REFRESH, or SET LOCALITY on tables with large per-index footprints, to avoid mid-backfill disk exhaustion.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3293,3296,3297,3298],{"name":3294,"slug":3295,"type":15},"Data Modeling","data-modeling",{"name":17,"slug":18,"type":15},{"name":3284,"slug":3285,"type":15},{"name":3299,"slug":880,"type":15},"SQL","2026-07-12T07:57:22.763788",{"slug":3302,"name":3302,"fn":3303,"description":3304,"org":3305,"tags":3306,"stars":22,"repoUrl":23,"updatedAt":3317},"auditing-cis-benchmark","audit CockroachDB clusters against CIS benchmarks","Audits a self-hosted CockroachDB cluster against the CIS CockroachDB Benchmark v1.0.0 Level 1 controls. Supports two audit depths — quick automated scans and full CIS audit procedures. Produces a structured PASS\u002FFAIL\u002FMANUAL report covering installation, system hardening, logging, user access, data protection, and CockroachDB settings. Use when preparing for CIS compliance assessments, hardening self-hosted deployments, or validating security posture against industry benchmarks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3307,3310,3313,3314],{"name":3308,"slug":3309,"type":15},"Audit","audit",{"name":3311,"slug":3312,"type":15},"Compliance","compliance",{"name":17,"slug":18,"type":15},{"name":3315,"slug":3316,"type":15},"Security","security","2026-07-18T05:48:00.862384",{"slug":3319,"name":3319,"fn":3320,"description":3321,"org":3322,"tags":3323,"stars":22,"repoUrl":23,"updatedAt":3328},"auditing-cloud-cluster-security","audit CockroachDB cluster security posture","Audits the security posture of a CockroachDB cluster (Cloud or self-hosted) across network, authentication, authorization, encryption, audit logging, and backup dimensions. Use when assessing cluster security readiness, preparing for compliance reviews, or investigating security configuration gaps.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3324,3325,3326,3327],{"name":3308,"slug":3309,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"name":3315,"slug":3316,"type":15},"2026-07-12T07:57:01.506735",{"slug":3330,"name":3330,"fn":3331,"description":3332,"org":3333,"tags":3334,"stars":22,"repoUrl":23,"updatedAt":3341},"auditing-table-statistics","audit optimizer table statistics","Audits optimizer table statistics for staleness, missing coverage, and data quality issues using SHOW STATISTICS. Use when diagnosing poor query performance, unexpected plan changes, or after bulk data changes to identify stale statistics requiring refresh via CREATE STATISTICS.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3335,3336,3339,3340],{"name":3308,"slug":3309,"type":15},{"name":3337,"slug":3338,"type":15},"Data Analysis","data-analysis",{"name":17,"slug":18,"type":15},{"name":3284,"slug":3285,"type":15},"2026-07-12T07:57:16.190081",{"slug":3343,"name":3343,"fn":3344,"description":3345,"org":3346,"tags":3347,"stars":22,"repoUrl":23,"updatedAt":3354},"benchmarking-transaction-patterns","benchmark CockroachDB transaction patterns","Guides benchmarking and comparing explicit multi-statement transactions versus single-statement CTE transactions in CockroachDB, with fair test methodology, contention analysis, and performance interpretation. Use when comparing transaction formulations, benchmarking CockroachDB workloads under contention, investigating retry pressure, or deciding whether to rewrite multi-step application flows into single SQL statements.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3348,3349,3352,3353],{"name":17,"slug":18,"type":15},{"name":3350,"slug":3351,"type":15},"Engineering","engineering",{"name":3284,"slug":3285,"type":15},{"name":3299,"slug":880,"type":15},"2026-07-12T07:57:26.543278",{"slug":3356,"name":3356,"fn":3357,"description":3358,"org":3359,"tags":3360,"stars":22,"repoUrl":23,"updatedAt":3364},"cockroachdb-sql","write and optimize CockroachDB SQL","Use when writing, generating, or optimizing SQL for CockroachDB, designing CockroachDB schemas, or when the user asks about CockroachDB-specific SQL patterns, type mappings, and distributed database best practices. Also use when encountering CockroachDB anti-patterns like missing primary keys, sequential ID hotspots, or incorrect type usage.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3361,3362,3363],{"name":17,"slug":18,"type":15},{"name":3284,"slug":3285,"type":15},{"name":3299,"slug":880,"type":15},"2026-07-25T05:31:22.562808",34,{"items":3367,"total":3487},[3368,3385,3399,3414,3425,3435,3446,3452,3459,3466,3473,3480],{"slug":3369,"name":3369,"fn":3370,"description":3371,"org":3372,"tags":3373,"stars":3382,"repoUrl":3383,"updatedAt":3384},"collecting-cockroachdb-operator-escalation-packet","collect CockroachDB operator escalation packets","Collects a complete CockroachDB Operator escalation packet for TSC\u002FTSE or operator-team handoff, including Helm state, Kubernetes resources, logs, operation-specific evidence, pprof goroutine dumps, metrics, and a customer action timeline. Use when general diagnosis cannot resolve an operator-managed CockroachDB Helm issue or before restarting a stuck operator.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3374,3375,3378,3381],{"name":17,"slug":18,"type":15},{"name":3376,"slug":3377,"type":15},"Incident Response","incident-response",{"name":3379,"slug":3380,"type":15},"Kubernetes","kubernetes",{"name":3281,"slug":3282,"type":15},105,"https:\u002F\u002Fgithub.com\u002Fcockroachdb\u002Fhelm-charts","2026-07-12T07:57:25.288146",{"slug":3386,"name":3386,"fn":3387,"description":3388,"org":3389,"tags":3390,"stars":3382,"repoUrl":3383,"updatedAt":3398},"configuring-cockroachdb-helm-tls","configure TLS for CockroachDB Helm charts","Selects and validates TLS settings for CockroachDB Helm chart deployments, including self-signer, cert-manager, and external certificate modes. Use when a customer needs secure CockroachDB Helm values, certificate secret mapping, cert-manager integration, or TLS install troubleshooting before deploying the chart.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3391,3394,3397],{"name":3392,"slug":3393,"type":15},"Deployment","deployment",{"name":3395,"slug":3396,"type":15},"Encryption","encryption",{"name":3315,"slug":3316,"type":15},"2026-07-12T07:56:37.675396",{"slug":3400,"name":3400,"fn":3401,"description":3402,"org":3403,"tags":3404,"stars":3382,"repoUrl":3383,"updatedAt":3413},"debugging-cockroachdb-operator-migrations","debug CockroachDB Operator migration scenarios","Debugs CockroachDB Operator migration scenarios, including Helm StatefulSet to v1beta1 CrdbNode migration and public operator v1alpha1 to v1beta1 migration. Use when migration labels, migration phases, source StatefulSet ownership, converted CRDs, PVC ownership, or post-migration reconciliation are unclear or stuck.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3405,3406,3409,3410],{"name":17,"slug":18,"type":15},{"name":3407,"slug":3408,"type":15},"Debugging","debugging",{"name":3379,"slug":3380,"type":15},{"name":3411,"slug":3412,"type":15},"Migration","migration","2026-07-12T07:56:48.360871",{"slug":3415,"name":3415,"fn":3416,"description":3417,"org":3418,"tags":3419,"stars":3382,"repoUrl":3383,"updatedAt":3424},"diagnosing-cockroachdb-helm-deployments","diagnose CockroachDB Helm chart deployments","Diagnoses failed or unhealthy CockroachDB Helm chart deployments by checking Helm release state, operator health, CrdbCluster and CrdbNode status, pod readiness, RBAC, webhooks, TLS, upgrades, scaling, PVCs, DNS, and multi-region assumptions. Use when Helm install or upgrade fails, pods are not Ready, or the operator is not reconciling.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3420,3421,3422,3423],{"name":17,"slug":18,"type":15},{"name":3407,"slug":3408,"type":15},{"name":3392,"slug":3393,"type":15},{"name":3379,"slug":3380,"type":15},"2026-07-12T07:57:24.018818",{"slug":3426,"name":3426,"fn":3427,"description":3428,"org":3429,"tags":3430,"stars":3382,"repoUrl":3383,"updatedAt":3434},"installing-cockroachdb-with-helm","install CockroachDB using Helm","Guides customer-facing installation of CockroachDB on Kubernetes using the CockroachDB split Helm charts and operator-managed v1beta1 resources. Use when installing CockroachDB with Helm, choosing between published and local split charts, verifying a new install, or helping an agent complete first-time Kubernetes onboarding.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3431,3432,3433],{"name":17,"slug":18,"type":15},{"name":3392,"slug":3393,"type":15},{"name":3379,"slug":3380,"type":15},"2026-07-12T07:56:45.777567",{"slug":3436,"name":3436,"fn":3437,"description":3438,"org":3439,"tags":3440,"stars":3382,"repoUrl":3383,"updatedAt":3445},"validating-cockroachdb-helm-multiregion","validate CockroachDB multi-region Helm deployments","Validates CockroachDB Helm chart values and Kubernetes prerequisites for operator-managed multi-region deployments. Use before adding a region, deploying CockroachDB across multiple Kubernetes clusters, checking region DNS domains, or confirming that all regions share certificate and networking assumptions.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3441,3442,3443,3444],{"name":17,"slug":18,"type":15},{"name":3392,"slug":3393,"type":15},{"name":3379,"slug":3380,"type":15},{"name":13,"slug":14,"type":15},"2026-07-12T07:56:47.082609",{"slug":3274,"name":3274,"fn":3275,"description":3276,"org":3447,"tags":3448,"stars":22,"repoUrl":23,"updatedAt":3286},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3449,3450,3451],{"name":17,"slug":18,"type":15},{"name":3281,"slug":3282,"type":15},{"name":3284,"slug":3285,"type":15},{"slug":3288,"name":3288,"fn":3289,"description":3290,"org":3453,"tags":3454,"stars":22,"repoUrl":23,"updatedAt":3300},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3455,3456,3457,3458],{"name":3294,"slug":3295,"type":15},{"name":17,"slug":18,"type":15},{"name":3284,"slug":3285,"type":15},{"name":3299,"slug":880,"type":15},{"slug":3302,"name":3302,"fn":3303,"description":3304,"org":3460,"tags":3461,"stars":22,"repoUrl":23,"updatedAt":3317},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3462,3463,3464,3465],{"name":3308,"slug":3309,"type":15},{"name":3311,"slug":3312,"type":15},{"name":17,"slug":18,"type":15},{"name":3315,"slug":3316,"type":15},{"slug":3319,"name":3319,"fn":3320,"description":3321,"org":3467,"tags":3468,"stars":22,"repoUrl":23,"updatedAt":3328},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3469,3470,3471,3472],{"name":3308,"slug":3309,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"name":3315,"slug":3316,"type":15},{"slug":3330,"name":3330,"fn":3331,"description":3332,"org":3474,"tags":3475,"stars":22,"repoUrl":23,"updatedAt":3341},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3476,3477,3478,3479],{"name":3308,"slug":3309,"type":15},{"name":3337,"slug":3338,"type":15},{"name":17,"slug":18,"type":15},{"name":3284,"slug":3285,"type":15},{"slug":3343,"name":3343,"fn":3344,"description":3345,"org":3481,"tags":3482,"stars":22,"repoUrl":23,"updatedAt":3354},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3483,3484,3485,3486],{"name":17,"slug":18,"type":15},{"name":3350,"slug":3351,"type":15},{"name":3284,"slug":3285,"type":15},{"name":3299,"slug":880,"type":15},40]