Olares/docs/zh/developer/develop/app-sys-injected-variables.md
Meow33 776848d2e2
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>
2026-03-05 17:52:22 +08:00

8.3 KiB
Raw Blame History

outline description
2
4
Olares 在应用部署期间注入到 `application values.yaml` 中的运行时变量。

系统注入的运行时变量

在部署时Olares 会自动向应用的 values.yaml 注入由系统管理的变量。这些变量为只读,涵盖用户身份、存储路径、集群元数据、应用依赖以及中间件凭据等信息。

由于它们属于 Helm values因此不会自动传递到容器内部。如需在容器内部使用请在部署模板中通过 env: 显式映射。

在应用中使用

你可以在 Helm 模板(如 deployment.yaml)中直接引用这些值。

示例:将当前用户名和 Postgres 主机地址传入容器环境变量。

# 将系统注入的运行时变量传入容器环境变量
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 中每个条目结构如下:

[
  {
    "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

{
  "aserver_host": "aserver-svc.<namespace>",
  "aserver_port": 80
}

.Values.svcs

{
  "aserver-svc_host": "aserver-svc.<namespace>",
  "aserver-svc_port": [80]
}

中间件变量

仅当在 OlaresManifest.yamlmiddleware 部分声明中间件依赖时,才会注入对应变量。

PostgreSQL 与 Redis 为预安装组件。MongoDB、MinIO、RabbitMQ、MySQL 和 MariaDB 需要单独安装后方可使用。

MariaDB

安装与配置详情请参见集成 MariaDB

变量 类型 说明
.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> 请求的数据库集合,按数据库名为键。
例如申请 app_db,可通过 .Values.mariadb.databases.app_db 获取对应的值。

MinIO

安装与配置详情请参见集成 MinIO

变量 类型 说明
.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

变量 类型 说明
.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> 请求的数据库集合,按数据库名为键。
例如申请 app_db,可通过 .Values.mongodb.databases.app_db 获取对应的值。

MySQL

安装与配置详情请参见集成 MySQL

变量 类型 说明
.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> 请求的数据库集合,按数据库名为键。
例如申请 app_db,可通过 .Values.mysql.databases.app_db 获取对应的值。

PostgreSQL

安装与配置详情请参见集成 PostgreSQL

变量 类型 说明
.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

变量 类型 说明
.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> 请求的虚拟主机集合,按名称为键。
例如申请 myvhost,可通过 .Values.rabbitmq.vhosts.myvhost 获取对应的值。

Redis

安装与配置详情请参见集成 Redis

变量 类型 说明
.Values.redis.host String Redis 主机地址。
.Values.redis.port Number Redis 端口。
.Values.redis.password String Redis 密码。
.Values.redis.namespaces Map<String, String> 请求的命名空间集合,按名称为键。
例如,请求 app_ns,可通过 .Values.redis.namespaces.app_ns获取对应值。