-
Notifications
You must be signed in to change notification settings - Fork 295
docs: OlaresManifest 0.12.0 spec update #3247
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from 8 commits
075a54a
64df517
d0e1548
1d1b822
5c6825d
0693a9d
f9b929d
9aac1a1
8a6a407
b2d30d7
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -7,14 +7,23 @@ outline: [2, 3] | |
| Every **Olares Application Chart** should include an `OlaresManifest.yaml` file in the root directory. `OlaresManifest.yaml` provides all the essential information about an Olares App. Both the **Olares Market protocol** and the Olares depend on this information to distribute and install applications. | ||
|
|
||
| :::info NOTE | ||
| Latest Olares Manifest version: `0.11.0` | ||
| - Removed deprecated fields of sysData | ||
| - Updated the example of shared app | ||
| - Added the apiVersion | ||
| - Added the sharedEntrance section | ||
| Latest Olares Manifest version: `0.12.0` | ||
| - Modified the `apiVersion` field: added support for `v3` shared applications; the previous `v2` version of shared applications will be deprecated. | ||
| - Added `spec.accelerator` field for GPU resource declaration | ||
| - Added `workloadReplicas` field to declare all workload replica counts | ||
| - Added `overlayGateway` field for L2 overlay LAN discovery support | ||
| - Added `LLMGatewaySupported` in options for LLM Gateway support | ||
| - Added `appCommon` and `externalData` permissions | ||
| - Added `templateOnly` field to mark template-type applications | ||
|
|
||
| ::: | ||
| :::details Changelog | ||
| `0.11.0` | ||
| - Removed deprecated `sysData` field | ||
| - Updated shared app example | ||
| - Added `apiVersion` field | ||
| - Added `sharedEntrance` section | ||
|
|
||
| `0.10.0` | ||
| - Modified the `categories` field | ||
| - Added the `provider` field in the Permission section | ||
|
|
@@ -111,14 +120,9 @@ options: | |
| ## olaresManifest.type | ||
|
|
||
| - Type: `string` | ||
| - Accepted Value: `app`, `recommend`, `middleware` | ||
|
|
||
| Olares currently supports 3 types of applications, each requiring different fields. This document uses `app` as an example to explain each field. For information on other types, please refer to the corresponding configuration guide. | ||
| - [Recommend Configuration Guide](recommend.md) | ||
| - Accepted Value: `app`, `middleware` | ||
|
|
||
| :::info NOTE | ||
| `recommend` apps will not be listed in the Olares Market, but you can install recommendation algorithms for Wise by uploading a custom Chart. | ||
| ::: | ||
| Olares currently supports 2 types of applications, each requiring different fields. This document uses `app` as an example to explain each field. | ||
|
|
||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. In the previous versions, :::info |
||
| ## olaresManifest.version | ||
|
|
||
|
|
@@ -140,10 +144,14 @@ olaresManifest.version: "3.0.122" | |
| ## apiVersion | ||
| - Type: `string` | ||
| - Optional | ||
| - Accepted Value: `v1`,`v2` | ||
| - Accepted Value: `v1`, `v3` | ||
| - Default: `v1` | ||
|
|
||
| For shared applications, use version `v2`, which supports multiple subcharts in a single OAC. For other applications, use `v1`. | ||
| For shared applications, use version `v3`, which will be installed in the `<appname>-shared` namespace. For other applications, use `v1`. | ||
|
|
||
| :::info NOTE | ||
| `apiVersion: 'v2'` is used for shared applications on Olares OS version 1.12.5 and earlier. Support for this version will be gradually discontinued after the release of 1.12.6. Please migrate your shared applications to `v3` as soon as possible. | ||
| ::: | ||
|
TShentu marked this conversation as resolved.
Outdated
|
||
|
|
||
| ## Metadata | ||
|
|
||
|
|
@@ -438,6 +446,21 @@ Whether the app requires read and write permission to the `Cache` folder. If `.V | |
|
|
||
| Whether the app requires read and write permission to the `Data` folder. If `.Values.userspace.appData` is used in the deployment YAML, then `appData` must be set to `true`. | ||
|
|
||
| ### appCommon | ||
|
|
||
| - Type: `boolean` | ||
| - Optional | ||
|
|
||
| Whether the app requires read and write permission to the `App Common` folder (cross-node, cross-app shared files, such as models). Use `{{ .Values.userspace.appCommon }}` in the deployment YAML to get the App Common directory path. | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Whether the app requires read and write permission to the |
||
|
|
||
|
|
||
| ### externalData | ||
|
|
||
| - Type: `boolean` | ||
| - Optional | ||
|
|
||
| Whether the app requires read and write permission to the `External` directory, typically used for accessing mounted NAS or other external disk data. In version 0.11.0, applications have External access enabled by default. Starting from version 0.12.0, you need to explicitly declare this field. | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This field includes a breaking behavior change from 0.11.0 to 0.12.0. I suggest highlighting it with a warning block directly under the field. Whether the app requires read and write permission to the :::warning |
||
|
|
||
| ### userData | ||
|
|
||
| - Type: `list<string>` | ||
|
|
@@ -604,6 +627,47 @@ When set to `true`, only the admin can install this app. | |
|
|
||
| When set to `true`, Olares forces the application to run under user ID `1000` (as a non-root user). | ||
|
|
||
| ### accelerator | ||
| - Type: `map` | ||
| - Optional | ||
|
|
||
| Declares GPU resources required by the application. For apps that need GPU, use `spec.accelerator` to declare resources instead of `spec.requiredMemory` or similar fields. | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can we better clarify this field? Declares GPU or hardware accelerator resources required by the application. Use this field for accelerator-aware apps, such as LLMs, image generation, video processing, or AI model serving. :::info NOTE Supported Modes:
|
||
|
|
||
| :::info Example | ||
| ```yaml | ||
| spec: | ||
| accelerator: | ||
| mode: nvidia # Supported modes: nvidia, nvidia-gb10, apple-m, strix-halo, cpu | ||
| limitedCpu: 7000m | ||
| requiredCpu: 150m | ||
| requiredDisk: 50Mi | ||
| limitedDisk: 500Gi | ||
| limitedMemory: 40Gi | ||
| requiredMemory: 5Gi | ||
| requiredGPUMemory: 1Gi | ||
| limitedGPUMemory: 24Gi | ||
| ``` | ||
| ::: | ||
|
|
||
| ## workloadReplicas | ||
| - Type: `map` | ||
| - Optional | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This field is marked as optional, but the description says that starting from 0.12.0, apps must add this variable to declare replica counts for all workloads. This may look contradictory to developers. Could we clarify whether this field is required for Manifest 0.12.0 apps?
|
||
|
|
||
| Declares the replica count for each workload in the chart. Starting from 0.12.0, apps must add this variable in `OlaresManifest.yaml` to declare replica counts for all workloads. | ||
|
|
||
| :::info Example | ||
| ```yaml | ||
| workloadReplicas: | ||
| affine: 1 | ||
| ``` | ||
| ::: | ||
| The corresponding `values.yaml` must also include this value for backward compatibility: | ||
| ```yaml | ||
| workloads: | ||
| affine: | ||
| replicaCount: 1 | ||
| ``` | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The current example splits For example: The workload name under workloadReplicas:
affine: 1workloads:
affine:
replicaCount: 1 |
||
|
|
||
| ## Middleware | ||
| - Type: `map` | ||
| - Optional | ||
|
|
@@ -964,6 +1028,38 @@ allowedOutboundPorts: | |
|
|
||
| This application supports deploying multiple independent instances within the same Olares cluster. This setting does not apply to paid applications or clients of shared applications. | ||
|
|
||
| ### templateOnly | ||
| - Type: `boolean` | ||
| - Default: `false` | ||
| - Optional | ||
|
|
||
| When set to `true`, this application is marked as a template app. The app cannot be installed directly. An instance must be created before installation. If this option is enabled, `allowMultipleInstall` must also be set to `true`. | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. How about adding the reason to help developers understand why these two fields are coupled? When set to |
||
|
|
||
| ### LLMGatewaySupported | ||
| - Type: `boolean` | ||
| - Default: `false` | ||
| - Optional | ||
|
|
||
| When set to `true`, the application supports LLM Gateway calls. Mainly used for LLM services. | ||
|
|
||
| ### overlayGateway | ||
| - Type: `map` | ||
| - Optional | ||
|
|
||
| Declares the app's support for L2 overlay LAN discovery. When enabled, other apps can access this app via IP address in the LAN. | ||
|
TShentu marked this conversation as resolved.
Outdated
|
||
| :::info Example | ||
| ```yaml | ||
| overlayGateway: | ||
| enable: true # Enable L2 overlay LAN discovery, default false | ||
| entrances: | ||
| - port: 8096 # Overlay listening port | ||
| title: Jellyfin # Overlay entrance name | ||
| workload: jellyfin # Workload name for OAC validation | ||
| description: "Access Jellyfin using IP address in LAN" | ||
| protocol: tcp # Supported protocols: tcp/udp; defaults to both tcp and udp if omitted | ||
| ``` | ||
| ::: | ||
|
|
||
| ## Envs | ||
|
|
||
| Declare the environment variables required for your application to run here. You can allow users to manually enter these values or reference existing system environment variables directly. | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we add a callout below this note to ask users to give special attention to certain fields when upgrading to 0.12.0?
such as
:::tip Upgrading to Manifest 0.12.0
If you maintain an existing app chart, pay special attention to
apiVersion,workloadReplicas, andpermission.externalDatabefore upgrading. These fields contain breaking changes or new mandatory requirements that may require updates to your existing configurations.:::