Helm Chart

配置项参考

师成师成· 更新于 2026-09-29· 阅读 80 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

配置项参考

Deployment(部署)

配置项类型默认值说明
replicaCountint1要部署的副本数(水平扩展)。请注意副本是无状态的;使用内存元数据存储管理器时请勿将此值设置为 > 1。生产环境建议请参阅 Scaling。
deploymentAnnotationsobject{}应用到 Polaris Deployment 的额外注解。
revisionHistoryLimitintnil保留的历史 ReplicaSet 数量,以便进行回滚(若未设置,则使用 Kubernetes 默认值 10)。

Image(镜像)

KeyTypeDefaultDescription
image.repositorystring"apache/polaris"要从中拉取的镜像仓库。
image.pullPolicystring"IfNotPresent"镜像拉取策略。
image.tagstring"1.7.0"镜像标签。
image.configDirstring"/deployments/config"用于挂载 application.properties 文件(以及其他配置文件,如果有的话)的目录路径。
imagePullSecretslist[]同一命名空间中 Secret 的引用,用于拉取本 Chart 使用的任意镜像。每个条目都是一个字符串,指向该命名空间中已存在的 Secret。该 Secret 必须包含一个 .dockerconfigjson 键,其值为经过 base64 编码的 Docker 配置文件。更多信息请参见从私有仓库拉取。

服务账号

键类型默认值描述
serviceAccount.createbooltrue指定是否应创建服务账号。
serviceAccount.annotationsobject{}添加到服务账号的注解。
serviceAccount.namestring""要使用的服务账号的名称。如果未设置且 create 为 true,则使用 fullname 模板生成名称。

Pod 配置

KeyTypeDefaultDescription
podAnnotationsobject{}应用到 polaris Pod 的注解。
hostUsersboolnil指定 Pod 是否使用宿主机的用户命名空间(仅限 Linux 的功能)。参见用户命名空间。
podLabelsobject{}应用到 polaris Pod 的附加标签。
configMapLabelsobject{}应用到 polaris ConfigMap 的附加标签。
podDisruptionBudget.enabledboolfalse指定是否创建 Pod 中断预算(PodDisruptionBudget)。
podDisruptionBudget.minAvailableint0中断期间应保持可用的最小 Pod 数量。可以是绝对数字(例如:5)或期望 Pod 数量的百分比(例如:50%)。重要:不能与 maxUnavailable 同时使用。
podDisruptionBudget.maxUnavailableint0中断期间允许不可用的最大 Pod 数量。可以是绝对数字(例如:5)或期望 Pod 数量的百分比(例如:50%)。重要:不能与 minAvailable 同时使用。
podDisruptionBudget.annotationsobject{}添加到 Pod 中断预算的注解。
podSecurityContextobject{"fsGroup":10001,"seccompProfile":{"type":"RuntimeDefault"}}polaris Pod 的安全上下文。参见安全上下文。
containerSecurityContextobject{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"runAsNonRoot":true,"runAsUser":10000,"seccompProfile":{"type":"RuntimeDefault"}}polaris 容器的安全上下文。参见安全上下文。
containerLifecycleobject{}polaris 容器的生命周期钩子。参见容器生命周期钩子。可使用此项配置用于优雅关闭的 preStop 钩子,例如:containerLifecycle: preStop: exec: command: ["/bin/sh", “-c”, “sleep 30”]
terminationGracePeriodSecondsintnilPod 优雅终止所需的时长(秒)。必须大于 preStop 钩子的执行时长。参见Pod 的终止。使用 preStop 钩子时,应将此值设置为至少等于 preStop 的休眠时间加上预期的请求完成时间。

服务

键类型默认值描述
service.typestring"ClusterIP"要创建的服务类型。有效取值为:ExternalName、ClusterIP、NodePort 和 LoadBalancer。默认值为 ClusterIP。更多信息参见网络。
service.ports[0].namestring"polaris-http"端口名称。必填。
service.ports[0].portint8181服务监听的端口。默认情况下,HTTP 端口为 8181。
service.ports[0].targetPortint0服务所指向的 Pod 上要访问的端口号。如果未指定或为零,则使用 port 字段的值。
service.ports[0].nodePortint0当类型为 NodePort 或 LoadBalancer 时,该服务在每个节点上对外暴露的端口。通常由系统分配。如果未指定或为零,则在该 Service 需要时会分配一个端口。如果在创建不需要该端口的 Service 时指定了此字段,创建将会失败。
service.ports[0].protocolstring"TCP"该端口使用的 IP 协议。支持 "TCP"、"UDP" 和 "SCTP"。默认为 TCP。
service.sessionAffinitystring"None"服务的会话亲和性。有效取值为:None、ClientIP。默认值为 None。ClientIP 可基于客户端 IP 地址启用会话保持。这对 Polaris 部署通常有益,但可能需要进行一些测试,以确保负载在各 Pod 之间均匀分布。此外,此设置仅影响内部客户端,不影响外部客户端。如果启用了 Ingress,建议将 sessionAffinity 设置为 None。
service.clusterIPstring""您可以指定自己的集群 IP 地址。如果您定义的 Service 的 .spec.clusterIP 设置为 "None",那么 Kubernetes 不会为其分配 IP 地址。相反,该服务的 DNS 记录将返回服务所指向的各个 Pod 的 IP 地址。这被称为无头服务(headless service)。参见无头服务。
service.internalTrafficPolicystring"Cluster"控制来自内部来源的流量如何路由。有效取值为 Cluster 和 Local。默认值为 Cluster。将该字段设置为 Cluster 可将流量路由到所有就绪的端点;设置为 Local 则仅路由到就绪的节点本地端点。如果流量策略为 Local 且不存在节点本地端点,流量将被 kube-proxy 丢弃。
service.externalTrafficPolicystring"Cluster"控制来自外部来源的流量如何路由。有效取值为 Cluster 和 Local。默认值为 Cluster。将该字段设置为 Cluster 可将流量路由到所有就绪的端点;设置为 Local 则仅路由到就绪的节点本地端点。如果流量策略为 Local 且不存在节点本地端点,流量将被 kube-proxy 丢弃。
service.trafficDistributionstringnil流量分发字段提供了另一种影响 Kubernetes Service 内部流量路由的方式。流量策略侧重于严格的语义保证,而流量分发则允许您表达偏好,例如路由到拓扑上更近的端点。唯一有效的取值为:PreferClose。默认值取决于具体实现。
service.annotationsobject{}要添加到服务上的注解。

管理服务

KeyTypeDefaultDescription
managementService.typestring"ClusterIP"要创建的服务类型。有效值为:ExternalName、ClusterIP、NodePort 和 LoadBalancer。默认值为 ClusterIP。
managementService.ports[0].namestring"polaris-mgmt"管理端口的名称。必填。
managementService.ports[0].portint8182管理服务监听的端口。默认情况下,管理接口通过 HTTP 端口 8182 暴露。
managementService.ports[0].targetPortint0要访问的服务所指向的 Pod 上的端口号。如果未指定或为零,则使用 port 字段的值。
managementService.ports[0].nodePortint0当类型为 NodePort 或 LoadBalancer 时,该服务在每个节点上暴露的端口。通常由系统分配。如果未指定或为零,且此 Service 需要该端口,则会自动分配一个端口。如果在创建不需要该端口的 Service 时指定了此字段,创建将会失败。
managementService.ports[0].protocolstring"TCP"此端口使用的 IP 协议。支持 “TCP”、“UDP” 和 “SCTP”。默认为 TCP。
managementService.clusterIPstring"None"默认情况下,管理服务是无头服务(headless),即它没有集群 IP。这通常是暴露健康检查和指标的正确选项,例如用于指标抓取和服务监控。
managementService.sessionAffinitystring"None"该服务的会话亲和性。
managementService.internalTrafficPolicystring"Cluster"控制来自内部来源的流量如何路由。
managementService.externalTrafficPolicystring"Cluster"控制来自外部来源的流量如何路由。
managementService.trafficDistributionstringnil流量分布字段。
managementService.annotationsobject{}要添加到该服务的注解。

额外服务

键类型默认值描述
extraServices[0].nameSuffixstring""要追加到服务名称后的后缀。必填,且必须唯一。如果它不以连字符开头,则会在基础服务名称和该后缀之间插入一个连字符。
extraServices[0].typestring"LoadBalancer"要创建的服务类型。有效值为:ExternalName、ClusterIP、NodePort 和 LoadBalancer。
extraServices[0].ports[0].namestring"polaris-extra"端口名称。必填。
extraServices[0].ports[0].portint8183额外服务监听的端口。
extraServices[0].ports[0].targetPortint0要访问的服务所指向的 Pod 上的端口号。如果未指定或为 0,则使用 port 字段的值。
extraServices[0].ports[0].nodePortint0当类型为 NodePort 或 LoadBalancer 时,该额外服务在每个节点上暴露的端口。通常由系统分配。如果未指定或为 0,且此 Service 需要该端口,则会自动分配一个端口。如果在创建无需该端口的 Service 时指定了此字段,创建将会失败。
extraServices[0].ports[0].protocolstring"TCP"此端口使用的 IP 协议。支持 “TCP”、“UDP” 和 “SCTP”。默认为 TCP。
extraServices[0].clusterIPstring""额外服务的集群 IP。
extraServices[0].sessionAffinitystring"None"额外服务的会话亲和性。有效值为:None、ClientIP。默认值为 None。
extraServices[0].internalTrafficPolicystring"Cluster"控制来自内部来源的流量如何路由。
extraServices[0].externalTrafficPolicystring"Cluster"控制来自外部来源的流量如何路由。
extraServices[0].trafficDistributionstringnil流量分发字段。
extraServices[0].annotationsobject{}要添加到额外服务的注解。

Ingress

KeyTypeDefaultDescription
ingress.classNamestring""指定 ingressClassName;如果不需要自定义,请留空。更多信息请参阅网络。
ingress.enabledboolfalse指定是否应创建 ingress。
ingress.annotationsobject{}要添加到 ingress 的注解。
ingress.hosts[0].hoststring"chart-example.local"主机名。必填。
ingress.hosts[0].paths[0].pathstring"/"要匹配的路径。
ingress.hosts[0].paths[0].pathTypestring"Prefix"路径类型。有效值为:Exact、Prefix 和 ImplementationSpecific。
ingress.tls[0].secretNamestring""用于在 443 端口终止 TLS 流量的 TLS Secret 的名称。必填。
ingress.tls[0].hostslist["chart-example1.local","chart-example2.local"]证书中的主机列表。

Gateway

KeyTypeDefaultDescription
gateway.enabledboolfalse指定是否应创建 Gateway。更多信息请参阅网络(Networking)。
gateway.annotationsobject{}要添加到 Gateway 的注解。
gateway.classNamestring""要使用的 GatewayClass 的名称。
gateway.listeners[0].namestring"http"监听器的名称。必填。
gateway.listeners[0].protocolstring"HTTP"protocol 指定该监听器期望接收的网络协议。
gateway.listeners[0].portint80监听器使用的端口号。
gateway.listeners[0].hostnamestring""hostname 指定针对定义了虚拟主机概念的协议类型需要匹配的虚拟主机名。未指定时,将匹配所有主机名。
gateway.listeners[0].allowedRoutesobject{}allowedRoutes 定义可以附加到监听器的路由类型,以及这些 Route 资源可能存在的受信任命名空间。
gateway.addresseslist[]为 Gateway 请求的可选地址。

HTTPRoute

KeyTypeDefaultDescription
httproute.enabledboolfalse指定是否应创建 HTTPRoute。更多信息请参阅网络。
httproute.annotationsobject{}要添加到 HTTPRoute 的注解。
httproute.gatewayNamestring""要附加到的 Gateway 资源的名称。必填。
httproute.gatewayNamespacestring"default"Gateway 所部署的命名空间。必填。
httproute.sectionNamestring""要使用的网关内 section 名称(可选)。
httproute.hostslist["chart-example.local"]HTTPRoute 应匹配的主机名列表。
httproute.exposeManagementEndpointsboolfalse启用后可在 httproute 上公开管理端点。如果您希望在集群外部使用管理服务进行健康检查和指标抓取,则必须启用此项。

资源与自动扩缩容

KeyTypeDefaultDescription
resourcesobject{}配置 polaris Pod 的资源请求与限制。本 chart 未指定默认资源,将其留作用户有意识的选择。这也能提高 chart 在资源受限环境(如 Minikube)中运行的成功率。生产环境的建议请参阅资源管理。
autoscaling.enabledboolfalse指定是否启用自动水平扩缩容。使用内存版本存储类型时请勿启用。生产环境的建议请参阅扩缩容。
autoscaling.minReplicasint1要维持的最小副本数。
autoscaling.maxReplicasint3要维持的最大副本数。
autoscaling.targetCPUUtilizationPercentageint80可选;设置为零或留空可禁用。
autoscaling.targetMemoryUtilizationPercentageint0可选;设置为零或留空可禁用。

调度

键类型默认值说明
priorityClassNamestring""Polaris Pod 的优先级类名称。参见 Pod 优先级
nodeSelectorobject{}Polaris Pod 被调度到某节点时必须匹配的节点标签。参见 节点选择器。
tolerationslist[]应用于 Polaris Pod 的容忍度列表。参见 污点与容忍。
affinityobject{}Polaris Pod 的亲和性与反亲和性。参见 亲和性与反亲和性。
topologySpreadConstraintslist[]Polaris Pod 的拓扑分布约束。参见 拓扑分布约束。

探针

键类型默认值描述
livenessProbe.initialDelaySecondsint5容器启动后经过多少秒才开始执行存活探针。最小值为 0。
livenessProbe.periodSecondsint10执行探测的频率(以秒为单位)。最小值为 1。
livenessProbe.successThresholdint1探测失败后,被视为成功所需的最小连续成功次数。最小值为 1。
livenessProbe.failureThresholdint3探测成功后,被视为失败所需的最小连续失败次数。最小值为 1。
livenessProbe.timeoutSecondsint10探测超时的时间(以秒为单位)。最小值为 1。
livenessProbe.terminationGracePeriodSecondsint30可选,探测失败时 Pod 需要优雅终止的时长(以秒为单位)。最小值为 1。
readinessProbe.initialDelaySecondsint5容器启动后经过多少秒才开始执行就绪探针。最小值为 0。
readinessProbe.periodSecondsint10执行探测的频率(以秒为单位)。最小值为 1。
readinessProbe.successThresholdint1探测失败后,被视为成功所需的最小连续成功次数。最小值为 1。
readinessProbe.failureThresholdint3探测成功后,被视为失败所需的最小连续失败次数。最小值为 1。
readinessProbe.timeoutSecondsint10探测超时的时间(以秒为单位)。最小值为 1。

高级配置

键类型默认值描述
advancedConfigobject{"quarkus.http.access-log.enabled":true}高级配置。你可以在此处传入任意有效的 Polaris 或 Quarkus 配置属性。此处定义的任何属性都会优先于此 Chart 生成的所有其他配置值。属性可以以“扁平”形式传入,也可以作为嵌套的 YAML 对象传入(见下方示例)。有关 Polaris 配置属性的完整列表,请参阅 Polaris 配置参考;有关 Quarkus 配置属性的完整列表,请参阅 Quarkus 配置参考。
extraEnvlist[]通过环境变量进行高级配置。要添加到 Polaris 服务器容器的额外环境变量。你可以在此处传入任意有效的 EnvVar 对象:EnvVar API 这对于从 Kubernetes Secret 或 ConfigMap 中获取配置值非常有用。
envFromlist[]从 Secret 或 ConfigMap 批量导入环境变量。使用 Kubernetes envFrom 定义用于填充环境变量的来源。每个被引用的 Secret 或 ConfigMap 都会将其所有键值对作为环境变量暴露到 Polaris 容器中。EnvFrom API
extraVolumeslist[]要添加到 polaris Pod 的额外卷。参见 卷。
extraVolumeMountslist[]要添加到 polaris 容器的额外卷挂载。参见 卷。
extraInitContainerslist[]为 polaris Pod 添加额外的 init 容器。参见 Init 容器。

可观测性

KeyTypeDefaultDescription
tracing.enabledboolfalse指定是否应为 Polaris 服务器启用链路追踪。详情参见链路追踪。
tracing.endpointstring"http://otlp-collector:4317"要连接的采集器端点 URL(必填)。端点 URL 必须使用 http:// 或 https:// 协议。采集器必须使用 OpenTelemetry 协议(OTLP),且端口必须为其 gRPC 端口(默认为 4317)。更多信息参见 Quarkus OpenTelemetry。
tracing.samplestring"1.0d"对哪些请求进行采样。有效值为:“all”(全部)、“none”(不采样),或介于 0.0 到“1.0d”(含)之间的比例值。例如“0.5d”表示将对 50% 的请求进行采样。注意:请勿在此处填写数字,请始终使用比例的字符串表示形式。
tracing.attributesobject{}用于在其他链路追踪源中标识 Polaris 服务的资源属性。参见 OpenTelemetry 语义约定。如果留空,链路将附加到名为“Apache Polaris”的服务;若要更改,请在此处提供 service.name 属性。
metrics.enabledbooltrue指定是否应为 Polaris 服务器启用指标。详情参见指标。
metrics.tagsobject{}要添加到指标中的额外标签(维度标签)。
serviceMonitor.enabledbooltrue指定是否应为 Prometheus Operator 创建 ServiceMonitor。
serviceMonitor.intervalstring""抓取间隔;留空则由 Prometheus 决定。必须是有效的时长,例如 1d、1h30m、5m、10s。
serviceMonitor.labelsobject{}创建的 ServiceMonitor 的标签,以便 Prometheus Operator 能够正确发现它。
serviceMonitor.metricRelabelingslist[]要应用于指标的重新打标签规则。详情参见 relabel_config。

日志

键类型默认值描述
logging.levelstring"INFO"根日志类别的日志级别,作为所有类别的默认日志级别。
logging.requestIdHeaderNamestring"X-Request-ID"用于请求 ID 的请求头名称。
logging.console.enabledbooltrue是否启用控制台 appender。
logging.console.thresholdstring"ALL"控制台 appender 的日志级别。
logging.console.jsonboolfalse是否以 JSON 格式记录日志。
logging.console.formatstring"%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c{3.}] [%X{requestId},%X{realmId}] [%X{traceId},%X{parentId},%X{spanId},%X{sampled}] (%t) %s%e%n"使用的日志格式。如果启用了 JSON 格式,则忽略此项。详情参见日志。
logging.file.enabledboolfalse是否启用文件 appender。
logging.file.thresholdstring"ALL"文件 appender 的日志级别。
logging.file.jsonboolfalse是否以 JSON 格式记录日志。
logging.file.formatstring"%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c{3.}] [%X{requestId},%X{realmId}] [%X{traceId},%X{parentId},%X{spanId},%X{sampled}] (%t) %s%e%n"使用的日志格式。如果启用了 JSON 格式,则忽略此项。详情参见日志。
logging.file.logsDirstring"/deployments/logs"存放日志文件的本地目录。持久卷声明(PVC)将挂载到此处。
logging.file.fileNamestring"polaris.log"日志文件名。
logging.file.rotation.maxFileSizestring"100Mi"日志文件轮转前的最大大小。应以 Kubernetes 量值(quantity)格式表示。
logging.file.rotation.maxBackupIndexint5最多保留的备份文件数量。
logging.file.rotation.fileSuffixstringnil可选的后缀,附加到轮转后的日志文件上。如果提供,轮转后的日志文件将按时间桶分组,每个桶中最多包含 maxBackupIndex 个文件。后缀必须是 DateTimeFormatter 能够解析的日期时间格式。如果后缀以 .gz 或 .zip 结尾,轮转后的文件还将使用相应的算法进行压缩。
logging.file.storage.classNamestring"standard"要创建的持久卷声明的存储类(storage class)名称。
logging.file.storage.sizestring"512Gi"要创建的持久卷声明的大小。
logging.file.storage.selectorLabelsobject{}添加到持久卷声明 spec selector 中的标签;必须存在具有匹配标签的持久卷。如果使用动态供给,请留空。
logging.categoriesobject{"org.apache":{"iceberg.rest":"INFO","polaris":"INFO"}}特定日志类别的配置。键为类别名称(例如 org.apache.polaris),值为日志级别。日志级别可以以“扁平”形式或嵌套 YAML 对象的形式传入(见下方示例)。
logging.mdcobject{}MDC(映射诊断上下文,Mapped Diagnostic Context)的配置。此处指定的值会添加到所有传入请求的日志上下文中,并可在日志模式中使用。MDC 的值可以以“扁平”形式或嵌套 YAML 对象的形式传入。

Realm 上下文

键类型默认值描述
realmContext.typestring"default"要使用的 realm 上下文解析器类型。支持两种内置类型:default 和 test;test 不建议用于生产环境,因为它不执行任何 realm 校验。
realmContext.realmslist["POLARIS"]有效 realm 的列表,供默认 realm 上下文解析器使用。列表中的第一个 realm 是默认 realm。不在此列表中的 realm 将被拒绝。
realmContext.requireHeaderboolfalse是否要求请求中包含 realm 头。设置为 true 时,缺少 realm 头的请求将被拒绝。设置为 false 时,将改用默认 realm。建议在生产环境中将此项设置为 true。

功能特性

键类型默认值描述
featuresobject{"SUPPORTED_CATALOG_STORAGE_TYPES":["S3","GCS","AZURE"],"realmOverrides":{}}全局启用或禁用的功能。如果某个功能未出现在该映射中,则使用内置的默认值。完整的可用功能列表请参阅 Polaris 配置参考。
features.realmOverridesobject{}按 realm 启用或禁用的功能。此字段是一个映射的映射。realm 名称作为键,值是功能名称到取值的映射。如果某个功能未出现在该映射中,则使用全局取值。

持久化

键类型默认值说明
persistence.typestring"in-memory"要使用的持久化类型。支持三种内置类型:in-memory、relational-jdbc 和 nosql(测试版)。
persistence.relationalJdbc.secret.namestring""用于获取数据库连接属性的 Secret 名称
persistence.relationalJdbc.secret.usernamestring"username"存放用于认证的数据库用户名的 Secret 键
persistence.relationalJdbc.secret.passwordstring"password"存放用于认证的数据库密码的 Secret 键
persistence.relationalJdbc.secret.jdbcUrlstring"jdbcUrl"存放数据库 JDBC 连接 URL 的 Secret 键
persistence.nosql.backendstring"MongoDb"要使用的 NoSQL 后端。支持两种内置类型:MongoDb 和 InMemory。生产环境仅支持 MongoDb。
persistence.nosql.databasestring"polaris"要使用的 MongoDB 数据库名称。
persistence.nosql.secret.namestring""用于获取 MongoDB 连接字符串的 Secret 名称。
persistence.nosql.secret.connectionStringstring"connectionString"存放 MongoDB 连接字符串的 Secret 键。

文件 IO

键类型默认值说明
fileIo.typestring"default"要使用的文件 IO 类型。支持两种内置类型:default 和 wasb。wasb 会将 WASB 路径转换为 ABFS 路径。

存储

键类型默认值描述
storage.secret.namestring""用于获取存储凭据的 Secret 名称。
storage.secret.awsAccessKeyIdstring""从 Secret 中获取 AWS 访问密钥 ID 的键。仅在使用 AWS 时需要。
storage.secret.awsSecretAccessKeystring""从 Secret 中获取 AWS 秘密访问密钥的键。仅在使用 AWS 时需要。
storage.secret.gcpTokenstring""从 Secret 中获取 GCP 令牌的键。仅在使用 GCP 时需要。
storage.secret.gcpTokenLifespanstring""从 Secret 中获取 GCP 令牌过期时间的键。仅在使用 GCP 时需要。必须是有效的 ISO 8601 持续时间,默认值为 PT1H(1 小时)。

身份验证

KeyTypeDefaultDescription
authentication.typestring"internal"要使用的认证类型。支持三种内置类型:internal(内部)、external(外部)和 mixed(混合)。
authentication.authenticator.typestring"default"要使用的认证器(authenticator)类型。
authentication.tokenService.typestring"default"要使用的令牌服务实现。支持两种内置类型:default 和 disabled。仅在使用 internal(或 mixed)认证时相关。使用 external 认证时,令牌服务始终处于禁用状态。
authentication.tokenBroker.typestring"rsa-key-pair"要使用的令牌代理(token broker)实现。支持两种内置类型:rsa-key-pair 和 symmetric-key。仅在使用 internal(或 mixed)认证时相关。使用 external 认证时,不会使用令牌代理。
authentication.tokenBroker.maxTokenGenerationstring"PT1H"令牌生成的最大有效期(例如,PT1H 表示 1 小时)。
authentication.tokenBroker.secret.namestring""用于获取密钥的 Secret 名称。若未提供,将生成一对密钥。不建议在生产环境中使用此方式。
authentication.tokenBroker.secret.rsaKeyPair.publicKeystring"public.pem"Secret 内部存放 RSA 公钥的键名。
authentication.tokenBroker.secret.rsaKeyPair.privateKeystring"private.pem"Secret 内部存放 RSA 私钥的键名。
authentication.tokenBroker.secret.symmetricKey.secretKeystring"symmetric.key"Secret 内部存放对称密钥的键名。
authentication.realmOverridesobject{}按 realm(域)进行的认证配置覆盖。

OIDC

KeyTypeDefaultDescription
oidc.authServeUrlstring""认证服务器 URL。如果为外部认证配置了至少一个 realm,则必须提供该地址。
oidc.client.idstring"polaris"在联系认证服务器的 introspection 端点以验证令牌时使用的客户端 ID。
oidc.client.secret.namestring""用于获取客户端密钥(client secret)的 Secret 名称。如果未提供,则认为在联系 introspection 端点时不需要客户端密钥。
oidc.client.secret.keystring"clientSecret"Secret 中用于获取客户端密钥的键名。
oidc.principalMapper.typestring"default"要使用的 PrincipalMapper 实现。仅支持一种内置类型:default。
oidc.principalMapper.idClaimPathstring""包含主体 ID 的 claim 的路径。嵌套路径可以使用 “/” 作为分隔符表示,例如 “polaris/principal_id” 表示在令牌 claims 的 “polaris” 对象内查找 “principal_id” 字段。可选。必须提供此选项或 nameClaimPath(或两者都提供)。
oidc.principalMapper.nameClaimPathstring""包含主体名称的 claim 的路径。嵌套路径可以使用 “/” 作为分隔符表示,例如 “polaris/principal_name” 表示在令牌 claims 的 “polaris” 对象内查找 “principal_name” 字段。可选。必须提供此选项或 idClaimPath(或两者都提供)。
oidc.principalRolesMapper.typestring"default"要使用的 PrincipalRolesMapper 实现。仅支持一种内置类型:default。
oidc.principalRolesMapper.rolesClaimPathstring""包含主体角色的 claim 的路径。嵌套路径可以使用 “/” 作为分隔符表示,例如 “polaris/principal_roles” 表示在令牌 claims 的 “polaris” 对象内查找 “principal_roles” 字段。如果未设置,Quarkus 会在标准位置查找角色。参见 Quarkus OIDC Token Claims。
oidc.principalRolesMapper.filterstring""用于匹配标识(identity)中角色名称的正则表达式。只有匹配该正则的角色才会被包含在 Polaris 特定的角色中。
oidc.principalRolesMapper.mappingslist[]一组正则映射,将应用于标识中的每个角色名称。可用于将标识中的角色名称转换为 Polaris 期望的角色名称。默认的 Authenticator 要求安全标识以 POLARIS_ROLE:<role name> 格式公开角色名称。

CORS(跨域资源共享)

键类型默认值说明
cors.enabledboolfalse指定是否应启用 CORS 过滤器。详情请参阅 CORS。
cors.allowedOriginslist[]允许的 CORS 来源,例如 http://polaris.apache.org、http://localhost:8181。如果列表中的某个条目被正斜杠包围,则将其解释为正则表达式。
cors.allowedMethodslist[]允许的 CORS HTTP 方法,例如 GET、PUT、POST。如果未设置或为空,则视为允许所有请求的方法。
cors.allowedHeaderslist[]允许的 CORS HTTP 请求头,例如 X-Custom、Content-Disposition。如果未设置或为空,则视为允许所有请求的请求头。
cors.exposedHeaderslist[]向客户端暴露的 HTTP 请求头,例如 X-Custom、Content-Disposition。默认为空列表。
cors.accessControlMaxAgestring""Access-Control-Max-Age 响应头的值,表示预检请求的结果可以被缓存多久。必须是有效的持续时间。
cors.accessControlAllowCredentialsboolnilAccess-Control-Allow-Credentials 响应头。如果设置了 allowedOrigins 属性且与精确的 Origin 请求头匹配,则该请求头的值默认为 true。

速率限制器

键类型默认值说明
rateLimiter.typestring"no-op"要使用的限流器过滤器类型。支持两种内置类型:default 和 no-op。
rateLimiter.tokenBucket.typestring"default"令牌桶限流器的类型。开箱即用仅支持 default 类型。
rateLimiter.tokenBucket.requestsPerSecondint9999每个 realm 每秒允许的最大请求数(许可数)。

任务

键类型默认值说明
tasks.maxConcurrentTasksint0同时可执行的最大并发任务数。若未指定或为零,则默认为可用核心数。
tasks.maxQueuedTasksint0可排队等待执行的最大任务数。若未指定或为零,则默认为 Integer.MAX_VALUE。

维护

键类型默认值描述
maintenanceobject见下方子字段。以 Kubernetes CronJob 形式运行的 Polaris 维护任务配置。维护 Pod 会继承全局的 Pod 级调度和加固设置,但不会继承环境变量和卷设置。后者必须在 maintenance.* 下显式配置,以防止服务器专属的密钥和配置暴露给维护 Pod。
maintenance.annotationsobject{}添加到每个维护 CronJob 对象上的注解。
maintenance.podAnnotationsobject{}添加到每个维护 Pod 上的注解。不与全局 podAnnotations 合并,因为注解可能授予额外的访问权限,因此维护 Pod 只接收此处配置的内容。
maintenance.podLabelsobject{}添加到每个维护 Pod 上的标签(例如 team、cost-center)。不与全局 podLabels 合并。用户提供的标签在 Chart 管理的维护标签之后渲染。
maintenance.extraEnvlist[]添加到每个维护 CronJob 对象上的额外环境变量。不与全局 extraEnv 合并,因为维护 Pod 只接收此处配置的值。
maintenance.envFromlist[]从 Secret 或 ConfigMap 批量导入环境变量到每个维护 CronJob 对象。不与全局 envFrom 合并,因为维护 Pod 只接收此处配置的值。
maintenance.extraVolumeslist[]添加到每个维护 CronJob 对象上的额外卷。不与全局 extraVolumes 合并——原因参见 maintenance.extraEnv。
maintenance.extraVolumeMountslist[]添加到每个维护 CronJob 对象上的额外卷挂载。不与全局 extraVolumeMounts 合并,因为维护 Pod 只接收此处配置的值。
maintenance.imageobject{"pullPolicy":"IfNotPresent","repository":"apache/polaris-admin-tool","tag":"1.7.0"}每个维护 CronJob 对象使用的容器镜像。
maintenance.image.repositorystring"apache/polaris-admin-tool"Polaris 管理工具的拉取镜像仓库。
maintenance.image.pullPolicystring"IfNotPresent"镜像拉取策略。
maintenance.image.tagstring"1.7.0"镜像标签。
maintenance.jobsobject见下方子字段。定义维护 CronJob。
maintenance.jobs.nosql-maintenance.enabledboolfalse启用此维护任务。
maintenance.jobs.nosql-maintenance.schedulestring"0 2 * * *"Cron 格式的调度表达式。
maintenance.jobs.nosql-maintenance.argslist["nosql","maintenance-run"]传递给管理工具的参数。
maintenance.jobs.nosql-maintenance.concurrencyPolicystring"Forbid"并发策略。有效值为:Allow、Forbid、Replace。
maintenance.jobs.nosql-maintenance.resourcesobject{}此任务容器的资源请求和限制。不与全局 resources 合并,因为服务器的资源配置通常不适用于短时运行的维护任务。请在需要时显式配置资源。默认未设置。
maintenance.jobs.nosql-maintenance.restartPolicystring"Never"Pod 的 restartPolicy。
maintenance.jobs.nosql-maintenance.backoffLimitint6将此 Job 标记为失败之前的最大重试次数。
maintenance.jobs.nosql-maintenance.activeDeadlineSecondsstringnil单次任务运行的最大运行秒数。为 null 表示不限制。
maintenance.jobs.nosql-maintenance.successfulJobsHistoryLimitint3历史记录中保留的成功完成的 Job 数量。
maintenance.jobs.nosql-maintenance.failedJobsHistoryLimitint1历史记录中保留的失败完成的 Job 数量。
maintenance.jobs.nosql-maintenance.serviceAccountNamestring""单个任务的 ServiceAccount 覆盖项。留空表示使用全局 ServiceAccount。

评论

登录后参与评论

正在加载评论…