跳转到主要内容
仓库 conf.d/ 目录下包含三份示例配置:
文件使用方默认参数
conf.d/config.toml控制平面-conf
conf.d/agent.tomlAgent-conf
conf.d/plugins.toml控制平面-plugin-conf
示例文件中包含占位的 JWT 密钥、Kafka SASL 密码、数据库凭证等敏感信息。 在本地开发环境之外使用前,请务必替换为真实值,并通过密钥管理或私有仓库 存储,不要提交到版本控制。

控制平面:config.toml

控制平面配置由 cmd/arcentra 读取,HTTP、gRPC、调度与存储等子系统共享。

[metrics]

Prometheus 兼容的指标端点。
字段说明默认
enable是否启用 metrics 服务true
host / port监听地址0.0.0.0:8082
path抓取路径/metrics

[trace][trace.batch]

OpenTelemetry 链路追踪。
  • exporterTypejaegerotlp-grpcotlp-httpnone
  • endpointinsecureheaders:导出器目标。
  • [trace.batch] 控制批量队列大小与超时;如果出现 context deadline exceeded,可以增大 exportTimeout

[events][messageQueue.kafka]

CloudEvents 发布与 Kafka 通道关键字段:
  • [events].sourcePrefix:事件 source 前缀。
  • [messageQueue.kafka].bootstrapServers:Kafka 集群地址。
  • securityProtocolPLAINTEXTSSLSASL_PLAINTEXTSASL_SSL
  • [messageQueue.kafka.sasl]:SASL 的 mechanismusernamepassword
  • [messageQueue.kafka.ssl]:启用 SSL 时的证书路径。

[log][logger.*]

两种互补的日志方式:
  • [log]:单输出日志(stdoutfilekafka),支持按时间与大小滚动。
  • [logger.*]:通过 logger.InitMulti 启用多 category 日志,可为 HTTP、 插件、Cron 等单独配置输出与级别。

[grpc][http]

关键字段
[grpc]hostportmaxConnectionsreadWriteTimeout
[http]hostportaccessLog、读/写/idle/shutdown 超时、bodyLimit
[http.auth] 用于 JWT 签发:
  • accessExpirerefreshExpire 支持 duration 字符串(60m1h7d); 使用纯数字时按分钟解释,向后兼容。
  • secretKey 在部署到非本地环境前必须更换。

[database]

通过 driver 选择 mysqlsqlite
  • [database.mysql].dsn:完整 DSN,需要 parseTime=True 与字符集设置。
  • [database.sqlite].dsn:SQLite 文件路径,不适合生产控制平面。
  • [database.options]:连接池大小、最大生存/空闲时间,以及 SQL 日志开关 output

[redis]

支持 single、cluster、sentinel:
  • modesingle / cluster / sentinel
  • address:单节点、集群多节点逗号分隔,或 sentinel 地址列表。
  • TLS、sentinel 凭证、maxRedirects 默认注释,按需启用。

[taskQueue]

延迟任务队列。
  • provider:默认 kafka
  • delaySlotCountdelaySlotDuration:延迟槽数量与时长。
  • messageFormat / messageCodecprotobuf(默认)、jsonsonicblob

Agent:agent.toml

Agent 配置由 cmd/arcentra-agent 读取,描述如何连接控制平面以及如何执行任务。

[grpc]

  • serverAddr:控制平面 gRPC 地址(host:port)。
  • token:Agent 鉴权的 Bearer Token。
  • readWriteTimeoutmaxMsgSizemaxReconnectAttempts

[agent]

  • modesandboxbaremetal
  • idnamedescription:调度与审计使用的身份。
  • interval:心跳间隔(秒)。
  • maxConcurrentJobsjobTimeout:并发与单任务超时。
  • workspaceDirtempDircacheDir:本地工作目录。
  • deniedCommands:shell builtin 拒绝执行的命令列表。
  • proxyUrl:出网代理。
  • [agent.labels]:用于 StepRun 选择器的标签(如 envteamregion)。
  • [agent.resourceLimits]:CPU/内存声明。
  • [agent.envVars]:注入到任务的环境变量。
  • [agent.cleanupPolicy]:工作区保留策略(max_size_gbmax_age_days)。

[agent.sandbox][agent.sandbox.containerd][agent.sandbox.kubernetes]

  • enableruntime:选择 containerdkubernetes
  • containerd:networkunixSocket、默认 image、资源限制。
  • kubernetes:目标 namespacepodNameimage、资源限制。

其他段

Agent 与控制平面共用 metrics、log、Kafka、HTTP、Redis、taskQueue 等结构。 默认 HTTP 端口 :8081、metrics :8084,日志文件为 agent.LOG

插件与 builtin:plugins.toml

该文件提供 builtin 的默认 args.config,以及插件级配置。Step 级配置可覆盖 这些默认值。

Builtin

  • [builtins.shell]:shell 路径、默认 timeoutallowDangerous 开关。
  • [builtins.stdout]:输出 prefixjson 开关。
  • [builtins.artifacts][builtins.reports][builtins.scm]:预留。

插件

  • [plugins.git]gitPath、默认 userName / userEmail、shallow 克隆设置。
  • [plugins.svn]svnPath、默认凭证、trustServerCertnonInteractive

配置建议

  • 把示例文件作为参考,真实配置维护在受密钥管理保护的位置。
  • Kafka 启用 SASL/TLS 时优先使用 SASL_SSL,凭证不要进入仓库。
  • 多租户部署中给每个 Agent 唯一的 id,并为 [agent.labels] 提供足够的属性 以驱动调度决策。
  • 数据库、Redis、Kafka 的版本应与生产环境保持一致,并尽量在 CI 中验证。
Last modified on April 26, 2026