Skip to content

系统注入的运行时变量

在部署时,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.usernameString当前用户名。
.Values.user.zoneString当前用户的域名。
.Values.adminString管理员用户名。

应用与系统信息

变量类型说明
.Values.domainMap<String,String>应用入口地址映射,每个条目将入口名称映射为对应的 URL。
.Values.sysVersionString系统版本号。
.Values.deviceNameString设备名称。
.Values.downloadCdnURLString系统资源下载使用的 CDN 地址。

存储路径

变量类型说明
.Values.userspace.appDataString应用的集群存储路径,路径为 /Data/<appname>
.Values.userspace.appCacheString应用的节点本地缓存路径,路径为 /Cache/<appname>
.Values.userspace.userDataString用户数据目录,路径为 /Files/Home/
.Values.sharedlibString用户外部存储目录,路径为 /Files/External/<devicename>/

集群硬件信息

集群硬件信息会在部署时注入到 values.yaml 中。

变量类型说明
.Values.cluster.archString集群 CPU 架构(例如 amd64)。Olares 目前不支持混合架构组成集群。
.Values.nodesList<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.depsMap<String,Value>每个声明依赖的服务主机地址与端口。键名格式为 <entry_name>_host<entry_name>_port
.Values.svcsMap<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.yamlmiddleware 部分声明中间件依赖时,才会注入对应变量。

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

MariaDB

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

变量类型说明
.Values.mariadb.hostStringMariaDB 主机地址。
.Values.mariadb.portNumberMariaDB 端口。
.Values.mariadb.usernameStringMariaDB 用户名。
.Values.mariadb.passwordStringMariaDB 密码。
.Values.mariadb.databasesMap<String,String>请求的数据库集合,按数据库名为键。
例如申请 app_db,可通过 .Values.mariadb.databases.app_db 获取对应的值。

MinIO

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

变量类型说明
.Values.minio.hostStringMinIO 服务地址。
.Values.minio.portNumberMinIO 服务端口。
.Values.minio.usernameStringMinIO 访问密钥。
.Values.minio.passwordStringMinIO 密钥。
.Values.minio.bucketsMap<String,String>请求的存储桶集合,按桶名为键。例如申请 mybucket,可通过 .Values.minio.buckets.mybucket 获取对应的值。

MongoDB

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

变量类型说明
.Values.mongodb.hostStringMongoDB 主机地址。
.Values.mongodb.portNumberMongoDB 端口。
.Values.mongodb.usernameStringMongoDB 用户名。
.Values.mongodb.passwordStringMongoDB 密码。
.Values.mongodb.databasesMap<String,String>请求的数据库集合,按数据库名为键。
例如申请 app_db,可通过 .Values.mongodb.databases.app_db 获取对应的值。

MySQL

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

变量类型说明
.Values.mysql.hostStringMySQL 主机地址。
.Values.mysql.portNumberMySQL端口。
.Values.mysql.usernameStringMySQL 用户名。
.Values.mysql.passwordStringMySQL 密码。
.Values.mysql.databasesMap<String,String>请求的数据库集合,按数据库名为键。
例如申请 app_db,可通过 .Values.mysql.databases.app_db 获取对应的值。

PostgreSQL

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

变量类型说明
.Values.postgres.hostStringPostgreSQL 主机地址。
.Values.postgres.portNumberPostgreSQL 端口。
.Values.postgres.usernameStringPostgreSQL 用户名。
.Values.postgres.passwordStringPostgreSQL 密码。
.Values.postgres.databasesMap<String,String>请求的数据库集合,按数据库名为键。例如,若申请的数据库名为 app_db,可通过 .Values.postgres.databases.app_db获取对应值。

RabbitMQ

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

变量类型说明
.Values.rabbitmq.hostStringRabbitMQ 主机地址。
.Values.rabbitmq.portNumberRabbitMQ 端口。
.Values.rabbitmq.usernameStringRabbitMQ 用户名。
.Values.rabbitmq.passwordStringRabbitMQ 密码。
.Values.rabbitmq.vhostsMap<String,String>请求的虚拟主机集合,按名称为键。
例如申请 myvhost,可通过 .Values.rabbitmq.vhosts.myvhost 获取对应的值。

Redis

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

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