Skip to content

feat: Add v0.6 documentation content and update documentation build c…#71

Merged
KUASWoodyLIN merged 1 commit intomainfrom
starlight-versions-plugins
Mar 3, 2026
Merged

feat: Add v0.6 documentation content and update documentation build c…#71
KUASWoodyLIN merged 1 commit intomainfrom
starlight-versions-plugins

Conversation

@KUASWoodyLIN
Copy link
Copy Markdown
Contributor

…onfiguration.

Copilot AI review requested due to automatic review settings March 3, 2026 08:40
@KUASWoodyLIN KUASWoodyLIN requested a review from iasthc as a code owner March 3, 2026 08:40
@KUASWoodyLIN KUASWoodyLIN merged commit 0caee2b into main Mar 3, 2026
3 checks passed
@KUASWoodyLIN KUASWoodyLIN deleted the starlight-versions-plugins branch March 3, 2026 08:41
@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly expands the project's documentation by introducing a dedicated section for version v0.6 of OtterScale. It establishes a versioning system for the documentation site and adds a wealth of new content, ranging from initial setup and core infrastructure management to advanced application deployment and AI/ML model operations. The changes ensure that users have comprehensive and version-specific guides for interacting with the OtterScale platform.

Highlights

  • Documentation Versioning: Integrated the starlight-versions plugin into the Astro configuration and added a new versions content collection to enable multi-version documentation support.
  • New v0.6 Documentation Content: Added extensive new documentation for version v0.6 of OtterScale, covering prerequisites, installation, scope management, basic machine and networking configurations, and detailed guides for various services and application demos.
  • Dependency Updates: Updated package.json and pnpm-lock.yaml to include the new starlight-versions dependency and reflect other transitive package changes, ensuring compatibility and proper build processes.
  • Comprehensive Service Guides: Introduced detailed guides for managing Kubernetes workloads, services, secrets, application store, virtual machines, AI/ML models, container repositories, and various storage solutions including Ceph OSDs, pools, block devices, file systems, SMB, and object storage.
  • Application Demos: Provided step-by-step demonstration guides for deploying and managing virtual machines, Coder, JupyterHub, LLM models, PostgreSQL, custom Helm charts, and aiDAPTIVCache operators, finetuning, and inference services.
Changelog
  • astro.config.mjs
    • Imported starlightVersions plugin.
    • Configured starlightVersions plugin with v0.6 slug.
  • package.json
    • Added starlight-versions dependency at version 0.7.0.
  • pnpm-lock.yaml
    • Updated dependency resolutions to include starlight-versions.
    • Added yaml dependency and updated various package hashes and dependencies to reflect the new additions.
  • src/content.config.ts
    • Imported docsVersionsLoader from starlight-versions/loader.
    • Added a new versions collection using docsVersionsLoader.
  • src/content/docs/v0.6/basic/configuration/01-ntp-server.mdx
    • Added new documentation for NTP Server configuration.
  • src/content/docs/v0.6/basic/configuration/02-boot-image.mdx
    • Added new documentation for Boot Image configuration.
  • src/content/docs/v0.6/basic/configuration/03-machine-tag.mdx
    • Added new documentation for Machine Tag configuration.
  • src/content/docs/v0.6/basic/configuration/04-package-repository.mdx
    • Added new documentation for Package Repository configuration.
  • src/content/docs/v0.6/basic/machines.mdx
    • Added new documentation for managing Machines.
  • src/content/docs/v0.6/basic/networking.mdx
    • Added new documentation for managing Networking.
  • src/content/docs/v0.6/create-scope.md
    • Added new documentation for managing Scopes.
  • src/content/docs/v0.6/demos/01-virtual-machine.mdx
    • Added new documentation for Virtual Machine demo.
  • src/content/docs/v0.6/demos/02-coder.mdx
    • Added new documentation for Coder demo.
  • src/content/docs/v0.6/demos/03-jupyterhub.mdx
    • Added new documentation for JupyterHub demo.
  • src/content/docs/v0.6/demos/04-llm-model.mdx
    • Added new documentation for LLM Model demo.
  • src/content/docs/v0.6/demos/05-postgres.mdx
    • Added new documentation for PostgreSQL demo.
  • src/content/docs/v0.6/demos/06-create-helm-chart.mdx
    • Added new documentation for Create Helm Chart demo.
  • src/content/docs/v0.6/demos/07-aidaptivcache-operator.mdx
    • Added new documentation for aiDAPTIVCache Operator demo.
  • src/content/docs/v0.6/demos/08-aidaptivcache-finetune.mdx
    • Added new documentation for aiDAPTIVCache Finetune demo.
  • src/content/docs/v0.6/demos/09-aidaptivcache-inference.mdx
    • Added new documentation for aiDAPTIVCache Inference demo.
  • src/content/docs/v0.6/getting-started/01-prerequisites.mdx
    • Added new documentation for Getting Started Prerequisites.
  • src/content/docs/v0.6/getting-started/02-installation.mdx
    • Added new documentation for Getting Started Installation.
  • src/content/docs/v0.6/getting-started/03-scope.mdx
    • Added new documentation for Getting Started Scope management.
  • src/content/docs/v0.6/guides/example.md
    • Added a new example guide page.
  • src/content/docs/v0.6/index.mdx
    • Added the main index page for v0.6 documentation.
  • src/content/docs/v0.6/introduction.mdx
    • Added the introduction page for v0.6 documentation.
  • src/content/docs/v0.6/reference/example.md
    • Added a new example reference page.
  • src/content/docs/v0.6/service/applications/01-workloads.mdx
    • Added new documentation for Applications Workloads.
  • src/content/docs/v0.6/service/applications/02-services.mdx
    • Added new documentation for Applications Services.
  • src/content/docs/v0.6/service/applications/03-secrets.mdx
    • Added new documentation for Applications Secrets.
  • src/content/docs/v0.6/service/applications/04-store.mdx
    • Added new documentation for Applications Store.
  • src/content/docs/v0.6/service/compute.mdx
    • Added new documentation for Compute service.
  • src/content/docs/v0.6/service/models.mdx
    • Added new documentation for Models service.
  • src/content/docs/v0.6/service/repositories.mdx
    • Added new documentation for Repositories service.
  • src/content/docs/v0.6/service/settings/01-extensions.mdx
    • Added new documentation for Settings Extensions.
  • src/content/docs/v0.6/service/settings/02-built-in-test.mdx
    • Added new documentation for Settings Built-in Test.
  • src/content/docs/v0.6/service/settings/03-data-volume.mdx
    • Added new documentation for Settings Data Volume.
  • src/content/docs/v0.6/service/settings/04-instance-type.mdx
    • Added new documentation for Settings Instance Type.
  • src/content/docs/v0.6/service/settings/05-model-artifact.mdx
    • Added new documentation for Settings Model Artifact.
  • src/content/docs/v0.6/service/storage/01-osd.mdx
    • Added new documentation for Storage OSD.
  • src/content/docs/v0.6/service/storage/02-pool.mdx
    • Added new documentation for Storage Pool.
  • src/content/docs/v0.6/service/storage/03-block-device.mdx
    • Added new documentation for Storage Block Device.
  • src/content/docs/v0.6/service/storage/04-file-system.mdx
    • Added new documentation for Storage File System.
  • src/content/docs/v0.6/service/storage/05-smb.mdx
    • Added new documentation for Storage SMB.
  • src/content/docs/v0.6/service/storage/06-object.mdx
    • Added new documentation for Storage Object.
  • src/content/versions/v0.6.json
    • Created a new JSON file defining the sidebar navigation structure for v0.6 documentation.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces documentation for v0.6 and sets up versioning using starlight-versions. The changes are extensive, adding many new documentation files and updating configuration. My review focuses on ensuring the new documentation is clear, consistent, and correct. I've identified several areas for improvement, including inconsistencies in slugs and placeholders, typos in content and markdown syntax, and a couple of high-severity issues related to configuration that could break parts of the documentation. Addressing these points will enhance the quality and user-friendliness of the new documentation.


3. **Install the Operator**

* Find `aidaptivcache-inference` in the Store list
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

high

The instruction says to find aidaptivcache-inference in the Store list, but the chart being imported is aidaptivcache-operator. This appears to be an error and will cause confusion. The name should be aidaptivcache-operator to match the component being installed.

     * Find `aidaptivcache-operator` in the Store list

Comment on lines +115 to +119
{
"collapsed": false,
"items": [],
"label": "Symbol(StarlightOpenAPISidebarGroupsLabel)"
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

high

The label "Symbol(StarlightOpenAPISidebarGroupsLabel)" will be rendered literally in the sidebar, which is incorrect. This is likely due to an attempt to use a JavaScript Symbol in a static JSON file, where it is not supported. This will break the OpenAPI section of your documentation sidebar. You should remove this entry and, if needed, manually configure the sidebar for your OpenAPI documentation according to the starlight-versions and starlight-openapi plugin documentation.

---
title: NTP Server
description: Configure NTP server for OtterScale.
slug: v0.6/basicconfiguration/01-ntp-server
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

The slug v0.6/basicconfiguration/01-ntp-server is inconsistent with the directory structure basic/configuration. This could make URLs less intuitive and harder to maintain. For consistency, consider using a slug that mirrors the directory path. This pattern is repeated in other new documentation files within this PR.

slug: v0.6/basic/configuration/01-ntp-server

Comment on lines +20 to +22
<Card title="Available Subnets" icon="">
Overall utilization of IP address space across all subnets.
</Card>
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

The <Card> component has an empty icon="" attribute, which may cause rendering issues or display an unwanted placeholder. If no icon is intended, it's cleaner to remove the attribute. Alternatively, you could provide a relevant icon name, for example icon="mdi:ip-network-outline" for subnets. This pattern of empty icon attributes appears in several other new documentation files.

  <Card title="Available Subnets" icon="mdi:ip-network-outline">
    Overall utilization of IP address space across all subnets.
  </Card>


## Manage Networks

A Fabric represents a physical or logical L2 broadcast domain. Within each Fabric, you can define VLANs. Each VLAN containes one Subnet, which represent routable IP networks used for DHCP, PXE booting, and machine allocation.
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

There is a typo in the word "containes". It should be "contains".

A Fabric represents a physical or logical L2 broadcast domain. Within each Fabric, you can define VLANs. Each VLAN contains one Subnet, which represent routable IP networks used for DHCP, PXE booting, and machine allocation.

* Open your browser and go to:

```
<url>/scope/<scope-name>/service/data-volume
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

The documentation uses inconsistent placeholders for the base URL, such as <url>, <your-url>, and <cluster-host>. To improve clarity and consistency for users, it would be beneficial to standardize on a single, descriptive placeholder (e.g., <your-otterscale-url>) and perhaps define it at the beginning of the 'Demos' section.

shell: /bin/bash
chpasswd:
list: |
phison:phison_8299
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

The example cloud-config contains hardcoded credentials (phison:phison_8299). While this is for a demo, it's not a good practice to include default passwords in documentation. It's better to use placeholders and instruct the user to replace them with their own secure credentials.

         phison:<your-password>

---
title: LLM Model
description: Deploy and test LLM models integrated with OpenAI API.
slug: v0.6/demos/04-llm-model
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

There appears to be an inconsistency in the numbering and naming of the demo files. This file is named 04-llm-model.mdx with slug v0.6/demos/04-llm-model, but other files (e.g., 02-coder.mdx) link to the LLM Model demo as /demos/05-llm-model/ and PostgreSQL as /demos/04-postgres/. Please review the intended order and update the filenames, slugs, and internal links to ensure they are consistent.

* **Scope Name**: Enter a unique name for your scope.
* **Machine**: Select the physical machine to assign to this scope.
<Aside type="tip">
Hover over the info icon <span class="iconify" data-icon="ph:info" /> next to a machine
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

The syntax <span class="iconify" data-icon="ph:info" /> is not standard for rendering an icon in Starlight and will likely result in a broken icon. The documentation uses the <Icon> component elsewhere. Please use the correct component for consistency and proper rendering.

         Hover over the info icon <Icon name="ph:info" /> next to a machine

---
title: Workloads
description: Manage Kubernetes applications and workloads.
slug: v0.6/serviceapplications/01-workloads
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

The slug v0.6/serviceapplications/01-workloads is inconsistent with the directory structure service/applications. For better URL readability and consistency, consider changing it to match the file path.

slug: v0.6/service/applications/01-workloads

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR introduces the initial v0.6 documentation set for the site and wires up versioned docs support via starlight-versions, along with the required content collection and dependency updates.

Changes:

  • Add a new v0.6 docs tree (Getting Started, Basic, Service, Demos, etc.).
  • Add starlight-versions integration + versions content collection and a v0.6 version sidebar definition.
  • Update dependencies and lockfile to include starlight-versions (and related transitive deps).

Reviewed changes

Copilot reviewed 45 out of 47 changed files in this pull request and generated 18 comments.

Show a summary per file
File Description
src/content/versions/v0.6.json Adds v0.6 version sidebar configuration for Starlight/versions.
src/content/docs/v0.6/service/storage/06-object.mdx Adds v0.6 storage/object (RGW) documentation page.
src/content/docs/v0.6/service/storage/05-smb.mdx Adds v0.6 SMB share documentation page.
src/content/docs/v0.6/service/storage/04-file-system.mdx Adds v0.6 CephFS/NFS documentation page.
src/content/docs/v0.6/service/storage/03-block-device.mdx Adds v0.6 RBD/block device documentation page.
src/content/docs/v0.6/service/storage/02-pool.mdx Adds v0.6 Ceph pool documentation page.
src/content/docs/v0.6/service/storage/01-osd.mdx Adds v0.6 OSD documentation page.
src/content/docs/v0.6/service/settings/05-model-artifact.mdx Adds v0.6 model artifact settings documentation page.
src/content/docs/v0.6/service/settings/04-instance-type.mdx Adds v0.6 instance type settings documentation page.
src/content/docs/v0.6/service/settings/03-data-volume.mdx Adds v0.6 data volume settings documentation page.
src/content/docs/v0.6/service/settings/02-built-in-test.mdx Adds v0.6 built-in test/benchmark settings documentation page.
src/content/docs/v0.6/service/settings/01-extensions.mdx Adds v0.6 extensions settings documentation page.
src/content/docs/v0.6/service/repositories.mdx Adds v0.6 repositories/registry documentation page.
src/content/docs/v0.6/service/models.mdx Adds v0.6 models documentation page.
src/content/docs/v0.6/service/compute.mdx Adds v0.6 compute/VM documentation page.
src/content/docs/v0.6/service/applications/04-store.mdx Adds v0.6 application store (Helm charts) documentation page.
src/content/docs/v0.6/service/applications/03-secrets.mdx Adds v0.6 secrets documentation page.
src/content/docs/v0.6/service/applications/02-services.mdx Adds v0.6 services documentation page.
src/content/docs/v0.6/service/applications/01-workloads.mdx Adds v0.6 workloads documentation page.
src/content/docs/v0.6/reference/example.md Adds example reference page placeholder for v0.6.
src/content/docs/v0.6/introduction.mdx Adds v0.6 introduction page content.
src/content/docs/v0.6/index.mdx Adds v0.6 splash/index page content.
src/content/docs/v0.6/guides/example.md Adds example guide placeholder for v0.6.
src/content/docs/v0.6/getting-started/03-scope.mdx Adds v0.6 scope documentation page.
src/content/docs/v0.6/getting-started/02-installation.mdx Adds v0.6 installation documentation page.
src/content/docs/v0.6/getting-started/01-prerequisites.mdx Adds v0.6 prerequisites documentation page.
src/content/docs/v0.6/demos/09-aidaptivcache-inference.mdx Adds v0.6 aiDAPTIVCache inference demo guide.
src/content/docs/v0.6/demos/08-aidaptivcache-finetune.mdx Adds v0.6 aiDAPTIVCache finetune demo guide.
src/content/docs/v0.6/demos/07-aidaptivcache-operator.mdx Adds v0.6 aiDAPTIVCache operator install demo guide.
src/content/docs/v0.6/demos/06-create-helm-chart.mdx Adds v0.6 Helm chart creation demo guide.
src/content/docs/v0.6/demos/05-postgres.mdx Adds v0.6 PostgreSQL demo guide.
src/content/docs/v0.6/demos/04-llm-model.mdx Adds v0.6 LLM model demo guide.
src/content/docs/v0.6/demos/03-jupyterhub.mdx Adds v0.6 JupyterHub demo guide.
src/content/docs/v0.6/demos/02-coder.mdx Adds v0.6 Coder demo guide.
src/content/docs/v0.6/demos/01-virtual-machine.mdx Adds v0.6 virtual machine demo guide.
src/content/docs/v0.6/create-scope.md Adds an additional (non-getting-started) scope page for v0.6.
src/content/docs/v0.6/basic/networking.mdx Adds v0.6 basic networking documentation page.
src/content/docs/v0.6/basic/machines.mdx Adds v0.6 basic machines documentation page.
src/content/docs/v0.6/basic/configuration/04-package-repository.mdx Adds v0.6 package repository configuration documentation page.
src/content/docs/v0.6/basic/configuration/03-machine-tag.mdx Adds v0.6 machine tag configuration documentation page.
src/content/docs/v0.6/basic/configuration/02-boot-image.mdx Adds v0.6 boot image configuration documentation page.
src/content/docs/v0.6/basic/configuration/01-ntp-server.mdx Adds v0.6 NTP server configuration documentation page.
src/content.config.ts Adds the versions content collection via docsVersionsLoader().
pnpm-lock.yaml Locks updated dependency graph including starlight-versions and transitive deps.
package.json Adds starlight-versions dependency.
astro.config.mjs Enables starlight-versions plugin and configures the v0.6 version.
Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported
Comments suppressed due to low confidence (1)

src/content/docs/v0.6/demos/08-aidaptivcache-finetune.mdx:528

  • The Related Resources LinkCards use /demos/... and /service/... paths without a /v0.6/ prefix, which will likely break when navigating within the v0.6 versioned docs. Update these to version-scoped URLs (or use relative links) consistent with the slugs used for v0.6 pages.
## Related Resources

<LinkCard title="aiDaptivCache Inference" description="Deploy fine-tuned models for inference" href="/demos/09-aidaptivcache-inference" />

<LinkCard title="Storage - File System" description="Learn how to create and manage NFS File System" href="/service/storage/04-file-system" />


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

---
title: Introduction
description: Overview of OtterScale.
slug: v0.6/introduction
Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

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

The frontmatter slug includes a v0.6/ prefix, but the v0.6 version sidebar config uses unprefixed slugs like introduction. With starlight-versions, this mismatch is likely to break routing/sidebar links (e.g., sidebar introduction won’t resolve to v0.6/introduction). Align slugs by removing the version prefix (or updating the version sidebar slugs consistently) across the v0.6 docs set.

Suggested change
slug: v0.6/introduction
slug: introduction

Copilot uses AI. Check for mistakes.
Comment on lines +1 to +5
---
title: Object
description: Manage Ceph Object Gateway (RGW) buckets and users.
slug: v0.6/servicestorage/06-object
---
Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

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

The slug value uses v0.6/servicestorage/... (missing a / between service and storage). This is inconsistent with the v0.6 sidebar autogenerate directory service/storage and with other service pages (e.g., service/compute). It will also conflict with internal links in this PR that use /v0.6/service/storage/.... Update the slug to service/storage/06-object (and apply consistently across the storage docs).

Copilot uses AI. Check for mistakes.
---
title: Workloads
description: Manage Kubernetes applications and workloads.
slug: v0.6/serviceapplications/01-workloads
Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

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

The slug is v0.6/serviceapplications/... (missing / between service and applications). This conflicts with the v0.6 sidebar autogenerate directory service/applications and with links in other pages that reference /v0.6/service/applications/.... Update the slug to service/applications/01-workloads (and keep the version prefix consistent with the versioning plugin).

Suggested change
slug: v0.6/serviceapplications/01-workloads
slug: service/applications/01-workloads

Copilot uses AI. Check for mistakes.
Comment on lines +73 to +75
<LinkCard title="PostgreSQL Demo" href="/demos/04-postgres/" description="Learn how to deploy PostgreSQL database and test read/write operations with Python." />

<LinkCard title="LLM Model Demo" href="/demos/05-llm-model/" description="Learn how to deploy and configure language model applications." />
Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

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

These LinkCard hrefs are inconsistent with the actual demo slugs in this PR (PostgreSQL is demos/05-postgres, LLM Model is demos/04-llm-model). As written, the links will route to the wrong pages or 404. Update the hrefs to match the correct demo paths (and include the /v0.6/ prefix if required by versioned routing).

Suggested change
<LinkCard title="PostgreSQL Demo" href="/demos/04-postgres/" description="Learn how to deploy PostgreSQL database and test read/write operations with Python." />
<LinkCard title="LLM Model Demo" href="/demos/05-llm-model/" description="Learn how to deploy and configure language model applications." />
<LinkCard title="PostgreSQL Demo" href="/v0.6/demos/05-postgres/" description="Learn how to deploy PostgreSQL database and test read/write operations with Python." />
<LinkCard title="LLM Model Demo" href="/v0.6/demos/04-llm-model/" description="Learn how to deploy and configure language model applications." />

Copilot uses AI. Check for mistakes.

## Manage Networks

A Fabric represents a physical or logical L2 broadcast domain. Within each Fabric, you can define VLANs. Each VLAN containes one Subnet, which represent routable IP networks used for DHCP, PXE booting, and machine allocation.
Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

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

Typo: “containes” → “contains”.

Suggested change
A Fabric represents a physical or logical L2 broadcast domain. Within each Fabric, you can define VLANs. Each VLAN containes one Subnet, which represent routable IP networks used for DHCP, PXE booting, and machine allocation.
A Fabric represents a physical or logical L2 broadcast domain. Within each Fabric, you can define VLANs. Each VLAN contains one Subnet, which represent routable IP networks used for DHCP, PXE booting, and machine allocation.

Copilot uses AI. Check for mistakes.
4. **Push the chart to your registry**

```bash
helm push openbb-0.1.0.tgz oci://<registry_url>/charts --plain-http
Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

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

The example helm push openbb-0.1.0.tgz oci://<registry_url>/charts --plain-http command forces Helm to talk to the OCI registry over unencrypted HTTP. This can expose any registry credentials and allows an attacker on the network path to tamper with the pushed chart. Update the example to use a TLS-secured registry and omit --plain-http so encrypted transport is used by default.

Suggested change
helm push openbb-0.1.0.tgz oci://<registry_url>/charts --plain-http
helm push openbb-0.1.0.tgz oci://<registry_url>/charts

Copilot uses AI. Check for mistakes.
Comment on lines +36 to +46
helm push postgresql-18.2.0.tgz oci://<registry_url>/postgres --plain-http
```

Replace `<registry_url>` with your actual registry URL (e.g., `192.168.196.42:5736`).

**Example:**

```bash
helm push postgresql-18.2.0.tgz oci://192.168.196.42:5736/postgres --plain-http
```

Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

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

The PostgreSQL deployment guide shows helm push postgresql-18.2.0.tgz oci://<registry_url>/postgres --plain-http (and its concrete example), which disables TLS when pushing charts to the registry. Sending charts and registry credentials over HTTP enables interception and tampering by anyone on the network path. The documentation should instead demonstrate pushing to a TLS-enabled registry without --plain-http, or clearly scope HTTP usage to isolated, non-production environments.

Suggested change
helm push postgresql-18.2.0.tgz oci://<registry_url>/postgres --plain-http
```
Replace `<registry_url>` with your actual registry URL (e.g., `192.168.196.42:5736`).
**Example:**
```bash
helm push postgresql-18.2.0.tgz oci://192.168.196.42:5736/postgres --plain-http
```
helm push postgresql-18.2.0.tgz oci://<registry_url>/postgres
```
Replace `<registry_url>` with your actual, TLS-enabled registry URL (e.g., `192.168.196.42:5736`).
**Example:**
```bash
helm push postgresql-18.2.0.tgz oci://192.168.196.42:5736/postgres
```
If you are working with a test registry that does not support TLS, you may need to add the `--plain-http` flag. Do this only in isolated, non-production environments, as it sends data (including credentials) without encryption.

Copilot uses AI. Check for mistakes.
* API endpoint: RGW endpoint
* Access Key ID: User’s access key.
* Secret Access Key: The copied secret key.
* Use secure transfer: Disable SSL
Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

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

The S3 Browser instructions explicitly recommend setting Use secure transfer: Disable SSL, which forces clients to talk to the RGW endpoint over unencrypted HTTP. This exposes S3 access keys, secret keys, and all object data to interception or tampering by anyone on the network path. Update the documentation to require TLS (HTTPS) for RGW access and avoid advising users to disable SSL, instead showing how to configure and connect with proper certificates.

Copilot uses AI. Check for mistakes.
Comment on lines +89 to +97
apt-get update && apt-get install -y sshpass

# Create model directory
mkdir -p /mnt/data/models

# Copy model from remote server using SCP
echo "Copying model from remote server..."
sshpass -p 'your-password' scp -o StrictHostKeyChecking=no -r \
user@remote-host:/path/to/your-model /mnt/data/models/
Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

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

The prescript example uses sshpass -p 'your-password' scp -o StrictHostKeyChecking=no to copy models, which both hard-codes a password into the command line and disables SSH host key verification. This pattern leaks credentials via process arguments and allows man-in-the-middle attacks against the SCP transfer. Replace this with key-based authentication managed via Kubernetes secrets and keep SSH host key checking enabled, or otherwise use a secure, non-interactive file distribution mechanism.

Suggested change
apt-get update && apt-get install -y sshpass
# Create model directory
mkdir -p /mnt/data/models
# Copy model from remote server using SCP
echo "Copying model from remote server..."
sshpass -p 'your-password' scp -o StrictHostKeyChecking=no -r \
user@remote-host:/path/to/your-model /mnt/data/models/
apt-get update && apt-get install -y openssh-client
# Create model directory
mkdir -p /mnt/data/models
# Copy model from remote server using SCP (key-based auth)
echo "Copying model from remote server..."
# Assumes /root/.ssh/id_rsa and /root/.ssh/known_hosts are mounted via Kubernetes secrets
scp -i /root/.ssh/id_rsa -r user@remote-host:/path/to/your-model /mnt/data/models/

Copilot uses AI. Check for mistakes.
Comment on lines +88 to +118
apt-get update && apt-get install -y sshpass

# Create model directory
mkdir -p /mnt/data/models

# Copy model from remote server using SCP
echo "Copying model from remote server..."
sshpass -p 'your-password' scp -o StrictHostKeyChecking=no -r \
user@remote-host:/path/to/your-model /mnt/data/models/

if [ $? -eq 0 ]; then
echo "Model copied successfully!"
ls -lh /mnt/data/models/
else
echo "Failed to copy model. Exiting..."
exit 1
fi
```

You still need an NFS mount for storing training outputs. Add NFS mount commands after the SCP section:

```yaml
postscript: |
# Install tools
apt-get update && apt-get install -y sshpass nfs-common

# Copy model via SCP
mkdir -p /mnt/data/models
echo "Copying model from remote server..."
sshpass -p 'your-password' scp -o StrictHostKeyChecking=no -r \
user@remote-host:/path/to/model /mnt/data/models/
Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

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

The prescript/postscript examples use sshpass -p 'your-password' scp -o StrictHostKeyChecking=no to copy models into the training pod. This encourages storing real passwords directly in Helm values and environment, exposes them via process arguments, and disables SSH host key verification, making credential theft and man-in-the-middle attacks feasible. Switch to SSH key-based auth or another secure mechanism managed through Kubernetes secrets, and keep host key checking enabled so the client verifies the server identity.

Copilot uses AI. Check for mistakes.
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