Skip to content

DOCS-3100: Add a template for resource reference pages - #3183

Open
ctauchen wants to merge 5 commits into
tigera:mainfrom
ctauchen:docs-3100-resource-template
Open

ctauchen wants to merge 5 commits into
tigera:mainfrom
ctauchen:docs-3100-resource-template

Conversation

@ctauchen

@ctauchen ctauchen commented Nov 5, 2026 •

Copy link
Copy Markdown
Collaborator

Adds a template for resource reference pages, so that every page in reference/resources/ has the same sections, in the same order, with the same table columns. The 98 existing pages use 16 table layouts, 25 wordings for the definition heading, three ways to mark a required field, and six layouts for the supported operations table.

Jira: https://tigera.atlassian.net/browse/DOCS-3100

Changes:

  • contributors/content-types/templates/resource.mdx, the template. The lead paragraph says whether the resource is cluster-scoped or namespaced and who creates it. Every field table has the columns Field, Description, Accepted Values, Schema, Default. Nested type headings use the Go type name. Behavior sections come after Definition. There is no Supported operations table: the lead paragraph says what the reader can't do with the resource.
  • Three Calico Open Source pages converted to the template and set to content_type reference, as worked examples that show the scale of change for the remaining pages: ipreservation (small), ippool (behavior sections), and bgppeer (nested types). The conversions change structure, and they add the sentences the template requires. The field tables are untouched.

New claims on the converted pages, and what they were checked against:

  • Each resource is cluster-scoped: CRD scope at every published version.
  • The metadata name rule (DOCS-3107 wording): the libcalico-go v3 validator.
  • Which resources each selector field selects over: the CRD field descriptions.
  • The IP pool status conditions: Allocatable with OK, PoolDisabled, and CIDROverlap were read off a kind cluster running 3.33 in native v3 CRD mode. Terminating and AddressSpaceNearlyFull come from the kube-controllers source at master.
  • The kubectl aliases: run on a kind cluster with Calico 3.31. All resolve. The resource name is case-insensitive but the group is not, so the sentence no longer says "case-insensitive". The 48 pages in the next trees with that wording, plus their versioned copies, are a follow-up noted on DOCS-3107.
  • contributors/content-types/templates/reference.mdx points at the resource template.
  • calico/reference/configure-calico-node.mdx links to the renamed selector anchor on the IP pool page.

Preview:

@ctauchen
ctauchen requested a review from a team as a code owner November 5, 2026 15:53
Copilot AI lite review requested due to automatic review settings November 5, 2026 15:53
@netlify

netlify Bot commented Nov 5, 2026 •

Copy link
Copy Markdown

👷 Deploy request for calico-docs-preview-next pending review.

Visit the deploys page to approve it

Name Link
🔨 Latest commit ea9a6b3

@netlify

netlify Bot commented Nov 5, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview succeeded!

Built without sensitive environment variables

Name Link
🔨 Latest commit ea9a6b3
🔍 Latest deploy log https://app.netlify.com/projects/tigera/deploys/6af7293ee1cdbed63ac7a6c7
😎 Deploy Preview https://deploy-preview-3183--tigera.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
1 paths audited
Performance: 90 (no change from production)
Accessibility: 98 (no change from production)
Best Practices: 92 (no change from production)
SEO: 100 (no change from production)
PWA: -
View the detailed breakdown and full score reports
🤖 Make changes Run an agent on this branch

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

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

Four unresolved documentation and template issues leave the agent guidance incomplete and the reference-page templates grammatically unfinished.

4 open issues
What changed in this PR

Adds a standardized resource-reference template and converts the IPReservation, IPPool, and BGPPeer pages to demonstrate the new structure. It also adds contributor guidance, supporting content templates, agent instructions, and updates an IPPool selector link.

Changes:

  • Adds contributor documentation and templates for documentation content types.
  • Introduces the resource-reference template with consistent sections and field tables.
  • Converts three Calico resource-reference pages to the new format.
  • Updates selector-anchor references and agent guidance.
File Summary
contributors/​style-guide.md Adds contributor style-guide guidance.
contributors/​README.md Adds navigation for contributor documentation and templates.
contributors/​content-types/​templates/​tutorial.mdx Adds the tutorial template.
contributors/​content-types/​templates/​troubleshooting.mdx Adds the troubleshooting template.
contributors/​content-types/​templates/​resource.mdx Adds the standardized resource-reference template.
contributors/​content-types/​templates/​reference.mdx Adds the general reference template and resource-template guidance.
contributors/​content-types/​templates/​installation-guide.mdx Adds the installation-guide template.
contributors/​content-types/​templates/​how-to.mdx Adds the how-to template.
contributors/​content-types/​templates/​explanation.mdx Adds the explanation template.
contributors/​content-types/​content-types.md Documents available content types and their intended uses.
CLAUDE.md Points agents to repository instructions.
calico/​reference/​resources/​ipreservation.mdx Converts the IPReservation page to the resource-reference structure.
calico/​reference/​resources/​ippool.mdx Converts the IPPool page and updates behavior and selector sections.
calico/​reference/​resources/​bgppeer.mdx Converts the BGPPeer page with nested type sections and standardized tables.
calico/​reference/​configure-calico-node.mdx Updates the IPPool selector anchor link.
AGENTS.md Adds guidance for selecting content types and templates.

This pull request is too complex or risky for automated approval.

Review effort: Lite

Comment thread AGENTS.md Resolved
Comment thread AGENTS.md Resolved
@ctauchen
ctauchen force-pushed the docs-3100-resource-template branch from 003ecfd to fa4b205 Compare November 5, 2026 16:40
The resource pages use 16 table layouts, 25 wordings for the definition heading, three ways to mark a required field, and six layouts for the supported operations table. The template fixes one structure: a lead paragraph that gives the scope and the owner, a sample manifest, a Definition section with Metadata, Spec, nested types, and Status, behavior sections after it, and additional resources. Every table has the same five columns. There is no supported operations table; the lead paragraph says what the reader can't do.

Converts three Calico Open Source pages as worked examples: IP reservation, IP pool, and BGP peer. The conversions change structure and the metadata name rule, not the facts on the page.
kubectl lowercases the resource name in an alias but not the group,
so the aliases aren't case-insensitive. Drop the word on the three
converted pages and in the template, and say why in the template.
Finish the two sentences that stopped at "describes."
@ctauchen
ctauchen force-pushed the docs-3100-resource-template branch from fa4b205 to 263c918 Compare November 12, 2026 15:41
The list of types was a copy of content-types.md and would drift
from it as types are added. Keep the list in one place.
FelixConfiguration renders its Spec from generated JSON, so it can't
use the field table. StagedKubernetesNetworkPolicy inherits its fields
from a Kubernetes type. Shared includes own their headings and anchors
across products. The overview and index pages aren't resource pages.
Say so in the template, so the remaining conversions don't fight it.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

Approval is blocked by two active issues: the IPPool page lacks the required status schema, and the resource template renders an unimported Selectors component that can break builds.

2 open issues
4 resolved since last review

Review effort: Lite


### Selector

<Selectors />
```

## IP pool definition
## Definition
Copilot pointed out that the IP pool page mentions the Allocatable
condition but has no Status section, which the template requires. Add
one. The conditions come from kube-controllers in native v3 CRD mode
only, so say so. Allocatable with OK, PoolDisabled, and CIDROverlap
were checked on a kind cluster running 3.33 in that mode.

The template rendered Selectors without importing it, so a copied page
would not build. Add the import with guidance.
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.

2 participants