Skip to content

Conversation

@JakeSCahill
Copy link
Contributor

@JakeSCahill JakeSCahill commented Nov 21, 2025

Description

This pull request introduces a new automated workflow for generating Redpanda property documentation and updates several configuration files and documentation partials to support improved property doc generation and mapping.

Page previews

Checks

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

@JakeSCahill JakeSCahill requested a review from a team as a code owner November 21, 2025 16:31
@netlify
Copy link

netlify bot commented Nov 21, 2025

Deploy Preview for redpanda-docs-preview ready!

Name Link
🔨 Latest commit bfa338d
🔍 Latest deploy log https://app.netlify.com/projects/redpanda-docs-preview/deploys/692484e18309170009f2c788
😎 Deploy Preview https://deploy-preview-1485--redpanda-docs-preview.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 Nov 21, 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 PR implements an automated property documentation generation system for Redpanda. It introduces a new documentation guide and GitHub Actions workflow that generates AsciiDoc partials for property documentation using a doc-tools CLI instead of maintaining inline definitions. The workflow triggers on manual dispatch or repository dispatch events, validates semantic versioning, and creates pull requests with updated partials. Existing property documentation pages (broker, topic, object-storage) are refactored to include auto-generated partials filtered by category rather than containing inline property definitions. Configuration files are updated to reference new documentation sources, and new partial files are created to contain auto-generated property definitions and mappings.

Sequence Diagram

sequenceDiagram
    actor Manual/Dispatch as Manual Dispatch or<br/>Repository Dispatch
    participant Workflow as update-property-docs.yaml
    participant AWS as AWS Secrets Manager
    participant CLI as doc-tools CLI
    participant Repo as Repository
    participant PR as Pull Request

    Manual/Dispatch->>Workflow: Trigger (tag input)
    Workflow->>AWS: Retrieve GITHUB_TOKEN secret
    Workflow->>Repo: Checkout main branch
    Workflow->>Workflow: Normalize & compare tag<br/>vs latest-redpanda-tag
    
    alt Tag is newer
        Workflow->>CLI: Run: generate property-docs<br/>(tag, partials, cloud-support,<br/>overrides)
        CLI->>Repo: Generate/update partials<br/>(docs-data/property-overrides.json)
        Workflow->>PR: Create PR<br/>(branch: update-property-docs-${tag})
        PR-->>Repo: Commit with generated content
    else Tag is not newer
        Workflow->>Workflow: Skip doc generation<br/>(print notice)
    end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60–90 minutes

  • GitHub Actions workflow logic: Semantic version comparison and conditional branching logic require verification of correctness, particularly the tag normalization and comparison logic against latest-redpanda-tag in antora.yml
  • Extensive documentation refactoring: Multiple property documentation files (broker-properties.adoc, topic-properties.adoc, object-storage-properties.adoc) are restructured from inline content to include directives; all include paths and category tags must be validated to ensure partials are correctly referenced and content is preserved
  • Auto-generated partial files: New partials for topic properties, deprecated properties, and property mappings must be verified for completeness and accuracy, and the content generated by doc-tools must be validated
  • Override mechanism: The interaction between the CLI tool, property-overrides.json, and auto-generation must be understood to ensure the workflow integrates correctly with the override system

Possibly related PRs

Suggested reviewers

  • paulohtb6
  • mattschumpert
  • Feediver1

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Description check ⚠️ Warning PR description is incomplete; missing required Jira ticket reference and review deadline, and does not follow the template structure. Add Jira ticket reference (Resolves https://redpandadata.atlassian.net/browse/), set a review deadline, and provide page preview links generated by Netlify bot.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Restructure the config properties to support automation' clearly reflects the main objective of this PR, which is to introduce automated workflows and restructure documentation to support automation of property documentation generation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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 and usage tips.

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: 4

🧹 Nitpick comments (2)
.github/copilot-instructions.md (1)

57-74: Add language identifiers to fenced code blocks for proper syntax highlighting.

Several fenced code blocks are missing language specifiers. For example:

  • Lines 57-74: ASCII diagram should be ```text or ```ascii
  • Lines 84-88: Plaintext should be ```text or left with ``` for plain
  • Lines 475-507: Multiple JSON and shell blocks need appropriate language tags

Examples of corrections:

-```
+```text
 Source Code Metadata
         |
         v
   doc-tools CLI
-```
+```json
 {
   "properties": {
     "property_name": {

This improves readability and enables syntax highlighting in documentation renderers.

Also applies to: 84-88, 475-507

.github/workflows/update-property-docs.yaml (1)

62-83: Version comparison logic is sound for stable releases but may not handle pre-releases correctly.

The semantic version comparison using sort -V is appropriate for typical version tags. However, be aware that pre-release versions (e.g., v1.0.0-rc1, v1.0.0-alpha) may not be compared correctly with this approach. If your versioning scheme includes pre-releases, consider using a dedicated semver comparison tool.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between dc4cfcb and a0131de.

📒 Files selected for processing (10)
  • .github/copilot-instructions.md (1 hunks)
  • .github/workflows/update-property-docs.yaml (1 hunks)
  • antora.yml (1 hunks)
  • local-antora-playbook.yml (1 hunks)
  • modules/reference/pages/properties/broker-properties.adoc (4 hunks)
  • modules/reference/pages/properties/object-storage-properties.adoc (1 hunks)
  • modules/reference/pages/properties/topic-properties.adoc (1 hunks)
  • modules/reference/partials/deprecated/deprecated-properties.adoc (1 hunks)
  • modules/reference/partials/properties/topic-properties.adoc (1 hunks)
  • modules/reference/partials/properties/topic-property-mappings.adoc (1 hunks)
🧰 Additional context used
🧠 Learnings (2)
📚 Learning: 2025-07-16T19:33:20.420Z
Learnt from: Feediver1
Repo: redpanda-data/docs PR: 1153
File: modules/reference/pages/properties/topic-properties.adoc:45-50
Timestamp: 2025-07-16T19:33:20.420Z
Learning: In the Redpanda documentation, topic property cross-references like <<max.compaction.lag.ms>> and <<min.compaction.lag.ms>> require corresponding property definition sections with anchors like [[maxcompactionlagms]] and [[mincompactionlagms]] to prevent broken links.

Applied to files:

  • modules/reference/partials/properties/topic-property-mappings.adoc
  • modules/reference/pages/properties/object-storage-properties.adoc
  • .github/copilot-instructions.md
  • modules/reference/partials/properties/topic-properties.adoc
  • modules/reference/pages/properties/topic-properties.adoc
  • modules/reference/partials/deprecated/deprecated-properties.adoc
  • modules/reference/pages/properties/broker-properties.adoc
📚 Learning: 2025-07-14T19:28:43.296Z
Learnt from: Feediver1
Repo: redpanda-data/docs PR: 1153
File: antora.yml:3-5
Timestamp: 2025-07-14T19:28:43.296Z
Learning: In Redpanda docs, during beta releases, the version metadata may intentionally show inconsistencies where the header displays the beta version (e.g., 25.2 Beta) while internal attributes like full-version, latest-redpanda-tag, operator-beta-tag still reference the stable version (e.g., 25.1). This is resolved during the GA merge process when all version references are synchronized.

Applied to files:

  • antora.yml
🪛 markdownlint-cli2 (0.18.1)
.github/copilot-instructions.md

57-57: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


84-84: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


475-475: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


482-482: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


497-497: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


504-504: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


690-690: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: Redirect rules - redpanda-docs-preview
  • GitHub Check: Header rules - redpanda-docs-preview
  • GitHub Check: Pages changed - redpanda-docs-preview
🔇 Additional comments (16)
local-antora-playbook.yml (1)

20-20: Verify feature branch will be merged to main before release.

Line 20 references config-automation branch, which appears to be a feature branch. Ensure this branch is merged to main before the docs site is published, or this configuration will not find the updated content.

Similarly, the new docs-site source (lines 26-28) points to main and should be verified to exist and contain the expected structure.

Also applies to: 26-28

antora.yml (1)

22-22: Verify console version downgrade: 3.30.1 → v3.3.1.

The console tag was changed from 3.30.1 to v3.3.1. While the format change (adding v prefix) aligns with the PR's goal of consistency, the version number itself appears to have decreased numerically (3.30.1 → 3.3.1).

Confirm this version change is intentional and represents the correct latest console version that should be documented.

modules/reference/partials/deprecated/deprecated-properties.adoc (1)

1-114: Auto-generated deprecated properties partial looks well-structured.

The file has appropriate auto-generated headers, clear categorization by property scope, and straightforward list formatting. The metadata at the top correctly documents that this is auto-generated content.

modules/reference/pages/properties/object-storage-properties.adoc (1)

15-15: Verify object-storage-properties partial exists and has expected structure.

Line 15 includes reference:partial$properties/object-storage-properties.adoc with filters for deprecated and excluded properties. Ensure:

  1. The partial file exists at modules/reference/partials/properties/object-storage-properties.adoc
  2. The partial uses the same tagging structure as the topic-properties partial (tag::category-*, tag::deprecated[], tag::exclude-from-docs[])
  3. The partial is auto-generated and documented in copilot-instructions.md
.github/copilot-instructions.md (1)

1-100: Guide clearly establishes critical rules for LLM property documentation updates.

The document provides comprehensive guidance on the override system, with strong emphasis on:

  • Never editing generated files in /modules/reference/partials/properties/
  • Using only /docs-data/property-overrides.json for manual edits
  • Clear requirements for doc-tools CLI invocation with all required flags
  • Mandatory inclusion of --cloud-support flag

The examples are practical and cover common scenarios. The validation section and troubleshooting guide add value for users implementing the system.

modules/reference/pages/properties/broker-properties.adoc (2)

89-89: Verify Schema Registry API port change: 8082 → 8081.

The example on line 89 shows Schema Registry API port changed from 8082 to 8081. This is a significant change that affects:

  • User-facing documentation examples
  • Documentation accuracy for deployments
  • Consistency with actual Redpanda defaults

Confirm this port change:

  1. Reflects the actual current default in Redpanda
  2. Is not a breaking change from previous versions
  3. Is intentional and not a documentation error

47-47: Include directives for property partials follow consistent pattern.

Lines 47, 97, and 131 use consistent include directives with appropriate category tags and filtering:

include::reference:partial$properties/broker-properties.adoc[tags=category-redpanda,!deprecated,!exclude-from-docs]

This pattern enables:

  • Modular content organization by category
  • Automatic exclusion of deprecated properties
  • Hiding internal/exclude-from-docs properties
  • Future updates without touching main property pages

Also applies to: 97-97, 131-131

.github/workflows/update-property-docs.yaml (6)

23-27: Verify GitHub Organization variables and secrets are properly configured.

The AWS role ARN is constructed from GitHub variables and secrets. Ensure that RP_AWS_CRED_REGION, RP_AWS_CRED_ACCOUNT_ID, and RP_AWS_CRED_BASE_ROLE_NAME are properly configured in your GitHub Organization settings to prevent workflow failures.


36-40: Checkout configuration is appropriate.

Using a separate bot token for authentication is a security best practice. The main branch checkout is correct for this automation workflow.


42-48: Node.js and dependency setup is appropriate.

Using Node.js v20 and npm ci follows CI/CD best practices for reproducible builds.


50-60: Tag determination logic is correct and defensive.

The step properly prioritizes workflow inputs and falls back to repository dispatch payload, with explicit error handling for missing tags.


85-96: Doc generation step is properly configured with error handling.

The set -euo pipefail ensures the step fails on any error, and the doc-tools invocation passes all necessary arguments including tag, generation flags, and overrides file path.


98-108: PR creation step is well-configured with appropriate metadata.

The pull request is created with clear commit messages, titles, and labels for easy identification and automation. The branch naming includes the tag for traceability.

modules/reference/pages/properties/topic-properties.adoc (3)

13-15: Topic property mappings include is appropriately placed.

The new section with the topic-property-mappings.adoc partial is well-organized and placed before property categories for logical flow. Ensure the referenced partial file exists and contains valid xref anchors matching any cross-references in the documentation.


18-51: Category-based filtering approach is well-structured and maintainable.

The consistent use of category-based tags with negative filters for deprecated and excluded content is an effective pattern for managing auto-generated documentation. Each section clearly indicates which properties it covers, making the structure easy to understand and maintain.


15-15: Verify that auto-generated partials exist with correct structure and anchors.

The topic-properties page now depends on two auto-generated partial files:

  1. modules/reference/partials/properties/topic-property-mappings.adoc — for topic-to-cluster property mappings
  2. modules/reference/partials/properties/topic-properties.adoc — for categorized topic properties with tags

Per the learning note, ensure that property xref cross-references (e.g., <<max.compaction.lag.ms>>) have corresponding anchors in the partial (e.g., [[maxcompactionlagms]]) to prevent broken links. Also verify that all required category tags are applied in the properties partial.

Also applies to: 22-22, 28-28, 34-34, 40-40, 46-46

@JakeSCahill JakeSCahill merged commit 55e6c6d into main Nov 25, 2025
5 checks passed
@JakeSCahill JakeSCahill deleted the config-automation branch November 25, 2025 09:41
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.

3 participants