Skip to content

Conversation

@kbatuigas
Copy link
Contributor

@kbatuigas kbatuigas commented May 28, 2025

Description

Related PR: redpanda-data/docs#1140

This pull request introduces support for secrets management in BYOVPC clusters on AWS and GCP, along with related documentation updates and improvements. It includes instructions for enabling secrets management on new and existing clusters, as well as examples for configuring cluster properties with secrets. Below are the most important changes grouped by theme:

Secrets Management for BYOVPC Clusters:

  • Added new documentation page enable-secrets-byovpc-gcp.adoc with detailed steps to enable secrets management on existing BYOVPC clusters on GCP, including creating service accounts, assigning roles, and updating cluster configurations.
  • Updated vpc-byo-gcp.adoc to include commands for creating and binding roles for Redpanda operator and cluster service accounts to support secrets management. [1] [2]
  • Added a note in vpc-byo-aws.adoc indicating that secrets management is enabled by default in the Terraform example code for AWS and providing instructions for enabling it on existing clusters.

Documentation Updates:

  • Updated nav.adoc to include a link to the new secrets management page for GCP.
  • Added a new section in whats-new-cloud.adoc announcing secrets management support for BYOVPC clusters on AWS and GCP.
  • Updated config-cluster.adoc to include examples of setting cluster properties with secrets using rpk and API commands. [1] [2]

Miscellaneous Improvements:

  • Added a beta feature note for Iceberg integration in about-iceberg-topics.adoc.
  • Fixed an incorrect endpoint reference in controlplane-api.adoc.

These changes provide enhanced functionality for managing secrets securely in BYOVPC clusters and improve the clarity and usability of the documentation.
Resolves https://github.com/redpanda-data/documentation-private/issues/
Review deadline: 30 May

Page previews

What's New in Cloud
Create a BYOVPC Cluster on GCP
Enable Secrete Management on an Existing BYOVPC Cluster on GCP
Create a BYOVPC Cluster on AWS
Configure Cluster Properties > Set cluster configuration values

Checks

  • New feature
  • Content gap
  • Support Follow-up
  • Small fix (typos, links, copyedits, etc)

@kbatuigas kbatuigas requested a review from a team as a code owner May 28, 2025 20:52
@netlify
Copy link

netlify bot commented May 28, 2025

Deploy Preview for rp-cloud ready!

Name Link
🔨 Latest commit 2e3e9bd
🔍 Latest deploy log https://app.netlify.com/projects/rp-cloud/deploys/684243321caff7000883aed2
😎 Deploy Preview https://deploy-preview-313--rp-cloud.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented May 28, 2025

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

📝 Walkthrough

Walkthrough

This pull request updates and extends the documentation related to enabling and managing secrets management for Bring Your Own VPC (BYOVPC) clusters on both AWS and GCP in Redpanda Cloud. It adds a new guide for enabling secrets management on existing BYOVPC clusters on GCP, clarifies IAM role and service account setup for both AWS and GCP, and updates navigation to include the new documentation. Additional notes clarify the status of the Iceberg integration and how to reference secrets in cluster configuration.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant GCP Console/CLI
    participant Redpanda Cloud API
    participant Redpanda Cloud UI

    User->>GCP Console/CLI: Create redpanda-operator service account
    User->>GCP Console/CLI: Assign custom IAM roles to service accounts
    User->>GCP Console/CLI: Bind workload identity user role
    User->>Redpanda Cloud API: PATCH /v1/clusters/{cluster-id} to add operator service account
    User->>Redpanda Cloud UI: Verify secrets management enabled
Loading

Assessment against linked issues

Objective Addressed Explanation
Document best practices for bucket access policies and catalog connectivity (DOC-1222) No content was added about bucket access policies or catalog connectivity best practices.
GCP: Update permissions for Redpanda service account and add operator service account (DOC-1222)
AWS: Update permissions for Redpanda service account and add operator service account (DOC-1222)

Possibly related PRs

Suggested reviewers

  • micheleRP

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
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🔭 Outside diff range comments (2)
modules/get-started/pages/cluster-types/byoc/gcp/vpc-byo-gcp.adoc (2)

32-38: 🛠️ Refactor suggestion

Fix AsciiDoc literal block delimiters
The subnet list is wrapped with -- delimiters, but AsciiDoc requires four-character fences (----) for listing or literal blocks. This could render incorrectly. Either remove the delimiters to allow normal bullet formatting or replace --/-- with ----/----.


47-47: ⚠️ Potential issue

Typo in placeholder name
The placeholder <secondary-ipv2-range-name-for-services> appears to be a typo. It should read <secondary-ipv4-range-name-for-services> to match the IPv4 context.

🧹 Nitpick comments (7)
modules/manage/pages/cluster-maintenance/config-cluster.adoc (2)

38-43: Encapsulate CLI secret notation in an admon block
Great addition demonstrating secrets in the rpk CLI. For consistency and better visibility, wrap this instruction and code in a proper Asciidoc admon block:

[NOTE]
====
To set a cluster property with a secret, run:

[source,bash]
----
rpk cluster config set iceberg_rest_catalog_client_secret ${secrets.<secret-name>}
----
====

82-96: Encapsulate API secret notation in an admon block
The Cloud API example is clear; consider formatting it similarly within an admon block for consistency:

[NOTE]
====
To set a cluster property with a secret via API:

[source,bash]
----
curl -H "Authorization: Bearer <token>" -X PATCH \
  "https://api.cloud.redpanda.com/v1/clusters/<cluster-id>" \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -d '{"cluster_configuration":{"custom_properties":{"iceberg_rest_catalog_client_secret":"${secrets.<secret-name>}"}}}'
----
====
modules/manage/pages/iceberg/about-iceberg-topics.adoc (1)

5-5: Format beta note as an admon block
The beta notice is important but should leverage Asciidoc’s admon syntax. For example:

[NOTE]
====
The Iceberg integration for Redpanda Cloud is a beta feature. It is not supported for production deployments.
====
modules/get-started/pages/cluster-types/byoc/aws/vpc-byo-aws.adoc (1)

68-68: Minor formatting cleanup
Removing the trailing space after the Redpanda Connect bullet is a good formatting fix.

modules/get-started/pages/cluster-types/byoc/gcp/enable-secrets-byovpc-gcp.adoc (3)

1-4: Validate :page-beta: attribute usage
The :page-beta: attribute is declared without a value. Confirm if this is intended (e.g., some pages annotate with a note) or remove it if it has no effect in your Antora build.


14-18: Attach collapsible block correctly under list item
To nest the collapsible block beneath the step, place the + immediately after the list item line and ensure subsequent block markers (====) start on the next line—without preceding list dots. Also, change .Show commands to . Show commands (add a space) to conform to AsciiDoc list syntax.


19-23: Remove redundant comment line in snippet
The first line inside the code block is a lone #. Please remove it to avoid confusion and keep the snippet focused on the essential commands.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 033be5f and 6104f03.

📒 Files selected for processing (7)
  • local-antora-playbook.yml (1 hunks)
  • modules/ROOT/nav.adoc (1 hunks)
  • modules/get-started/pages/cluster-types/byoc/aws/vpc-byo-aws.adoc (2 hunks)
  • modules/get-started/pages/cluster-types/byoc/gcp/enable-secrets-byovpc-gcp.adoc (1 hunks)
  • modules/get-started/pages/cluster-types/byoc/gcp/vpc-byo-gcp.adoc (2 hunks)
  • modules/manage/pages/cluster-maintenance/config-cluster.adoc (2 hunks)
  • modules/manage/pages/iceberg/about-iceberg-topics.adoc (1 hunks)
🔇 Additional comments (5)
modules/ROOT/nav.adoc (1)

22-22: Navigation link insertion is correct
The new BYOVPC GCP secrets management link is added at the appropriate nesting level and aligns with existing structure.

modules/get-started/pages/cluster-types/byoc/aws/vpc-byo-aws.adoc (2)

21-26: Secrets management note block is well-formed
The [NOTE] block clearly communicates default secrets support and remediation steps. It follows Asciidoc admon conventions.


70-75: JSON snippet insertion is clear
The example for condition_tags correctly uses the + join and a code block, enhancing the Terraform customization guidance.

modules/get-started/pages/cluster-types/byoc/gcp/enable-secrets-byovpc-gcp.adoc (2)

81-84: Verify workload-identity binding syntax
The gcloud iam service-accounts add-iam-policy-binding command for the operator SA uses placeholders for namespace and account ID. Double-check that the member string (serviceAccount:<service-project-id>.svc.id.goog[redpanda-system/<redpanda_operator-gcp-sa-account-id>]) matches your cluster’s namespace and SA naming conventions.


87-108: Check xref anchor for PATCH endpoint
The cross-reference xref:api:ROOT:cloud-controlplane-api.adoc#patch-/v1/clusters/-cluster.id- may not match the actual anchor in your API docs. Please verify that the link resolves correctly in the rendered documentation.

branches: HEAD
- url: https://github.com/redpanda-data/documentation
branches: [main, v/*, api, shared, site-search]
branches: ['DOC-1222-iceberg-byovpc-updates', v/*, api, shared, site-search]
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue

Ensure wildcard branch patterns are correctly quoted
The branches list includes v/* unquoted, which may lead to YAML parsing errors. Wrap wildcard patterns in quotes (e.g. 'v/*').

🤖 Prompt for AI Agents
In local-antora-playbook.yml at line 18, the wildcard branch pattern v/* is not
quoted, which can cause YAML parsing errors. Fix this by enclosing the wildcard
pattern in single quotes, changing v/* to 'v/*' within the branches list.

:description: Learn how Redpanda can integrate topics with Apache Iceberg.
:page-beta: true

NOTE: The Iceberg integration for Redpanda Cloud is a beta feature. It is not supported for production deployments.
Copy link
Contributor Author

@kbatuigas kbatuigas May 28, 2025

Choose a reason for hiding this comment

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

Suggested change
NOTE: The Iceberg integration for Redpanda Cloud is a beta feature. It is not supported for production deployments.
NOTE: The Iceberg integration for Redpanda Cloud is a beta feature. It is not supported for production deployments.

@simon0191 This note used to be on https://docs.redpanda.com/redpanda-cloud/manage/iceberg/use-iceberg-catalogs/ because of previous lack of support for secrets. Do we still want to add a note about using Iceberg in production while it is in beta for Cloud?

Copy link
Member

Choose a reason for hiding this comment

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

I'd replace this with the catalog support matrix mentioning that each integration has different maturity level

Copy link
Contributor Author

@kbatuigas kbatuigas Jun 4, 2025

Choose a reason for hiding this comment

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

@simon0191 Let's address this in a separate PR for https://redpandadata.atlassian.net/browse/DOC-1411 so PM and ideally DevProd can vet it as well.


[IMPORTANT]
====
BYOVPC is an add-on feature that may require an additional purchase. To unlock this feature for your account, contact your Redpanda account team or https://www.redpanda.com/price-estimator[Redpanda Sales^].
Copy link
Contributor

Choose a reason for hiding this comment

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

So it may or may not require purchase? Or does it absolutely require purchase to unlock? The word "may" here makes me think, maybe/maybe not, which doesn't give me clarity on this.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@david-yu would you be able to clarify or give guidance on the language for BYOVPC access?

@kbatuigas kbatuigas force-pushed the DOC-1222-Document-feature-Iceberg-on-Cloud-BYOVPC-GA-AWS-GCP branch from a1fdcab to 8bb1f1e Compare June 2, 2025 14:09
BYOVPC is an add-on feature that may require an additional purchase. To unlock this feature for your account, contact your Redpanda account team or https://www.redpanda.com/price-estimator[Redpanda Sales^].
====

Storing secrets in your cluster allows you to keep your cloud infrastructure secure as you integrate your data across different systems, for example, REST catalogs with your Iceberg-enabled topics. To enable secrets management on an existing BYOVPC cluster, you must update your cluster configuration. You can also create xref:get-started:cluster-types/byoc/gcp/vpc-byo-gcp.adoc[a new BYOVPC cluster] with secrets management already enabled.
Copy link
Member

Choose a reason for hiding this comment

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

"if you haven't done it already"
Basically, this applies only to existing clusters, but future clusters will have secrets enabled

:description: Learn how Redpanda can integrate topics with Apache Iceberg.
:page-beta: true

NOTE: The Iceberg integration for Redpanda Cloud is a beta feature. It is not supported for production deployments.
Copy link
Member

Choose a reason for hiding this comment

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

I'd replace this with the catalog support matrix mentioning that each integration has different maturity level

== Update cluster configuration

To update your cluster configuration properties, make a request to the xref:api:ROOT:cloud-controlplane-api.adoc#patch-/v1/clusters/-id-[`PATCH /v1/clusters/\{id}`] endpoint, passing the cluster ID as a parameter. Include the properties to update in the request body.
To update your cluster configuration properties, make a request to the xref:api:ROOT:cloud-controlplane-api.adoc#patch-/v1/clusters/-cluster.id-[`PATCH /v1/clusters/\{id}`] endpoint, passing the cluster ID as a parameter. Include the properties to update in the request body.
Copy link
Member

Choose a reason for hiding this comment

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

In here let's also show how to do it with rpk which is much better UX

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@simon0191 This is the page that guides readers on how to do specific tasks with the Control Plane API - we should add the rpk instructions on the general Iceberg doc https://docs.redpanda.com/redpanda-cloud/manage/iceberg/about-iceberg-topics/#enable-iceberg-integration (per https://redpandadata.atlassian.net/browse/DOC-1413)

[source,bash]
----
curl -H "Authorization: Bearer <token>" -X PATCH \
Copy link
Member

Choose a reason for hiding this comment

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

Let's also show how to do it with rpk which is much better UX

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@simon0191 This is the general doc for configuring cluster properties - the rpk instructions are described in the same doc https://github.com/redpanda-data/cloud-docs/pull/313/files#diff-c8fbb49e2369d966902a69910a95b4e432a6931f6efaf898897f416acbd9cd8dR26-R45 (preview here). The example to enable Iceberg should be added in the general Iceberg doc , per https://redpandadata.atlassian.net/browse/DOC-1413. I'll do so in a separate PR.

====
Secrets management is enabled by default with the Terraform code in the example repository. It allows you to store and read secrets in your cluster, for example to integrate a REST catalog with Iceberg-enabled topics.
For existing BYOVPC clusters, contact https://support.redpanda.com/hc/en-us/requests/new[Redpanda Support^] to enable secrets management.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

@wzzzrd86 just a heads up that per @tomasz-sadura , existing AWS BYOVPC clusters will need assistance from Support to enable secrets management.

@kbatuigas kbatuigas force-pushed the DOC-1222-Document-feature-Iceberg-on-Cloud-BYOVPC-GA-AWS-GCP branch from 2b8b12f to 110e14a Compare June 4, 2025 23:40
@kbatuigas kbatuigas changed the title BYOVPC support for secrets and Iceberg catalogs BYOVPC support for secrets and Iceberg REST catalogs Jun 5, 2025
Copy link
Contributor

@Feediver1 Feediver1 left a comment

Choose a reason for hiding this comment

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

lgtm

@kbatuigas kbatuigas merged commit f4ea907 into main Jun 6, 2025
5 checks passed
@kbatuigas kbatuigas deleted the DOC-1222-Document-feature-Iceberg-on-Cloud-BYOVPC-GA-AWS-GCP branch June 6, 2025 01:28
@coderabbitai coderabbitai bot mentioned this pull request Jun 6, 2025
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants