Skip to content

byoc: update onboarding docs - #23350

Merged
ti-chi-bot[bot] merged 7 commits into
pingcap:release-8.5from
wildpcww:onboarding
Jul 23, 2026
Merged

byoc: update onboarding docs#23350
ti-chi-bot[bot] merged 7 commits into
pingcap:release-8.5from
wildpcww:onboarding

Conversation

@wildpcww

@wildpcww wildpcww commented Jul 23, 2026

Copy link
Copy Markdown
Collaborator

First-time contributors' checklist

What is changed, added or deleted? (Required)

Which TiDB version(s) do your changes apply to? (Required)

Tips for choosing the affected version(s):

By default, CHOOSE MASTER ONLY so your changes will be applied to the next TiDB major or minor releases. If your PR involves a product feature behavior change or a compatibility change, CHOOSE THE AFFECTED RELEASE BRANCH(ES) AND MASTER.

For details, see tips for choosing the affected versions.

  • master (the latest development version)
  • v9.0 (TiDB 9.0 versions)
  • v8.5 (TiDB 8.5 versions)
  • v8.1 (TiDB 8.1 versions)
  • v7.5 (TiDB 7.5 versions)
  • v7.1 (TiDB 7.1 versions)
  • v6.5 (TiDB 6.5 versions)

What is the related PR or file link(s)?

  • This PR is translated from:
  • Other reference link(s):

AI agent involvement

  • The changes in this PR were primarily made by an AI agent on behalf of the PR author.

Do your changes match any of the following descriptions?

  • Delete files
  • Change aliases
  • Need modification after applied to another branch
  • Might cause conflicts after applied to another branch

Summary by CodeRabbit

  • Documentation
    • Added a dedicated guide for configuring and managing secure BYOC Bastion Hosts, including access, auditing, validation, and cleanup.
    • Updated BYOC onboarding navigation and deployment phases with clearer links for IAM configuration, service initialization, and Bastion Host setup.
    • Revised AWS quota guidance to support environment-specific planning and requests across EC2, EBS, and EKS.
    • Added clearer “What’s next” guidance for deployment, validation, application connection, data migration, monitoring, backup, and security configuration.

@lilin90 lilin90 self-assigned this Jul 23, 2026
@lilin90 lilin90 added BYOC Related to TiDB Cloud BYOC docs. translation/no-need No need to translate this PR. labels Jul 23, 2026
@ti-chi-bot ti-chi-bot Bot added contribution This PR is from a community contributor. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Jul 23, 2026
@coderabbitai

coderabbitai Bot commented Jul 23, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

BYOC documentation updates revise AWS quota planning, IAM and deployment handoffs, add a dedicated bastion host guide, update service initialization references, and add post-validation guidance.

Changes

BYOC documentation flow

Layer / File(s) Summary
AWS quota planning
tidb-cloud/byoc/byoc-prepare-environment-aws.md
Replaces fixed quota recommendations with workload-dependent planning, support coordination, categorized quota checks, and AWS Service Quotas request steps.
IAM and automated deployment handoff
tidb-cloud/byoc/byoc-configure-iam-permissions.md, tidb-cloud/byoc/byoc-automated-deployment.md
Renames the IAM guide and updates the next steps for verified roles, automated deployment, first-instance creation, and secure administrative access.
Bastion host deployment and operations
tidb-cloud/byoc/byoc-configure-bastion-host.md
Adds prerequisites, Terraform deployment and validation, SSM access, Tailscale controls, key lifecycle details, audit logging, and cleanup instructions.
BYOC lifecycle guidance
TOC-tidb-cloud-byoc.md, tidb-cloud/byoc/byoc-onboarding-overview.md, tidb-cloud/byoc/byoc-initialize-service.md, tidb-cloud/byoc/joint-validation.md
Updates navigation and service-initialization links, references the dedicated bastion guide, and adds post-validation next steps.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

Suggested labels: area/tidb-cloud, type/enhancement

Suggested reviewers: lilin90

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The template is mostly empty; the required change summary and related links are missing, and checklist items are unfilled. Add a brief summary of what changed and why, include any related PR/file links, and complete or remove checklist items that don't apply.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title is concise and matches the main change: updating BYOC onboarding docs.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5


ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: de7c54c3-94d9-4a7a-8c16-4b2ea41e7b21

📥 Commits

Reviewing files that changed from the base of the PR and between 10c2159 and e9b6d12.

📒 Files selected for processing (8)
  • TOC-tidb-cloud-byoc.md
  • tidb-cloud/byoc/byoc-automated-deployment.md
  • tidb-cloud/byoc/byoc-bastion-host.md
  • tidb-cloud/byoc/byoc-iam-configuration.md
  • tidb-cloud/byoc/byoc-onboarding-overview.md
  • tidb-cloud/byoc/byoc-prepare-environment-aws.md
  • tidb-cloud/byoc/byoc-service-initialization.md
  • tidb-cloud/byoc/joint-validation.md


## Audit logs

For security and compliance, each bastion host is configured to collect a detailed audit trail of executed commands through the [auditd service](https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/6/html/security_guide/chap-system_auditing).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Replace the link that fails CI.

The Red Hat URL returns HTTP 403 in the link checker, blocking the documentation pipeline. Remove the hyperlink or replace it with an accessible auditd reference. (man7.org)

Suggested change
For security and compliance, each bastion host is configured to collect a detailed audit trail of executed commands through the [auditd service](https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/6/html/security_guide/chap-system_auditing).
For security and compliance, each bastion host is configured to collect a detailed audit trail of executed commands through the `auditd` service.

As per path instructions, Markdown issues that can be fixed with a contiguous replacement must include a committable suggestion.

🧰 Tools
🪛 GitHub Actions: ci / external-links-in-changed-lines (pull_request) / 0_linkChecker.txt

[error] 180-180: lychee link check failed: [403] https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/6/html/security_guide/chap-system_auditing rejected with status code 403 Forbidden.

🪛 GitHub Actions: ci / external-links-in-changed-lines (pull_request) / linkChecker

[error] 180-180: lychee link check failed: HTTP 403 Forbidden for https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/6/html/security_guide/chap-system_auditing (at 180:129). Rejected status code: 403.

Sources: Path instructions, Pipeline failures

| [Phase 2: IAM bootstrapping](/tidb-cloud/byoc/byoc-iam-configuration.md) | Customer | Execute the provided bootstrapping scripts to install the necessary IAM roles and policies. This authorizes the TiDB Cloud Control Plane to securely manage resources within your AWS account. |
| [Phase 3: Automated deployment](/tidb-cloud/byoc/byoc-automated-deployment.md) | TiDB Cloud | Once IAM permissions are verified, TiDB Cloud automatically provisions the VPC, EKS clusters, and control plane resources. Note: This process is **fully automated** and requires no customer intervention. |
| [Phase 4: Service initialization](/tidb-cloud/byoc/byoc-service-initialization.md) | Customer | Create your TiDB instance via the console. Subsequently, deploy the Bastion Host and authentication scripts to establish secure maintenance channels (Tailscale) and observability pipelines. Note: You may also choose to establish maintenance channels using your own custom methods. |
| [Phase 4: Service initialization](/tidb-cloud/byoc/byoc-service-initialization.md) | Customer | Create your TiDB instance via the console. Subsequently, [configure a Bastion Host](/tidb-cloud/byoc/byoc-bastion-host.md) and authentication scripts to establish secure maintenance channels (Tailscale) and observability pipelines. Note: You may also choose to establish maintenance channels using your own custom methods. |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Mark Bastion Host configuration as optional.

The linked Bastion Host guide states that this configuration is optional, but this phase currently presents it as a required customer step.

As per path instructions, this contiguous Markdown fix is provided as a committable suggestion.

Suggested change
| [Phase 4: Service initialization](/tidb-cloud/byoc/byoc-service-initialization.md) | Customer | Create your TiDB instance via the console. Subsequently, [configure a Bastion Host](/tidb-cloud/byoc/byoc-bastion-host.md) and authentication scripts to establish secure maintenance channels (Tailscale) and observability pipelines. Note: You may also choose to establish maintenance channels using your own custom methods. |
| [Phase 4: Service initialization](/tidb-cloud/byoc/byoc-service-initialization.md) | Customer | Create your TiDB instance via the console. Subsequently, optionally [configure a Bastion Host](/tidb-cloud/byoc/byoc-bastion-host.md) and authentication scripts to establish secure maintenance channels (Tailscale) and observability pipelines. Note: You may also choose to establish maintenance channels using your own custom methods. |

Sources: Coding guidelines, Path instructions

Comment on lines +173 to +179
- **Amazon EKS and scaling-related quotas**: quota values that affect EKS clusters and node scaling capacity, including EC2 capacity, Auto Scaling Group limits, and EKS managed node group limits.

### How to request a quota increase

1. Log in to the AWS Management Console.
2. Navigate to Service Quotas.
3. Search for the relevant services: Amazon EC2 Amazon EBSAmazon EKS
3. Search for the relevant services: Amazon EC2, Amazon EBS, and Amazon EKS.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Include Amazon EC2 Auto Scaling in the quota-request steps.

The quota categories mention Auto Scaling Group limits, but the service search instructions list only EC2, EBS, and EKS. Users may therefore skip the quota service needed for those limits.

Suggested replacement
Suggested change
- **Amazon EKS and scaling-related quotas**: quota values that affect EKS clusters and node scaling capacity, including EC2 capacity, Auto Scaling Group limits, and EKS managed node group limits.
### How to request a quota increase
1. Log in to the AWS Management Console.
2. Navigate to Service Quotas.
3. Search for the relevant services: Amazon EC2, Amazon EBS,Amazon EKS
3. Search for the relevant services: Amazon EC2, Amazon EBS, and Amazon EKS.
4. Search for the relevant services: Amazon EC2, Amazon EC2 Auto Scaling, Amazon EBS, and Amazon EKS.

Comment on lines +43 to +48
> **Note:**
>
> - This step is **optional**. You may choose to provide your own secure login method for maintenance.
> - The Bastion Host is used only for troubleshooting and does not need to maintain a persistent connection. You may terminate this channel at any time.
> - The Bastion Host deployment instruction for Single-AZ will be provided in the separated tab.

1. **Execute the deployment script.**
For deployment and verification steps, see [Configure a Bastion Host for {{{ .byoc }}}](/tidb-cloud/byoc/byoc-bastion-host.md).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Preserve the Bastion Host’s maintenance use case.

The dedicated guide describes authorized troubleshooting and maintenance, so “used only for troubleshooting” incorrectly narrows its purpose.

As per path instructions, this contiguous Markdown fix is provided as a committable suggestion.

Suggested change
> **Note:**
>
> - This step is **optional**. You may choose to provide your own secure login method for maintenance.
> - The Bastion Host is used only for troubleshooting and does not need to maintain a persistent connection. You may terminate this channel at any time.
> - The Bastion Host deployment instruction for Single-AZ will be provided in the separated tab.
1. **Execute the deployment script.**
For deployment and verification steps, see [Configure a Bastion Host for {{{ .byoc }}}](/tidb-cloud/byoc/byoc-bastion-host.md).
> **Note:**
>
> - This step is **optional**. You may choose to provide your own secure login method for maintenance.
> - The Bastion Host is used for authorized troubleshooting and maintenance and does not need to maintain a persistent connection. You may terminate this channel when it is not needed.

Sources: Coding guidelines, Path instructions

Comment thread tidb-cloud/byoc/joint-validation.md
@lilin90 lilin90 changed the title update byoc onboarding doc byoc: update onboarding doc Jul 23, 2026
@lilin90 lilin90 changed the title byoc: update onboarding doc byoc: update onboarding docs Jul 23, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1


ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: c24ada41-3abc-4fba-a34b-264a80ed4814

📥 Commits

Reviewing files that changed from the base of the PR and between e9b6d12 and 3be618d.

📒 Files selected for processing (5)
  • TOC-tidb-cloud-byoc.md
  • tidb-cloud/byoc/byoc-configure-bastion-host.md
  • tidb-cloud/byoc/byoc-iam-configuration.md
  • tidb-cloud/byoc/byoc-onboarding-overview.md
  • tidb-cloud/byoc/byoc-service-initialization.md

Comment on lines +73 to +80
5. In `terraform.tfvars`, configure the required fields:

- `aws_region`: the AWS region where your {{{ .byoc }}} environment is deployed, such as `us-west-2`.
- `tidbcloud_tenant_id`: your TiDB Cloud tenant ID.
- `bastions`: the bastion host configurations. You can configure bastions for `tidb` and `o11y`.
- `<bastion_type>.eks_cluster_name`: the EKS cluster name for the bastion type, such as `tidb.eks_cluster_name` or `o11y.eks_cluster_name`.
- `<bastion_type>.auth_key`: the Tailscale authentication key provided by TiDB Cloud.
- `<bastion_type>.subnet_id`: for Single-AZ deployments only, the subnet ID for the corresponding EKS cluster.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

Treat the Terraform variables file and authentication keys as secrets.

The guide asks readers to paste Tailscale credentials into terraform.tfvars but does not warn them not to commit or share the file. Add explicit handling guidance to prevent credential leakage.

As per path instructions, this Markdown fix is provided as a committable suggestion.

Suggested replacement
Suggested change
5. In `terraform.tfvars`, configure the required fields:
- `aws_region`: the AWS region where your {{{ .byoc }}} environment is deployed, such as `us-west-2`.
- `tidbcloud_tenant_id`: your TiDB Cloud tenant ID.
- `bastions`: the bastion host configurations. You can configure bastions for `tidb` and `o11y`.
- `<bastion_type>.eks_cluster_name`: the EKS cluster name for the bastion type, such as `tidb.eks_cluster_name` or `o11y.eks_cluster_name`.
- `<bastion_type>.auth_key`: the Tailscale authentication key provided by TiDB Cloud.
- `<bastion_type>.subnet_id`: for Single-AZ deployments only, the subnet ID for the corresponding EKS cluster.
- `<bastion_type>.auth_key`: the sensitive Tailscale authentication key provided by TiDB Cloud. Treat `terraform.tfvars` and generated Terraform state as sensitive: do not commit or share them, and restrict access to the state backend.

Source: Path instructions

@ti-chi-bot ti-chi-bot Bot added size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. and removed size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Jul 23, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2


ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 5aa6e63a-ffb1-4f06-9062-33f818083408

📥 Commits

Reviewing files that changed from the base of the PR and between 3be618d and 627889f.

📒 Files selected for processing (6)
  • TOC-tidb-cloud-byoc.md
  • tidb-cloud/byoc/byoc-automated-deployment.md
  • tidb-cloud/byoc/byoc-configure-iam-permissions.md
  • tidb-cloud/byoc/byoc-initialize-service.md
  • tidb-cloud/byoc/byoc-onboarding-overview.md
  • tidb-cloud/byoc/byoc-prepare-environment-aws.md

Comment thread tidb-cloud/byoc/byoc-configure-iam-permissions.md Outdated
Comment thread tidb-cloud/byoc/byoc-prepare-environment-aws.md
@ti-chi-bot ti-chi-bot Bot added the needs-1-more-lgtm Indicates a PR needs 1 more LGTM. label Jul 23, 2026
@ti-chi-bot

ti-chi-bot Bot commented Jul 23, 2026

Copy link
Copy Markdown

[LGTM Timeline notifier]

Timeline:

  • 2026-07-23 10:14:04.226316696 +0000 UTC m=+1486230.262411752: ☑️ agreed by lilin90.

@lilin90

lilin90 commented Jul 23, 2026

Copy link
Copy Markdown
Member

/approve

@ti-chi-bot

ti-chi-bot Bot commented Jul 23, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: lilin90

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@ti-chi-bot ti-chi-bot Bot added the approved label Jul 23, 2026
@lilin90 lilin90 added the lgtm label Jul 23, 2026
@ti-chi-bot
ti-chi-bot Bot merged commit 2120d6b into pingcap:release-8.5 Jul 23, 2026
11 of 12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved BYOC Related to TiDB Cloud BYOC docs. contribution This PR is from a community contributor. lgtm needs-1-more-lgtm Indicates a PR needs 1 more LGTM. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. translation/no-need No need to translate this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants