Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -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/
docs/guide/Installation/*.md
docs/guide/InfraProviders/*.md
# Keep category files for sidebar configuration
!docs/guide/Installation/_category_.json
!docs/guide/InfraProviders/_category_.json
7 changes: 7 additions & 0 deletions docs/guide/InfraProviders/_category_.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"label": "Infrastructure Providers",
"position": 3,
"collapsible": true,
"collapsed": false
}

7 changes: 7 additions & 0 deletions docs/guide/Installation/_category_.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"label": "Installation",
"position": 2,
"collapsible": true,
"collapsed": false
}

6 changes: 6 additions & 0 deletions remote-content/remote-content.js
Original file line number Diff line number Diff line change
Expand Up @@ -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
*
Expand Down Expand Up @@ -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
];

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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 += `
Expand Down
16 changes: 8 additions & 8 deletions remote-content/remote-sources/components-data.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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.
Expand Down
Original file line number Diff line number Diff line change
@@ -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();