diff --git a/.gitignore b/.gitignore index 04cabca..5e23d33 100644 --- a/.gitignore +++ b/.gitignore @@ -20,4 +20,8 @@ docs/community/sigs.md # Guide content (from llm-d-incubation/llm-d-infra repo) docs/guide/guide.md -docs/guide/Installation/ \ No newline at end of file +docs/guide/Installation/*.md +docs/guide/InfraProviders/*.md +# Keep category files for sidebar configuration +!docs/guide/Installation/_category_.json +!docs/guide/InfraProviders/_category_.json \ No newline at end of file diff --git a/docs/guide/InfraProviders/_category_.json b/docs/guide/InfraProviders/_category_.json new file mode 100644 index 0000000..476e3d6 --- /dev/null +++ b/docs/guide/InfraProviders/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Infrastructure Providers", + "position": 3, + "collapsible": true, + "collapsed": false +} + diff --git a/docs/guide/Installation/_category_.json b/docs/guide/Installation/_category_.json new file mode 100644 index 0000000..59af8e5 --- /dev/null +++ b/docs/guide/Installation/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Installation", + "position": 2, + "collapsible": true, + "collapsed": false +} + diff --git a/remote-content/remote-content.js b/remote-content/remote-content.js index fe876c5..7fe3247 100644 --- a/remote-content/remote-content.js +++ b/remote-content/remote-content.js @@ -13,6 +13,9 @@ import componentSources from './remote-sources/architecture/components-generator // Import guide remote content sources import guideSources from './remote-sources/guide/guide-generator.js'; +// Import infra providers remote content sources +import infraProviderSources from './remote-sources/infra-providers/infra-providers-generator.js'; + /** * Remote Content Plugin System * @@ -45,6 +48,9 @@ const remoteContentPlugins = [ // Guide remote content sources (docs/guide/) ...guideSources, // Spread all dynamically generated guide sources + // Infra Providers remote content sources (docs/infra-providers/) + ...infraProviderSources, // Spread all dynamically generated infra provider sources + // Add more remote sources here in the appropriate section above ]; diff --git a/remote-content/remote-sources/architecture/components-generator.js b/remote-content/remote-sources/architecture/components-generator.js index 60b2cea..41f8f01 100644 --- a/remote-content/remote-sources/architecture/components-generator.js +++ b/remote-content/remote-sources/architecture/components-generator.js @@ -98,8 +98,8 @@ The llm-d ecosystem consists of multiple interconnected components that work tog ## Components -| Component | Description | Repository | Documentation | -|-----------|-------------|------------|---------------|`; +| Component | Description | Repository | Version | Documentation | +|-----------|-------------|------------|---------|---------------|`; // Generate single table with all components (sorted by sidebarPosition) const sortedComponents = [...componentsData.components].sort((a, b) => a.sidebarPosition - b.sidebarPosition); @@ -112,7 +112,12 @@ The llm-d ecosystem consists of multiple interconnected components that work tog ).join(' '); const docLink = `./Components/${cleanName}`; - content += `\n| **[${cleanTitle}](${repoUrl})** | ${component.description} | [${component.org}/${component.name}](${repoUrl}) | [View Docs](${docLink}) |`; + // Create version link to GitHub releases + const versionTag = component.version || 'latest'; + const versionUrl = `${repoUrl}/releases/tag/${versionTag}`; + const versionLink = `[${versionTag}](${versionUrl})`; + + content += `\n| **[${cleanTitle}](${repoUrl})** | ${component.description} | [${component.org}/${component.name}](${repoUrl}) | ${versionLink} | [View Docs](${docLink}) |`; }); content += ` diff --git a/remote-content/remote-sources/components-data.yaml b/remote-content/remote-sources/components-data.yaml index 49d910b..d75f185 100644 --- a/remote-content/remote-sources/components-data.yaml +++ b/remote-content/remote-sources/components-data.yaml @@ -2,15 +2,15 @@ # This file contains static data for generating the Components documentation page # Update this file when there are new releases or component changes # -# Last synced from: https://github.com/llm-d/llm-d/releases/tag/v0.3.0 -# Sync date: 2025-10-15T19:26:57.592Z +# Last synced from: https://github.com/llm-d/llm-d/releases/tag/v0.3.1 +# Sync date: 2025-11-11T15:13:04.200Z release: - version: v0.3.0 - releaseDate: '2025-10-10' - releaseDateFormatted: October 10, 2025 - releaseUrl: https://github.com/llm-d/llm-d/releases/tag/v0.3.0 - releaseName: v0.3.0 + version: v0.3.1 + releaseDate: '2025-11-06' + releaseDateFormatted: November 6, 2025 + releaseUrl: https://github.com/llm-d/llm-d/releases/tag/v0.3.1 + releaseName: v0.3.1 Release components: - name: llm-d-inference-scheduler org: llm-d @@ -35,7 +35,7 @@ components: description: A light weight vLLM simulator emulates responses to the HTTP REST endpoints of vLLM. category: Development Tools sidebarPosition: 4 - version: v0.5.1 + version: v0.6.1 - name: llm-d-infra org: llm-d-incubation description: A helm chart for deploying gateway and gateway related infrastructure assets for llm-d. diff --git a/remote-content/remote-sources/infra-providers/infra-providers-generator.js b/remote-content/remote-sources/infra-providers/infra-providers-generator.js new file mode 100644 index 0000000..0a66cef --- /dev/null +++ b/remote-content/remote-sources/infra-providers/infra-providers-generator.js @@ -0,0 +1,99 @@ +/** + * Dynamic Infra Providers Generator + * + * Automatically discovers and generates infrastructure provider pages from the llm-d repository. + * This syncs provider-specific documentation for deploying llm-d on different infrastructure. + * + * Infra provider docs are synced from the specific release version defined in components-data.yaml, + * not from the main branch. This ensures documentation matches the released version. + */ + +import { createContentWithSource } from '../utils.js'; +import { findRepoConfig, RELEASE_INFO } from '../component-configs.js'; +import { getRepoTransform } from '../repo-transforms.js'; + +// Get repository configuration for the main llm-d repo +const repoConfig = findRepoConfig('llm-d'); + +// Use the release version from YAML instead of the branch +const releaseVersion = RELEASE_INFO.version; +const repoUrl = `https://github.com/${repoConfig.org}/${repoConfig.name}`; +const sourceBaseUrl = `https://raw.githubusercontent.com/${repoConfig.org}/${repoConfig.name}/${releaseVersion}/`; + +// Create a custom transform that uses the release version instead of 'main' +const transform = getRepoTransform(repoConfig.org, repoConfig.name); +const contentTransform = (content, sourcePath) => transform(content, { + repoUrl, + branch: releaseVersion, // Use release version, not 'main' + org: repoConfig.org, + name: repoConfig.name, + sourcePath +}); + +/** + * Configuration for infrastructure providers + * These are the provider-specific README.md files in docs/infra-providers/ + * with their descriptive titles and sidebar positions + */ +const INFRA_PROVIDERS = [ + { + dirName: 'aks', + title: 'Azure Kubernetes Service', + description: 'Deploy llm-d on Azure Kubernetes Service', + sidebarPosition: 1 + }, + { + dirName: 'digitalocean', + title: 'DigitalOcean Kubernetes Service (DOKS)', + description: 'Deploy llm-d on DigitalOcean Kubernetes Service (DOKS)', + sidebarPosition: 2 + } +]; + +/** + * Create plugin configurations for all infra providers + */ +function createInfraProviderPlugins() { + const plugins = []; + + // Add individual provider pages + INFRA_PROVIDERS.forEach((provider) => { + const sourceFile = `docs/infra-providers/${provider.dirName}/README.md`; + + plugins.push([ + 'docusaurus-plugin-remote-content', + { + name: `infra-provider-${provider.dirName}`, + sourceBaseUrl, + outDir: 'docs/guide/InfraProviders', + documents: [sourceFile], + noRuntimeDownloads: false, + performCleanup: true, + + modifyContent(filename, content) { + if (filename === sourceFile) { + return createContentWithSource({ + title: provider.title, + description: provider.description, + sidebarLabel: provider.title, + sidebarPosition: provider.sidebarPosition, + filename: sourceFile, + newFilename: `${provider.dirName}.md`, + repoUrl, + branch: releaseVersion, + content, + contentTransform + }); + } + return undefined; + }, + }, + ]); + }); + + return plugins; +} + +// Export all infra provider plugins +export default createInfraProviderPlugins(); +