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
4 changes: 4 additions & 0 deletions astro.config.mjs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
// @ts-check
import { defineConfig } from 'astro/config';
import starlight from '@astrojs/starlight';
import starlightVersions from 'starlight-versions';
import tailwindcss from '@tailwindcss/vite';
import starlightOpenAPI, { openAPISidebarGroups } from 'starlight-openapi';
import Icons from 'unplugin-icons/vite';
Expand Down Expand Up @@ -140,6 +141,9 @@ export default defineConfig({
],
customCss: ['./src/styles/global.css'],
plugins: [
starlightVersions({
versions: [{ slug: 'v0.6' }]
}),
// Generate the OpenAPI documentation pages.
starlightOpenAPI([
{
Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
"astro": "^5.6.1",
"sharp": "^0.34.2",
"starlight-openapi": "^0.21.1",
"starlight-versions": "^0.7.0",
"tailwindcss": "^4.0.7",
"unplugin-icons": "^22.5.0"
}
Expand Down
172 changes: 146 additions & 26 deletions pnpm-lock.yaml

Large diffs are not rendered by default.

Binary file added src/assets/v0.6/otter-2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 3 additions & 1 deletion src/content.config.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
import { defineCollection } from 'astro:content';
import { docsLoader } from '@astrojs/starlight/loaders';
import { docsSchema } from '@astrojs/starlight/schema';
import { docsVersionsLoader } from 'starlight-versions/loader';

export const collections = {
docs: defineCollection({ loader: docsLoader(), schema: docsSchema() })
docs: defineCollection({ loader: docsLoader(), schema: docsSchema() }),
versions: defineCollection({ loader: docsVersionsLoader() })
};
47 changes: 47 additions & 0 deletions src/content/docs/v0.6/basic/configuration/01-ntp-server.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
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

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/basicconfiguration/... (missing / between basic and configuration). The v0.6 sidebar autogenerates from basic/configuration, so this mismatch is likely to produce broken URLs/nav entries. Consider changing to basic/configuration/01-ntp-server (and apply consistently across all basic/configuration pages).

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

Copilot uses AI. Check for mistakes.
---

import { Steps } from '@astrojs/starlight/components';

This page allows you to configure the Network Time Protocol (NTP) servers used by the OtterScale system for time synchronization. Accurate timekeeping is crucial for distributed systems and log consistency.

## Introduction

The NTP Server configuration page allows you to manage the time synchronization sources for your OtterScale infrastructure. Here you can view and modify the list of NTP servers that will be used across all scopes.

**Key Points:**

* **Scope:** These settings apply to all scopes. Any changes made here will affect time synchronization for MAAS itself, all deployed machines, and devices using MAAS's DHCP services.
* **Default Configuration:** By default, OtterScale uses `ntp.ubuntu.com` as the NTP server.
* **Address Format:** You can specify NTP servers using either IP addresses (e.g., `192.168.1.1`) or hostnames (e.g., `pool.ntp.org`, `time.google.com`).
* **Multiple Servers:** It's recommended to configure multiple NTP servers for redundancy. If one server becomes unavailable, the system will automatically fall back to alternative servers.
* **Display:** Each configured server is displayed with a clock icon in the configuration list.

## Why is NTP Important?

NTP (Network Time Protocol) is used to synchronize the clocks of computers over a network. In a cluster environment like OtterScale, it serves several critical functions:

* **Log Analysis**: Synchronized time is essential for correlating logs across different servers to debug issues effectively.
* **Distributed Consistency**: Distributed systems (e.g., databases, consensus algorithms) rely on accurate time to maintain data integrity and order of operations.
* **Security**: Many security protocols (like TLS/SSL certificates and Kerberos) rely on time validation. Significant time drift can cause authentication failures.
* **Scheduled Tasks**: Ensures that automated tasks and backups run at the correct coordinated times.

## Edit NTP Servers

To modify the NTP server list, follow these steps:

<Steps>
1. Click the **Edit** button (pencil icon) located at the top right of the configuration section.

2. A modal window titled "Edit NTP Server" will appear.

3. In the **Address** field, you can manage the list of NTP servers:

* **Add a server:** Type the NTP server address (e.g., `pool.ntp.org`) in the input field and click the **+** button to add it to the list (or press Enter).
* **Remove a server:** Click the **×** icon next to an existing address to delete it from the list.

4. Click **Confirm** to save your changes. The system will update the configuration and the new list will be displayed.
</Steps>
51 changes: 51 additions & 0 deletions src/content/docs/v0.6/basic/configuration/02-boot-image.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
---
title: Boot Image
description: Configure boot image for OtterScale.
slug: v0.6/basicconfiguration/02-boot-image
---

import { Steps } from '@astrojs/starlight/components';

This page allows you to manage the operating system images (Boot Images) available for provisioning machines in the OtterScale cluster. These images are typically Ubuntu LTS releases.

## Introduction

The Boot Image settings page displays a list of configured boot images. The table includes the following information:

* **Name**: The display name of the operating system (e.g., Ubuntu 22.04 LTS).
* **Source**: The URL of the image repository.
* **Distro Series**: The codename of the distribution release (e.g., `jammy`, `noble`).
* **Default**: Indicates if this is the default image used when no specific image is requested.
* **Architecture**: The CPU architectures supported by this image (e.g., `amd64`, `arm64`).
* **Status**: Shows the sync status of the image architectures.

## Manage Boot Images

You can perform the following actions to manage boot images:

### Create a New Boot Image

To add a new boot image configuration:

<Steps>
1. Click the **Create** button (plus icon) at the top of the page.

2. A modal window titled "Create Boot Image" will appear.

3. **Select Distro Series**: Choose the desired Ubuntu release from the dropdown menu.

4. **Select Architecture**: Choose one or more CPU architectures to support for this release.

5. Click **Confirm** to save. The system will begin tracking this image configuration.
</Steps>

### Import Images

To synchronize the local image cache with the upstream source:

1. Click the **Import** button (refresh icon).
2. The system will trigger a background process to download and update the images. The button will show an "Importing..." state with a spinner while the process is running.

### Set Default Image

The image marked with a circle icon in the **Default** column is the current default. To change the default image, use the actions menu (three dots) on the desired image row and select **Set Default**.
62 changes: 62 additions & 0 deletions src/content/docs/v0.6/basic/configuration/03-machine-tag.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
---
title: Machine Tag
description: Configure machine tags for OtterScale.
slug: v0.6/basicconfiguration/03-machine-tag
---

import { Steps } from '@astrojs/starlight/components';

This page allows you to manage tags that can be assigned to machines in the OtterScale cluster for filtering and group management. These tags help in organizing and managing machines based on their characteristics or purposes.

## Introduction

The Machine Tag settings page displays a list of all existing tags in a table format. Tags are identifiable labels that can be assigned to machines for various purposes such as:

* **Role Identification**: Marking machines by their function (e.g., `kubernetes-worker`, `kubernetes-control-plane`, `ceph-osd`)
* **Hardware Features**: Identifying specific capabilities (e.g., `virtual` for VMs)
* **Grouping**: Organizing machines for bulk operations or filtering

### Table Columns

* **TAG**: The unique name of the tag (e.g., `virtual`, `kubernetes`, `ceph`).
* **COMMENT**: A description or note associated with the tag. Tags with "built-in" comment are system-managed tags that cannot be deleted.

## Manage Machine Tags

You can create new tags or delete existing ones.

### Create a New Tag

To create a custom tag:

<Steps>
1. Click the **Create** button (plus icon) at the top of the page.

2. A modal window titled "Create Machine Tag" will appear.

3. **Name**: Enter a unique name for the tag.

4. **Comment**: (Optional) Enter a description for the tag.

5. Click **Confirm** to save. The new tag will appear in the list.
</Steps>

### Delete a Tag

To remove a tag:

<Steps>
1. Locate the tag you want to remove in the list.

2. Click the **Delete** button (trash icon) in the actions column.

* **Note**: Built-in system tags (those with "built-in" in the comment field) cannot be deleted. The Delete link will be grayed out and disabled for these tags.

3. A confirmation modal will appear. You must type the name of the tag to confirm deletion.

4. Click **Confirm** to permanently delete the tag.
</Steps>

:::caution
Deleting a tag will remove it from all machines that currently have this tag assigned. This action cannot be undone.
:::
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
title: Package Repository
description: Configure package repositories for OtterScale.
slug: v0.6/basicconfiguration/04-package-repository
---

import { Steps } from '@astrojs/starlight/components';

Package repositories contain software packages that can be installed on machines. These repositories can be configured with custom URLs and enabled/disabled as needed to control software sources and updates for your infrastructure.

## Introduction

The Package Repository settings page displays a list of configured repositories in a table format. By default, OtterScale includes standard Ubuntu repositories such as:

* **Ubuntu extra architectures**: Provides packages for additional CPU architectures
* **Ubuntu archive**: The main Ubuntu package repository

### Table Columns

* **NAME**: The display name of the repository (e.g., `Ubuntu extra architectures`, `Ubuntu archive`).
* **URL**: The base URL of the repository (e.g., `http://ports.ubuntu.com/ubuntu-ports`, `http://tw.archive.ubuntu.com/ubuntu`).
* **ENABLED**: A toggle indicator showing whether the repository is currently active.

## Manage Package Repositories

You can modify the URL of existing package repositories. This is useful if you want to point to a local mirror or a different upstream source to improve download speeds or manage bandwidth.

### Edit Repository URL

To change the URL of a package repository:

<Steps>
1. Locate the repository you want to modify in the list.

2. Click the **Edit** button (displayed with a pencil icon) on the right side of the row.

3. A modal window titled "Edit Package Repository" will appear.

4. **URL**: Enter the new URL for the repository.

5. Click **Confirm** to save your changes.
</Steps>
Loading
Loading