Skip to content

Opt-in property tooltips through the prop macro - #1896

Draft
JakeSCahill wants to merge 4 commits into
DOC-887-registry-adoptionfrom
DOC-887-prop-macro-adoption
Draft

Opt-in property tooltips through the prop macro#1896
JakeSCahill wants to merge 4 commits into
DOC-887-registry-adoptionfrom
DOC-887-prop-macro-adoption

Conversation

@JakeSCahill

@JakeSCahill JakeSCahill commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

In plain English

This flips property tooltips from "the UI guesses what's a property" to "writers say so and the build verifies it." Every genuine property mention in hand-written prose (647 of them) is now explicitly marked with the prop: macro, each name validated against the published property data at build time -- and the five property names that are ordinary English words (admin, brokers, rack, retries, superusers) are deliberately left unmarked, because those are exactly the ones that produced wrong tooltips on Helm and Kubernetes pages. The old config_ref macro is gone from current content: it never checked names and displayed a tiered-storage Helm path on every property on Kubernetes pages, so the live site showed storage.tiered.config.log_segment_size for a setting whose documented home is config.cluster. Its replacement derives the correct path per property. The conversion also caught real rot: a table still documenting a property that no longer exists in Redpanda, and raw macro text leaking into tooltip descriptions from the published JSON -- both fixed here.

Full explainer for the team: macros/PROPERTY_AND_ENTERPRISE_REFERENCES.adoc in docs-extensions-and-macros#254.

Description

Companion to redpanda-data/docs-extensions-and-macros#254 (the prop: macro) and redpanda-data/docs-ui#415 (the UI cutover). Stacked on #1895draft until docs-extensions-and-macros 5.7.0 publishes and the docs-ui bundle with #415 releases.

Property tooltips currently decorate every inline code element matching a property name. The published JSON has 5 separator-free names (admin, brokers, rack, retries, superusers) that are common words in Helm/Kubernetes contexts — admin gets a broker-property tooltip where it means an audit-logging value in the Helm chart.

  • Registers the prop: macro with property-validate: warn — targets are validated at build time against the published redpanda-properties-<tag>.json (the same attachment the tooltips fetch).
  • Applies the one-time codemod: 647 mentions across 86 hand-written files become prop:name[]. Autogenerated content (rpk pages, k-crd, Helm specs, property partials) untouched; the 5 ambiguous names deliberately left as plain code — writers can mark them explicitly where they really mean the property.
  • Cross-component behavior (per review discussion): the macro's links are component-relative and discovered — it indexes which reference page in the current component documents each property by scanning the included partials (respecting tags=redpanda-cloud filters), so cloud/adp/connect pages link to their own property pages, and links keep working if the property reference is ever split across new pages. config_scope is only the deterministic fallback.

Validation

Full local Antora build against a packed 5.7.0 tarball: exit 0, zero unknown-property warnings (every converted name validates), spot-checked pages render data-property-name markers (51 on disk-utilization alone, including dotted topic properties).

Merge order

  1. docs-extensions-and-macros Clarify that we do not support autoscalers #249 → #253 → UBB - Private Offers for Dedicated #251Update minimum subnet ip range #254 (publishes 5.7.0)
  2. docs-ui fix diagram #413Fix broker properties: suggestions for descriptions #415 (bundle release)
  3. docs Move the shared component to a folder on main and add the enterprise features registry #1892Generate the licensing feature tables from the enterprise features registry #1895 → this PR

The UI cutover (#415) and this PR should land close together: between them, tooltips are absent from prose (opt-in markers exist but the old bundle ignores them — harmless), never wrong.

Update — config_ref replaced too. All 147 hand-written config_ref calls are converted to prop calls with helm-path=auto. This fixes a live mislabeling: config_ref prefixed every property with storage.tiered.config. on Kubernetes renders, so the k-tiered-storage page showed storage.tiered.config.log_segment_size — the per-property derivation now displays config.cluster.log_segment_size there while genuine tiered properties keep storage.tiered.config.*. Two manual fixes rode along: a single-use {config-ref} attribute indirection is inlined, and the table row for cloud_storage_reconciliation_interval_ms is removed (the property no longer exists in Redpanda — caught by the macro's JSON validation). config_ref now appears only inside the generated property partials, pending a property-extractor follow-up.

Property tooltips previously decorated every inline code element whose
text matched a property name, so ambiguous words such as admin, brokers,
rack, retries, and superusers picked up tooltips in unrelated contexts
(the admin listener in Helm values, audit-logging settings).

Registers the prop macro with property-validate: warn and applies the
one-time migration (doc-tools generate migrate-property-refs): 647
property mentions across 86 hand-written files become prop:name[]
macros, validated against the published redpanda-properties JSON.
Autogenerated content (rpk pages, CRD and Helm specs, property
partials) is untouched, and the five ambiguous separator-free names are
deliberately left as plain code.
@coderabbitai

coderabbitai Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

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.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 5dd291c6-4ce6-435f-861a-6ba67f284016

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

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

The config_ref macro prefixed every property with storage.tiered.config
on Kubernetes pages, which mislabels non-tiered properties: the chart's
documented home for general cluster properties is config.cluster (the
docs recommend it for all cluster properties, including Tiered Storage
ones). Its manual path argument is also redundant now that the prop
macro discovers reference pages dynamically.

All 147 hand-written config_ref calls become prop calls with
helm-path=auto, which derives the per-property correct Helm values path
on env-kubernetes renders: storage.tiered.config.* stays for tiered
storage properties (matching the k-tiered-storage examples), broker
properties map to config.node.*, and other cluster properties now
correctly display config.cluster.* instead of storage.tiered.config.*.

Two manual fixes on top of the codemod: a single-use {config-ref}
attribute indirection is inlined, and the table row for
cloud_storage_reconciliation_interval_ms is removed because that
property no longer exists in Redpanda (the row already said Deprecated;
the macro validation caught that the name is absent from the published
JSON).

config_ref remains only inside the generated property partials until
the property extractor emits prop macros itself.
… published JSON

Converts the config_ref calls in docs-data/property-overrides.json (the
source the extractor merges into descriptions), the current generated
partials, and the published property JSON attachments to prop macro
calls, matching what the fixed property extractor now emits on
regeneration. The attachment conversion also fixes tooltips that showed
raw config_ref macro text in the descriptions of properties such as
delete.retention.ms.

No config_ref call sites remain anywhere in current content. The macro
stays registered only for older version branches, which still contain
it in their generated partials.
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.

1 participant