[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-cockroachdb-installing-cockroachdb-with-helm":3,"mdc--3jr9at-key":33,"related-org-cockroachdb-installing-cockroachdb-with-helm":2294,"related-repo-cockroachdb-installing-cockroachdb-with-helm":2446},{"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":28,"sourceUrl":31,"mdContent":32},"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},"cockroachdb","CockroachDB","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fcockroachdb.png",[12,16,19],{"name":13,"slug":14,"type":15},"Database","database","tag",{"name":17,"slug":18,"type":15},"Deployment","deployment",{"name":20,"slug":21,"type":15},"Kubernetes","kubernetes",105,"https:\u002F\u002Fgithub.com\u002Fcockroachdb\u002Fhelm-charts","2026-07-12T07:56:45.777567",null,153,[],{"repoUrl":23,"stars":22,"forks":26,"topics":29,"description":30},[],"Helm charts for cockroachdb","https:\u002F\u002Fgithub.com\u002Fcockroachdb\u002Fhelm-charts\u002Ftree\u002FHEAD\u002Fskills\u002Fcockroachdb-onboarding-and-migrations\u002Finstalling-cockroachdb-with-helm","---\nname: installing-cockroachdb-with-helm\ndescription: 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.\ncompatibility: CockroachDB Helm v2 charts with crdb.cockroachlabs.com\u002Fv1beta1 CrdbCluster resources. Requires Kubernetes 1.30+, Helm 3+, and cluster permissions to install CRDs and cluster-scoped RBAC unless pre-provisioned by a platform team.\nmetadata:\n  author: cockroachdb\n  version: \"1.1\"\n---\n\n# Installing CockroachDB with Helm\n\nGuides an agent through a customer-facing CockroachDB install on Kubernetes using the CockroachDB split Helm charts. Prefer the published split charts for customers. Do not use the unsupported parent or umbrella chart path for customer installs.\n\n## When to Use This Skill\n\n- A customer asks to install CockroachDB on Kubernetes using Helm\n- An agent needs to decide whether to install the published split charts or local split charts\n- A first install needs structured preflight, chart values, and post-install verification\n- A deployment has partially completed and needs the next Helm step\n\n**Related skills:** Use [configuring-cockroachdb-helm-tls](..\u002F..\u002Fcockroachdb-operations-and-lifecycle\u002Fconfiguring-cockroachdb-helm-tls\u002FSKILL.md) for TLS decisions, [validating-cockroachdb-helm-multiregion](..\u002Fvalidating-cockroachdb-helm-multiregion\u002FSKILL.md) before multi-region installs, [debugging-cockroachdb-operator-migrations](..\u002Fdebugging-cockroachdb-operator-migrations\u002FSKILL.md) for StatefulSet or v1alpha1 migrations, and [diagnosing-cockroachdb-helm-deployments](..\u002F..\u002Fcockroachdb-observability-and-diagnostics\u002Fdiagnosing-cockroachdb-helm-deployments\u002FSKILL.md) when any step fails.\n\n## Inputs\n\nCollect these before changing the cluster:\n\n| Input | Example | Why It Matters |\n|---|---|---|\n| Kubernetes context and namespace | `prod-us-east1`, `cockroachdb` | Avoids installing into the wrong cluster or namespace |\n| Install path | Published split charts or local split charts | Determines Helm commands and dependency order |\n| Operator release and CockroachDB release names | `crdb-operator`, `crdb` | Resource names and generated services depend on release names |\n| Region and cloud provider | `us-east1`, `gcp` | `operator.cloudRegion` must match the region reconciled by this operator |\n| TLS mode | self-signer, cert-manager, external certificates, insecure non-prod | Determines chart values and required secrets |\n| Topology | single-region or multi-region | Multi-region requires complete `regions` entries and cross-region DNS\u002Fnetworking |\n\n## Safety Considerations\n\n- Confirm the target Kubernetes context with the user before running `helm install`, `helm upgrade`, or `kubectl apply`.\n- Do not toggle `cockroachdb.tls.enabled` on an existing cluster. The chart documents this as unsafe and unrecoverable for a running cluster.\n- Do not configure multiple operators with overlapping `watchNamespaces`; both can reconcile the same `CrdbCluster` resources.\n- If the customer cannot create ClusterRoles or ClusterRoleBindings, coordinate split-chart node-reader RBAC with the platform team before installing the CockroachDB chart.\n- Do not use unsupported parent or umbrella chart installs for customer-facing deployment guidance.\n\n## Execution Discipline\n\n- Execute one step at a time and inspect the output before moving on. Preflight output determines whether installation can continue.\n- Do not run `helm install`, `helm upgrade`, `kubectl apply`, or any mutating command unless the user explicitly approves it for the target Kubernetes context and namespace.\n- Stop before installing if cluster-scoped RBAC, node labels, storage class, TLS mode, registry access, or multi-region prerequisites are unclear.\n- In production or restricted environments, involve TSE, the platform team, or the operator team before changing RBAC, webhook, operator, certificate, storage, or network configuration.\n\n## Step 1: Preflight the Kubernetes Context\n\nRun read-only checks first:\n\n```bash\nkubectl config current-context\nkubectl version --short\nhelm version --short\nkubectl auth can-i create customresourcedefinitions.apiextensions.k8s.io\nkubectl auth can-i create clusterroles.rbac.authorization.k8s.io\nkubectl auth can-i create clusterrolebindings.rbac.authorization.k8s.io\nkubectl get nodes -o wide\nkubectl get nodes --show-labels | grep -E 'topology.kubernetes.io\u002F(region|zone)' || true\n```\n\nInterpretation:\n\n- Kubernetes must be 1.30 or newer for the current v2 chart line.\n- Helm must be v3.\n- Node labels `topology.kubernetes.io\u002Fregion` and `topology.kubernetes.io\u002Fzone` should exist before relying on default locality behavior.\n- Missing cluster-scoped RBAC is not automatically fatal, but it changes the install path. Use operator-chart `nodeReader` values or have a platform team pre-create the required bindings.\n\n## Step 2: Choose the Install Path\n\n### Published Split Charts (Recommended for Customers)\n\nUse this path for normal customer installs.\n\n```bash\nhelm repo add cockroachdb-v2 https:\u002F\u002Fcharts.cockroachdb.com\u002Fv2 --force-update\nhelm repo update cockroachdb-v2\nhelm search repo cockroachdb-v2 --devel\n```\n\nInstall the operator first:\n\n```bash\nhelm upgrade --install crdb-operator cockroachdb-v2\u002Fcockroachdb-operator-chart \\\n  --namespace cockroach-operator-system \\\n  --create-namespace \\\n  --version \u003Coperator-chart-version> \\\n  --set cloudRegion=\u003Ccurrent-region>\n\nkubectl -n cockroach-operator-system rollout status deploy\u002Fcockroach-operator --timeout=5m\nkubectl get crd crdbclusters.crdb.cockroachlabs.com crdbnodes.crdb.cockroachlabs.com\n```\n\nThen install CockroachDB:\n\n```bash\nhelm upgrade --install crdb cockroachdb-v2\u002Fcockroachdb-chart \\\n  --namespace cockroachdb \\\n  --create-namespace \\\n  --version \u003Ccockroachdb-chart-version> \\\n  -f values.yaml\n```\n\n### Local Split Charts\n\nUse this path when working from a checkout of this repository:\n\n```bash\nhelm upgrade --install crdb-operator .\u002Fcockroachdb-parent\u002Fcharts\u002Foperator \\\n  --namespace cockroach-operator-system \\\n  --create-namespace \\\n  --set cloudRegion=\u003Ccurrent-region>\n\nkubectl -n cockroach-operator-system rollout status deploy\u002Fcockroach-operator --timeout=5m\n\nhelm upgrade --install crdb .\u002Fcockroachdb-parent\u002Fcharts\u002Fcockroachdb \\\n  --namespace cockroachdb \\\n  --create-namespace \\\n  -f values.yaml\n```\n\n## Step 3: Create a Minimal Values File\n\nFor a single-region secure install using the chart self-signer:\n\n```yaml\ncockroachdb:\n  clusterDomain: cluster.local\n  tls:\n    enabled: true\n    selfSigner:\n      enabled: true\n    certManager:\n      enabled: false\n    externalCertificates:\n      enabled: false\n  crdbCluster:\n    regions:\n      - code: us-east1\n        nodes: 3\n        cloudProvider: gcp\n        namespace: cockroachdb\n    dataStore:\n      volumeClaimTemplate:\n        spec:\n          accessModes:\n            - ReadWriteOnce\n          resources:\n            requests:\n              storage: 100Gi\n          volumeMode: Filesystem\n```\n\nAdjust `code`, `cloudProvider`, `namespace`, storage size, and storage class to the customer environment. The region `code` should match the Kubernetes node region label and the operator chart `cloudRegion`.\n\n## Step 4: Verify the Install\n\nCheck Kubernetes resources:\n\n```bash\nkubectl -n cockroach-operator-system get deploy cockroach-operator\nkubectl -n cockroach-operator-system logs deploy\u002Fcockroach-operator --tail=100\nkubectl -n cockroachdb get crdbcluster,crdbnode,pods,svc\nkubectl -n cockroachdb get crdbcluster crdb -o jsonpath='{.status.readyNodes}{\" ready, reconciled=\"}{.status.reconciled}{\" version=\"}{.status.version}{\"\\n\"}'\nkubectl -n cockroachdb get crdbnodes -o custom-columns=NAME:.metadata.name,NODE_ID:.status.nodeID,CONDITIONS:.status.conditions[*].type,TOPOLOGY:.status.topologyValues\n```\n\nExpected state:\n\n- `cockroach-operator` Deployment is available.\n- CRDs `crdbclusters.crdb.cockroachlabs.com` and `crdbnodes.crdb.cockroachlabs.com` exist.\n- `CrdbCluster.status.reconciled` is `true` and `readyNodes` equals the regional node count.\n- Each `CrdbNode` has a `nodeID` and Ready\u002FRunning conditions.\n- CockroachDB pods are Running and Ready.\n\nFor SQL verification, connect with the certificate mode selected by [configuring-cockroachdb-helm-tls](..\u002F..\u002Fcockroachdb-operations-and-lifecycle\u002Fconfiguring-cockroachdb-helm-tls\u002FSKILL.md), then run:\n\n```sql\nSELECT version();\nSHOW REGIONS;\nSHOW JOBS;\n```\n\n## Outputs\n\nReturn a concise install report:\n\n- Kubernetes context, namespace, and chart path used\n- Operator release, CockroachDB release, and chart versions\n- Values file path or inline values that were applied\n- CRD registration status\n- `CrdbCluster` ready\u002Freconciled status and node count\n- SQL verification result or the exact blocker if SQL could not be verified\n\n## Troubleshooting Handoff\n\nIf any command fails, stop the install flow and use [diagnosing-cockroachdb-helm-deployments](..\u002F..\u002Fcockroachdb-observability-and-diagnostics\u002Fdiagnosing-cockroachdb-helm-deployments\u002FSKILL.md). Preserve the exact command, stderr, namespace, release names, and values file path. If the failure remains unresolved or the operator appears stuck, gather [the operator escalation packet](..\u002F..\u002Fcockroachdb-observability-and-diagnostics\u002Fcollecting-cockroachdb-operator-escalation-packet\u002FSKILL.md) before restarting or changing operator state.\n\n## References\n\n- [CockroachDB Helm Chart Versioning](..\u002F..\u002F..\u002Fcockroachdb-parent\u002Fdocs\u002FVERSIONING.md)\n- [Operator Helm Chart README](..\u002F..\u002F..\u002Fcockroachdb-parent\u002Fcharts\u002Foperator\u002FREADME.md)\n- [CockroachDB Helm Chart README](..\u002F..\u002F..\u002Fcockroachdb-parent\u002Fcharts\u002Fcockroachdb\u002FREADME.md)\n- [CockroachDB Docs: Deploy with Kubernetes](https:\u002F\u002Fwww.cockroachlabs.com\u002Fdocs\u002Fstable\u002Fdeploy-cockroachdb-with-kubernetes)\n- [Helm Docs: Role-based Access Control](https:\u002F\u002Fhelm.sh\u002Fdocs\u002Ftopics\u002Frbac\u002F)\n",{"data":34,"body":38},{"name":4,"description":6,"compatibility":35,"metadata":36},"CockroachDB Helm v2 charts with crdb.cockroachlabs.com\u002Fv1beta1 CrdbCluster resources. Requires Kubernetes 1.30+, Helm 3+, and cluster permissions to install CRDs and cluster-scoped RBAC unless pre-provisioned by a platform team.",{"author":8,"version":37},"1.1",{"type":39,"children":40},"root",[41,49,55,62,87,131,137,142,331,337,412,418,460,466,471,709,714,761,767,774,779,864,869,1073,1078,1182,1188,1193,1394,1400,1405,1788,1828,1834,1839,2022,2027,2113,2124,2157,2163,2168,2206,2212,2231,2237,2288],{"type":42,"tag":43,"props":44,"children":45},"element","h1",{"id":4},[46],{"type":47,"value":48},"text","Installing CockroachDB with Helm",{"type":42,"tag":50,"props":51,"children":52},"p",{},[53],{"type":47,"value":54},"Guides an agent through a customer-facing CockroachDB install on Kubernetes using the CockroachDB split Helm charts. Prefer the published split charts for customers. Do not use the unsupported parent or umbrella chart path for customer installs.",{"type":42,"tag":56,"props":57,"children":59},"h2",{"id":58},"when-to-use-this-skill",[60],{"type":47,"value":61},"When to Use This Skill",{"type":42,"tag":63,"props":64,"children":65},"ul",{},[66,72,77,82],{"type":42,"tag":67,"props":68,"children":69},"li",{},[70],{"type":47,"value":71},"A customer asks to install CockroachDB on Kubernetes using Helm",{"type":42,"tag":67,"props":73,"children":74},{},[75],{"type":47,"value":76},"An agent needs to decide whether to install the published split charts or local split charts",{"type":42,"tag":67,"props":78,"children":79},{},[80],{"type":47,"value":81},"A first install needs structured preflight, chart values, and post-install verification",{"type":42,"tag":67,"props":83,"children":84},{},[85],{"type":47,"value":86},"A deployment has partially completed and needs the next Helm step",{"type":42,"tag":50,"props":88,"children":89},{},[90,96,98,105,107,113,115,121,123,129],{"type":42,"tag":91,"props":92,"children":93},"strong",{},[94],{"type":47,"value":95},"Related skills:",{"type":47,"value":97}," Use ",{"type":42,"tag":99,"props":100,"children":102},"a",{"href":101},"..\u002F..\u002Fcockroachdb-operations-and-lifecycle\u002Fconfiguring-cockroachdb-helm-tls\u002FSKILL.md",[103],{"type":47,"value":104},"configuring-cockroachdb-helm-tls",{"type":47,"value":106}," for TLS decisions, ",{"type":42,"tag":99,"props":108,"children":110},{"href":109},"..\u002Fvalidating-cockroachdb-helm-multiregion\u002FSKILL.md",[111],{"type":47,"value":112},"validating-cockroachdb-helm-multiregion",{"type":47,"value":114}," before multi-region installs, ",{"type":42,"tag":99,"props":116,"children":118},{"href":117},"..\u002Fdebugging-cockroachdb-operator-migrations\u002FSKILL.md",[119],{"type":47,"value":120},"debugging-cockroachdb-operator-migrations",{"type":47,"value":122}," for StatefulSet or v1alpha1 migrations, and ",{"type":42,"tag":99,"props":124,"children":126},{"href":125},"..\u002F..\u002Fcockroachdb-observability-and-diagnostics\u002Fdiagnosing-cockroachdb-helm-deployments\u002FSKILL.md",[127],{"type":47,"value":128},"diagnosing-cockroachdb-helm-deployments",{"type":47,"value":130}," when any step fails.",{"type":42,"tag":56,"props":132,"children":134},{"id":133},"inputs",[135],{"type":47,"value":136},"Inputs",{"type":42,"tag":50,"props":138,"children":139},{},[140],{"type":47,"value":141},"Collect these before changing the cluster:",{"type":42,"tag":143,"props":144,"children":145},"table",{},[146,170],{"type":42,"tag":147,"props":148,"children":149},"thead",{},[150],{"type":42,"tag":151,"props":152,"children":153},"tr",{},[154,160,165],{"type":42,"tag":155,"props":156,"children":157},"th",{},[158],{"type":47,"value":159},"Input",{"type":42,"tag":155,"props":161,"children":162},{},[163],{"type":47,"value":164},"Example",{"type":42,"tag":155,"props":166,"children":167},{},[168],{"type":47,"value":169},"Why It Matters",{"type":42,"tag":171,"props":172,"children":173},"tbody",{},[174,205,223,252,287,305],{"type":42,"tag":151,"props":175,"children":176},{},[177,183,200],{"type":42,"tag":178,"props":179,"children":180},"td",{},[181],{"type":47,"value":182},"Kubernetes context and namespace",{"type":42,"tag":178,"props":184,"children":185},{},[186,193,195],{"type":42,"tag":187,"props":188,"children":190},"code",{"className":189},[],[191],{"type":47,"value":192},"prod-us-east1",{"type":47,"value":194},", ",{"type":42,"tag":187,"props":196,"children":198},{"className":197},[],[199],{"type":47,"value":8},{"type":42,"tag":178,"props":201,"children":202},{},[203],{"type":47,"value":204},"Avoids installing into the wrong cluster or namespace",{"type":42,"tag":151,"props":206,"children":207},{},[208,213,218],{"type":42,"tag":178,"props":209,"children":210},{},[211],{"type":47,"value":212},"Install path",{"type":42,"tag":178,"props":214,"children":215},{},[216],{"type":47,"value":217},"Published split charts or local split charts",{"type":42,"tag":178,"props":219,"children":220},{},[221],{"type":47,"value":222},"Determines Helm commands and dependency order",{"type":42,"tag":151,"props":224,"children":225},{},[226,231,247],{"type":42,"tag":178,"props":227,"children":228},{},[229],{"type":47,"value":230},"Operator release and CockroachDB release names",{"type":42,"tag":178,"props":232,"children":233},{},[234,240,241],{"type":42,"tag":187,"props":235,"children":237},{"className":236},[],[238],{"type":47,"value":239},"crdb-operator",{"type":47,"value":194},{"type":42,"tag":187,"props":242,"children":244},{"className":243},[],[245],{"type":47,"value":246},"crdb",{"type":42,"tag":178,"props":248,"children":249},{},[250],{"type":47,"value":251},"Resource names and generated services depend on release names",{"type":42,"tag":151,"props":253,"children":254},{},[255,260,276],{"type":42,"tag":178,"props":256,"children":257},{},[258],{"type":47,"value":259},"Region and cloud provider",{"type":42,"tag":178,"props":261,"children":262},{},[263,269,270],{"type":42,"tag":187,"props":264,"children":266},{"className":265},[],[267],{"type":47,"value":268},"us-east1",{"type":47,"value":194},{"type":42,"tag":187,"props":271,"children":273},{"className":272},[],[274],{"type":47,"value":275},"gcp",{"type":42,"tag":178,"props":277,"children":278},{},[279,285],{"type":42,"tag":187,"props":280,"children":282},{"className":281},[],[283],{"type":47,"value":284},"operator.cloudRegion",{"type":47,"value":286}," must match the region reconciled by this operator",{"type":42,"tag":151,"props":288,"children":289},{},[290,295,300],{"type":42,"tag":178,"props":291,"children":292},{},[293],{"type":47,"value":294},"TLS mode",{"type":42,"tag":178,"props":296,"children":297},{},[298],{"type":47,"value":299},"self-signer, cert-manager, external certificates, insecure non-prod",{"type":42,"tag":178,"props":301,"children":302},{},[303],{"type":47,"value":304},"Determines chart values and required secrets",{"type":42,"tag":151,"props":306,"children":307},{},[308,313,318],{"type":42,"tag":178,"props":309,"children":310},{},[311],{"type":47,"value":312},"Topology",{"type":42,"tag":178,"props":314,"children":315},{},[316],{"type":47,"value":317},"single-region or multi-region",{"type":42,"tag":178,"props":319,"children":320},{},[321,323,329],{"type":47,"value":322},"Multi-region requires complete ",{"type":42,"tag":187,"props":324,"children":326},{"className":325},[],[327],{"type":47,"value":328},"regions",{"type":47,"value":330}," entries and cross-region DNS\u002Fnetworking",{"type":42,"tag":56,"props":332,"children":334},{"id":333},"safety-considerations",[335],{"type":47,"value":336},"Safety Considerations",{"type":42,"tag":63,"props":338,"children":339},{},[340,368,381,402,407],{"type":42,"tag":67,"props":341,"children":342},{},[343,345,351,352,358,360,366],{"type":47,"value":344},"Confirm the target Kubernetes context with the user before running ",{"type":42,"tag":187,"props":346,"children":348},{"className":347},[],[349],{"type":47,"value":350},"helm install",{"type":47,"value":194},{"type":42,"tag":187,"props":353,"children":355},{"className":354},[],[356],{"type":47,"value":357},"helm upgrade",{"type":47,"value":359},", or ",{"type":42,"tag":187,"props":361,"children":363},{"className":362},[],[364],{"type":47,"value":365},"kubectl apply",{"type":47,"value":367},".",{"type":42,"tag":67,"props":369,"children":370},{},[371,373,379],{"type":47,"value":372},"Do not toggle ",{"type":42,"tag":187,"props":374,"children":376},{"className":375},[],[377],{"type":47,"value":378},"cockroachdb.tls.enabled",{"type":47,"value":380}," on an existing cluster. The chart documents this as unsafe and unrecoverable for a running cluster.",{"type":42,"tag":67,"props":382,"children":383},{},[384,386,392,394,400],{"type":47,"value":385},"Do not configure multiple operators with overlapping ",{"type":42,"tag":187,"props":387,"children":389},{"className":388},[],[390],{"type":47,"value":391},"watchNamespaces",{"type":47,"value":393},"; both can reconcile the same ",{"type":42,"tag":187,"props":395,"children":397},{"className":396},[],[398],{"type":47,"value":399},"CrdbCluster",{"type":47,"value":401}," resources.",{"type":42,"tag":67,"props":403,"children":404},{},[405],{"type":47,"value":406},"If the customer cannot create ClusterRoles or ClusterRoleBindings, coordinate split-chart node-reader RBAC with the platform team before installing the CockroachDB chart.",{"type":42,"tag":67,"props":408,"children":409},{},[410],{"type":47,"value":411},"Do not use unsupported parent or umbrella chart installs for customer-facing deployment guidance.",{"type":42,"tag":56,"props":413,"children":415},{"id":414},"execution-discipline",[416],{"type":47,"value":417},"Execution Discipline",{"type":42,"tag":63,"props":419,"children":420},{},[421,426,450,455],{"type":42,"tag":67,"props":422,"children":423},{},[424],{"type":47,"value":425},"Execute one step at a time and inspect the output before moving on. Preflight output determines whether installation can continue.",{"type":42,"tag":67,"props":427,"children":428},{},[429,431,436,437,442,443,448],{"type":47,"value":430},"Do not run ",{"type":42,"tag":187,"props":432,"children":434},{"className":433},[],[435],{"type":47,"value":350},{"type":47,"value":194},{"type":42,"tag":187,"props":438,"children":440},{"className":439},[],[441],{"type":47,"value":357},{"type":47,"value":194},{"type":42,"tag":187,"props":444,"children":446},{"className":445},[],[447],{"type":47,"value":365},{"type":47,"value":449},", or any mutating command unless the user explicitly approves it for the target Kubernetes context and namespace.",{"type":42,"tag":67,"props":451,"children":452},{},[453],{"type":47,"value":454},"Stop before installing if cluster-scoped RBAC, node labels, storage class, TLS mode, registry access, or multi-region prerequisites are unclear.",{"type":42,"tag":67,"props":456,"children":457},{},[458],{"type":47,"value":459},"In production or restricted environments, involve TSE, the platform team, or the operator team before changing RBAC, webhook, operator, certificate, storage, or network configuration.",{"type":42,"tag":56,"props":461,"children":463},{"id":462},"step-1-preflight-the-kubernetes-context",[464],{"type":47,"value":465},"Step 1: Preflight the Kubernetes Context",{"type":42,"tag":50,"props":467,"children":468},{},[469],{"type":47,"value":470},"Run read-only checks first:",{"type":42,"tag":472,"props":473,"children":478},"pre",{"className":474,"code":475,"language":476,"meta":477,"style":477},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","kubectl config current-context\nkubectl version --short\nhelm version --short\nkubectl auth can-i create customresourcedefinitions.apiextensions.k8s.io\nkubectl auth can-i create clusterroles.rbac.authorization.k8s.io\nkubectl auth can-i create clusterrolebindings.rbac.authorization.k8s.io\nkubectl get nodes -o wide\nkubectl get nodes --show-labels | grep -E 'topology.kubernetes.io\u002F(region|zone)' || true\n","bash","",[479],{"type":42,"tag":187,"props":480,"children":481},{"__ignoreMap":477},[482,505,523,540,568,593,618,646],{"type":42,"tag":483,"props":484,"children":487},"span",{"class":485,"line":486},"line",1,[488,494,500],{"type":42,"tag":483,"props":489,"children":491},{"style":490},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[492],{"type":47,"value":493},"kubectl",{"type":42,"tag":483,"props":495,"children":497},{"style":496},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[498],{"type":47,"value":499}," config",{"type":42,"tag":483,"props":501,"children":502},{"style":496},[503],{"type":47,"value":504}," current-context\n",{"type":42,"tag":483,"props":506,"children":508},{"class":485,"line":507},2,[509,513,518],{"type":42,"tag":483,"props":510,"children":511},{"style":490},[512],{"type":47,"value":493},{"type":42,"tag":483,"props":514,"children":515},{"style":496},[516],{"type":47,"value":517}," version",{"type":42,"tag":483,"props":519,"children":520},{"style":496},[521],{"type":47,"value":522}," --short\n",{"type":42,"tag":483,"props":524,"children":526},{"class":485,"line":525},3,[527,532,536],{"type":42,"tag":483,"props":528,"children":529},{"style":490},[530],{"type":47,"value":531},"helm",{"type":42,"tag":483,"props":533,"children":534},{"style":496},[535],{"type":47,"value":517},{"type":42,"tag":483,"props":537,"children":538},{"style":496},[539],{"type":47,"value":522},{"type":42,"tag":483,"props":541,"children":543},{"class":485,"line":542},4,[544,548,553,558,563],{"type":42,"tag":483,"props":545,"children":546},{"style":490},[547],{"type":47,"value":493},{"type":42,"tag":483,"props":549,"children":550},{"style":496},[551],{"type":47,"value":552}," auth",{"type":42,"tag":483,"props":554,"children":555},{"style":496},[556],{"type":47,"value":557}," can-i",{"type":42,"tag":483,"props":559,"children":560},{"style":496},[561],{"type":47,"value":562}," create",{"type":42,"tag":483,"props":564,"children":565},{"style":496},[566],{"type":47,"value":567}," customresourcedefinitions.apiextensions.k8s.io\n",{"type":42,"tag":483,"props":569,"children":571},{"class":485,"line":570},5,[572,576,580,584,588],{"type":42,"tag":483,"props":573,"children":574},{"style":490},[575],{"type":47,"value":493},{"type":42,"tag":483,"props":577,"children":578},{"style":496},[579],{"type":47,"value":552},{"type":42,"tag":483,"props":581,"children":582},{"style":496},[583],{"type":47,"value":557},{"type":42,"tag":483,"props":585,"children":586},{"style":496},[587],{"type":47,"value":562},{"type":42,"tag":483,"props":589,"children":590},{"style":496},[591],{"type":47,"value":592}," clusterroles.rbac.authorization.k8s.io\n",{"type":42,"tag":483,"props":594,"children":596},{"class":485,"line":595},6,[597,601,605,609,613],{"type":42,"tag":483,"props":598,"children":599},{"style":490},[600],{"type":47,"value":493},{"type":42,"tag":483,"props":602,"children":603},{"style":496},[604],{"type":47,"value":552},{"type":42,"tag":483,"props":606,"children":607},{"style":496},[608],{"type":47,"value":557},{"type":42,"tag":483,"props":610,"children":611},{"style":496},[612],{"type":47,"value":562},{"type":42,"tag":483,"props":614,"children":615},{"style":496},[616],{"type":47,"value":617}," clusterrolebindings.rbac.authorization.k8s.io\n",{"type":42,"tag":483,"props":619,"children":621},{"class":485,"line":620},7,[622,626,631,636,641],{"type":42,"tag":483,"props":623,"children":624},{"style":490},[625],{"type":47,"value":493},{"type":42,"tag":483,"props":627,"children":628},{"style":496},[629],{"type":47,"value":630}," get",{"type":42,"tag":483,"props":632,"children":633},{"style":496},[634],{"type":47,"value":635}," nodes",{"type":42,"tag":483,"props":637,"children":638},{"style":496},[639],{"type":47,"value":640}," -o",{"type":42,"tag":483,"props":642,"children":643},{"style":496},[644],{"type":47,"value":645}," wide\n",{"type":42,"tag":483,"props":647,"children":649},{"class":485,"line":648},8,[650,654,658,662,667,673,678,683,688,693,698,703],{"type":42,"tag":483,"props":651,"children":652},{"style":490},[653],{"type":47,"value":493},{"type":42,"tag":483,"props":655,"children":656},{"style":496},[657],{"type":47,"value":630},{"type":42,"tag":483,"props":659,"children":660},{"style":496},[661],{"type":47,"value":635},{"type":42,"tag":483,"props":663,"children":664},{"style":496},[665],{"type":47,"value":666}," --show-labels",{"type":42,"tag":483,"props":668,"children":670},{"style":669},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[671],{"type":47,"value":672}," |",{"type":42,"tag":483,"props":674,"children":675},{"style":490},[676],{"type":47,"value":677}," grep",{"type":42,"tag":483,"props":679,"children":680},{"style":496},[681],{"type":47,"value":682}," -E",{"type":42,"tag":483,"props":684,"children":685},{"style":669},[686],{"type":47,"value":687}," '",{"type":42,"tag":483,"props":689,"children":690},{"style":496},[691],{"type":47,"value":692},"topology.kubernetes.io\u002F(region|zone)",{"type":42,"tag":483,"props":694,"children":695},{"style":669},[696],{"type":47,"value":697},"'",{"type":42,"tag":483,"props":699,"children":700},{"style":669},[701],{"type":47,"value":702}," ||",{"type":42,"tag":483,"props":704,"children":706},{"style":705},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[707],{"type":47,"value":708}," true\n",{"type":42,"tag":50,"props":710,"children":711},{},[712],{"type":47,"value":713},"Interpretation:",{"type":42,"tag":63,"props":715,"children":716},{},[717,722,727,748],{"type":42,"tag":67,"props":718,"children":719},{},[720],{"type":47,"value":721},"Kubernetes must be 1.30 or newer for the current v2 chart line.",{"type":42,"tag":67,"props":723,"children":724},{},[725],{"type":47,"value":726},"Helm must be v3.",{"type":42,"tag":67,"props":728,"children":729},{},[730,732,738,740,746],{"type":47,"value":731},"Node labels ",{"type":42,"tag":187,"props":733,"children":735},{"className":734},[],[736],{"type":47,"value":737},"topology.kubernetes.io\u002Fregion",{"type":47,"value":739}," and ",{"type":42,"tag":187,"props":741,"children":743},{"className":742},[],[744],{"type":47,"value":745},"topology.kubernetes.io\u002Fzone",{"type":47,"value":747}," should exist before relying on default locality behavior.",{"type":42,"tag":67,"props":749,"children":750},{},[751,753,759],{"type":47,"value":752},"Missing cluster-scoped RBAC is not automatically fatal, but it changes the install path. Use operator-chart ",{"type":42,"tag":187,"props":754,"children":756},{"className":755},[],[757],{"type":47,"value":758},"nodeReader",{"type":47,"value":760}," values or have a platform team pre-create the required bindings.",{"type":42,"tag":56,"props":762,"children":764},{"id":763},"step-2-choose-the-install-path",[765],{"type":47,"value":766},"Step 2: Choose the Install Path",{"type":42,"tag":768,"props":769,"children":771},"h3",{"id":770},"published-split-charts-recommended-for-customers",[772],{"type":47,"value":773},"Published Split Charts (Recommended for Customers)",{"type":42,"tag":50,"props":775,"children":776},{},[777],{"type":47,"value":778},"Use this path for normal customer installs.",{"type":42,"tag":472,"props":780,"children":782},{"className":474,"code":781,"language":476,"meta":477,"style":477},"helm repo add cockroachdb-v2 https:\u002F\u002Fcharts.cockroachdb.com\u002Fv2 --force-update\nhelm repo update cockroachdb-v2\nhelm search repo cockroachdb-v2 --devel\n",[783],{"type":42,"tag":187,"props":784,"children":785},{"__ignoreMap":477},[786,818,839],{"type":42,"tag":483,"props":787,"children":788},{"class":485,"line":486},[789,793,798,803,808,813],{"type":42,"tag":483,"props":790,"children":791},{"style":490},[792],{"type":47,"value":531},{"type":42,"tag":483,"props":794,"children":795},{"style":496},[796],{"type":47,"value":797}," repo",{"type":42,"tag":483,"props":799,"children":800},{"style":496},[801],{"type":47,"value":802}," add",{"type":42,"tag":483,"props":804,"children":805},{"style":496},[806],{"type":47,"value":807}," cockroachdb-v2",{"type":42,"tag":483,"props":809,"children":810},{"style":496},[811],{"type":47,"value":812}," https:\u002F\u002Fcharts.cockroachdb.com\u002Fv2",{"type":42,"tag":483,"props":814,"children":815},{"style":496},[816],{"type":47,"value":817}," --force-update\n",{"type":42,"tag":483,"props":819,"children":820},{"class":485,"line":507},[821,825,829,834],{"type":42,"tag":483,"props":822,"children":823},{"style":490},[824],{"type":47,"value":531},{"type":42,"tag":483,"props":826,"children":827},{"style":496},[828],{"type":47,"value":797},{"type":42,"tag":483,"props":830,"children":831},{"style":496},[832],{"type":47,"value":833}," update",{"type":42,"tag":483,"props":835,"children":836},{"style":496},[837],{"type":47,"value":838}," cockroachdb-v2\n",{"type":42,"tag":483,"props":840,"children":841},{"class":485,"line":525},[842,846,851,855,859],{"type":42,"tag":483,"props":843,"children":844},{"style":490},[845],{"type":47,"value":531},{"type":42,"tag":483,"props":847,"children":848},{"style":496},[849],{"type":47,"value":850}," search",{"type":42,"tag":483,"props":852,"children":853},{"style":496},[854],{"type":47,"value":797},{"type":42,"tag":483,"props":856,"children":857},{"style":496},[858],{"type":47,"value":807},{"type":42,"tag":483,"props":860,"children":861},{"style":496},[862],{"type":47,"value":863}," --devel\n",{"type":42,"tag":50,"props":865,"children":866},{},[867],{"type":47,"value":868},"Install the operator first:",{"type":42,"tag":472,"props":870,"children":872},{"className":474,"code":871,"language":476,"meta":477,"style":477},"helm upgrade --install crdb-operator cockroachdb-v2\u002Fcockroachdb-operator-chart \\\n  --namespace cockroach-operator-system \\\n  --create-namespace \\\n  --version \u003Coperator-chart-version> \\\n  --set cloudRegion=\u003Ccurrent-region>\n\nkubectl -n cockroach-operator-system rollout status deploy\u002Fcockroach-operator --timeout=5m\nkubectl get crd crdbclusters.crdb.cockroachlabs.com crdbnodes.crdb.cockroachlabs.com\n",[873],{"type":42,"tag":187,"props":874,"children":875},{"__ignoreMap":477},[876,909,926,938,970,1002,1011,1047],{"type":42,"tag":483,"props":877,"children":878},{"class":485,"line":486},[879,883,888,893,898,903],{"type":42,"tag":483,"props":880,"children":881},{"style":490},[882],{"type":47,"value":531},{"type":42,"tag":483,"props":884,"children":885},{"style":496},[886],{"type":47,"value":887}," upgrade",{"type":42,"tag":483,"props":889,"children":890},{"style":496},[891],{"type":47,"value":892}," --install",{"type":42,"tag":483,"props":894,"children":895},{"style":496},[896],{"type":47,"value":897}," crdb-operator",{"type":42,"tag":483,"props":899,"children":900},{"style":496},[901],{"type":47,"value":902}," cockroachdb-v2\u002Fcockroachdb-operator-chart",{"type":42,"tag":483,"props":904,"children":906},{"style":905},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[907],{"type":47,"value":908}," \\\n",{"type":42,"tag":483,"props":910,"children":911},{"class":485,"line":507},[912,917,922],{"type":42,"tag":483,"props":913,"children":914},{"style":496},[915],{"type":47,"value":916},"  --namespace",{"type":42,"tag":483,"props":918,"children":919},{"style":496},[920],{"type":47,"value":921}," cockroach-operator-system",{"type":42,"tag":483,"props":923,"children":924},{"style":905},[925],{"type":47,"value":908},{"type":42,"tag":483,"props":927,"children":928},{"class":485,"line":525},[929,934],{"type":42,"tag":483,"props":930,"children":931},{"style":496},[932],{"type":47,"value":933},"  --create-namespace",{"type":42,"tag":483,"props":935,"children":936},{"style":905},[937],{"type":47,"value":908},{"type":42,"tag":483,"props":939,"children":940},{"class":485,"line":542},[941,946,951,956,961,966],{"type":42,"tag":483,"props":942,"children":943},{"style":496},[944],{"type":47,"value":945},"  --version",{"type":42,"tag":483,"props":947,"children":948},{"style":669},[949],{"type":47,"value":950}," \u003C",{"type":42,"tag":483,"props":952,"children":953},{"style":496},[954],{"type":47,"value":955},"operator-chart-versio",{"type":42,"tag":483,"props":957,"children":958},{"style":905},[959],{"type":47,"value":960},"n",{"type":42,"tag":483,"props":962,"children":963},{"style":669},[964],{"type":47,"value":965},">",{"type":42,"tag":483,"props":967,"children":968},{"style":905},[969],{"type":47,"value":908},{"type":42,"tag":483,"props":971,"children":972},{"class":485,"line":570},[973,978,983,988,993,997],{"type":42,"tag":483,"props":974,"children":975},{"style":496},[976],{"type":47,"value":977},"  --set",{"type":42,"tag":483,"props":979,"children":980},{"style":496},[981],{"type":47,"value":982}," cloudRegion=",{"type":42,"tag":483,"props":984,"children":985},{"style":669},[986],{"type":47,"value":987},"\u003C",{"type":42,"tag":483,"props":989,"children":990},{"style":496},[991],{"type":47,"value":992},"current-regio",{"type":42,"tag":483,"props":994,"children":995},{"style":905},[996],{"type":47,"value":960},{"type":42,"tag":483,"props":998,"children":999},{"style":669},[1000],{"type":47,"value":1001},">\n",{"type":42,"tag":483,"props":1003,"children":1004},{"class":485,"line":595},[1005],{"type":42,"tag":483,"props":1006,"children":1008},{"emptyLinePlaceholder":1007},true,[1009],{"type":47,"value":1010},"\n",{"type":42,"tag":483,"props":1012,"children":1013},{"class":485,"line":620},[1014,1018,1023,1027,1032,1037,1042],{"type":42,"tag":483,"props":1015,"children":1016},{"style":490},[1017],{"type":47,"value":493},{"type":42,"tag":483,"props":1019,"children":1020},{"style":496},[1021],{"type":47,"value":1022}," -n",{"type":42,"tag":483,"props":1024,"children":1025},{"style":496},[1026],{"type":47,"value":921},{"type":42,"tag":483,"props":1028,"children":1029},{"style":496},[1030],{"type":47,"value":1031}," rollout",{"type":42,"tag":483,"props":1033,"children":1034},{"style":496},[1035],{"type":47,"value":1036}," status",{"type":42,"tag":483,"props":1038,"children":1039},{"style":496},[1040],{"type":47,"value":1041}," deploy\u002Fcockroach-operator",{"type":42,"tag":483,"props":1043,"children":1044},{"style":496},[1045],{"type":47,"value":1046}," --timeout=5m\n",{"type":42,"tag":483,"props":1048,"children":1049},{"class":485,"line":648},[1050,1054,1058,1063,1068],{"type":42,"tag":483,"props":1051,"children":1052},{"style":490},[1053],{"type":47,"value":493},{"type":42,"tag":483,"props":1055,"children":1056},{"style":496},[1057],{"type":47,"value":630},{"type":42,"tag":483,"props":1059,"children":1060},{"style":496},[1061],{"type":47,"value":1062}," crd",{"type":42,"tag":483,"props":1064,"children":1065},{"style":496},[1066],{"type":47,"value":1067}," crdbclusters.crdb.cockroachlabs.com",{"type":42,"tag":483,"props":1069,"children":1070},{"style":496},[1071],{"type":47,"value":1072}," crdbnodes.crdb.cockroachlabs.com\n",{"type":42,"tag":50,"props":1074,"children":1075},{},[1076],{"type":47,"value":1077},"Then install CockroachDB:",{"type":42,"tag":472,"props":1079,"children":1081},{"className":474,"code":1080,"language":476,"meta":477,"style":477},"helm upgrade --install crdb cockroachdb-v2\u002Fcockroachdb-chart \\\n  --namespace cockroachdb \\\n  --create-namespace \\\n  --version \u003Ccockroachdb-chart-version> \\\n  -f values.yaml\n",[1082],{"type":42,"tag":187,"props":1083,"children":1084},{"__ignoreMap":477},[1085,1114,1130,1141,1169],{"type":42,"tag":483,"props":1086,"children":1087},{"class":485,"line":486},[1088,1092,1096,1100,1105,1110],{"type":42,"tag":483,"props":1089,"children":1090},{"style":490},[1091],{"type":47,"value":531},{"type":42,"tag":483,"props":1093,"children":1094},{"style":496},[1095],{"type":47,"value":887},{"type":42,"tag":483,"props":1097,"children":1098},{"style":496},[1099],{"type":47,"value":892},{"type":42,"tag":483,"props":1101,"children":1102},{"style":496},[1103],{"type":47,"value":1104}," crdb",{"type":42,"tag":483,"props":1106,"children":1107},{"style":496},[1108],{"type":47,"value":1109}," cockroachdb-v2\u002Fcockroachdb-chart",{"type":42,"tag":483,"props":1111,"children":1112},{"style":905},[1113],{"type":47,"value":908},{"type":42,"tag":483,"props":1115,"children":1116},{"class":485,"line":507},[1117,1121,1126],{"type":42,"tag":483,"props":1118,"children":1119},{"style":496},[1120],{"type":47,"value":916},{"type":42,"tag":483,"props":1122,"children":1123},{"style":496},[1124],{"type":47,"value":1125}," cockroachdb",{"type":42,"tag":483,"props":1127,"children":1128},{"style":905},[1129],{"type":47,"value":908},{"type":42,"tag":483,"props":1131,"children":1132},{"class":485,"line":525},[1133,1137],{"type":42,"tag":483,"props":1134,"children":1135},{"style":496},[1136],{"type":47,"value":933},{"type":42,"tag":483,"props":1138,"children":1139},{"style":905},[1140],{"type":47,"value":908},{"type":42,"tag":483,"props":1142,"children":1143},{"class":485,"line":542},[1144,1148,1152,1157,1161,1165],{"type":42,"tag":483,"props":1145,"children":1146},{"style":496},[1147],{"type":47,"value":945},{"type":42,"tag":483,"props":1149,"children":1150},{"style":669},[1151],{"type":47,"value":950},{"type":42,"tag":483,"props":1153,"children":1154},{"style":496},[1155],{"type":47,"value":1156},"cockroachdb-chart-versio",{"type":42,"tag":483,"props":1158,"children":1159},{"style":905},[1160],{"type":47,"value":960},{"type":42,"tag":483,"props":1162,"children":1163},{"style":669},[1164],{"type":47,"value":965},{"type":42,"tag":483,"props":1166,"children":1167},{"style":905},[1168],{"type":47,"value":908},{"type":42,"tag":483,"props":1170,"children":1171},{"class":485,"line":570},[1172,1177],{"type":42,"tag":483,"props":1173,"children":1174},{"style":496},[1175],{"type":47,"value":1176},"  -f",{"type":42,"tag":483,"props":1178,"children":1179},{"style":496},[1180],{"type":47,"value":1181}," values.yaml\n",{"type":42,"tag":768,"props":1183,"children":1185},{"id":1184},"local-split-charts",[1186],{"type":47,"value":1187},"Local Split Charts",{"type":42,"tag":50,"props":1189,"children":1190},{},[1191],{"type":47,"value":1192},"Use this path when working from a checkout of this repository:",{"type":42,"tag":472,"props":1194,"children":1196},{"className":474,"code":1195,"language":476,"meta":477,"style":477},"helm upgrade --install crdb-operator .\u002Fcockroachdb-parent\u002Fcharts\u002Foperator \\\n  --namespace cockroach-operator-system \\\n  --create-namespace \\\n  --set cloudRegion=\u003Ccurrent-region>\n\nkubectl -n cockroach-operator-system rollout status deploy\u002Fcockroach-operator --timeout=5m\n\nhelm upgrade --install crdb .\u002Fcockroachdb-parent\u002Fcharts\u002Fcockroachdb \\\n  --namespace cockroachdb \\\n  --create-namespace \\\n  -f values.yaml\n",[1197],{"type":42,"tag":187,"props":1198,"children":1199},{"__ignoreMap":477},[1200,1228,1243,1254,1281,1288,1319,1326,1354,1370,1382],{"type":42,"tag":483,"props":1201,"children":1202},{"class":485,"line":486},[1203,1207,1211,1215,1219,1224],{"type":42,"tag":483,"props":1204,"children":1205},{"style":490},[1206],{"type":47,"value":531},{"type":42,"tag":483,"props":1208,"children":1209},{"style":496},[1210],{"type":47,"value":887},{"type":42,"tag":483,"props":1212,"children":1213},{"style":496},[1214],{"type":47,"value":892},{"type":42,"tag":483,"props":1216,"children":1217},{"style":496},[1218],{"type":47,"value":897},{"type":42,"tag":483,"props":1220,"children":1221},{"style":496},[1222],{"type":47,"value":1223}," .\u002Fcockroachdb-parent\u002Fcharts\u002Foperator",{"type":42,"tag":483,"props":1225,"children":1226},{"style":905},[1227],{"type":47,"value":908},{"type":42,"tag":483,"props":1229,"children":1230},{"class":485,"line":507},[1231,1235,1239],{"type":42,"tag":483,"props":1232,"children":1233},{"style":496},[1234],{"type":47,"value":916},{"type":42,"tag":483,"props":1236,"children":1237},{"style":496},[1238],{"type":47,"value":921},{"type":42,"tag":483,"props":1240,"children":1241},{"style":905},[1242],{"type":47,"value":908},{"type":42,"tag":483,"props":1244,"children":1245},{"class":485,"line":525},[1246,1250],{"type":42,"tag":483,"props":1247,"children":1248},{"style":496},[1249],{"type":47,"value":933},{"type":42,"tag":483,"props":1251,"children":1252},{"style":905},[1253],{"type":47,"value":908},{"type":42,"tag":483,"props":1255,"children":1256},{"class":485,"line":542},[1257,1261,1265,1269,1273,1277],{"type":42,"tag":483,"props":1258,"children":1259},{"style":496},[1260],{"type":47,"value":977},{"type":42,"tag":483,"props":1262,"children":1263},{"style":496},[1264],{"type":47,"value":982},{"type":42,"tag":483,"props":1266,"children":1267},{"style":669},[1268],{"type":47,"value":987},{"type":42,"tag":483,"props":1270,"children":1271},{"style":496},[1272],{"type":47,"value":992},{"type":42,"tag":483,"props":1274,"children":1275},{"style":905},[1276],{"type":47,"value":960},{"type":42,"tag":483,"props":1278,"children":1279},{"style":669},[1280],{"type":47,"value":1001},{"type":42,"tag":483,"props":1282,"children":1283},{"class":485,"line":570},[1284],{"type":42,"tag":483,"props":1285,"children":1286},{"emptyLinePlaceholder":1007},[1287],{"type":47,"value":1010},{"type":42,"tag":483,"props":1289,"children":1290},{"class":485,"line":595},[1291,1295,1299,1303,1307,1311,1315],{"type":42,"tag":483,"props":1292,"children":1293},{"style":490},[1294],{"type":47,"value":493},{"type":42,"tag":483,"props":1296,"children":1297},{"style":496},[1298],{"type":47,"value":1022},{"type":42,"tag":483,"props":1300,"children":1301},{"style":496},[1302],{"type":47,"value":921},{"type":42,"tag":483,"props":1304,"children":1305},{"style":496},[1306],{"type":47,"value":1031},{"type":42,"tag":483,"props":1308,"children":1309},{"style":496},[1310],{"type":47,"value":1036},{"type":42,"tag":483,"props":1312,"children":1313},{"style":496},[1314],{"type":47,"value":1041},{"type":42,"tag":483,"props":1316,"children":1317},{"style":496},[1318],{"type":47,"value":1046},{"type":42,"tag":483,"props":1320,"children":1321},{"class":485,"line":620},[1322],{"type":42,"tag":483,"props":1323,"children":1324},{"emptyLinePlaceholder":1007},[1325],{"type":47,"value":1010},{"type":42,"tag":483,"props":1327,"children":1328},{"class":485,"line":648},[1329,1333,1337,1341,1345,1350],{"type":42,"tag":483,"props":1330,"children":1331},{"style":490},[1332],{"type":47,"value":531},{"type":42,"tag":483,"props":1334,"children":1335},{"style":496},[1336],{"type":47,"value":887},{"type":42,"tag":483,"props":1338,"children":1339},{"style":496},[1340],{"type":47,"value":892},{"type":42,"tag":483,"props":1342,"children":1343},{"style":496},[1344],{"type":47,"value":1104},{"type":42,"tag":483,"props":1346,"children":1347},{"style":496},[1348],{"type":47,"value":1349}," .\u002Fcockroachdb-parent\u002Fcharts\u002Fcockroachdb",{"type":42,"tag":483,"props":1351,"children":1352},{"style":905},[1353],{"type":47,"value":908},{"type":42,"tag":483,"props":1355,"children":1357},{"class":485,"line":1356},9,[1358,1362,1366],{"type":42,"tag":483,"props":1359,"children":1360},{"style":496},[1361],{"type":47,"value":916},{"type":42,"tag":483,"props":1363,"children":1364},{"style":496},[1365],{"type":47,"value":1125},{"type":42,"tag":483,"props":1367,"children":1368},{"style":905},[1369],{"type":47,"value":908},{"type":42,"tag":483,"props":1371,"children":1373},{"class":485,"line":1372},10,[1374,1378],{"type":42,"tag":483,"props":1375,"children":1376},{"style":496},[1377],{"type":47,"value":933},{"type":42,"tag":483,"props":1379,"children":1380},{"style":905},[1381],{"type":47,"value":908},{"type":42,"tag":483,"props":1383,"children":1385},{"class":485,"line":1384},11,[1386,1390],{"type":42,"tag":483,"props":1387,"children":1388},{"style":496},[1389],{"type":47,"value":1176},{"type":42,"tag":483,"props":1391,"children":1392},{"style":496},[1393],{"type":47,"value":1181},{"type":42,"tag":56,"props":1395,"children":1397},{"id":1396},"step-3-create-a-minimal-values-file",[1398],{"type":47,"value":1399},"Step 3: Create a Minimal Values File",{"type":42,"tag":50,"props":1401,"children":1402},{},[1403],{"type":47,"value":1404},"For a single-region secure install using the chart self-signer:",{"type":42,"tag":472,"props":1406,"children":1410},{"className":1407,"code":1408,"language":1409,"meta":477,"style":477},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","cockroachdb:\n  clusterDomain: cluster.local\n  tls:\n    enabled: true\n    selfSigner:\n      enabled: true\n    certManager:\n      enabled: false\n    externalCertificates:\n      enabled: false\n  crdbCluster:\n    regions:\n      - code: us-east1\n        nodes: 3\n        cloudProvider: gcp\n        namespace: cockroachdb\n    dataStore:\n      volumeClaimTemplate:\n        spec:\n          accessModes:\n            - ReadWriteOnce\n          resources:\n            requests:\n              storage: 100Gi\n          volumeMode: Filesystem\n","yaml",[1411],{"type":42,"tag":187,"props":1412,"children":1413},{"__ignoreMap":477},[1414,1427,1445,1457,1474,1486,1502,1514,1530,1542,1557,1569,1582,1605,1624,1642,1660,1673,1686,1699,1712,1726,1739,1752,1770],{"type":42,"tag":483,"props":1415,"children":1416},{"class":485,"line":486},[1417,1422],{"type":42,"tag":483,"props":1418,"children":1420},{"style":1419},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[1421],{"type":47,"value":8},{"type":42,"tag":483,"props":1423,"children":1424},{"style":669},[1425],{"type":47,"value":1426},":\n",{"type":42,"tag":483,"props":1428,"children":1429},{"class":485,"line":507},[1430,1435,1440],{"type":42,"tag":483,"props":1431,"children":1432},{"style":1419},[1433],{"type":47,"value":1434},"  clusterDomain",{"type":42,"tag":483,"props":1436,"children":1437},{"style":669},[1438],{"type":47,"value":1439},":",{"type":42,"tag":483,"props":1441,"children":1442},{"style":496},[1443],{"type":47,"value":1444}," cluster.local\n",{"type":42,"tag":483,"props":1446,"children":1447},{"class":485,"line":525},[1448,1453],{"type":42,"tag":483,"props":1449,"children":1450},{"style":1419},[1451],{"type":47,"value":1452},"  tls",{"type":42,"tag":483,"props":1454,"children":1455},{"style":669},[1456],{"type":47,"value":1426},{"type":42,"tag":483,"props":1458,"children":1459},{"class":485,"line":542},[1460,1465,1469],{"type":42,"tag":483,"props":1461,"children":1462},{"style":1419},[1463],{"type":47,"value":1464},"    enabled",{"type":42,"tag":483,"props":1466,"children":1467},{"style":669},[1468],{"type":47,"value":1439},{"type":42,"tag":483,"props":1470,"children":1472},{"style":1471},"--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC",[1473],{"type":47,"value":708},{"type":42,"tag":483,"props":1475,"children":1476},{"class":485,"line":570},[1477,1482],{"type":42,"tag":483,"props":1478,"children":1479},{"style":1419},[1480],{"type":47,"value":1481},"    selfSigner",{"type":42,"tag":483,"props":1483,"children":1484},{"style":669},[1485],{"type":47,"value":1426},{"type":42,"tag":483,"props":1487,"children":1488},{"class":485,"line":595},[1489,1494,1498],{"type":42,"tag":483,"props":1490,"children":1491},{"style":1419},[1492],{"type":47,"value":1493},"      enabled",{"type":42,"tag":483,"props":1495,"children":1496},{"style":669},[1497],{"type":47,"value":1439},{"type":42,"tag":483,"props":1499,"children":1500},{"style":1471},[1501],{"type":47,"value":708},{"type":42,"tag":483,"props":1503,"children":1504},{"class":485,"line":620},[1505,1510],{"type":42,"tag":483,"props":1506,"children":1507},{"style":1419},[1508],{"type":47,"value":1509},"    certManager",{"type":42,"tag":483,"props":1511,"children":1512},{"style":669},[1513],{"type":47,"value":1426},{"type":42,"tag":483,"props":1515,"children":1516},{"class":485,"line":648},[1517,1521,1525],{"type":42,"tag":483,"props":1518,"children":1519},{"style":1419},[1520],{"type":47,"value":1493},{"type":42,"tag":483,"props":1522,"children":1523},{"style":669},[1524],{"type":47,"value":1439},{"type":42,"tag":483,"props":1526,"children":1527},{"style":1471},[1528],{"type":47,"value":1529}," false\n",{"type":42,"tag":483,"props":1531,"children":1532},{"class":485,"line":1356},[1533,1538],{"type":42,"tag":483,"props":1534,"children":1535},{"style":1419},[1536],{"type":47,"value":1537},"    externalCertificates",{"type":42,"tag":483,"props":1539,"children":1540},{"style":669},[1541],{"type":47,"value":1426},{"type":42,"tag":483,"props":1543,"children":1544},{"class":485,"line":1372},[1545,1549,1553],{"type":42,"tag":483,"props":1546,"children":1547},{"style":1419},[1548],{"type":47,"value":1493},{"type":42,"tag":483,"props":1550,"children":1551},{"style":669},[1552],{"type":47,"value":1439},{"type":42,"tag":483,"props":1554,"children":1555},{"style":1471},[1556],{"type":47,"value":1529},{"type":42,"tag":483,"props":1558,"children":1559},{"class":485,"line":1384},[1560,1565],{"type":42,"tag":483,"props":1561,"children":1562},{"style":1419},[1563],{"type":47,"value":1564},"  crdbCluster",{"type":42,"tag":483,"props":1566,"children":1567},{"style":669},[1568],{"type":47,"value":1426},{"type":42,"tag":483,"props":1570,"children":1572},{"class":485,"line":1571},12,[1573,1578],{"type":42,"tag":483,"props":1574,"children":1575},{"style":1419},[1576],{"type":47,"value":1577},"    regions",{"type":42,"tag":483,"props":1579,"children":1580},{"style":669},[1581],{"type":47,"value":1426},{"type":42,"tag":483,"props":1583,"children":1585},{"class":485,"line":1584},13,[1586,1591,1596,1600],{"type":42,"tag":483,"props":1587,"children":1588},{"style":669},[1589],{"type":47,"value":1590},"      -",{"type":42,"tag":483,"props":1592,"children":1593},{"style":1419},[1594],{"type":47,"value":1595}," code",{"type":42,"tag":483,"props":1597,"children":1598},{"style":669},[1599],{"type":47,"value":1439},{"type":42,"tag":483,"props":1601,"children":1602},{"style":496},[1603],{"type":47,"value":1604}," us-east1\n",{"type":42,"tag":483,"props":1606,"children":1608},{"class":485,"line":1607},14,[1609,1614,1618],{"type":42,"tag":483,"props":1610,"children":1611},{"style":1419},[1612],{"type":47,"value":1613},"        nodes",{"type":42,"tag":483,"props":1615,"children":1616},{"style":669},[1617],{"type":47,"value":1439},{"type":42,"tag":483,"props":1619,"children":1621},{"style":1620},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[1622],{"type":47,"value":1623}," 3\n",{"type":42,"tag":483,"props":1625,"children":1627},{"class":485,"line":1626},15,[1628,1633,1637],{"type":42,"tag":483,"props":1629,"children":1630},{"style":1419},[1631],{"type":47,"value":1632},"        cloudProvider",{"type":42,"tag":483,"props":1634,"children":1635},{"style":669},[1636],{"type":47,"value":1439},{"type":42,"tag":483,"props":1638,"children":1639},{"style":496},[1640],{"type":47,"value":1641}," gcp\n",{"type":42,"tag":483,"props":1643,"children":1645},{"class":485,"line":1644},16,[1646,1651,1655],{"type":42,"tag":483,"props":1647,"children":1648},{"style":1419},[1649],{"type":47,"value":1650},"        namespace",{"type":42,"tag":483,"props":1652,"children":1653},{"style":669},[1654],{"type":47,"value":1439},{"type":42,"tag":483,"props":1656,"children":1657},{"style":496},[1658],{"type":47,"value":1659}," cockroachdb\n",{"type":42,"tag":483,"props":1661,"children":1663},{"class":485,"line":1662},17,[1664,1669],{"type":42,"tag":483,"props":1665,"children":1666},{"style":1419},[1667],{"type":47,"value":1668},"    dataStore",{"type":42,"tag":483,"props":1670,"children":1671},{"style":669},[1672],{"type":47,"value":1426},{"type":42,"tag":483,"props":1674,"children":1676},{"class":485,"line":1675},18,[1677,1682],{"type":42,"tag":483,"props":1678,"children":1679},{"style":1419},[1680],{"type":47,"value":1681},"      volumeClaimTemplate",{"type":42,"tag":483,"props":1683,"children":1684},{"style":669},[1685],{"type":47,"value":1426},{"type":42,"tag":483,"props":1687,"children":1689},{"class":485,"line":1688},19,[1690,1695],{"type":42,"tag":483,"props":1691,"children":1692},{"style":1419},[1693],{"type":47,"value":1694},"        spec",{"type":42,"tag":483,"props":1696,"children":1697},{"style":669},[1698],{"type":47,"value":1426},{"type":42,"tag":483,"props":1700,"children":1702},{"class":485,"line":1701},20,[1703,1708],{"type":42,"tag":483,"props":1704,"children":1705},{"style":1419},[1706],{"type":47,"value":1707},"          accessModes",{"type":42,"tag":483,"props":1709,"children":1710},{"style":669},[1711],{"type":47,"value":1426},{"type":42,"tag":483,"props":1713,"children":1715},{"class":485,"line":1714},21,[1716,1721],{"type":42,"tag":483,"props":1717,"children":1718},{"style":669},[1719],{"type":47,"value":1720},"            -",{"type":42,"tag":483,"props":1722,"children":1723},{"style":496},[1724],{"type":47,"value":1725}," ReadWriteOnce\n",{"type":42,"tag":483,"props":1727,"children":1729},{"class":485,"line":1728},22,[1730,1735],{"type":42,"tag":483,"props":1731,"children":1732},{"style":1419},[1733],{"type":47,"value":1734},"          resources",{"type":42,"tag":483,"props":1736,"children":1737},{"style":669},[1738],{"type":47,"value":1426},{"type":42,"tag":483,"props":1740,"children":1742},{"class":485,"line":1741},23,[1743,1748],{"type":42,"tag":483,"props":1744,"children":1745},{"style":1419},[1746],{"type":47,"value":1747},"            requests",{"type":42,"tag":483,"props":1749,"children":1750},{"style":669},[1751],{"type":47,"value":1426},{"type":42,"tag":483,"props":1753,"children":1755},{"class":485,"line":1754},24,[1756,1761,1765],{"type":42,"tag":483,"props":1757,"children":1758},{"style":1419},[1759],{"type":47,"value":1760},"              storage",{"type":42,"tag":483,"props":1762,"children":1763},{"style":669},[1764],{"type":47,"value":1439},{"type":42,"tag":483,"props":1766,"children":1767},{"style":496},[1768],{"type":47,"value":1769}," 100Gi\n",{"type":42,"tag":483,"props":1771,"children":1773},{"class":485,"line":1772},25,[1774,1779,1783],{"type":42,"tag":483,"props":1775,"children":1776},{"style":1419},[1777],{"type":47,"value":1778},"          volumeMode",{"type":42,"tag":483,"props":1780,"children":1781},{"style":669},[1782],{"type":47,"value":1439},{"type":42,"tag":483,"props":1784,"children":1785},{"style":496},[1786],{"type":47,"value":1787}," Filesystem\n",{"type":42,"tag":50,"props":1789,"children":1790},{},[1791,1793,1798,1799,1805,1806,1812,1814,1819,1821,1827],{"type":47,"value":1792},"Adjust ",{"type":42,"tag":187,"props":1794,"children":1796},{"className":1795},[],[1797],{"type":47,"value":187},{"type":47,"value":194},{"type":42,"tag":187,"props":1800,"children":1802},{"className":1801},[],[1803],{"type":47,"value":1804},"cloudProvider",{"type":47,"value":194},{"type":42,"tag":187,"props":1807,"children":1809},{"className":1808},[],[1810],{"type":47,"value":1811},"namespace",{"type":47,"value":1813},", storage size, and storage class to the customer environment. The region ",{"type":42,"tag":187,"props":1815,"children":1817},{"className":1816},[],[1818],{"type":47,"value":187},{"type":47,"value":1820}," should match the Kubernetes node region label and the operator chart ",{"type":42,"tag":187,"props":1822,"children":1824},{"className":1823},[],[1825],{"type":47,"value":1826},"cloudRegion",{"type":47,"value":367},{"type":42,"tag":56,"props":1829,"children":1831},{"id":1830},"step-4-verify-the-install",[1832],{"type":47,"value":1833},"Step 4: Verify the Install",{"type":42,"tag":50,"props":1835,"children":1836},{},[1837],{"type":47,"value":1838},"Check Kubernetes resources:",{"type":42,"tag":472,"props":1840,"children":1842},{"className":474,"code":1841,"language":476,"meta":477,"style":477},"kubectl -n cockroach-operator-system get deploy cockroach-operator\nkubectl -n cockroach-operator-system logs deploy\u002Fcockroach-operator --tail=100\nkubectl -n cockroachdb get crdbcluster,crdbnode,pods,svc\nkubectl -n cockroachdb get crdbcluster crdb -o jsonpath='{.status.readyNodes}{\" ready, reconciled=\"}{.status.reconciled}{\" version=\"}{.status.version}{\"\\n\"}'\nkubectl -n cockroachdb get crdbnodes -o custom-columns=NAME:.metadata.name,NODE_ID:.status.nodeID,CONDITIONS:.status.conditions[*].type,TOPOLOGY:.status.topologyValues\n",[1843],{"type":42,"tag":187,"props":1844,"children":1845},{"__ignoreMap":477},[1846,1875,1904,1928,1979],{"type":42,"tag":483,"props":1847,"children":1848},{"class":485,"line":486},[1849,1853,1857,1861,1865,1870],{"type":42,"tag":483,"props":1850,"children":1851},{"style":490},[1852],{"type":47,"value":493},{"type":42,"tag":483,"props":1854,"children":1855},{"style":496},[1856],{"type":47,"value":1022},{"type":42,"tag":483,"props":1858,"children":1859},{"style":496},[1860],{"type":47,"value":921},{"type":42,"tag":483,"props":1862,"children":1863},{"style":496},[1864],{"type":47,"value":630},{"type":42,"tag":483,"props":1866,"children":1867},{"style":496},[1868],{"type":47,"value":1869}," deploy",{"type":42,"tag":483,"props":1871,"children":1872},{"style":496},[1873],{"type":47,"value":1874}," cockroach-operator\n",{"type":42,"tag":483,"props":1876,"children":1877},{"class":485,"line":507},[1878,1882,1886,1890,1895,1899],{"type":42,"tag":483,"props":1879,"children":1880},{"style":490},[1881],{"type":47,"value":493},{"type":42,"tag":483,"props":1883,"children":1884},{"style":496},[1885],{"type":47,"value":1022},{"type":42,"tag":483,"props":1887,"children":1888},{"style":496},[1889],{"type":47,"value":921},{"type":42,"tag":483,"props":1891,"children":1892},{"style":496},[1893],{"type":47,"value":1894}," logs",{"type":42,"tag":483,"props":1896,"children":1897},{"style":496},[1898],{"type":47,"value":1041},{"type":42,"tag":483,"props":1900,"children":1901},{"style":496},[1902],{"type":47,"value":1903}," --tail=100\n",{"type":42,"tag":483,"props":1905,"children":1906},{"class":485,"line":525},[1907,1911,1915,1919,1923],{"type":42,"tag":483,"props":1908,"children":1909},{"style":490},[1910],{"type":47,"value":493},{"type":42,"tag":483,"props":1912,"children":1913},{"style":496},[1914],{"type":47,"value":1022},{"type":42,"tag":483,"props":1916,"children":1917},{"style":496},[1918],{"type":47,"value":1125},{"type":42,"tag":483,"props":1920,"children":1921},{"style":496},[1922],{"type":47,"value":630},{"type":42,"tag":483,"props":1924,"children":1925},{"style":496},[1926],{"type":47,"value":1927}," crdbcluster,crdbnode,pods,svc\n",{"type":42,"tag":483,"props":1929,"children":1930},{"class":485,"line":542},[1931,1935,1939,1943,1947,1952,1956,1960,1965,1969,1974],{"type":42,"tag":483,"props":1932,"children":1933},{"style":490},[1934],{"type":47,"value":493},{"type":42,"tag":483,"props":1936,"children":1937},{"style":496},[1938],{"type":47,"value":1022},{"type":42,"tag":483,"props":1940,"children":1941},{"style":496},[1942],{"type":47,"value":1125},{"type":42,"tag":483,"props":1944,"children":1945},{"style":496},[1946],{"type":47,"value":630},{"type":42,"tag":483,"props":1948,"children":1949},{"style":496},[1950],{"type":47,"value":1951}," crdbcluster",{"type":42,"tag":483,"props":1953,"children":1954},{"style":496},[1955],{"type":47,"value":1104},{"type":42,"tag":483,"props":1957,"children":1958},{"style":496},[1959],{"type":47,"value":640},{"type":42,"tag":483,"props":1961,"children":1962},{"style":496},[1963],{"type":47,"value":1964}," jsonpath=",{"type":42,"tag":483,"props":1966,"children":1967},{"style":669},[1968],{"type":47,"value":697},{"type":42,"tag":483,"props":1970,"children":1971},{"style":496},[1972],{"type":47,"value":1973},"{.status.readyNodes}{\" ready, reconciled=\"}{.status.reconciled}{\" version=\"}{.status.version}{\"\\n\"}",{"type":42,"tag":483,"props":1975,"children":1976},{"style":669},[1977],{"type":47,"value":1978},"'\n",{"type":42,"tag":483,"props":1980,"children":1981},{"class":485,"line":570},[1982,1986,1990,1994,1998,2003,2007,2012,2017],{"type":42,"tag":483,"props":1983,"children":1984},{"style":490},[1985],{"type":47,"value":493},{"type":42,"tag":483,"props":1987,"children":1988},{"style":496},[1989],{"type":47,"value":1022},{"type":42,"tag":483,"props":1991,"children":1992},{"style":496},[1993],{"type":47,"value":1125},{"type":42,"tag":483,"props":1995,"children":1996},{"style":496},[1997],{"type":47,"value":630},{"type":42,"tag":483,"props":1999,"children":2000},{"style":496},[2001],{"type":47,"value":2002}," crdbnodes",{"type":42,"tag":483,"props":2004,"children":2005},{"style":496},[2006],{"type":47,"value":640},{"type":42,"tag":483,"props":2008,"children":2009},{"style":496},[2010],{"type":47,"value":2011}," custom-columns=NAME:.metadata.name,NODE_ID:.status.nodeID,CONDITIONS:.status.conditions[",{"type":42,"tag":483,"props":2013,"children":2014},{"style":905},[2015],{"type":47,"value":2016},"*",{"type":42,"tag":483,"props":2018,"children":2019},{"style":496},[2020],{"type":47,"value":2021},"].type,TOPOLOGY:.status.topologyValues\n",{"type":42,"tag":50,"props":2023,"children":2024},{},[2025],{"type":47,"value":2026},"Expected state:",{"type":42,"tag":63,"props":2028,"children":2029},{},[2030,2041,2061,2087,2108],{"type":42,"tag":67,"props":2031,"children":2032},{},[2033,2039],{"type":42,"tag":187,"props":2034,"children":2036},{"className":2035},[],[2037],{"type":47,"value":2038},"cockroach-operator",{"type":47,"value":2040}," Deployment is available.",{"type":42,"tag":67,"props":2042,"children":2043},{},[2044,2046,2052,2053,2059],{"type":47,"value":2045},"CRDs ",{"type":42,"tag":187,"props":2047,"children":2049},{"className":2048},[],[2050],{"type":47,"value":2051},"crdbclusters.crdb.cockroachlabs.com",{"type":47,"value":739},{"type":42,"tag":187,"props":2054,"children":2056},{"className":2055},[],[2057],{"type":47,"value":2058},"crdbnodes.crdb.cockroachlabs.com",{"type":47,"value":2060}," exist.",{"type":42,"tag":67,"props":2062,"children":2063},{},[2064,2070,2072,2078,2079,2085],{"type":42,"tag":187,"props":2065,"children":2067},{"className":2066},[],[2068],{"type":47,"value":2069},"CrdbCluster.status.reconciled",{"type":47,"value":2071}," is ",{"type":42,"tag":187,"props":2073,"children":2075},{"className":2074},[],[2076],{"type":47,"value":2077},"true",{"type":47,"value":739},{"type":42,"tag":187,"props":2080,"children":2082},{"className":2081},[],[2083],{"type":47,"value":2084},"readyNodes",{"type":47,"value":2086}," equals the regional node count.",{"type":42,"tag":67,"props":2088,"children":2089},{},[2090,2092,2098,2100,2106],{"type":47,"value":2091},"Each ",{"type":42,"tag":187,"props":2093,"children":2095},{"className":2094},[],[2096],{"type":47,"value":2097},"CrdbNode",{"type":47,"value":2099}," has a ",{"type":42,"tag":187,"props":2101,"children":2103},{"className":2102},[],[2104],{"type":47,"value":2105},"nodeID",{"type":47,"value":2107}," and Ready\u002FRunning conditions.",{"type":42,"tag":67,"props":2109,"children":2110},{},[2111],{"type":47,"value":2112},"CockroachDB pods are Running and Ready.",{"type":42,"tag":50,"props":2114,"children":2115},{},[2116,2118,2122],{"type":47,"value":2117},"For SQL verification, connect with the certificate mode selected by ",{"type":42,"tag":99,"props":2119,"children":2120},{"href":101},[2121],{"type":47,"value":104},{"type":47,"value":2123},", then run:",{"type":42,"tag":472,"props":2125,"children":2129},{"className":2126,"code":2127,"language":2128,"meta":477,"style":477},"language-sql shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","SELECT version();\nSHOW REGIONS;\nSHOW JOBS;\n","sql",[2130],{"type":42,"tag":187,"props":2131,"children":2132},{"__ignoreMap":477},[2133,2141,2149],{"type":42,"tag":483,"props":2134,"children":2135},{"class":485,"line":486},[2136],{"type":42,"tag":483,"props":2137,"children":2138},{},[2139],{"type":47,"value":2140},"SELECT version();\n",{"type":42,"tag":483,"props":2142,"children":2143},{"class":485,"line":507},[2144],{"type":42,"tag":483,"props":2145,"children":2146},{},[2147],{"type":47,"value":2148},"SHOW REGIONS;\n",{"type":42,"tag":483,"props":2150,"children":2151},{"class":485,"line":525},[2152],{"type":42,"tag":483,"props":2153,"children":2154},{},[2155],{"type":47,"value":2156},"SHOW JOBS;\n",{"type":42,"tag":56,"props":2158,"children":2160},{"id":2159},"outputs",[2161],{"type":47,"value":2162},"Outputs",{"type":42,"tag":50,"props":2164,"children":2165},{},[2166],{"type":47,"value":2167},"Return a concise install report:",{"type":42,"tag":63,"props":2169,"children":2170},{},[2171,2176,2181,2186,2191,2201],{"type":42,"tag":67,"props":2172,"children":2173},{},[2174],{"type":47,"value":2175},"Kubernetes context, namespace, and chart path used",{"type":42,"tag":67,"props":2177,"children":2178},{},[2179],{"type":47,"value":2180},"Operator release, CockroachDB release, and chart versions",{"type":42,"tag":67,"props":2182,"children":2183},{},[2184],{"type":47,"value":2185},"Values file path or inline values that were applied",{"type":42,"tag":67,"props":2187,"children":2188},{},[2189],{"type":47,"value":2190},"CRD registration status",{"type":42,"tag":67,"props":2192,"children":2193},{},[2194,2199],{"type":42,"tag":187,"props":2195,"children":2197},{"className":2196},[],[2198],{"type":47,"value":399},{"type":47,"value":2200}," ready\u002Freconciled status and node count",{"type":42,"tag":67,"props":2202,"children":2203},{},[2204],{"type":47,"value":2205},"SQL verification result or the exact blocker if SQL could not be verified",{"type":42,"tag":56,"props":2207,"children":2209},{"id":2208},"troubleshooting-handoff",[2210],{"type":47,"value":2211},"Troubleshooting Handoff",{"type":42,"tag":50,"props":2213,"children":2214},{},[2215,2217,2221,2223,2229],{"type":47,"value":2216},"If any command fails, stop the install flow and use ",{"type":42,"tag":99,"props":2218,"children":2219},{"href":125},[2220],{"type":47,"value":128},{"type":47,"value":2222},". Preserve the exact command, stderr, namespace, release names, and values file path. If the failure remains unresolved or the operator appears stuck, gather ",{"type":42,"tag":99,"props":2224,"children":2226},{"href":2225},"..\u002F..\u002Fcockroachdb-observability-and-diagnostics\u002Fcollecting-cockroachdb-operator-escalation-packet\u002FSKILL.md",[2227],{"type":47,"value":2228},"the operator escalation packet",{"type":47,"value":2230}," before restarting or changing operator state.",{"type":42,"tag":56,"props":2232,"children":2234},{"id":2233},"references",[2235],{"type":47,"value":2236},"References",{"type":42,"tag":63,"props":2238,"children":2239},{},[2240,2249,2258,2267,2278],{"type":42,"tag":67,"props":2241,"children":2242},{},[2243],{"type":42,"tag":99,"props":2244,"children":2246},{"href":2245},"..\u002F..\u002F..\u002Fcockroachdb-parent\u002Fdocs\u002FVERSIONING.md",[2247],{"type":47,"value":2248},"CockroachDB Helm Chart Versioning",{"type":42,"tag":67,"props":2250,"children":2251},{},[2252],{"type":42,"tag":99,"props":2253,"children":2255},{"href":2254},"..\u002F..\u002F..\u002Fcockroachdb-parent\u002Fcharts\u002Foperator\u002FREADME.md",[2256],{"type":47,"value":2257},"Operator Helm Chart README",{"type":42,"tag":67,"props":2259,"children":2260},{},[2261],{"type":42,"tag":99,"props":2262,"children":2264},{"href":2263},"..\u002F..\u002F..\u002Fcockroachdb-parent\u002Fcharts\u002Fcockroachdb\u002FREADME.md",[2265],{"type":47,"value":2266},"CockroachDB Helm Chart README",{"type":42,"tag":67,"props":2268,"children":2269},{},[2270],{"type":42,"tag":99,"props":2271,"children":2275},{"href":2272,"rel":2273},"https:\u002F\u002Fwww.cockroachlabs.com\u002Fdocs\u002Fstable\u002Fdeploy-cockroachdb-with-kubernetes",[2274],"nofollow",[2276],{"type":47,"value":2277},"CockroachDB Docs: Deploy with Kubernetes",{"type":42,"tag":67,"props":2279,"children":2280},{},[2281],{"type":42,"tag":99,"props":2282,"children":2285},{"href":2283,"rel":2284},"https:\u002F\u002Fhelm.sh\u002Fdocs\u002Ftopics\u002Frbac\u002F",[2274],[2286],{"type":47,"value":2287},"Helm Docs: Role-based Access Control",{"type":42,"tag":2289,"props":2290,"children":2291},"style",{},[2292],{"type":47,"value":2293},"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":2295,"total":2445},[2296,2311,2324,2338,2348,2354,2366,2379,2393,2408,2419,2432],{"slug":2297,"name":2297,"fn":2298,"description":2299,"org":2300,"tags":2301,"stars":22,"repoUrl":23,"updatedAt":2310},"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},[2302,2303,2306,2307],{"name":13,"slug":14,"type":15},{"name":2304,"slug":2305,"type":15},"Incident Response","incident-response",{"name":20,"slug":21,"type":15},{"name":2308,"slug":2309,"type":15},"Monitoring","monitoring","2026-07-12T07:57:25.288146",{"slug":104,"name":104,"fn":2312,"description":2313,"org":2314,"tags":2315,"stars":22,"repoUrl":23,"updatedAt":2323},"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},[2316,2317,2320],{"name":17,"slug":18,"type":15},{"name":2318,"slug":2319,"type":15},"Encryption","encryption",{"name":2321,"slug":2322,"type":15},"Security","security","2026-07-12T07:56:37.675396",{"slug":120,"name":120,"fn":2325,"description":2326,"org":2327,"tags":2328,"stars":22,"repoUrl":23,"updatedAt":2337},"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},[2329,2330,2333,2334],{"name":13,"slug":14,"type":15},{"name":2331,"slug":2332,"type":15},"Debugging","debugging",{"name":20,"slug":21,"type":15},{"name":2335,"slug":2336,"type":15},"Migration","migration","2026-07-12T07:56:48.360871",{"slug":128,"name":128,"fn":2339,"description":2340,"org":2341,"tags":2342,"stars":22,"repoUrl":23,"updatedAt":2347},"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},[2343,2344,2345,2346],{"name":13,"slug":14,"type":15},{"name":2331,"slug":2332,"type":15},{"name":17,"slug":18,"type":15},{"name":20,"slug":21,"type":15},"2026-07-12T07:57:24.018818",{"slug":4,"name":4,"fn":5,"description":6,"org":2349,"tags":2350,"stars":22,"repoUrl":23,"updatedAt":24},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2351,2352,2353],{"name":13,"slug":14,"type":15},{"name":17,"slug":18,"type":15},{"name":20,"slug":21,"type":15},{"slug":112,"name":112,"fn":2355,"description":2356,"org":2357,"tags":2358,"stars":22,"repoUrl":23,"updatedAt":2365},"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},[2359,2360,2361,2362],{"name":13,"slug":14,"type":15},{"name":17,"slug":18,"type":15},{"name":20,"slug":21,"type":15},{"name":2363,"slug":2364,"type":15},"Operations","operations","2026-07-12T07:56:47.082609",{"slug":2367,"name":2367,"fn":2368,"description":2369,"org":2370,"tags":2371,"stars":525,"repoUrl":2377,"updatedAt":2378},"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},[2372,2373,2374],{"name":13,"slug":14,"type":15},{"name":2308,"slug":2309,"type":15},{"name":2375,"slug":2376,"type":15},"Performance","performance","https:\u002F\u002Fgithub.com\u002Fcockroachdb\u002Fclaude-plugin","2026-07-12T07:57:18.753533",{"slug":2380,"name":2380,"fn":2381,"description":2382,"org":2383,"tags":2384,"stars":525,"repoUrl":2377,"updatedAt":2392},"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},[2385,2388,2389,2390],{"name":2386,"slug":2387,"type":15},"Data Modeling","data-modeling",{"name":13,"slug":14,"type":15},{"name":2375,"slug":2376,"type":15},{"name":2391,"slug":2128,"type":15},"SQL","2026-07-12T07:57:22.763788",{"slug":2394,"name":2394,"fn":2395,"description":2396,"org":2397,"tags":2398,"stars":525,"repoUrl":2377,"updatedAt":2407},"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},[2399,2402,2405,2406],{"name":2400,"slug":2401,"type":15},"Audit","audit",{"name":2403,"slug":2404,"type":15},"Compliance","compliance",{"name":13,"slug":14,"type":15},{"name":2321,"slug":2322,"type":15},"2026-07-18T05:48:00.862384",{"slug":2409,"name":2409,"fn":2410,"description":2411,"org":2412,"tags":2413,"stars":525,"repoUrl":2377,"updatedAt":2418},"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},[2414,2415,2416,2417],{"name":2400,"slug":2401,"type":15},{"name":13,"slug":14,"type":15},{"name":2363,"slug":2364,"type":15},{"name":2321,"slug":2322,"type":15},"2026-07-12T07:57:01.506735",{"slug":2420,"name":2420,"fn":2421,"description":2422,"org":2423,"tags":2424,"stars":525,"repoUrl":2377,"updatedAt":2431},"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},[2425,2426,2429,2430],{"name":2400,"slug":2401,"type":15},{"name":2427,"slug":2428,"type":15},"Data Analysis","data-analysis",{"name":13,"slug":14,"type":15},{"name":2375,"slug":2376,"type":15},"2026-07-12T07:57:16.190081",{"slug":2433,"name":2433,"fn":2434,"description":2435,"org":2436,"tags":2437,"stars":525,"repoUrl":2377,"updatedAt":2444},"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},[2438,2439,2442,2443],{"name":13,"slug":14,"type":15},{"name":2440,"slug":2441,"type":15},"Engineering","engineering",{"name":2375,"slug":2376,"type":15},{"name":2391,"slug":2128,"type":15},"2026-07-12T07:57:26.543278",40,{"items":2447,"total":595},[2448,2455,2461,2468,2475,2481],{"slug":2297,"name":2297,"fn":2298,"description":2299,"org":2449,"tags":2450,"stars":22,"repoUrl":23,"updatedAt":2310},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2451,2452,2453,2454],{"name":13,"slug":14,"type":15},{"name":2304,"slug":2305,"type":15},{"name":20,"slug":21,"type":15},{"name":2308,"slug":2309,"type":15},{"slug":104,"name":104,"fn":2312,"description":2313,"org":2456,"tags":2457,"stars":22,"repoUrl":23,"updatedAt":2323},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2458,2459,2460],{"name":17,"slug":18,"type":15},{"name":2318,"slug":2319,"type":15},{"name":2321,"slug":2322,"type":15},{"slug":120,"name":120,"fn":2325,"description":2326,"org":2462,"tags":2463,"stars":22,"repoUrl":23,"updatedAt":2337},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2464,2465,2466,2467],{"name":13,"slug":14,"type":15},{"name":2331,"slug":2332,"type":15},{"name":20,"slug":21,"type":15},{"name":2335,"slug":2336,"type":15},{"slug":128,"name":128,"fn":2339,"description":2340,"org":2469,"tags":2470,"stars":22,"repoUrl":23,"updatedAt":2347},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2471,2472,2473,2474],{"name":13,"slug":14,"type":15},{"name":2331,"slug":2332,"type":15},{"name":17,"slug":18,"type":15},{"name":20,"slug":21,"type":15},{"slug":4,"name":4,"fn":5,"description":6,"org":2476,"tags":2477,"stars":22,"repoUrl":23,"updatedAt":24},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2478,2479,2480],{"name":13,"slug":14,"type":15},{"name":17,"slug":18,"type":15},{"name":20,"slug":21,"type":15},{"slug":112,"name":112,"fn":2355,"description":2356,"org":2482,"tags":2483,"stars":22,"repoUrl":23,"updatedAt":2365},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2484,2485,2486,2487],{"name":13,"slug":14,"type":15},{"name":17,"slug":18,"type":15},{"name":20,"slug":21,"type":15},{"name":2363,"slug":2364,"type":15}]