Add unified resources catalog page at /resources - #4711
Conversation
Introduce a single authoritative discovery page listing every resource across Chef Infra Client and Chef InSpec, with a compatibility matrix, SEO-friendly descriptions, and links to each product's documentation. The page reuses the existing data-driven resource pipeline: it reads the canonical Chef Infra Client resource YAML (data/client/19/resources) at build time and a committed InSpec snapshot (data/resources/inspec.yaml) generated from the inspec/inspec docs. Version-specific resource pages are unchanged and continue to list only resources introduced in each release. - content/resources/_index.md: new top-level page (nav via front matter) - layouts/_default/resources_matrix.html: 4-column matrix (adapted from infra_resources_all.html) - layouts/partials/resource_short_desc.html: first-sentence descriptions - data/resources/inspec.yaml: committed InSpec resource snapshot - netlify.toml: document /resources/* redirect (non-forced; the new page is served while legacy deep links still redirect) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
✅ Deploy Preview for chef-web-docs ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
There was a problem hiding this comment.
Pull request overview
This PR introduces a new top-level Resources hub at /resources/ that serves as a unified discovery/catalog page for resources across Chef Infra Client and Chef InSpec, rendering a compatibility matrix from existing Infra YAML plus a committed InSpec snapshot.
Changes:
- Adds
content/resources/_index.mdand a newresources_matrixlayout to render a unified resources compatibility matrix. - Introduces
data/resources/inspec.yamlas a snapshot-backed data source for Chef InSpec resource metadata. - Documents
/resources/*redirect behavior innetlify.tomland adds a helper partial to shorten descriptions in the matrix.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| netlify.toml | Adds documentation comments for the /resources/* redirect intended to preserve legacy deep links while serving the new hub page. |
| layouts/partials/resource_short_desc.html | New partial to derive a short (first-sentence) description for table cells. |
| layouts/_default/resources_matrix.html | New layout that merges Infra YAML and InSpec snapshot data into a unified compatibility matrix with outbound links. |
| data/resources/inspec.yaml | Adds a committed snapshot of the InSpec resource catalog (name → platform/description/deprecated). |
| content/resources/_index.md | New /resources/ content page wiring in the layout, data path, and Overview navigation entry. |
| deprecated: false | ||
| bond: | ||
| platform: "linux" | ||
| description: "Use the `bond` Chef InSpec audit resource to test a logical, bonded network interface (i.e." |
| # The unified resources catalog is a real page at /resources/ (content/resources/_index.md). | ||
| # This rule is non-forced (status 301), so Netlify serves the generated /resources/index.html | ||
| # for the bare path and only applies this redirect to legacy per-resource deep links | ||
| # (for example, /resources/apt_package/), sending them to the Chef Infra Client resource page. |
…source packs - Reparent the page under the Packages & Platforms menu as 'Supported resources', matching the Supported versions and Supported platforms pages. - Fix Chef InSpec resource links: point to /inspec/7.1/resources/core/<name>/ (the pre-existing /inspec/latest/resources/ links 404 after the InSpec 7 docs restructure). Pin the version via an inspec_version variable in the layout. - Trim data/resources/inspec.yaml to the 130 Chef InSpec core resources. As of Chef InSpec 7, cloud and platform resources are no longer part of core. - Add data/resources/inspec_packs.yaml and a grouped 'Chef InSpec resource packs' table (AWS, Azure, GCP, Docker, Kubernetes, and more) that links to each pack's landing page instead of listing hundreds of individual resources. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
I'm inclined to close this for these reasons:
A better path is to add a "Matching InSpec resources" heading in the Infra resources that lists matching InSpec resources and supporting InSpec versions. This runs up against problem number one above, which is, how will this be maintained and verified. An even better path is to improve the docs generation script in chef/chef so it's more accurate and requires less manual editing around each release and possibly improve the source resources code with better code examples and supporting text for the same reason. |
Summary
Introduces a single, authoritative Resources discovery page at
docs.chef.io/resourcesthat lists every resource across Chef Infra Client and Chef InSpec, with a compatibility matrix, SEO-friendly descriptions, and links to each product's documentation.Today,
/resourcesis only a redirect to the Infra bundled pages, and resources are documented per product and per release with no unified view. This page provides that unified catalog without replacing the existing version-specific documentation — release pages continue to list only the resources introduced in each version.What's included
content/resources/_index.md— top-level hub, registered in the Overview nav via page front matter (same pattern asplatforms.md/versions.md; nomenu.tomlchange).layouts/_default/resources_matrix.html— adapted from the existinginfra_resources_all.html. Merges the canonical Infra resource YAML (data/client/19/resources) with a committed InSpec snapshot into one 4-column compatibility matrix (Resource | Chef Infra Client | Chef InSpec | Description). Checkmark cells link to each product's authoritative page.layouts/partials/resource_short_desc.html— trims descriptions to the first sentence so cells stay scannable and SEO-friendly.data/resources/inspec.yaml— a committed snapshot of the InSpec resource catalog (name → platform, description, deprecated), generated once frominspec/inspec. InSpec docs are deployed as a separate site and aren't built from this repo, so a snapshot is the least-coupled way to include them.netlify.toml— documents the/resources/*redirect. It's non-forced (301), so Netlify serves the generated/resources/index.htmlfor the hub while legacy per-resource deep links (for example/resources/apt_package/) still redirect to the Infra resource page.Data of record
Chef Infra Client resources: 181 · Chef InSpec resources: 407 · Supported by both: 16 · Total catalog: 572.
Design rationale
Validation
raw HTML omitted/ZgotmplZ.markdownlint-cli2: 0 issues.vale --minAlertLevel warning: 0 errors/warnings.hugo_lint.shASCII rule: new content and data files are ASCII-clean.Reviewer notes
netlify.tomlredirect. Behavior relies on Netlify's file-precedence for non-forced redirects. Please confirm on a deploy preview that/resources/renders the new page and/resources/apt_package/still redirects.data/resources/inspec.yamlfor the source and how to regenerate.Intentionally out of scope (follow-ups)