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

@@ -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`获取对应值。 |