docs: add application environment variables (#2577)

* docs: updated installation env vars and runtime values references

* docs: fix content

* docs: update content

* Update table of contents, and refactored docs.

* Fixed capitalization.

* batch update to fix readability

* refactored declarative env var

* Updated translation.

* Updated based on suggestions.

* Updated based on suggestions.

---------

Co-authored-by: yajing wang <413741312@qq.com>
This commit is contained in:
Meow33
2026-03-05 17:52:22 +08:00
committed by GitHub
parent 480cecfe84
commit 776848d2e2
28 changed files with 1294 additions and 350 deletions

View File

@@ -213,12 +213,28 @@ export const developerSidebar: DefaultTheme.Sidebar = {
// },
// ],
// },
{
text: "Application environment variables",
link: "/developer/develop/app-env-index",
collapsed: true,
items: [
{
text: "Declarative environment variables",
link: "/developer/develop/app-env-vars",
collapsed: true,
},
{
text: "System-injected variables",
link: "/developer/develop/app-sys-injected-variables",
},
]
},
{
text: "Middleware",
link: "/developer/develop/mw-overview",
collapsed: true,
items: [
{
/*{
text: "Elasticsearch",
collapsed: true,
items :[
@@ -230,7 +246,7 @@ export const developerSidebar: DefaultTheme.Sidebar = {
link: "/developer/develop/mw-view-es-data",
},
]
},
},*/
{
text: "Grafana",
link :"/developer/develop/mw-view-grafana-data",

View File

@@ -228,12 +228,27 @@ export const developerSidebar: DefaultTheme.Sidebar = {
// },
// ],
// },
{
text: "应用环境变量",
link: "/zh/developer/develop/app-env-index",
collapsed: true,
items: [
{
text: "声明式环境变量",
link: "/zh/developer/develop/app-env-vars",
},
{
text: "系统注入的运行时变量",
link: "/zh/developer/develop/app-sys-injected-variables",
},
]
},
{
text: "中间件",
link: "/zh/developer/develop/mw-overview",
collapsed: true,
items: [
{
/*{
text: "Elasticsearch",
collapsed: true,
items :[
@@ -245,7 +260,7 @@ export const developerSidebar: DefaultTheme.Sidebar = {
link: "zh/developer/develop/mw-view-es-data",
},
]
},
},*/
{
text: "Grafana",
link: "zh/developer/develop/mw-view-grafana-data",

View File

@@ -152,7 +152,6 @@ const side = {
},
{
text: "Olares applications",
link: "/manual/olares/",
items: [
{ text: "Desktop", link: "/manual/olares/desktop", },
{

View File

@@ -150,7 +150,6 @@ const side = {
},
{
"text": "Olares 应用",
"link": "/zh/manual/olares/",
"items": [
{ "text": "桌面", "link": "/zh/manual/olares/desktop" },
{
@@ -466,10 +465,10 @@ const side = {
text: "设置自定义域名",
link: "/zh/manual/best-practices/set-custom-domain",
},
{
/*{
text: "使用 Wise 管理知识",
link: "/zh/manual/best-practices/organize-content",
},
},*/
{
text: "安装多节点",
link: "/zh/manual/best-practices/install-olares-multi-node",

View File

@@ -0,0 +1,25 @@
---
outline: [2, 3]
description: Learn how variables are injected during Olares app deployment, including declarative environment variables (.Values.olaresEnv) and system-injected runtime Helm values (.Values.*).
---
# Environment variables overview
Olares apps use app-service to inject runtime context and configuration into the app's `values.yaml`. In Helm templates, you can reference these values via `.Values.*`.
:::info Variables and Helm values
In this document, "variables" mainly refer to Helm values. They are not automatically passed into container environment variables. If you need them inside containers, explicitly map them to `env:` in your templates.
:::
## How variables are injected
Olares injects variables through two channels:
- **Declarative environment variables**: The developer declares variables under `envs` in `OlaresManifest.yaml`. At deployment, app-service resolves and injects the values into `.Values.olaresEnv` in `values.yaml`.
- **System-injected runtime variables**: Injected automatically by Olares at deployment time. No declaration is required, though some values are only available after you declare the relevant dependency, such as middleware.
## Next steps
1. [Declarative environment variables](app-env-vars.md): Field reference for the `envs` schema, including variable mapping and variable references.
2. [System-injected runtime variables](app-sys-injected-variables.md): Full reference for all system-injected runtime variables.

View File

@@ -0,0 +1,199 @@
---
outline: [2, 4]
description: Declare and validate app configuration via envs in `OlaresManifest.yaml`, and reference values in templates through `.Values.olaresEnv`.
---
# Declarative environment variables
Use `envs` in `OlaresManifest.yaml` to declare the configuration parameters, such as passwords, API endpoints, or feature flags. During deployment, app-service resolves the values and injects them into `.Values.olaresEnv` in `values.yaml`. Reference them in Helm templates as <code v-pre>{{ .Values.olaresEnv.&lt;envName&gt; }}</code>.
## Variable sources
Declarative variables can obtain values from configurations managed outside the application:
- **System variables**: Environment variables defined at the Olares cluster level. They are set during system installation or centrally managed by administrators, and are shared by all users within the cluster.
- **User variables**: Environment variables defined at the Olares user level. They are managed individually by each user, and are isolated from one another within the same cluster.
Applications cannot modify these variables directly. To use them, map the variable via the `valueFrom` field.
## Map environment variables
Both system environment variables and user environment variables use the same mapping mechanism via `valueFrom`.
The following example maps the system variable `OLARES_SYSTEM_CDN_SERVICE` to an application variable `APP_CDN_ENDPOINT`:
1. In `OlaresManifest.yaml`, declare an app variable under `envs` and set `valueFrom.envName` to the system variable name.
```yaml
# Map system variable OLARES_SYSTEM_CDN_SERVICE to app variable APP_CDN_ENDPOINT
olaresManifest.version: '0.10.0'
olaresManifest.type: app
envs:
- envName: APP_CDN_ENDPOINT
required: true
applyOnChange: true
valueFrom:
envName: OLARES_SYSTEM_CDN_SERVICE
```
2. In your Helm template, reference the app variable via `.Values.olaresEnv.<envName>`.
```yaml
# Use APP_CDN_ENDPOINT in a container environment variable
env:
- name: CDN_ENDPOINT
value: "{{ .Values.olaresEnv.APP_CDN_ENDPOINT }}"
```
At deployment, app-service resolves the referenced variable and injects the value into `values.yaml`:
```yaml
# Injected by app-service into values.yaml at deployment
olaresEnv:
APP_CDN_ENDPOINT: "https://cdn.olares.com"
```
For the full list of available environment variables, see [Variable references](#variable-references).
## Declaration fields
The following fields are available under each `envs` entry.
### envName
The name of the variable as injected into `values.yaml`. Reference it in templates as <code v-pre>{{ .Values.olaresEnv.&lt;envName&gt; }}</code>.
### default
The default value for the variable. Provided by the developer at authoring time. Users cannot modify it. Used when no value is supplied by the user or by `valueFrom`.
### valueFrom
Maps this variable to a system or user environment variable. When set, the current variable inherits all fields from the referenced variable (`type`, `editable`, `regex`, and so on). Any fields defined locally on the current variable are ignored. `default` and `options` have no effect when `valueFrom` is used.
**Example**: map the app variable `APP_CDN_ENDPOINT` to the system variable `OLARES_SYSTEM_CDN_SERVICE`.
```yaml
# Map app env APP_CDN_ENDPOINT to system variable OLARES_SYSTEM_CDN_SERVICE
envs:
- envName: APP_CDN_ENDPOINT
required: true
applyOnChange: true
valueFrom:
envName: OLARES_SYSTEM_CDN_SERVICE
```
### required
Boolean. When `true`, the variable must have a value for installation to proceed. If no `default` is set, the user is prompted to enter one. After installation, the value cannot be set to empty.
### editable
Boolean. When `true`, the variable can be modified after installation.
### applyOnChange
Boolean. When `true`, changing this variable automatically restarts all apps or components that use it. When `false`, a change only takes effect after the app is upgraded or reinstalled. Stopping and starting the app manually has no effect.
### type
The expected type of the value. Used for validation before the value is accepted. Supported types: `int`, `bool`, `url`, `ip`, `domain`, `email`, `string`, `password`.
### regex
A regular expression the value must match. If validation fails, the value cannot be set and installation or upgrade may fail.
### options
Restricts the variable to a fixed list of allowed values. The system presents users with a selection UI.
**Example**: a dropdown list of supported Windows versions for installation.
```yaml
# Dropdown: title shown in UI, value stored internally
envs:
- envName: VERSION
options:
- title: "Windows 11 Pro"
value: "iso/Win11_24H2_English_x64.iso"
- title: "Windows 7 Ultimate"
value: "iso/win7_sp1_x64_1.iso"
```
### remoteOptions
Loads the options list from a URL instead of defining it inline. The response body must be a JSON-encoded array in the same format as `options`.
**Example**: options fetched from a remote endpoint.
```yaml
# Options list fetched from remote URL at install time
envs:
- envName: VERSION
remoteOptions: https://app.cdn.olares.com/appstore/windows/version_options.json
```
### description
A human-readable description of the variable's purpose and valid values. Displayed in the Olares interface.
## Variable references
### System environment variables
The following table lists system-level environment variables that can be referenced via `valueFrom`.
| Variable | Type | Default | Editable | Required | Description |
| --- | --- | --- | --- | --- | --- |
| `OLARES_SYSTEM_REMOTE_SERVICE` | `url` | `https://api.olares.com` | Yes | Yes | Remote service endpoint for Olares, such as Market and Olares Space. |
| `OLARES_SYSTEM_CDN_SERVICE` | `url` | `https://cdn.olares.com` | Yes | Yes | CDN endpoint for system resources. |
| `OLARES_SYSTEM_DOCKERHUB_SERVICE` | `url` | None | Yes | No | Docker Hub mirror or accelerator endpoint. |
| `OLARES_SYSTEM_ROOT_PATH` | `string` | `/olares` | No | Yes | Olares root directory path. |
| `OLARES_SYSTEM_ROOTFS_TYPE` | `string` | `fs` | No | Yes | Olares filesystem type. |
| `OLARES_SYSTEM_CUDA_VERSION` | `string` | None | No | No | Host CUDA version. |
### User environment variables
All user environment variables are editable by the user.
#### User information
| Variable | Type | Default | Description |
| --- | --- | --- | --- |
| `OLARES_USER_EMAIL` | `string` | None | User email address. |
| `OLARES_USER_USERNAME` | `string` | None | Username. |
| `OLARES_USER_PASSWORD` | `password` | None | User password. |
| `OLARES_USER_TIMEZONE` | `string` | None | User timezone. For example, `Asia/Shanghai`. |
#### SMTP settings
| Variable | Type | Default | Description |
| --- | --- | --- | --- |
| `OLARES_USER_SMTP_ENABLED` | `bool` | None | Whether to enable SMTP. |
| `OLARES_USER_SMTP_SERVER` | `domain` | None | SMTP server domain. |
| `OLARES_USER_SMTP_PORT` | `int` | None | SMTP server port. Typically `465` or `587`. |
| `OLARES_USER_SMTP_USERNAME` | `string` | None | SMTP username. |
| `OLARES_USER_SMTP_PASSWORD` | `password` | None | SMTP password or authorization code. |
| `OLARES_USER_SMTP_FROM_ADDRESS` | `email` | None | Sender email address. |
| `OLARES_USER_SMTP_SECURE` | `bool` | `"true"` | Whether to use a secure protocol. |
| `OLARES_USER_SMTP_USE_TLS` | `bool` | None | Whether to use TLS. |
| `OLARES_USER_SMTP_USE_SSL` | `bool` | None | Whether to use SSL. |
| `OLARES_USER_SMTP_SECURITY_PROTOCOLS` | `string` | None | Security protocol. Allowed values: `tls`, `ssl`, `starttls`, `none`. |
#### Mirror and proxy endpoints
| Variable | Type | Default | Description |
| --- | --- | --- | --- |
| `OLARES_USER_HUGGINGFACE_SERVICE` | `url` | `https://huggingface.co/` | Hugging Face service URL. |
| `OLARES_USER_HUGGINGFACE_TOKEN` | `string` | None | Hugging Face access token. |
| `OLARES_USER_PYPI_SERVICE` | `url` | `https://pypi.org/simple/` | PyPI mirror URL. |
| `OLARES_USER_GITHUB_SERVICE` | `url` | `https://github.com/` | GitHub mirror URL. |
| `OLARES_USER_GITHUB_TOKEN` | `string` | None | GitHub personal access token. |
#### API keys
| Variable | Type | Default | Description |
| --- | --- | --- | --- |
| `OLARES_USER_OPENAI_APIKEY` | `password` | None | OpenAI API key. |
| `OLARES_USER_CUSTOM_OPENAI_SERVICE` | `url` | None | Custom OpenAI-compatible service URL. |
| `OLARES_USER_CUSTOM_OPENAI_APIKEY` | `password` | None | API key for the custom OpenAI-compatible service. |

View File

@@ -0,0 +1,216 @@
---
outline: [2, 4]
description: Reference for runtime values injected into application `values.yaml` during Olares deployment.
---
# System-injected runtime values
At deployment, Olares automatically injects a set of system-managed values into the app's `values.yaml`. These values are read-only and cover user identity, storage paths, cluster metadata, app dependencies, and middleware credentials.
Because they are Helm values, they are not automatically available inside containers. To pass one into a container, map it explicitly under `env:` in your deployment template.
## Use in your app
Reference these values directly in your Helm templates, such as `deployment.yaml`.
**Example**: pass the current username and Postgres host into container environment variables.
```yaml
# Pass system-injected runtime values into container environment variables
spec:
containers:
- name: my-app
env:
- name: APP_USER
value: "{{ .Values.bfl.username }}"
- name: DB_HOST
value: "{{ .Values.postgres.host }}"
```
For the full list of available values, see [Value reference](#value-reference).
## Value references
The Type column describes the Helm value data type. It does not correspond to the `type` field in `OlaresManifest.yaml`.
### User and identity
| Value | Type | Description |
| --- | --- | --- |
| `.Values.bfl.username` | String | Current username. |
| `.Values.user.zone` | String | Current user's domain. |
| `.Values.admin` | String | Administrator username. |
### Application and system information
| Value | Type | Description |
| --- | --- | --- |
| `.Values.domain` | Map\<String,String> | App entrance URLs. Each entry maps an entrance name to its URL. |
| `.Values.sysVersion` | String | Current Olares system version. |
| `.Values.deviceName` | String | Device name. |
| `.Values.downloadCdnURL` | String | CDN address used for system resource downloads. |
### Storage paths
| Value | Type | Description |
| --- | --- | --- |
| `.Values.userspace.appData` | String | Cluster storage path for the app. Path: `/Data/<appname>`. |
| `.Values.userspace.appCache` | String | Node-local cache path for the app. Path: `/Cache/<appname>`. |
| `.Values.userspace.userData` | String | User's home data directory. Path: `/Files/Home/`. |
| `.Values.sharedlib` | String | User's external storage directory. Path: `/Files/External/<devicename>/`. |
### Cluster hardware metadata
| Value | Type | Description |
| --- | --- | --- |
| `.Values.cluster.arch` | String | Cluster CPU architecture, such as `amd64`. Mixed-architecture clusters are not supported. |
| `.Values.nodes` | List\<NodeInfo> | Hardware metadata for each node in the cluster. |
Each entry in `.Values.nodes` follows this structure:
```json
// Single entry in the .Values.nodes list
[
{
"cudaVersion": "12.9",
"cpu": [
{
"coreNumber": 16,
"arch": "amd64",
"frequency": 4900000000,
"model": "151",
"modelName": "12th Gen Intel(R) Core(TM) i5-12600KF",
"vendor": "GenuineIntel"
}
],
"memory": {
"total": 50351353856
},
"gpus": [
{
"vendor": "NVIDIA",
"arch": "Ada Lovelace",
"model": "4060",
"memory": 17175674880,
"modelName": "NVIDIA GeForce RTX 4060 Ti"
}
]
}
]
```
### Application dependencies
When an app declares a dependency in `OlaresManifest.yaml`, Olares injects connection information into `values.yaml`.
| Value | Type | Description |
| --- | --- | --- |
| `.Values.deps` | Map\<String,Value> | Main entry host and port for each declared dependency. Keys follow the pattern `<entry_name>_host` and `<entry_name>_port`. |
| `.Values.svcs` | Map\<String,Value> | All service hosts and ports for each declared dependency. Keys follow the pattern `<service_name>_host` and `<service_name>_port`. Port values are lists to support multiple ports per service. |
**Example**: for a dependency with entry name `aserver` and service name `aserver-svc`.
`.Values.deps`:
```json
{
"aserver_host": "aserver-svc.<namespace>",
"aserver_port": 80
}
```
`.Values.svcs`:
```json
{
"aserver-svc_host": "aserver-svc.<namespace>",
"aserver-svc_port": [80]
}
```
### Middleware values
Middleware values are injected only after you declare the middleware dependency in the `middleware` section of `OlaresManifest.yaml`.
PostgreSQL and Redis are preinstalled. MongoDB, MinIO, RabbitMQ, MySQL and MariaDB must be installed separately before your app can use them.
#### MariaDB
See [Integrate with MariaDB](/developer/develop/mw-integrate-with-mariadb.md) for installation and configuration details.
| Value | Type | Description |
| --- | --- | --- |
| `.Values.mariadb.host` | String | MariaDB host. |
| `.Values.mariadb.port` | Number | MariaDB port. |
| `.Values.mariadb.username` | String | MariaDB username. |
| `.Values.mariadb.password` | String | MariaDB password. |
| `.Values.mariadb.databases` | Map\<String,String> | Requested databases, keyed by database name. For example, a request for `app_db` is available at `.Values.mariadb.databases.app_db`. |
#### MinIO
See [Integrate with MinIO](/developer/develop/mw-integrate-with-minio.md) for installation and configuration details.
| Value | Type | Description |
| --- | --- | --- |
| `.Values.minio.host` | String | MinIO service host. |
| `.Values.minio.port` | Number | MinIO service port. |
| `.Values.minio.username` | String | MinIO access key. |
| `.Values.minio.password` | String | MinIO secret key. |
| `.Values.minio.buckets` | Map\<String,String> | Requested buckets, keyed by bucket name. For example, a request for `mybucket` is available at `.Values.minio.buckets.mybucket`. |
#### MongoDB
See [Integrate with MongoDB](/developer/develop/mw-integrate-with-mongodb.md) for installation and configuration details.
| Value | Type | Description |
| --- | --- | --- |
| `.Values.mongodb.host` | String | MongoDB host. |
| `.Values.mongodb.port` | Number | MongoDB port. |
| `.Values.mongodb.username` | String | MongoDB username. |
| `.Values.mongodb.password` | String | MongoDB password. |
| `.Values.mongodb.databases` | Map\<String,String> | Requested databases, keyed by database name. For example, a request for `app_db` is available at `.Values.mongodb.databases.app_db`. |
#### MySQL
See [Integrate with MySQL](/developer/develop/mw-integrate-with-mysql.md) for installation and configuration details.
| Value | Type | Description |
| --- | --- | --- |
| `.Values.mysql.host` | String | MySQL host. |
| `.Values.mysql.port` | Number | MySQL port. |
| `.Values.mysql.username` | String | MySQL username. |
| `.Values.mysql.password` | String | MySQL password. |
| `.Values.mysql.databases` | Map\<String,String> | Requested databases, keyed by database name. For example, a request for `app_db` is available at `.Values.mysql.databases.app_db`. |
#### PostgreSQL
See [Integrate with PostgreSQL](/developer/develop/mw-integrate-with-pg.md) for installation and configuration details.
| Value | Type | Description |
| --- | --- | --- |
| `.Values.postgres.host` | String | PostgreSQL host. |
| `.Values.postgres.port` | Number | PostgreSQL port. |
| `.Values.postgres.username` | String | PostgreSQL username. |
| `.Values.postgres.password` | String | PostgreSQL password. |
| `.Values.postgres.databases` | Map\<String,String> | Requested databases, keyed by database name. For example, a request for `app_db` is available at `.Values.postgres.databases.app_db`. |
#### RabbitMQ
See [Integrate with RabbitMQ](/developer/develop/mw-integrate-with-rabbitmq.md) for installation and configuration details.
| Value | Type | Description |
| --- | --- | --- |
| `.Values.rabbitmq.host` | String | RabbitMQ host. |
| `.Values.rabbitmq.port` | Number | RabbitMQ port. |
| `.Values.rabbitmq.username` | String | RabbitMQ username. |
| `.Values.rabbitmq.password` | String | RabbitMQ password. |
| `.Values.rabbitmq.vhosts` | Map\<String,String> | Requested vhosts, keyed by vhost name. For example, a request for `myvhost` is available at `.Values.rabbitmq.vhosts.myvhost`. |
#### Redis
See [Integrate with Redis](/developer/develop/mw-integrate-with-redis.md) for installation and configuration details.
| Value | Type | Description |
| --- | --- | --- |
| `.Values.redis.host` | String | Redis host. |
| `.Values.redis.port` | Number | Redis port. |
| `.Values.redis.password` | String | Redis password. |
| `.Values.redis.namespaces` | Map\<String,String> | Requested namespaces, keyed by namespace name. For example, a request for `app_ns` is available at `.Values.redis.namespaces.app_ns`. |

View File

@@ -32,9 +32,8 @@ middleware:
- name: aaa
```
## Inject environment variables
In your deployment YAML, map the injected `.Values.elasticsearch.*` fields to the environment variables your app uses.
## Map to environment variables
In your deployment YAML, map the injected `.Values.elasticsearch.*` fields to the container environment variables your app requires.
**Example**
```yaml
@@ -59,14 +58,14 @@ containers:
value: "{{ .Values.elasticsearch.indexes.aaa }}"
```
## Elasticsearch Values reference
## Elasticsearch values reference
Elasticsearch Values are predefined environment variables injected into `values.yaml` during deployment. They are system-managed and not user-editable.
Elasticsearch values are predefined runtime values injected into `values.yaml` during deployment. They are system-managed and not user-editable.
| Key | Type | Description |
|--|--|--|
|`.Values.elasticsearch.host`| String | Elasticsearch service host |
|`.Values.elasticsearch.port`| Number | Elasticsearch service port |
|`.Values.elasticsearch.username`| String | Elasticsearch username |
|`.Values.elasticsearch.password`| String | Elasticsearch password |
|`.Values.elasticsearch.indexes` | Map<String,String> | The requested index name is used<br> as the key. For example, if you request `aaa`, the value is available at `.Values.elasticsearch.indexes.aaa`. |
| Value | Type | Description |
| --- | --- | --- |
| `.Values.elasticsearch.host` | String | Elasticsearch service host. |
| `.Values.elasticsearch.port` | Number | Elasticsearch service port. |
| `.Values.elasticsearch.username` | String | Elasticsearch username. |
| `.Values.elasticsearch.password` | String | Elasticsearch password. |
| `.Values.elasticsearch.indexes` | Map\<String,String> | Requested indexes, keyed by index name. For example, a request for `aaa` is available at `.Values.elasticsearch.indexes.aaa`. |

View File

@@ -31,9 +31,8 @@ middleware:
- name: aaa
```
## Inject environment variables
In your deployment YAML, map the injected `.Values.mariadb.*` fields to the environment variables your app uses.
## Map to environment variables
In your deployment YAML, map the injected `.Values.mariadb.*` fields to the container environment variables your app requires.
**Example**
```yaml
@@ -59,14 +58,13 @@ containers:
value: "{{ .Values.mariadb.databases.aaa }}"
```
## MariaDB Values reference
## MariaDB values reference
MariaDB values are predefined runtime values injected into `values.yaml` during deployment. They are system-managed and not user-editable.
MariaDB Values are predefined environment variables injected into `values.yaml` during deployment. They are system-managed and not user-editable.
| Key | Type | Description |
|--|--|--|
| `.Values.mariadb.host` | String | MariaDB database host |
| `.Values.mariadb.port` | Number | MariaDB database port |
| `.Values.mariadb.username` | String | MariaDB database username |
| `.Values.mariadb.password` | String | MariaDB database password |
| `.Values.mariadb.databases` | Map<String,String> | The requested database name is used as the key. <br/>For example, if you request `aaa`, the value is available at `.Values.mariadb.databases.aaa`. |
| Value | Type | Description |
| --- | --- | --- |
| `.Values.mariadb.host` | String | MariaDB host. |
| `.Values.mariadb.port` | Number | MariaDB port. |
| `.Values.mariadb.username` | String | MariaDB username. |
| `.Values.mariadb.password` | String | MariaDB password. |
| `.Values.mariadb.databases` | Map\<String,String> | Requested databases, keyed by database name. For example, a request for `app_db` is available at `.Values.mariadb.databases.app_db`. |

View File

@@ -31,9 +31,8 @@ middleware:
- name: mybucket
```
## Inject environment variables
In your deployment YAML, map the injected `.Values.minio.*` fields to the environment variables your app uses.
## Map to environment variables
In your deployment YAML, map the injected `.Values.minio.*` fields to the container environment variables your app requires.
**Example**
```yaml
@@ -60,14 +59,14 @@ containers:
value: "{{ .Values.minio.buckets.mybucket }}"
```
## MinIO Values reference
## MinIO values reference
MinIO Values are predefined environment variables injected into `values.yaml` during deployment. They are system-managed and not user-editable.
MinIO values are predefined runtime values injected into `values.yaml` during deployment. They are system-managed and not user-editable.
| Key | Type | Description |
|--|--|--|
| `.Values.minio.host` | String | MinIO service host |
| `.Values.minio.port` | Number | MinIO service port |
| `.Values.minio.username` | String | MinIO access key |
| `.Values.minio.password` | String | MinIO secret key |
| `.Values.minio.buckets` | Map<String,String> | The requested bucket name is used as the key. <br>For example, if you request `mybucket`, the value is available at `.Values.minio.buckets.mybucket`. |
| Value | Type | Description |
| --- | --- | --- |
| `.Values.minio.host` | String | MinIO service host. |
| `.Values.minio.port` | Number | MinIO service port. |
| `.Values.minio.username` | String | MinIO access key. |
| `.Values.minio.password` | String | MinIO secret key. |
| `.Values.minio.buckets` | Map\<String,String> | Requested buckets, keyed by bucket name. For example, a request for `mybucket` is available at `.Values.minio.buckets.mybucket`. |

View File

@@ -35,9 +35,9 @@ middleware:
# Please make sure each line is a complete query.
```
## Inject environment variables
## Map to environment variables
In your deployment YAML, map the injected `.Values.mongodb.*` fields to the environment variables your app uses.
In your deployment YAML, map the injected `.Values.mongodb.*` fields to the container environment variables your app requires.
**Example**
```yaml
@@ -63,14 +63,14 @@ containers:
value: "{{ .Values.mongodb.databases.app_db }}"
```
## MongoDB Values reference
## MongoDB values reference
MongoDB Values are predefined environment variables injected into `values.yaml` during deployment. They are system-managed and not user-editable.
MongoDB values are predefined runtime values injected into `values.yaml` during deployment. They are system-managed and not user-editable.
| Key | Type | Description |
|--|--|--|
| `.Values.mongodb.host` | String | MongoDB database host |
| `.Values.mongodb.port` | Number | MongoDB database port |
| `.Values.mongodb.username` | String | MongoDB database username |
| `.Values.mongodb.password` | String | MongoDB database password |
| `.Values.mongodb.databases` | Map<String,String> | The requested database name is used as the key. <br/>For example, if you request `app_db`, the value is available at `.Values.mongodb.databases.app_db`. |
| Value | Type | Description |
| --- | --- | --- |
| `.Values.mongodb.host` | String | MongoDB host. |
| `.Values.mongodb.port` | Number | MongoDB port. |
| `.Values.mongodb.username` | String | MongoDB username. |
| `.Values.mongodb.password` | String | MongoDB password. |
| `.Values.mongodb.databases` | Map\<String,String> | Requested databases, keyed by database name. For example, a request for `app_db` is available at `.Values.mongodb.databases.app_db`. |

View File

@@ -31,9 +31,9 @@ middleware:
- name: aaa
```
## Inject environment variables
## Map to environment variables
In your deployment YAML, map the injected `.Values.mysql.*` fields to the environment variables your app uses.
In your deployment YAML, map the injected `.Values.mysql.*` fields to the container environment variables your app requires.
**Example**
```yaml
@@ -59,14 +59,14 @@ containers:
value: "{{ .Values.mysql.databases.aaa }}"
```
## MySQL Values reference
## MySQL values reference
MySQL Values are predefined environment variables injected into `values.yaml` during deployment. They are system-managed and not user-editable.
MySQL values are predefined runtime values injected into `values.yaml` during deployment. They are system-managed and not user-editable.
| Key | Type | Description |
|--|--|--|
| `.Values.mysql.host` | String | MySQL database host |
| `.Values.mysql.port` | Number | MySQL database port |
| `.Values.mysql.username` | String | MySQL database username |
| `.Values.mysql.password` | String | MySQL database password |
| `.Values.mysql.databases` | Map<String,String> | The requested database name is used as the key. <br/>For example, if you request `aaa`, the value is available at `.Values.mysql.databases.aaa`. |
| Value | Type | Description |
| --- | --- | --- |
| `.Values.mysql.host` | String | MySQL host. |
| `.Values.mysql.port` | Number | MySQL port. |
| `.Values.mysql.username` | String | MySQL username. |
| `.Values.mysql.password` | String | MySQL password. |
| `.Values.mysql.databases` | Map\<String,String> | Requested databases, keyed by database name. For example, a request for `app_db` is available at `.Values.mysql.databases.app_db`. |

View File

@@ -38,9 +38,9 @@ middleware:
- COMMIT;
```
## Inject environment variables
## Map to environment variables
In your deployment YAML, map the injected `.Values.postgres.*` fields to the environment variables your app uses.
In your deployment YAML, map the injected `.Values.postgres.*` fields to the container environment variables your app requires.
**Example**
```yaml
@@ -69,13 +69,14 @@ containers:
value: {{ .Values.postgres.password }}
```
## PostgreSQL Values reference
## PostgreSQL values reference
PostgreSQL Values are predefined environment variables injected into `values.yaml` during deployment. They are system-managed and not user-editable.
| Key | Type | Description |
|--|--|--|
| `.Values.postgres.host` | String | PostgreSQL database host |
| `.Values.postgres.port` | Number | PostgreSQL database port |
| `.Values.postgres.username` | String | PostgreSQL database username |
| `.Values.postgres.password` | String | PostgreSQL database password |
| `.Values.postgres.databases` | Map<String,String> | The requested database name is used as the key. <br>For example, if you request `app_db`, the value is available at `.Values.postgres.databases.app_db`|
PostgreSQL values are predefined runtime values injected into `values.yaml` during deployment. They are system-managed and not user-editable.
| Value | Type | Description |
| --- | --- | --- |
| `.Values.postgres.host` | String | PostgreSQL host. |
| `.Values.postgres.port` | Number | PostgreSQL port. |
| `.Values.postgres.username` | String | PostgreSQL username. |
| `.Values.postgres.password` | String | PostgreSQL password. |
| `.Values.postgres.databases` | Map\<String,String> | Requested databases, keyed by database name. For example, a request for `app_db` is available at `.Values.postgres.databases.app_db`. |

View File

@@ -31,9 +31,9 @@ middleware:
- name: aaa
```
## Inject environment variables
## Map to environment variables
In your deployment YAML, map the injected `.Values.rabbitmq.*` fields to the environment variables your app uses.
In your deployment YAML, map the injected `.Values.rabbitmq.*` fields to the container environment variables your app requires.
**Example**
```yaml
@@ -78,14 +78,14 @@ portMQ := os.Getenv("RABBITMQ_PORT")
url := fmt.Sprintf("amqp://%s:%s@%s:%s/%s", user, password, host, portMQ, vhost)
```
## RabbitMQ Values reference
## RabbitMQ values reference
RabbitMQ Values are predefined environment variables injected into `values.yaml` during deployment. They are system-managed and not user-editable.
RabbitMQ values are predefined runtime values injected into `values.yaml` during deployment. They are system-managed and not user-editable.
| Key | Type | Description |
|--|--|--|
| `.Values.rabbitmq.host` | String | RabbitMQ service host |
| `.Values.rabbitmq.port` | Number | RabbitMQ service port |
| `.Values.rabbitmq.username` | String | RabbitMQ username |
| `.Values.rabbitmq.password` | String | RabbitMQ password |
| `.Values.rabbitmq.vhosts` | Map<String,String> | The requested vhost name is used as the key. <br/>For example, if you request `aaa`, the value is available at `.Values.rabbitmq.vhosts.aaa`. |
| Value | Type | Description |
| --- | --- | --- |
| `.Values.rabbitmq.host` | String | RabbitMQ host. |
| `.Values.rabbitmq.port` | Number | RabbitMQ port. |
| `.Values.rabbitmq.username` | String | RabbitMQ username. |
| `.Values.rabbitmq.password` | String | RabbitMQ password. |
| `.Values.rabbitmq.vhosts` | Map\<String,String> | Requested vhosts, keyed by vhost name. For example, a request for `myvhost` is available at `.Values.rabbitmq.vhosts.myvhost`. |

View File

@@ -25,9 +25,9 @@ middleware:
namespace: db0
```
## Inject environment variables
## Map to environment variables
In your deployment YAML, map the injected `.Values.redis.*` fields to the environment variables your app uses.
In your deployment YAML, map the injected `.Values.redis.*` fields to the container environment variables your app requires.
**Example**
```yaml
@@ -54,12 +54,13 @@ containers:
value: {{ .Values.redis.namespaces.<namespace> }}
```
## Redis Values reference
## Redis values reference
Redis Values are predefined environment variables injected into `values.yaml` during deployment. They are system-managed and not user-editable.
| Key | Type | Description |
|--|--|--|
| `.Values.redis.host` | String | Redis service host |
| `.Values.redis.port` | Number | Redis service port |
| `.Values.redis.password`| String | Redis service password |
| `.Values.redis.namespaces` | Map<String, String> | The requested namespace is used as the key. <br>For example, if you request `app_ns`, the value is available at `.Values.redis.namespaces.app_ns`. |
Redis values are predefined runtime values injected into `values.yaml` during deployment. They are system-managed and not user-editable.
| Value | Type | Description |
| --- | --- | --- |
| `.Values.redis.host` | String | Redis host. |
| `.Values.redis.port` | Number | Redis port. |
| `.Values.redis.password` | String | Redis password. |
| `.Values.redis.namespaces` | Map\<String,String> | Requested namespaces, keyed by namespace name. For example, a request for `app_ns` is available at `.Values.redis.namespaces.app_ns`. |

View File

@@ -15,128 +15,147 @@ To customize the installation process, you can set the environment variables bef
export KUBE_TYPE=k8s \
&& curl -sSfL https://olares.sh | bash -
```
Or, if you have already downloaded the installation script `install.sh`:
```bash
# Specify Kubernetes (k8s) instead of k3s
export KUBE_TYPE=k8s && bash install.sh
```
Both methods achieve the same result. The environment variable `KUBE_TYPE` will be passed to the script, and the script will use it to modify its behavior.
Both methods achieve the same result. The environment variable `KUBE_TYPE` is passed to the installation script and modifies its behavior accordingly.
## Environment variables reference
The section lists all the environment variables, along with their default values, optional values, and descriptions. Configure them as needed.
The section lists all the environment variables, along with their default values, optional values, and descriptions. Configure them as needed.
### `CLOUDFLARE_ENABLE`
Specifies whether to enable the Cloudflare proxy.
### CLOUDFLARE_ENABLE
Specifies whether to enable the Cloudflare proxy.
- **Valid values**:
- `0` (disable)
- `1` (enable)
- **Default**: `0`
### FRP_AUTH_METHOD
Sets the FRP authentication method.
- **Valid values**:
- `jws `
- `token` (requires `FRP_AUTH_TOKEN`)
- (empty) No authentication
- **Default**: `jws`
### FRP_AUTH_TOKEN
Specifies the token for FRP communication (required if `FRP_AUTH_METHOD=token`).
- **Valid values**: Any non-empty string
- **Default**: None
### FRP_ENABLE
Specifies whether to enable FRP for internal network tunneling. Requires additional FRP-related variables if using a custom server.
- **Valid values**:
- `0` (disable)
- `1` (enable)
- **Default**: `0`
### FRP_PORT
Specifies the FRP server's listening port.
- **Valid values**: An integer in the range `165535`
- **Default**: `7000` (if not set or set to `0`)
### JUICEFS
Installs [JuiceFS](https://juicefs.com/) alongside Olares.
- **Valid values**: `1`
- **Default**: None (does not install JuiceFS if not set)
### KUBE_TYPE
Determines the Kubernetes distribution to install.
- **Valid values**:
- `k8s`(full Kubernetes)
- `k3s` (lightweight Kubernetes)
- **Default**: `k3s`
### LOCAL_GPU_ENABLE
Specifies whether to enable GPU support and install related drivers.
- **Valid values**:
- `0` (disable)
- `1` (enable)
- **Default**: `0`
### LOCAL_GPU_SHARE
Specifies whether to enable GPU sharing. Applies only if GPU is enabled.
- **Valid values**:
- `0` (disable)
- `1` (enable)
- **Default**: `0`
- `0` (disable)
- `1` (enable)
- **Default**: `0`
### `FRP_AUTH_METHOD`
Sets the FRP authentication method.
- **Valid values**:
- `jws`
- `token` (requires `FRP_AUTH_TOKEN`)
- (empty) No authentication
- **Default**: `jws`
### NVIDIA_CONTAINER_REPO_MIRROR
### `FRP_AUTH_TOKEN`
Specifies the token for FRP communication (required if `FRP_AUTH_METHOD=token`).
- **Valid values**: Any non-empty string
- **Default**: None
Specifies the APT repository mirror for installing NVIDIA Container Toolkit.
- **Valid values**:
- `nvidia.github.io`
- `mirrors.ustc.edu.cn` (recommended for better connectivity in mainland China)
- **Default**: `nvidia.github.io`
### `FRP_ENABLE`
Specifies whether to enable FRP for internal network tunneling. Requires additional FRP-related variables if using a custom server.
- **Valid values**:
- `0` (disable)
- `1` (enable)
- **Default**: `0`
### PREINSTALL
### `FRP_PORT`
Specifies the FRP server's listening port.
- **Valid values**: An integer in the range `165535`
- **Default**: `7000` (if not set or set to `0`)
Runs only the pre-installation phase (system dependency setup) without proceeding to the full Olares installation.
- **Valid values**: `1`
- **Default**: None (performs full installation if not set)
### `JUICEFS`
Installs [JuiceFS](https://juicefs.com/) alongside Olares.
- **Valid values**: `1`
- **Default**: None (does not install JuiceFS if not set)
### PUBLICLY_ACCESSIBLE
### `KUBE_TYPE`
Determines the Kubernetes distribution to install.
- **Valid values**:
- `k8s` (full Kubernetes)
- `k3s` (lightweight Kubernetes)
- **Default**: `k3s`
### `LOCAL_GPU_ENABLE`
Specifies whether to enable GPU support and install related drivers.
- **Valid values**:
- `0` (disable)
- `1` (enable)
- **Default**: `0`
### `LOCAL_GPU_SHARE`
Specifies whether to enable GPU sharing. Applies only if GPU is enabled.
- **Valid values**:
- `0` (disable)
- `1` (enable)
- **Default**: `0`
### `NVIDIA_CONTAINER_REPO_MIRROR`
Specifies the APT repository mirror for installing NVIDIA Container Toolkit.
- **Valid values**:
- `nvidia.github.io`
- `mirrors.ustc.edu.cn` (recommended for better connectivity in mainland China)
- **Default**: `nvidia.github.io`
### `PREINSTALL`
Runs only the pre-installation phase (system dependency setup) without proceeding to the full Olares installation.
- **Valid values**: `1`
- **Default**: None (performs full installation if not set)
### `PUBLICLY_ACCESSIBLE`
Explicitly specifies that this machine is accessible publicly on the internet, and a reverse proxy should not be used.
- **Valid values**:
- `0` (false)
- `1` (true)
- **Default**: `0`
- `0` (false)
- `1` (true)
- **Default**: `0`
### REGISTRY_MIRRORS
### `REGISTRY_MIRRORS`
Specifies a custom Docker registry mirror for faster image pulls.
- **Valid values**: `https://mirrors.olares.com` or any other valid URL
- **Default**: `https://registry-1.docker.io`
Specifies a custom Docker registry mirror for faster image pulls.
- **Valid values**: `https://mirrors.olares.com` or any other valid URL
- **Default**: `https://registry-1.docker.io`
### `TERMINUS_IS_CLOUD_VERSION`
Marks the machine explicitly as a cloud instance.
- **Valid values**: `true`
- **Default**: None
### TERMINUS_IS_CLOUD_VERSION
### `TERMINUS_OS_DOMAINNAME`
Sets the domain name before installation to skip the interactive prompt.
- **Valid values**: Any valid domain name
- **Default**: None (prompts for domain name if not set)
Marks the machine explicitly as a cloud instance.
- **Valid values**: `true`
- **Default**: None
### `TERMINUS_OS_EMAIL`
Specifies the email address to use instead of a generated one.
- **Valid values**: Any valid email address
- **Default**: None (a temporary email is generated if not set)
### TERMINUS_OS_DOMAINNAME
### `TERMINUS_OS_PASSWORD`
Specifies the password to use instead of a generated one.
- **Valid values**: A valid password with 632 characters
- **Default**: A randomly generated 8-character password
Sets the domain name before installation to skip the interactive prompt.
- **Valid values**: Any valid domain name
- **Default**: None (prompts for domain name if not set)
### `TERMINUS_OS_USERNAME`
Specifies the username before installation to skip the interactive prompt.
- **Valid values**: Any valid username (2250 characters, excluding reserved keywords)
- **Default**: None (prompts for username if not set)
- **Validation**: Reserved keywords include `user`, `system`, `space`, `default`, `os`, `kubesphere`, `kube`, `kubekey`, `kubernetes`, `gpu`, `tapr`, `bfl`, `bytetrade`, `project`, `pod`
### TERMINUS_OS_EMAIL
### `TOKEN_MAX_AGE`
Sets the maximum validity period for a token (in seconds).
- **Valid values**: Any integer (in seconds)
Specifies the email address to use instead of a generated one.
- **Valid values**: Any valid email address
- **Default**: None (a temporary email is generated if not set)
### TERMINUS_OS_PASSWORD
Specifies the password to use instead of a generated one.
- **Valid values**: A valid password with 632 characters
- **Default**: A randomly generated 8-character password
### TERMINUS_OS_USERNAME
Specifies the username before installation to skip the interactive prompt.
- **Valid values**: Any valid username (2250 characters, excluding reserved keywords)
- **Default**: None (prompts for username if not set)
- **Validation**: Reserved keywords include `user`, `system`, `space`, `default`, `os`, `kubesphere`, `kube`, `kubekey`, `kubernetes`, `gpu`, `tapr`, `bfl`, `bytetrade`, `project`, `pod`.
### TOKEN_MAX_AGE
Sets the maximum validity period for a token (in seconds).
- **Valid values**: Any integer (in seconds)
- **Default**: `31536000` (365 days)

View File

@@ -0,0 +1,24 @@
---
outline: [2, 3]
description: 了解 Olares 应用在部署期间的变量注入机制:声明式环境变量(.Values.olaresEnv与系统自动注入的运行时 Helm Values.Values.*)。
---
# 环境变量概览
Olares 应用通过 app-service 将运行时信息与配置项注入到应用的 `values.yaml` 中。应用在 Helm 模板中通过 `.Values.*` 引用这些值。
:::info 变量与 Helm 值
本文提到的“变量”主要指 Helm 值。它们不会自动进入容器环境变量。如需在容器内使用,请在模板中显式映射到 `env:`
:::
## 变量注入通道
Olares 通过两种通道注入变量:
- **声明式环境变量**:开发者在 `OlaresManifest.yaml``envs` 下声明变量。在部署时app-service 会解析这些值并将其注入到 `values.yaml``.Values.olaresEnv` 路径下。
- **系统注入的运行时变量**:由 Olares 在部署时自动注入,无需声明。不过,某些值(例如中间件)只有在声明相关依赖后才可用。
## 下一步
1. [声明式环境变量](app-env-vars.md)`envs` 字段说明、变量映射以及变量参考。
2. [系统注入的运行时变量](app-sys-injected-variables.md):所有系统注入运行时变量的完整参考。

View File

@@ -0,0 +1,197 @@
---
outline: [2, 4]
description: 通过 `OlaresManifest.yaml` 中的 `envs` 声明并校验应用配置,并在模板中通过 `.Values.olaresEnv` 引用变量值。
---
# 声明式环境变量
`OlaresManifest.yaml` 中使用 `envs` 字段来声明配置参数例如密码、API 端点或功能开关。在部署过程中app-service 会解析这些变量,并将其注入到 `values.yaml``.Values.olaresEnv` 中。你可以在 Helm 模板中通过 <code v-pre>{{ .Values.olaresEnv.&lt;envName&gt; }}</code> 引用。
## 变量来源
声明式变量可以从应用外部管理的配置中获取值:
- **系统变量**Olares 集群实例级别的环境变量,在系统安装时设置,或由管理员统一管理。集群中的所有用户共享。
- **用户变量**Olares 用户级别的环境变量,由用户自行管理。在同一集群中,不同用户的变量彼此独立。
应用本身无法直接修改这些变量。如需使用,需通过 `valueFrom` 字段映射。
## 映射环境变量
系统环境变量和用户环境变量都通过 `valueFrom` 使用相同的映射机制。
以下示例演示了如何将系统变量 `OLARES_SYSTEM_CDN_SERVICE` 映射为应用变量 `APP_CDN_ENDPOINT`
1.`OlaresManifest.yaml` 中,在 `envs` 下声明一个应用变量,并将 `valueFrom.envName` 设置为系统变量名。
```yaml
# 将系统变量 OLARES_SYSTEM_CDN_SERVICE 映射为应用变量 APP_CDN_ENDPOINT
olaresManifest.version: '0.10.0'
olaresManifest.type: app
envs:
- envName: APP_CDN_ENDPOINT
required: true
applyOnChange: true
valueFrom:
envName: OLARES_SYSTEM_CDN_SERVICE
```
2. 在 Helm 模板中,通过 `.Values.olaresEnv.<envName>` 引用该应用变量。
```yaml
# 在容器环境变量中使用 APP_CDN_ENDPOINT
env:
- name: CDN_ENDPOINT
value: "{{ .Values.olaresEnv.APP_CDN_ENDPOINT }}"
```
部署时app-service 会解析引用的变量,并将值注入到 `values.yaml` 中:
```yaml
# 由 app-service 在部署时注入
olaresEnv:
APP_CDN_ENDPOINT: "https://cdn.olares.com"
```
可用环境变量的完整列表,请参阅[变量参考](#变量参考)。
## 声明字段
`envs` 列表中的每个条目支持以下字段。
### envName
注入到 `values.yaml` 中的变量名。在模板中通过 <code v-pre>{{ .Values.olaresEnv.&lt;envName&gt; }}</code> 引用。
### default
变量的默认值。由开发者在编写应用时提供。用户不可修改。当用户未提供值或未通过 `valueFrom` 引用时使用。
### valueFrom
将当前变量映射到系统或用户环境变量。设置后,当前变量将继承所引用变量的所有字段(如 `type`、`editable`、`regex` 等)。当前变量本地定义的同名字段将被忽略。使用 `valueFrom` `default` 和 `options` 不生效。
**示例** 将应用变量 `APP_CDN_ENDPOINT` 映射到系统变量 `OLARES_SYSTEM_CDN_SERVICE`。
```yaml
envs:
- envName: APP_CDN_ENDPOINT
required: true
applyOnChange: true
valueFrom:
envName: OLARES_SYSTEM_CDN_SERVICE
```
### required
布尔值。为 `true` 时,安装必须提供该变量值。如果未设置 `default`,系统会提示用户输入。安装后该值不能设为空。
### editable
布尔值。为 `true` 时,该变量在安装后允许修改。
### applyOnChange
布尔值。为 `true` 时,修改该变量会自动重启使用该变量的应用或组件。为 `false` 时,修改仅在应用升级或重装后生效。手动停止和启动应用不会使其生效。
### type
值的预期类型。用于在接受输入前进行校验。支持的类型包括:`int`、`bool`、`url`、`ip`、`domain`、`email`、`string`、`password`。
### regex
值必须匹配的正则表达式。如果校验失败,则无法设置该值,且安装或升级可能失败。
### options
将变量限制为固定的可选值列表。系统会在界面中提供选择界面。
**示例**:显示可安装的 Windows 版本的下拉列表。
```yaml
envs:
- envName: VERSION
options:
- title: "Windows 11 Pro"
value: "iso/Win11_24H2_English_x64.iso"
- title: "Windows 7 Ultimate"
value: "iso/win7_sp1_x64_1.iso"
```
### remoteOptions
从 URL 加载选项列表,而不是在行内定义。响应体必须是与 `options` 格式相同的 JSON 编码数组。
**示例**:在安装时从远程端点获取选项列表。
```yaml
envs:
- envName: VERSION
remoteOptions: https://app.cdn.olares.com/appstore/windows/version_options.json
```
### description
变量用途及有效取值范围的说明。显示在 Olares 界面中。
## 变量参考
### 系统环境变量
下表列出了可通过 `valueFrom` 引用的系统级环境变量。
| 变量 | 类型 | 默认值 | 可编辑 | 必填 | 描述 |
| --- | --- | --- | --- | --- | --- |
| `OLARES_SYSTEM_REMOTE_SERVICE` | `url` | `https://api.olares.com` | 是 | 是 | Olares 远程服务端点,例如应用商店与 Olares Space。 |
| `OLARES_SYSTEM_CDN_SERVICE` | `url` | `https://cdn.olares.com` | 是 | 是 | 系统资源 CDN 端点。 |
| `OLARES_SYSTEM_DOCKERHUB_SERVICE` | `url` | 无 | 是 | 否 | Docker Hub 镜像或加速端点。 |
| `OLARES_SYSTEM_ROOT_PATH` | `string` | `/olares` | 否 | 是 | Olares 根目录路径。 |
| `OLARES_SYSTEM_ROOTFS_TYPE` | `string` | `fs` | 否 | 是 | Olares 文件系统类型。 |
| `OLARES_SYSTEM_CUDA_VERSION` | `string` | 无 | 否 | 否 | 主机 CUDA 版本。 |
### 用户环境变量
所有用户环境变量均可由用户编辑。
#### 用户信息
| 变量 | 类型 | 默认值 | 描述 |
| --- | --- | --- | --- |
| `OLARES_USER_EMAIL` | `string` | 无 | 用户邮箱地址。 |
| `OLARES_USER_USERNAME` | `string` | 无 | 用户名。 |
| `OLARES_USER_PASSWORD` | `password` | 无 | 用户密码。 |
| `OLARES_USER_TIMEZONE` | `string` | 无 | 用户时区,例如 `Asia/Shanghai`。 |
#### SMTP 设置
| 变量 | 类型 | 默认值 | 描述 |
| --- | --- | --- | --- |
| `OLARES_USER_SMTP_ENABLED` | `bool` | 无 | 是否启用 SMTP。 |
| `OLARES_USER_SMTP_SERVER` | `domain` | 无 | SMTP 服务器域名。 |
| `OLARES_USER_SMTP_PORT` | `int` | 无 | SMTP 服务端口,通常为 `465` 或 `587`。 |
| `OLARES_USER_SMTP_USERNAME` | `string` | 无 | SMTP 用户名。 |
| `OLARES_USER_SMTP_PASSWORD` | `password` | 无 | SMTP 密码或授权码。 |
| `OLARES_USER_SMTP_FROM_ADDRESS` | `email` | 无 | 发件人邮箱地址。 |
| `OLARES_USER_SMTP_SECURE` | `bool` | `"true"` | 是否使用安全协议。 |
| `OLARES_USER_SMTP_USE_TLS` | `bool` | 无 | 是否使用 TLS。 |
| `OLARES_USER_SMTP_USE_SSL` | `bool` | 无 | 是否使用 SSL。 |
| `OLARES_USER_SMTP_SECURITY_PROTOCOLS` | `string` | 无 | 安全协议类型,可选值包括:`tls`、`ssl`、`starttls`、`none`。 |
#### 镜像与代理端点
| 变量 | 类型 | 默认值 | 描述 |
| --- | --- | --- | --- |
| `OLARES_USER_HUGGINGFACE_SERVICE` | `url` | `https://huggingface.co/` | Hugging Face 服务地址。 |
| `OLARES_USER_HUGGINGFACE_TOKEN` | `string` | 无 | Hugging Face 访问令牌。 |
| `OLARES_USER_PYPI_SERVICE` | `url` | `https://pypi.org/simple/` | PyPI 镜像地址。 |
| `OLARES_USER_GITHUB_SERVICE` | `url` | `https://github.com/` | GitHub 镜像地址。 |
| `OLARES_USER_GITHUB_TOKEN` | `string` | 无 | GitHub 个人访问令牌。 |
#### API keys
| 变量 | 类型 | 默认值 | 描述 |
| --- | --- | --- | --- |
| `OLARES_USER_OPENAI_APIKEY` | `password` | 无 | OpenAI API key。 |
| `OLARES_USER_CUSTOM_OPENAI_SERVICE` | `url` | 无 | 自定义 OpenAI 兼容服务地址。 |
| `OLARES_USER_CUSTOM_OPENAI_APIKEY` | `password` | 无 | 自定义 OpenAI 兼容服务的 API key。 |

View File

@@ -0,0 +1,218 @@
---
outline: [2, 4]
description: Olares 在应用部署期间注入到 `application values.yaml` 中的运行时变量。
---
# 系统注入的运行时变量
在部署时Olares 会自动向应用的 `values.yaml` 注入由系统管理的变量。这些变量为只读,涵盖用户身份、存储路径、集群元数据、应用依赖以及中间件凭据等信息。
由于它们属于 Helm values因此不会自动传递到容器内部。如需在容器内部使用请在部署模板中通过 `env:` 显式映射。
## 在应用中使用
你可以在 Helm 模板(如 `deployment.yaml`)中直接引用这些值。
**示例**:将当前用户名和 Postgres 主机地址传入容器环境变量。
```yaml
# 将系统注入的运行时变量传入容器环境变量
spec:
containers:
- name: my-app
env:
- name: APP_USER
value: "{{ .Values.bfl.username }}"
- name: DB_HOST
value: "{{ .Values.postgres.host }}"
```
完整变量列表请参见[变量参考](#变量参考)。
## 变量参考
“类型”列描述的是 Helm value 的数据类型,并不对应 `OlaresManifest.yaml` 中的 `type` 字段。
### 用户与身份信息
| 变量 | 类型 | 说明 |
| -- | -- | -- |
| `.Values.bfl.username` | String | 当前用户名。 |
| `.Values.user.zone` | String | 当前用户的域名。 |
| `.Values.admin` | String | 管理员用户名。 |
### 应用与系统信息
| 变量 | 类型 | 说明 |
| -- | -- | -- |
| `.Values.domain` | Map<String,String> | 应用入口地址映射,每个条目将入口名称映射为对应的 URL。 |
| `.Values.sysVersion` | String | 系统版本号。 |
| `.Values.deviceName` | String | 设备名称。 |
| `.Values.downloadCdnURL` | String | 系统资源下载使用的 CDN 地址。 |
### 存储路径
| 变量 | 类型 | 说明 |
| -- | -- | -- |
| `.Values.userspace.appData` | String | 应用的集群存储路径,路径为 `/Data/<appname>`。 |
| `.Values.userspace.appCache` | String | 应用的节点本地缓存路径,路径为 `/Cache/<appname>`。 |
| `.Values.userspace.userData` | String | 用户数据目录,路径为 `/Files/Home/`。 |
| `.Values.sharedlib` | String | 用户外部存储目录,路径为 `/Files/External/<devicename>/`。 |
### 集群硬件信息
集群硬件信息会在部署时注入到 `values.yaml` 中。
| 变量 | 类型 | 说明 |
| -- | -- | -- |
| `.Values.cluster.arch` | String | 集群 CPU 架构(例如 `amd64`。Olares 目前不支持混合架构组成集群。 |
| `.Values.nodes` | List\<NodeInfo> | 节点硬件元数据列表,注入在 `values["nodes"]`下。 |
`.Values.nodes` 中每个条目结构如下:
```json
[
{
"cudaVersion": "12.9",
"cpu": [
{
"coreNumber": 16,
"arch": "amd64",
"frequency": 4900000000,
"model": "151",
"modelName": "12th Gen Intel(R) Core(TM) i5-12600KF",
"vendor": "GenuineIntel"
}
],
"memory": {
"total": 50351353856
},
"gpus": [
{
"vendor": "NVIDIA",
"arch": "Ada Lovelace",
"model": "4060",
"memory": 17175674880,
"modelName": "NVIDIA GeForce RTX 4060 Ti"
}
]
}
]
```
### 应用依赖
当应用在 `OlaresManifest.yaml` 中声明对其他应用的依赖时Olares 会将连接信息注入到 `values.yaml`
| 变量 | 类型 | 说明 |
| -- | -- | -- |
| `.Values.deps` | Map<String,Value> | 每个声明依赖的服务主机地址与端口。键名格式为 `<entry_name>_host``<entry_name>_port`。|
| `.Values.svcs` | Map<String,Value> | 每个声明依赖的所有服务主机地址与端口。键名格式为 `<service_name>_host``<service_name>_port`。端口值为列表类型,用于支持多端口服务。 |
**示例**:依赖入口名为 `aserver`,服务名为 `aserver-svc`
`.Values.deps`
```json
{
"aserver_host": "aserver-svc.<namespace>",
"aserver_port": 80
}
```
`.Values.svcs`
```json
{
"aserver-svc_host": "aserver-svc.<namespace>",
"aserver-svc_port": [80]
}
```
### 中间件变量
仅当在 `OlaresManifest.yaml``middleware` 部分声明中间件依赖时,才会注入对应变量。
PostgreSQL 与 Redis 为预安装组件。MongoDB、MinIO、RabbitMQ、MySQL 和 MariaDB 需要单独安装后方可使用。
#### MariaDB
安装与配置详情请参见[集成 MariaDB](/zh/developer/develop/mw-integrate-with-mariadb.md)。
| 变量 | 类型 | 说明 |
|--|--|--|
| `.Values.mariadb.host` | String | MariaDB 主机地址。 |
| `.Values.mariadb.port` | Number | MariaDB 端口。 |
| `.Values.mariadb.username` | String | MariaDB 用户名。 |
| `.Values.mariadb.password` | String | MariaDB 密码。 |
| `.Values.mariadb.databases` | Map<String,String> | 请求的数据库集合,按数据库名为键。<br/>例如申请 `app_db`,可通过 `.Values.mariadb.databases.app_db` 获取对应的值。 |
#### MinIO
安装与配置详情请参见[集成 MinIO](/zh/developer/develop/mw-integrate-with-minio.md)。
| 变量 | 类型 | 说明 |
|--|--|--|
| `.Values.minio.host` | String | MinIO 服务地址。 |
| `.Values.minio.port` | Number | MinIO 服务端口。 |
| `.Values.minio.username` | String | MinIO 访问密钥。 |
| `.Values.minio.password` | String | MinIO 密钥。 |
| `.Values.minio.buckets` | Map<String,String> | 请求的存储桶集合,按桶名为键。例如申请 `mybucket`,可通过 `.Values.minio.buckets.mybucket` 获取对应的值。 |
#### MongoDB
安装与配置详情请参见[集成 MongoDB](/zh/developer/develop/mw-integrate-with-mongodb.md)。
| 变量 | 类型 | 说明 |
|--|--|--|
| `.Values.mongodb.host` | String | MongoDB 主机地址。 |
| `.Values.mongodb.port` | Number | MongoDB 端口。 |
| `.Values.mongodb.username` | String | MongoDB 用户名。 |
| `.Values.mongodb.password` | String | MongoDB 密码。 |
| `.Values.mongodb.databases` | Map<String,String> | 请求的数据库集合,按数据库名为键。<br/>例如申请 `app_db`,可通过 `.Values.mongodb.databases.app_db` 获取对应的值。 |
#### MySQL
安装与配置详情请参见[集成 MySQL](/zh/developer/develop/mw-integrate-with-mysql.md)。
| 变量 | 类型 | 说明 |
|--|--|--|
| `.Values.mysql.host` | String | MySQL 主机地址。 |
| `.Values.mysql.port` | Number | MySQL端口。 |
| `.Values.mysql.username` | String | MySQL 用户名。 |
| `.Values.mysql.password` | String | MySQL 密码。 |
| `.Values.mysql.databases` | Map<String,String> | 请求的数据库集合,按数据库名为键。<br/>例如申请 `app_db`,可通过 `.Values.mysql.databases.app_db` 获取对应的值。 |
#### PostgreSQL
安装与配置详情请参见[集成 PostgreSQL](/zh/developer/develop/mw-integrate-with-pg.md)。
| 变量 | 类型 | 说明 |
|--|--|--|
| `.Values.postgres.host` | String | PostgreSQL 主机地址。 |
| `.Values.postgres.port` | Number | PostgreSQL 端口。 |
| `.Values.postgres.username` | String | PostgreSQL 用户名。 |
| `.Values.postgres.password` | String | PostgreSQL 密码。 |
| `.Values.postgres.databases` | Map<String,String> | 请求的数据库集合,按数据库名为键。例如,若申请的数据库名为 `app_db`,可通过 `.Values.postgres.databases.app_db`获取对应值。|
#### RabbitMQ
安装与配置详情请参见[集成 RabbitMQ](/zh/developer/develop/mw-integrate-with-rabbitmq.md)。
| 变量 | 类型 | 说明 |
|--|--|--|
| `.Values.rabbitmq.host` | String | RabbitMQ 主机地址。 |
| `.Values.rabbitmq.port` | Number | RabbitMQ 端口。 |
| `.Values.rabbitmq.username` | String | RabbitMQ 用户名。 |
| `.Values.rabbitmq.password` | String | RabbitMQ 密码。 |
| `.Values.rabbitmq.vhosts` | Map<String,String> | 请求的虚拟主机集合,按名称为键。<br/>例如申请 `myvhost`,可通过 `.Values.rabbitmq.vhosts.myvhost` 获取对应的值。 |
#### Redis
安装与配置详情请参见[集成 Redis](/zh/developer/develop/mw-integrate-with-redis.md)。
| 变量 | 类型 | 说明 |
|--|--|--|
| `.Values.redis.host` | String | Redis 主机地址。 |
| `.Values.redis.port` | Number | Redis 端口。 |
| `.Values.redis.password`| String | Redis 密码。 |
| `.Values.redis.namespaces` | Map<String, String> | 请求的命名空间集合,按名称为键。<br>例如,请求 `app_ns`,可通过 `.Values.redis.namespaces.app_ns`获取对应值。 |

View File

@@ -31,9 +31,9 @@ middleware:
- name: aaa
```
## 注入环境变量
## 映射环境变量
在应用的部署 YAML 中,将系统注入的 `.Values.elasticsearch.*` 字段映射为应用所使用的环境变量。
在应用的部署 YAML 中,将系统注入的 `.Values.elasticsearch.*` 字段映射为应用所的环境变量。
**示例**
```yaml
@@ -58,14 +58,14 @@ containers:
value: "{{ .Values.elasticsearch.indexes.aaa }}"
```
## Elasticsearch Values 参考
## Elasticsearch 变量参考
Elasticsearch Values 是在部署过程中由系统自动注入到 `values.yaml`的预定义变量。这些由系统统一管理,用户无法自行修改。
Elasticsearch 运行时变量会在部署过程中注入到 `values.yaml` 中。这些变量由系统统一管理,用户无法自行修改。
| | 类型 | 说明 |
| 变量 | 类型 | 说明 |
|--|--|--|
| `.Values.elasticsearch.host` | String | Elasticsearch 服务地址 |
| `.Values.elasticsearch.port` | Number | Elasticsearch 服务端口 |
| `.Values.elasticsearch.username` | String | Elasticsearch 用户名 |
| `.Values.elasticsearch.password` | String | Elasticsearch 密码 |
| `.Values.elasticsearch.indexes` | Map<String,String> | 以申请的索引名称作为键。例如申请 `aaa`,可通过 `.Values.elasticsearch.indexes.aaa` 获取对应的值。 |
| `.Values.elasticsearch.host` | String | Elasticsearch 服务地址 |
| `.Values.elasticsearch.port` | Number | Elasticsearch 服务端口 |
| `.Values.elasticsearch.username` | String | Elasticsearch 用户名 |
| `.Values.elasticsearch.password` | String | Elasticsearch 密码 |
| `.Values.elasticsearch.indexes` | Map<String,String> | 请求的索引集合,按索引名为键。例如申请 `aaa`,可通过 `.Values.elasticsearch.indexes.aaa` 获取对应的值。 |

View File

@@ -31,9 +31,9 @@ middleware:
- name: aaa
```
## 注入环境变量
## 映射环境变量
在应用的部署 YAML 中,将系统注入的 `.Values.mariadb.*` 字段映射为应用所使用的环境变量。
在应用的部署 YAML 中,将系统注入的 `.Values.mariadb.*` 字段映射为应用所的环境变量。
**示例**
```yaml
@@ -59,14 +59,14 @@ containers:
value: "{{ .Values.mariadb.databases.aaa }}"
```
## MariaDB Values 参考
## MariaDB 变量参考
MariaDB Values 是在部署过程中由系统自动注入到 `values.yaml`的预定义变量。这些由系统统一管理,用户无法自行修改。
MariaDB 运运行时变量会在部署过程中注入到 `values.yaml` 中。这些变量由系统统一管理,用户无法自行修改。
| | 类型 | 说明 |
| 变量 | 类型 | 说明 |
|--|--|--|
| `.Values.mariadb.host` | String | MariaDB 数据库地址 |
| `.Values.mariadb.port` | Number | MariaDB 数据库端口 |
| `.Values.mariadb.username` | String | MariaDB 数据库用户名 |
| `.Values.mariadb.password` | String | MariaDB 数据库密码 |
| `.Values.mariadb.databases` | Map<String,String> | 以申请的数据库名为键。<br/>例如申请 `aaa`,可通过 `.Values.mariadb.databases.aaa` 获取对应的值。 |
| `.Values.mariadb.host` | String | MariaDB 主机地址 |
| `.Values.mariadb.port` | Number | MariaDB 端口 |
| `.Values.mariadb.username` | String | MariaDB 用户名 |
| `.Values.mariadb.password` | String | MariaDB 密码 |
| `.Values.mariadb.databases` | Map<String,String> | 请的数据库集合,按数据库名为键。<br/>例如申请 `app_db`,可通过 `.Values.mariadb.databases.app_db` 获取对应的值。 |

View File

@@ -31,9 +31,9 @@ middleware:
- name: mybucket
```
## 注入环境变量
## 映射环境变量
在应用的部署 YAML 中,将系统注入的 `.Values.minio.*` 字段映射为应用所使用的环境变量。
在应用的部署 YAML 中,将系统注入的 `.Values.minio.*` 字段映射为应用所的环境变量。
**示例**
```yaml
@@ -60,14 +60,14 @@ containers:
value: "{{ .Values.minio.buckets.mybucket }}"
```
## MinIO Values 参考
## MinIO 变量参考
MinIO Values 是在部署过程中由系统自动注入到 `values.yaml`的预定义变量。这些由系统统一管理,用户无法自行修改。
MinIO 运行时变量会在部署过程中注入到 `values.yaml` 中。这些变量由系统统一管理,用户无法自行修改。
| | 类型 | 说明 |
| 变量 | 类型 | 说明 |
|--|--|--|
| `.Values.minio.host` | String | MinIO 服务地址 |
| `.Values.minio.port` | Number | MinIO 服务端口 |
| `.Values.minio.username` | String | MinIO 访问密钥Access Key |
| `.Values.minio.password` | String | MinIO 密钥Secret Key |
| `.Values.minio.buckets` | Map<String,String> | 以申请的存储桶名称作为键。例如申请 `mybucket`,可通过 `.Values.minio.buckets.mybucket` 获取对应的值。 |
| `.Values.minio.host` | String | MinIO 服务地址 |
| `.Values.minio.port` | Number | MinIO 服务端口 |
| `.Values.minio.username` | String | MinIO 访问密钥 |
| `.Values.minio.password` | String | MinIO 密钥 |
| `.Values.minio.buckets` | Map<String,String> | 请的存储桶集合,按桶名为键。例如申请 `mybucket`,可通过 `.Values.minio.buckets.mybucket` 获取对应的值。 |

View File

@@ -35,9 +35,9 @@ middleware:
# 请确保每一行都是完整的查询语句。
```
## 注入环境变量
## 映射环境变量
在应用的部署 YAML 中,将系统注入的 `.Values.mongodb.*` 字段映射为应用所使用的环境变量。
在应用的部署 YAML 中,将系统注入的 `.Values.mongodb.*` 字段映射为应用所的环境变量。
**示例**
```yaml
@@ -63,14 +63,14 @@ containers:
value: "{{ .Values.mongodb.databases.app_db }}"
```
## MongoDB Values 参考
## MongoDB 变量参考
MongoDB Values 是在部署过程中自动注入到 `values.yaml`的预定义变量由系统统一管理,用户不可手动修改。
MongoDB 运行时变量会在部署过程中注入到 `values.yaml`。这些变量由系统统一管理,用户无法自行修改。
| | 类型 | 说明 |
| 变量 | 类型 | 说明 |
|--|--|--|
| `.Values.mongodb.host` | String | MongoDB 数据库地址 |
| `.Values.mongodb.port` | Number | MongoDB 数据库端口 |
| `.Values.mongodb.username` | String | MongoDB 数据库用户名 |
| `.Values.mongodb.password` | String | MongoDB 数据库密码 |
| `.Values.mongodb.databases` | Map<String,String> | 以申请的数据库名为键。<br/>例如申请 `app_db`,可通过 `.Values.mongodb.databases.app_db` 获取对应的值。 |
| `.Values.mongodb.host` | String | MongoDB 主机地址 |
| `.Values.mongodb.port` | Number | MongoDB 端口 |
| `.Values.mongodb.username` | String | MongoDB 用户名 |
| `.Values.mongodb.password` | String | MongoDB 密码 |
| `.Values.mongodb.databases` | Map<String,String> | 请的数据库集合,按数据库名为键。<br/>例如申请 `app_db`,可通过 `.Values.mongodb.databases.app_db` 获取对应的值。 |

View File

@@ -31,9 +31,9 @@ middleware:
- name: aaa
```
## 注入环境变量
## 映射环境变量
在应用的部署 YAML 中,将系统注入的 `.Values.mysql.*` 字段映射为应用所使用的环境变量。
在应用的部署 YAML 中,将系统注入的 `.Values.mysql.*` 字段映射为应用所的环境变量。
**示例**
```yaml
@@ -59,14 +59,14 @@ containers:
value: "{{ .Values.mysql.databases.aaa }}"
```
## MySQL Values 参考
## MySQL 变量参考
MySQL Values 是在部署过程中由系统自动注入到 `values.yaml`的预定义变量。这些由系统统一管理,用户无法自行修改。
MySQL 运行时变量会在部署过程中注入到 `values.yaml` 中。这些变量由系统统一管理,用户无法自行修改。
| | 类型 | 说明 |
| 变量 | 类型 | 说明 |
|--|--|--|
| `.Values.mysql.host` | String | MySQL 数据库地址 |
| `.Values.mysql.port` | Number | MySQL 数据库端口 |
| `.Values.mysql.username` | String | MySQL 数据库用户名 |
| `.Values.mysql.password` | String | MySQL 数据库密码 |
| `.Values.mysql.databases` | Map<String,String> | 以申请的数据库名为键。<br/>例如申请 `aaa`,可通过 `.Values.mysql.databases.aaa` 获取对应的值。 |
| `.Values.mysql.host` | String | MySQL 主机地址 |
| `.Values.mysql.port` | Number | MySQL端口 |
| `.Values.mysql.username` | String | MySQL 用户名 |
| `.Values.mysql.password` | String | MySQL 密码 |
| `.Values.mysql.databases` | Map<String,String> | 请的数据库集合,按数据库名为键。<br/>例如申请 `app_db`,可通过 `.Values.mysql.databases.app_db` 获取对应的值。 |

View File

@@ -38,9 +38,9 @@ middleware:
- COMMIT;
```
## 注入环境变量
## 映射环境变量
在应用的部署 YAML 中,将系统注入的 `.Values.postgres.*` 字段映射为应用所使用的环境变量。
在应用的部署 YAML 中,将系统注入的 `.Values.postgres.*` 字段映射为应用所的环境变量。
**示例**
```yaml
@@ -70,13 +70,14 @@ containers:
value: {{ .Values.postgres.password }}
```
## PostgreSQL Values 参考
PostgreSQL Values 是在部署过程中由系统自动注入到 `values.yaml` 中的预定义变量。这些值由系统统一管理,用户无法自行修改。
## PostgreSQL 变量参考
| 键 | 类型 | 说明 |
PostgreSQL 运行时变量会在部署过程中注入到 `values.yaml` 中。这些变量由系统统一管理,用户无法自行修改。
| 变量 | 类型 | 说明 |
|--|--|--|
| `.Values.postgres.host` | String | PostgreSQL 数据库地址 |
| `.Values.postgres.port` | Number | PostgreSQL 数据库端口 |
| `.Values.postgres.username` | String | PostgreSQL 数据库用户名 |
| `.Values.postgres.password` | String | PostgreSQL 数据库密码 |
| `.Values.postgres.databases` | Map<String,String> | PostgreSQL 数据库以申请的数据库名为键。例如,若申请的数据库名为 `app_db`,可通过 `.Values.postgres.databases.app_db`获取对应值。|
| `.Values.postgres.host` | String | PostgreSQL 主机地址 |
| `.Values.postgres.port` | Number | PostgreSQL 端口 |
| `.Values.postgres.username` | String | PostgreSQL 用户名 |
| `.Values.postgres.password` | String | PostgreSQL 密码 |
| `.Values.postgres.databases` | Map<String,String> | 请求的数据库集合,按数据库名为键。例如,若申请的数据库名为 `app_db`,可通过 `.Values.postgres.databases.app_db`获取对应值。|

View File

@@ -31,9 +31,9 @@ middleware:
- name: aaa
```
## 注入环境变量
## 映射环境变量
在应用的部署 YAML 中,将系统注入的 `.Values.rabbitmq.*` 字段映射为应用所使用的环境变量。
在应用的部署 YAML 中,将系统注入的 `.Values.rabbitmq.*` 字段映射为应用所的环境变量。
**示例**
```yaml
@@ -78,14 +78,14 @@ portMQ := os.Getenv("RABBITMQ_PORT")
url := fmt.Sprintf("amqp://%s:%s@%s:%s/%s", user, password, host, portMQ, vhost)
```
## RabbitMQ Values 参考
## RabbitMQ 变量参考
RabbitMQ Values 是在部署过程中自动注入到 `values.yaml`的预定义变量由系统统一管理,用户不可手动修改。
RabbitMQ 运行时变量会在部署过程中注入到 `values.yaml`。这些变量由系统统一管理,用户无法自行修改。
| | 类型 | 说明 |
| 变量 | 类型 | 说明 |
|--|--|--|
| `.Values.rabbitmq.host` | String | RabbitMQ 服务地址 |
| `.Values.rabbitmq.port` | Number | RabbitMQ 服务端口 |
| `.Values.rabbitmq.username` | String | RabbitMQ 用户名 |
| `.Values.rabbitmq.password` | String | RabbitMQ 密码 |
| `.Values.rabbitmq.vhosts` | Map<String,String> | 以申请的 vhost 名作为键。<br/>例如申请 `aaa`,可通过 `.Values.rabbitmq.vhosts.aaa` 获取对应的值。 |
| `.Values.rabbitmq.host` | String | RabbitMQ 主机地址 |
| `.Values.rabbitmq.port` | Number | RabbitMQ 端口 |
| `.Values.rabbitmq.username` | String | RabbitMQ 用户名 |
| `.Values.rabbitmq.password` | String | RabbitMQ 密码 |
| `.Values.rabbitmq.vhosts` | Map<String,String> | 请求的虚拟主机集合,按名称为键。<br/>例如申请 `myvhost`,可通过 `.Values.rabbitmq.vhosts.myvhost` 获取对应的值。 |

View File

@@ -25,9 +25,9 @@ middleware:
namespace: db0
```
## 注入环境变量
## 映射环境变量
在应用的部署 YAML 中,将系统注入的 `.Values.redis.*` 字段映射为应用所使用的环境变量。
在应用的部署 YAML 中,将系统注入的 `.Values.redis.*` 字段映射为应用所的环境变量。
**示例**
```yaml
@@ -54,13 +54,13 @@ containers:
value: {{ .Values.redis.namespaces.<namespace> }}
```
## Redis Values 参考
## Redis 变量参考
Redis Values 是在部署过程中由系统自动注入到 `values.yaml`的预定义变量。这些由系统统一管理,用户无法自行修改。
Redis 运行时变量会在部署过程中注入到 `values.yaml` 中。这些变量由系统统一管理,用户无法自行修改。
| | 类型 | 说明 |
| 变量 | 类型 | 说明 |
|--|--|--|
| `.Values.redis.host` | String | Redis 数据库地址 |
| `.Values.redis.port` | Number | Redis 数据库端口 |
| `.Values.redis.password`| String | Redis 数据库密码 |
| `.Values.redis.namespaces` | Map<String, String> | Redis 命名空间名称,以申请命名空间作为键。例如,若申请的命名空间名为 `app_ns`,可通过 `.Values.redis.namespaces.app_ns`获取对应值。 |
| `.Values.redis.host` | String | Redis 主机地址 |
| `.Values.redis.port` | Number | Redis 端口 |
| `.Values.redis.password`| String | Redis 密码 |
| `.Values.redis.namespaces` | Map<String, String> | 请求的命名空间集合,按名称为键。<br>例如,请求 `app_ns`,可通过 `.Values.redis.namespaces.app_ns`获取对应值。 |

View File

@@ -1,6 +1,6 @@
---
outline: [2, 3]
description: Olares 提供的环境变量用于自定义网络、认证、GPU 支持等功能。包含配置示例和详细规格说明
description: Olares 提供了丰富的环境变量以满足定制化安装需求。通过修改这些变量,你可以覆盖默认安装设置,实现灵活的个性化安装配置
---
# Olares 环境变量参考
@@ -22,7 +22,7 @@ export KUBE_TYPE=k8s \
# 指定使用完整的 Kubernetes (k8s) 而非轻量级 k3s
export KUBE_TYPE=k8s && bash install.sh
```
两种方式的执行效果相同环境变量 `KUBE_TYPE` 会传递给安装脚本,脚本会根据这个变量来调整其安装逻辑
两种方式的执行效果相同环境变量 `KUBE_TYPE` 会传递给安装脚本,并据此修改安装行为
当然,你也可以组合多个环境变量来实现更灵活的自定义效果。例如中国大陆的用户通过`cn.olares.sh`获取的安装脚本,就是一个在默认安装脚本之上设置了一系列环境变量的脚本:
@@ -45,115 +45,133 @@ curl -sSfL https://olares.sh | bash
以下列出了安装脚本所支持的环境变量及其默认值、可选值和说明。请根据具体需求进行配置。
### `CLOUDFLARE_ENABLE`
指定是否启用 Cloudflare 代理。
- **可选值**
- `0`(禁用)
- `1`用)
- **默认值**`0`用)
### CLOUDFLARE_ENABLE
指定是否启用 Cloudflare 代理。
- **可选值**
- `0`用)
- `1`用)
- **默认值**`0`
### FRP_AUTH_METHOD
### `FRP_AUTH_METHOD`
设置 FRP 的认证方式。
- **可选值**
- `jws`
- `token`(需要设置 `FRP_AUTH_TOKEN`
- *(空字符串)* —— 不使用认证
- **默认值**`jws`
- `jws `
- `token`(需要设置`FRP_AUTH_TOKEN`
- *(空字符串)* —— 不使用认证
- **默认值**`jws`
### `FRP_AUTH_TOKEN`
`FRP_AUTH_METHOD=token` 时,用于指定服务器通信所需的 Token。
- **可选值**:任意非空字符串
### FRP_AUTH_TOKEN
`FRP_AUTH_METHOD=token` 时,用于指定服务器通信所需的 Token。
- **可选值**:任意非空字符串
- **默认值**:无
### `FRP_ENABLE`
指定是否启用 FRP 内网穿透。如果使用自定义 FRP 服务器,还需额外设置相关变量。
- **可选值**
- `0`(禁用)
- `1`用)
- **默认值**`0`用)
### FRP_ENABLE
指定是否启用 FRP 内网穿透。如果使用自定义 FRP 服务器,还需额外设置相关变量。
- **可选值**
- `0`用)
- `1`用)
- **默认值**`0`
### FRP_PORT
### `FRP_PORT`
设置 FRP 服务端监听端口。
- **可选值**:整数范围 `165535`
- **可选值**:整数范围 `165535`
- **默认值**:未设置或设为 `0` 时默认为 `7000`
### `JUICEFS`
随 Olares 一起安装 [JuiceFS](https://juicefs.com/)。
- **可选值**`1`
### JUICEFS
随 Olares 一起安装 [JuiceFS]。
- **可选值**`1`
- **默认值**:无(若不设置则不安装 JuiceFS
### `KUBE_TYPE`
指定要使用的 Kubernetes 发行版。
- **可选值**
- `k8s`(完整的 Kubernetes
- `k3s`Kubernetes 的轻量级发行版)
- **默认值**`k3s`
### KUBE_TYPE
### `LOCAL_GPU_ENABLE`
指定是否启用 GPU 并安装相关驱动。
指定要使用的 Kubernetes 发行版。
- **可选值**
- `0`(禁用
- `1`(启用
- **默认值**`0`(禁用)
- `k8s`(完整的 Kubernetes
- `k3s`Kubernetes 的轻量级发行版
- **默认值**`k3s`
### `LOCAL_GPU_SHARE`
指定是否启用 GPU 共享功能。仅在已启用 GPU 时生效。
### LOCAL_GPU_ENABLE
指定是否启用 GPU 并安装相关驱动。
- **可选值**
- `0`(禁用)
- `1`(启用)
- **默认值**`0`(禁用)
- `0`(禁用)
- `1`(启用)
- **默认值**`0`
### LOCAL_GPU_SHARE
指定是否启用 GPU 共享功能。仅在已启用 GPU 时生效。
- **Valid values**:
- `0`(禁用)
- `1`(启用)
- **默认值**`0`
### NVIDIA_CONTAINER_REPO_MIRROR
### `NVIDIA_CONTAINER_REPO_MIRROR`
配置 `nvidia-container-toolkit` 的 APT 安装镜像源。
- **可选值**
- `nvidia.github.io`
- `mirrors.ustc.edu.cn`(推荐中国大陆用户使用,连接性更好)
- **默认值**`nvidia.github.io`
- `nvidia.github.io`
- `mirrors.ustc.edu.cn`(推荐中国大陆用户使用,连接性更好)
- **默认值**`nvidia.github.io`
### PREINSTALL
### `PREINSTALL`
仅执行预安装阶段(系统依赖配置),不进行完整的 Olares 安装。
- **可选值**`1`
- **可选值**`1`
- **默认值**:无(若不设置则执行完整安装)
### `PUBLICLY_ACCESSIBLE`
### PUBLICLY_ACCESSIBLE
明确指定该机器可以在互联网上公开访问,同时不设置反向代理。
- **可选值**
- `0` (否)
- `1` (是)
- **默认值**: `0`
- **可选值**
- `0`(否)
- `1`(是)
- **默认值**`0`
### REGISTRY_MIRRORS
### `REGISTRY_MIRRORS`
设置 Docker 镜像加速地址。
- **可选值**`https://mirrors.olares.cn` 或其他镜像源地址
- **默认值**`https://registry-1.docker.io`
- **可选值**`https://mirrors.olares.com`或其他镜像源地址
- **默认值**`https://registry-1.docker.io`
### `TERMINUS_IS_CLOUD_VERSION`
明确将此机器标记为云端实例cloud instance
- **可选值**`true`
### TERMINUS_IS_CLOUD_VERSION
明确将此机器标记为云端实例cloud instance
- **可选值**`true`
- **默认值**:无
### `TERMINUS_OS_DOMAINNAME`
在安装前预先设置域名,会跳过安装过程中的交互式提示。
- **可选值**:任意有效域名
### TERMINUS_OS_DOMAINNAME
在安装前预先设置域名,会跳过安装过程中的交互式提示。
- **可选值**:任意有效域名
- **默认值**:无(若不设置则会提示输入域名)
### `TERMINUS_OS_EMAIL`
在安装前预先设置邮箱地址,会跳过安装过程中的交互式提示。
- **可选值**:任意有效邮箱地址
### TERMINUS_OS_EMAIL
在安装前预先设置邮箱地址,会跳过安装过程中的交互式提示。
- **可选值**:任意有效邮箱地址
- **默认值**:无(若不设置则自动生成临时邮箱)
### `TERMINUS_OS_PASSWORD`
在安装前预先设置密码,会跳过安装过程中的交互式提示。
- **可选值**632 个字符的有效密码
- **默认值**随机生成 8 位密码
### TERMINUS_OS_PASSWORD
在安装前预先设置密码,会跳过安装过程中的交互式提示。
- **可选值**632 个字符的有效密码
- **默认值**:随机生成 8 位密码
### TERMINUS_OS_USERNAME
### `TERMINUS_OS_USERNAME`
在安装前预先设置用户名,会跳过安装过程中的对应交互式提示。
- **可选值**:任意有效用户名(长度 2250且不与保留关键词冲突
- **可选值**:任意有效用户名(长度 2250且不与保留关键词冲突
- **默认值**:无(若不设置则会提示输入用户名)
- **验证规则**:保留关键词包括 `user``system``space``default``os``kubesphere``kube``kubekey``kubernetes``gpu``tapr``bfl``bytetrade``project``pod`
### `TOKEN_MAX_AGE`
设置 Token 的最大有效时长(单位:秒)。
- **可选值**:任意整数(单位:秒)
### TOKEN_MAX_AGE
设置 Token 的最大有效时长(单位:秒)
- **可选值**:任意整数(单位:秒)
- **默认值**`31536000`365 天)