Helm Chart
配置项参考
登录后可跨设备保存划线和私人笔记登录
配置项参考
Deployment(部署)
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| replicaCount | int | 1 | 要部署的副本数(水平扩展)。请注意副本是无状态的;使用内存元数据存储管理器时请勿将此值设置为 > 1。生产环境建议请参阅 Scaling。 |
| deploymentAnnotations | object | {} | 应用到 Polaris Deployment 的额外注解。 |
| revisionHistoryLimit | int | nil | 保留的历史 ReplicaSet 数量,以便进行回滚(若未设置,则使用 Kubernetes 默认值 10)。 |
Image(镜像)
| Key | Type | Default | Description |
|---|---|---|---|
| image.repository | string | "apache/polaris" | 要从中拉取的镜像仓库。 |
| image.pullPolicy | string | "IfNotPresent" | 镜像拉取策略。 |
| image.tag | string | "1.7.0" | 镜像标签。 |
| image.configDir | string | "/deployments/config" | 用于挂载 application.properties 文件(以及其他配置文件,如果有的话)的目录路径。 |
| imagePullSecrets | list | [] | 同一命名空间中 Secret 的引用,用于拉取本 Chart 使用的任意镜像。每个条目都是一个字符串,指向该命名空间中已存在的 Secret。该 Secret 必须包含一个 .dockerconfigjson 键,其值为经过 base64 编码的 Docker 配置文件。更多信息请参见从私有仓库拉取。 |
服务账号
| 键 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| serviceAccount.create | bool | true | 指定是否应创建服务账号。 |
| serviceAccount.annotations | object | {} | 添加到服务账号的注解。 |
| serviceAccount.name | string | "" | 要使用的服务账号的名称。如果未设置且 create 为 true,则使用 fullname 模板生成名称。 |
Pod 配置
| Key | Type | Default | Description |
|---|---|---|---|
| podAnnotations | object | {} | 应用到 polaris Pod 的注解。 |
| hostUsers | bool | nil | 指定 Pod 是否使用宿主机的用户命名空间(仅限 Linux 的功能)。参见用户命名空间。 |
| podLabels | object | {} | 应用到 polaris Pod 的附加标签。 |
| configMapLabels | object | {} | 应用到 polaris ConfigMap 的附加标签。 |
| podDisruptionBudget.enabled | bool | false | 指定是否创建 Pod 中断预算(PodDisruptionBudget)。 |
| podDisruptionBudget.minAvailable | int | 0 | 中断期间应保持可用的最小 Pod 数量。可以是绝对数字(例如:5)或期望 Pod 数量的百分比(例如:50%)。重要:不能与 maxUnavailable 同时使用。 |
| podDisruptionBudget.maxUnavailable | int | 0 | 中断期间允许不可用的最大 Pod 数量。可以是绝对数字(例如:5)或期望 Pod 数量的百分比(例如:50%)。重要:不能与 minAvailable 同时使用。 |
| podDisruptionBudget.annotations | object | {} | 添加到 Pod 中断预算的注解。 |
| podSecurityContext | object | {"fsGroup":10001,"seccompProfile":{"type":"RuntimeDefault"}} | polaris Pod 的安全上下文。参见安全上下文。 |
| containerSecurityContext | object | {"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"runAsNonRoot":true,"runAsUser":10000,"seccompProfile":{"type":"RuntimeDefault"}} | polaris 容器的安全上下文。参见安全上下文。 |
| containerLifecycle | object | {} | polaris 容器的生命周期钩子。参见容器生命周期钩子。可使用此项配置用于优雅关闭的 preStop 钩子,例如:containerLifecycle: preStop: exec: command: ["/bin/sh", “-c”, “sleep 30”] |
| terminationGracePeriodSeconds | int | nil | Pod 优雅终止所需的时长(秒)。必须大于 preStop 钩子的执行时长。参见Pod 的终止。使用 preStop 钩子时,应将此值设置为至少等于 preStop 的休眠时间加上预期的请求完成时间。 |
服务
| 键 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| service.type | string | "ClusterIP" | 要创建的服务类型。有效取值为:ExternalName、ClusterIP、NodePort 和 LoadBalancer。默认值为 ClusterIP。更多信息参见网络。 |
| service.ports[0].name | string | "polaris-http" | 端口名称。必填。 |
| service.ports[0].port | int | 8181 | 服务监听的端口。默认情况下,HTTP 端口为 8181。 |
| service.ports[0].targetPort | int | 0 | 服务所指向的 Pod 上要访问的端口号。如果未指定或为零,则使用 port 字段的值。 |
| service.ports[0].nodePort | int | 0 | 当类型为 NodePort 或 LoadBalancer 时,该服务在每个节点上对外暴露的端口。通常由系统分配。如果未指定或为零,则在该 Service 需要时会分配一个端口。如果在创建不需要该端口的 Service 时指定了此字段,创建将会失败。 |
| service.ports[0].protocol | string | "TCP" | 该端口使用的 IP 协议。支持 "TCP"、"UDP" 和 "SCTP"。默认为 TCP。 |
| service.sessionAffinity | string | "None" | 服务的会话亲和性。有效取值为:None、ClientIP。默认值为 None。ClientIP 可基于客户端 IP 地址启用会话保持。这对 Polaris 部署通常有益,但可能需要进行一些测试,以确保负载在各 Pod 之间均匀分布。此外,此设置仅影响内部客户端,不影响外部客户端。如果启用了 Ingress,建议将 sessionAffinity 设置为 None。 |
| service.clusterIP | string | "" | 您可以指定自己的集群 IP 地址。如果您定义的 Service 的 .spec.clusterIP 设置为 "None",那么 Kubernetes 不会为其分配 IP 地址。相反,该服务的 DNS 记录将返回服务所指向的各个 Pod 的 IP 地址。这被称为无头服务(headless service)。参见无头服务。 |
| service.internalTrafficPolicy | string | "Cluster" | 控制来自内部来源的流量如何路由。有效取值为 Cluster 和 Local。默认值为 Cluster。将该字段设置为 Cluster 可将流量路由到所有就绪的端点;设置为 Local 则仅路由到就绪的节点本地端点。如果流量策略为 Local 且不存在节点本地端点,流量将被 kube-proxy 丢弃。 |
| service.externalTrafficPolicy | string | "Cluster" | 控制来自外部来源的流量如何路由。有效取值为 Cluster 和 Local。默认值为 Cluster。将该字段设置为 Cluster 可将流量路由到所有就绪的端点;设置为 Local 则仅路由到就绪的节点本地端点。如果流量策略为 Local 且不存在节点本地端点,流量将被 kube-proxy 丢弃。 |
| service.trafficDistribution | string | nil | 流量分发字段提供了另一种影响 Kubernetes Service 内部流量路由的方式。流量策略侧重于严格的语义保证,而流量分发则允许您表达偏好,例如路由到拓扑上更近的端点。唯一有效的取值为:PreferClose。默认值取决于具体实现。 |
| service.annotations | object | {} | 要添加到服务上的注解。 |
管理服务
| Key | Type | Default | Description |
|---|---|---|---|
| managementService.type | string | "ClusterIP" | 要创建的服务类型。有效值为:ExternalName、ClusterIP、NodePort 和 LoadBalancer。默认值为 ClusterIP。 |
| managementService.ports[0].name | string | "polaris-mgmt" | 管理端口的名称。必填。 |
| managementService.ports[0].port | int | 8182 | 管理服务监听的端口。默认情况下,管理接口通过 HTTP 端口 8182 暴露。 |
| managementService.ports[0].targetPort | int | 0 | 要访问的服务所指向的 Pod 上的端口号。如果未指定或为零,则使用 port 字段的值。 |
| managementService.ports[0].nodePort | int | 0 | 当类型为 NodePort 或 LoadBalancer 时,该服务在每个节点上暴露的端口。通常由系统分配。如果未指定或为零,且此 Service 需要该端口,则会自动分配一个端口。如果在创建不需要该端口的 Service 时指定了此字段,创建将会失败。 |
| managementService.ports[0].protocol | string | "TCP" | 此端口使用的 IP 协议。支持 “TCP”、“UDP” 和 “SCTP”。默认为 TCP。 |
| managementService.clusterIP | string | "None" | 默认情况下,管理服务是无头服务(headless),即它没有集群 IP。这通常是暴露健康检查和指标的正确选项,例如用于指标抓取和服务监控。 |
| managementService.sessionAffinity | string | "None" | 该服务的会话亲和性。 |
| managementService.internalTrafficPolicy | string | "Cluster" | 控制来自内部来源的流量如何路由。 |
| managementService.externalTrafficPolicy | string | "Cluster" | 控制来自外部来源的流量如何路由。 |
| managementService.trafficDistribution | string | nil | 流量分布字段。 |
| managementService.annotations | object | {} | 要添加到该服务的注解。 |
额外服务
| 键 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| extraServices[0].nameSuffix | string | "" | 要追加到服务名称后的后缀。必填,且必须唯一。如果它不以连字符开头,则会在基础服务名称和该后缀之间插入一个连字符。 |
| extraServices[0].type | string | "LoadBalancer" | 要创建的服务类型。有效值为:ExternalName、ClusterIP、NodePort 和 LoadBalancer。 |
| extraServices[0].ports[0].name | string | "polaris-extra" | 端口名称。必填。 |
| extraServices[0].ports[0].port | int | 8183 | 额外服务监听的端口。 |
| extraServices[0].ports[0].targetPort | int | 0 | 要访问的服务所指向的 Pod 上的端口号。如果未指定或为 0,则使用 port 字段的值。 |
| extraServices[0].ports[0].nodePort | int | 0 | 当类型为 NodePort 或 LoadBalancer 时,该额外服务在每个节点上暴露的端口。通常由系统分配。如果未指定或为 0,且此 Service 需要该端口,则会自动分配一个端口。如果在创建无需该端口的 Service 时指定了此字段,创建将会失败。 |
| extraServices[0].ports[0].protocol | string | "TCP" | 此端口使用的 IP 协议。支持 “TCP”、“UDP” 和 “SCTP”。默认为 TCP。 |
| extraServices[0].clusterIP | string | "" | 额外服务的集群 IP。 |
| extraServices[0].sessionAffinity | string | "None" | 额外服务的会话亲和性。有效值为:None、ClientIP。默认值为 None。 |
| extraServices[0].internalTrafficPolicy | string | "Cluster" | 控制来自内部来源的流量如何路由。 |
| extraServices[0].externalTrafficPolicy | string | "Cluster" | 控制来自外部来源的流量如何路由。 |
| extraServices[0].trafficDistribution | string | nil | 流量分发字段。 |
| extraServices[0].annotations | object | {} | 要添加到额外服务的注解。 |
Ingress
| Key | Type | Default | Description |
|---|---|---|---|
| ingress.className | string | "" | 指定 ingressClassName;如果不需要自定义,请留空。更多信息请参阅网络。 |
| ingress.enabled | bool | false | 指定是否应创建 ingress。 |
| ingress.annotations | object | {} | 要添加到 ingress 的注解。 |
| ingress.hosts[0].host | string | "chart-example.local" | 主机名。必填。 |
| ingress.hosts[0].paths[0].path | string | "/" | 要匹配的路径。 |
| ingress.hosts[0].paths[0].pathType | string | "Prefix" | 路径类型。有效值为:Exact、Prefix 和 ImplementationSpecific。 |
| ingress.tls[0].secretName | string | "" | 用于在 443 端口终止 TLS 流量的 TLS Secret 的名称。必填。 |
| ingress.tls[0].hosts | list | ["chart-example1.local","chart-example2.local"] | 证书中的主机列表。 |
Gateway
| Key | Type | Default | Description |
|---|---|---|---|
| gateway.enabled | bool | false | 指定是否应创建 Gateway。更多信息请参阅网络(Networking)。 |
| gateway.annotations | object | {} | 要添加到 Gateway 的注解。 |
| gateway.className | string | "" | 要使用的 GatewayClass 的名称。 |
| gateway.listeners[0].name | string | "http" | 监听器的名称。必填。 |
| gateway.listeners[0].protocol | string | "HTTP" | protocol 指定该监听器期望接收的网络协议。 |
| gateway.listeners[0].port | int | 80 | 监听器使用的端口号。 |
| gateway.listeners[0].hostname | string | "" | hostname 指定针对定义了虚拟主机概念的协议类型需要匹配的虚拟主机名。未指定时,将匹配所有主机名。 |
| gateway.listeners[0].allowedRoutes | object | {} | allowedRoutes 定义可以附加到监听器的路由类型,以及这些 Route 资源可能存在的受信任命名空间。 |
| gateway.addresses | list | [] | 为 Gateway 请求的可选地址。 |
HTTPRoute
| Key | Type | Default | Description |
|---|---|---|---|
| httproute.enabled | bool | false | 指定是否应创建 HTTPRoute。更多信息请参阅网络。 |
| httproute.annotations | object | {} | 要添加到 HTTPRoute 的注解。 |
| httproute.gatewayName | string | "" | 要附加到的 Gateway 资源的名称。必填。 |
| httproute.gatewayNamespace | string | "default" | Gateway 所部署的命名空间。必填。 |
| httproute.sectionName | string | "" | 要使用的网关内 section 名称(可选)。 |
| httproute.hosts | list | ["chart-example.local"] | HTTPRoute 应匹配的主机名列表。 |
| httproute.exposeManagementEndpoints | bool | false | 启用后可在 httproute 上公开管理端点。如果您希望在集群外部使用管理服务进行健康检查和指标抓取,则必须启用此项。 |
资源与自动扩缩容
| Key | Type | Default | Description |
|---|---|---|---|
| resources | object | {} | 配置 polaris Pod 的资源请求与限制。本 chart 未指定默认资源,将其留作用户有意识的选择。这也能提高 chart 在资源受限环境(如 Minikube)中运行的成功率。生产环境的建议请参阅资源管理。 |
| autoscaling.enabled | bool | false | 指定是否启用自动水平扩缩容。使用内存版本存储类型时请勿启用。生产环境的建议请参阅扩缩容。 |
| autoscaling.minReplicas | int | 1 | 要维持的最小副本数。 |
| autoscaling.maxReplicas | int | 3 | 要维持的最大副本数。 |
| autoscaling.targetCPUUtilizationPercentage | int | 80 | 可选;设置为零或留空可禁用。 |
| autoscaling.targetMemoryUtilizationPercentage | int | 0 | 可选;设置为零或留空可禁用。 |
调度
| 键 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| priorityClassName | string | "" | Polaris Pod 的优先级类名称。参见 Pod 优先级 |
| nodeSelector | object | {} | Polaris Pod 被调度到某节点时必须匹配的节点标签。参见 节点选择器。 |
| tolerations | list | [] | 应用于 Polaris Pod 的容忍度列表。参见 污点与容忍。 |
| affinity | object | {} | Polaris Pod 的亲和性与反亲和性。参见 亲和性与反亲和性。 |
| topologySpreadConstraints | list | [] | Polaris Pod 的拓扑分布约束。参见 拓扑分布约束。 |
探针
| 键 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| livenessProbe.initialDelaySeconds | int | 5 | 容器启动后经过多少秒才开始执行存活探针。最小值为 0。 |
| livenessProbe.periodSeconds | int | 10 | 执行探测的频率(以秒为单位)。最小值为 1。 |
| livenessProbe.successThreshold | int | 1 | 探测失败后,被视为成功所需的最小连续成功次数。最小值为 1。 |
| livenessProbe.failureThreshold | int | 3 | 探测成功后,被视为失败所需的最小连续失败次数。最小值为 1。 |
| livenessProbe.timeoutSeconds | int | 10 | 探测超时的时间(以秒为单位)。最小值为 1。 |
| livenessProbe.terminationGracePeriodSeconds | int | 30 | 可选,探测失败时 Pod 需要优雅终止的时长(以秒为单位)。最小值为 1。 |
| readinessProbe.initialDelaySeconds | int | 5 | 容器启动后经过多少秒才开始执行就绪探针。最小值为 0。 |
| readinessProbe.periodSeconds | int | 10 | 执行探测的频率(以秒为单位)。最小值为 1。 |
| readinessProbe.successThreshold | int | 1 | 探测失败后,被视为成功所需的最小连续成功次数。最小值为 1。 |
| readinessProbe.failureThreshold | int | 3 | 探测成功后,被视为失败所需的最小连续失败次数。最小值为 1。 |
| readinessProbe.timeoutSeconds | int | 10 | 探测超时的时间(以秒为单位)。最小值为 1。 |
高级配置
| 键 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| advancedConfig | object | {"quarkus.http.access-log.enabled":true} | 高级配置。你可以在此处传入任意有效的 Polaris 或 Quarkus 配置属性。此处定义的任何属性都会优先于此 Chart 生成的所有其他配置值。属性可以以“扁平”形式传入,也可以作为嵌套的 YAML 对象传入(见下方示例)。有关 Polaris 配置属性的完整列表,请参阅 Polaris 配置参考;有关 Quarkus 配置属性的完整列表,请参阅 Quarkus 配置参考。 |
| extraEnv | list | [] | 通过环境变量进行高级配置。要添加到 Polaris 服务器容器的额外环境变量。你可以在此处传入任意有效的 EnvVar 对象:EnvVar API 这对于从 Kubernetes Secret 或 ConfigMap 中获取配置值非常有用。 |
| envFrom | list | [] | 从 Secret 或 ConfigMap 批量导入环境变量。使用 Kubernetes envFrom 定义用于填充环境变量的来源。每个被引用的 Secret 或 ConfigMap 都会将其所有键值对作为环境变量暴露到 Polaris 容器中。EnvFrom API |
| extraVolumes | list | [] | 要添加到 polaris Pod 的额外卷。参见 卷。 |
| extraVolumeMounts | list | [] | 要添加到 polaris 容器的额外卷挂载。参见 卷。 |
| extraInitContainers | list | [] | 为 polaris Pod 添加额外的 init 容器。参见 Init 容器。 |
可观测性
| Key | Type | Default | Description |
|---|---|---|---|
| tracing.enabled | bool | false | 指定是否应为 Polaris 服务器启用链路追踪。详情参见链路追踪。 |
| tracing.endpoint | string | "http://otlp-collector:4317" | 要连接的采集器端点 URL(必填)。端点 URL 必须使用 http:// 或 https:// 协议。采集器必须使用 OpenTelemetry 协议(OTLP),且端口必须为其 gRPC 端口(默认为 4317)。更多信息参见 Quarkus OpenTelemetry。 |
| tracing.sample | string | "1.0d" | 对哪些请求进行采样。有效值为:“all”(全部)、“none”(不采样),或介于 0.0 到“1.0d”(含)之间的比例值。例如“0.5d”表示将对 50% 的请求进行采样。注意:请勿在此处填写数字,请始终使用比例的字符串表示形式。 |
| tracing.attributes | object | {} | 用于在其他链路追踪源中标识 Polaris 服务的资源属性。参见 OpenTelemetry 语义约定。如果留空,链路将附加到名为“Apache Polaris”的服务;若要更改,请在此处提供 service.name 属性。 |
| metrics.enabled | bool | true | 指定是否应为 Polaris 服务器启用指标。详情参见指标。 |
| metrics.tags | object | {} | 要添加到指标中的额外标签(维度标签)。 |
| serviceMonitor.enabled | bool | true | 指定是否应为 Prometheus Operator 创建 ServiceMonitor。 |
| serviceMonitor.interval | string | "" | 抓取间隔;留空则由 Prometheus 决定。必须是有效的时长,例如 1d、1h30m、5m、10s。 |
| serviceMonitor.labels | object | {} | 创建的 ServiceMonitor 的标签,以便 Prometheus Operator 能够正确发现它。 |
| serviceMonitor.metricRelabelings | list | [] | 要应用于指标的重新打标签规则。详情参见 relabel_config。 |
日志
| 键 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| logging.level | string | "INFO" | 根日志类别的日志级别,作为所有类别的默认日志级别。 |
| logging.requestIdHeaderName | string | "X-Request-ID" | 用于请求 ID 的请求头名称。 |
| logging.console.enabled | bool | true | 是否启用控制台 appender。 |
| logging.console.threshold | string | "ALL" | 控制台 appender 的日志级别。 |
| logging.console.json | bool | false | 是否以 JSON 格式记录日志。 |
| logging.console.format | string | "%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.enabled | bool | false | 是否启用文件 appender。 |
| logging.file.threshold | string | "ALL" | 文件 appender 的日志级别。 |
| logging.file.json | bool | false | 是否以 JSON 格式记录日志。 |
| logging.file.format | string | "%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.logsDir | string | "/deployments/logs" | 存放日志文件的本地目录。持久卷声明(PVC)将挂载到此处。 |
| logging.file.fileName | string | "polaris.log" | 日志文件名。 |
| logging.file.rotation.maxFileSize | string | "100Mi" | 日志文件轮转前的最大大小。应以 Kubernetes 量值(quantity)格式表示。 |
| logging.file.rotation.maxBackupIndex | int | 5 | 最多保留的备份文件数量。 |
| logging.file.rotation.fileSuffix | string | nil | 可选的后缀,附加到轮转后的日志文件上。如果提供,轮转后的日志文件将按时间桶分组,每个桶中最多包含 maxBackupIndex 个文件。后缀必须是 DateTimeFormatter 能够解析的日期时间格式。如果后缀以 .gz 或 .zip 结尾,轮转后的文件还将使用相应的算法进行压缩。 |
| logging.file.storage.className | string | "standard" | 要创建的持久卷声明的存储类(storage class)名称。 |
| logging.file.storage.size | string | "512Gi" | 要创建的持久卷声明的大小。 |
| logging.file.storage.selectorLabels | object | {} | 添加到持久卷声明 spec selector 中的标签;必须存在具有匹配标签的持久卷。如果使用动态供给,请留空。 |
| logging.categories | object | {"org.apache":{"iceberg.rest":"INFO","polaris":"INFO"}} | 特定日志类别的配置。键为类别名称(例如 org.apache.polaris),值为日志级别。日志级别可以以“扁平”形式或嵌套 YAML 对象的形式传入(见下方示例)。 |
| logging.mdc | object | {} | MDC(映射诊断上下文,Mapped Diagnostic Context)的配置。此处指定的值会添加到所有传入请求的日志上下文中,并可在日志模式中使用。MDC 的值可以以“扁平”形式或嵌套 YAML 对象的形式传入。 |
Realm 上下文
| 键 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| realmContext.type | string | "default" | 要使用的 realm 上下文解析器类型。支持两种内置类型:default 和 test;test 不建议用于生产环境,因为它不执行任何 realm 校验。 |
| realmContext.realms | list | ["POLARIS"] | 有效 realm 的列表,供默认 realm 上下文解析器使用。列表中的第一个 realm 是默认 realm。不在此列表中的 realm 将被拒绝。 |
| realmContext.requireHeader | bool | false | 是否要求请求中包含 realm 头。设置为 true 时,缺少 realm 头的请求将被拒绝。设置为 false 时,将改用默认 realm。建议在生产环境中将此项设置为 true。 |
功能特性
| 键 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| features | object | {"SUPPORTED_CATALOG_STORAGE_TYPES":["S3","GCS","AZURE"],"realmOverrides":{}} | 全局启用或禁用的功能。如果某个功能未出现在该映射中,则使用内置的默认值。完整的可用功能列表请参阅 Polaris 配置参考。 |
| features.realmOverrides | object | {} | 按 realm 启用或禁用的功能。此字段是一个映射的映射。realm 名称作为键,值是功能名称到取值的映射。如果某个功能未出现在该映射中,则使用全局取值。 |
持久化
| 键 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| persistence.type | string | "in-memory" | 要使用的持久化类型。支持三种内置类型:in-memory、relational-jdbc 和 nosql(测试版)。 |
| persistence.relationalJdbc.secret.name | string | "" | 用于获取数据库连接属性的 Secret 名称 |
| persistence.relationalJdbc.secret.username | string | "username" | 存放用于认证的数据库用户名的 Secret 键 |
| persistence.relationalJdbc.secret.password | string | "password" | 存放用于认证的数据库密码的 Secret 键 |
| persistence.relationalJdbc.secret.jdbcUrl | string | "jdbcUrl" | 存放数据库 JDBC 连接 URL 的 Secret 键 |
| persistence.nosql.backend | string | "MongoDb" | 要使用的 NoSQL 后端。支持两种内置类型:MongoDb 和 InMemory。生产环境仅支持 MongoDb。 |
| persistence.nosql.database | string | "polaris" | 要使用的 MongoDB 数据库名称。 |
| persistence.nosql.secret.name | string | "" | 用于获取 MongoDB 连接字符串的 Secret 名称。 |
| persistence.nosql.secret.connectionString | string | "connectionString" | 存放 MongoDB 连接字符串的 Secret 键。 |
文件 IO
| 键 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| fileIo.type | string | "default" | 要使用的文件 IO 类型。支持两种内置类型:default 和 wasb。wasb 会将 WASB 路径转换为 ABFS 路径。 |
存储
| 键 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| storage.secret.name | string | "" | 用于获取存储凭据的 Secret 名称。 |
| storage.secret.awsAccessKeyId | string | "" | 从 Secret 中获取 AWS 访问密钥 ID 的键。仅在使用 AWS 时需要。 |
| storage.secret.awsSecretAccessKey | string | "" | 从 Secret 中获取 AWS 秘密访问密钥的键。仅在使用 AWS 时需要。 |
| storage.secret.gcpToken | string | "" | 从 Secret 中获取 GCP 令牌的键。仅在使用 GCP 时需要。 |
| storage.secret.gcpTokenLifespan | string | "" | 从 Secret 中获取 GCP 令牌过期时间的键。仅在使用 GCP 时需要。必须是有效的 ISO 8601 持续时间,默认值为 PT1H(1 小时)。 |
身份验证
| Key | Type | Default | Description |
|---|---|---|---|
| authentication.type | string | "internal" | 要使用的认证类型。支持三种内置类型:internal(内部)、external(外部)和 mixed(混合)。 |
| authentication.authenticator.type | string | "default" | 要使用的认证器(authenticator)类型。 |
| authentication.tokenService.type | string | "default" | 要使用的令牌服务实现。支持两种内置类型:default 和 disabled。仅在使用 internal(或 mixed)认证时相关。使用 external 认证时,令牌服务始终处于禁用状态。 |
| authentication.tokenBroker.type | string | "rsa-key-pair" | 要使用的令牌代理(token broker)实现。支持两种内置类型:rsa-key-pair 和 symmetric-key。仅在使用 internal(或 mixed)认证时相关。使用 external 认证时,不会使用令牌代理。 |
| authentication.tokenBroker.maxTokenGeneration | string | "PT1H" | 令牌生成的最大有效期(例如,PT1H 表示 1 小时)。 |
| authentication.tokenBroker.secret.name | string | "" | 用于获取密钥的 Secret 名称。若未提供,将生成一对密钥。不建议在生产环境中使用此方式。 |
| authentication.tokenBroker.secret.rsaKeyPair.publicKey | string | "public.pem" | Secret 内部存放 RSA 公钥的键名。 |
| authentication.tokenBroker.secret.rsaKeyPair.privateKey | string | "private.pem" | Secret 内部存放 RSA 私钥的键名。 |
| authentication.tokenBroker.secret.symmetricKey.secretKey | string | "symmetric.key" | Secret 内部存放对称密钥的键名。 |
| authentication.realmOverrides | object | {} | 按 realm(域)进行的认证配置覆盖。 |
OIDC
| Key | Type | Default | Description |
|---|---|---|---|
| oidc.authServeUrl | string | "" | 认证服务器 URL。如果为外部认证配置了至少一个 realm,则必须提供该地址。 |
| oidc.client.id | string | "polaris" | 在联系认证服务器的 introspection 端点以验证令牌时使用的客户端 ID。 |
| oidc.client.secret.name | string | "" | 用于获取客户端密钥(client secret)的 Secret 名称。如果未提供,则认为在联系 introspection 端点时不需要客户端密钥。 |
| oidc.client.secret.key | string | "clientSecret" | Secret 中用于获取客户端密钥的键名。 |
| oidc.principalMapper.type | string | "default" | 要使用的 PrincipalMapper 实现。仅支持一种内置类型:default。 |
| oidc.principalMapper.idClaimPath | string | "" | 包含主体 ID 的 claim 的路径。嵌套路径可以使用 “/” 作为分隔符表示,例如 “polaris/principal_id” 表示在令牌 claims 的 “polaris” 对象内查找 “principal_id” 字段。可选。必须提供此选项或 nameClaimPath(或两者都提供)。 |
| oidc.principalMapper.nameClaimPath | string | "" | 包含主体名称的 claim 的路径。嵌套路径可以使用 “/” 作为分隔符表示,例如 “polaris/principal_name” 表示在令牌 claims 的 “polaris” 对象内查找 “principal_name” 字段。可选。必须提供此选项或 idClaimPath(或两者都提供)。 |
| oidc.principalRolesMapper.type | string | "default" | 要使用的 PrincipalRolesMapper 实现。仅支持一种内置类型:default。 |
| oidc.principalRolesMapper.rolesClaimPath | string | "" | 包含主体角色的 claim 的路径。嵌套路径可以使用 “/” 作为分隔符表示,例如 “polaris/principal_roles” 表示在令牌 claims 的 “polaris” 对象内查找 “principal_roles” 字段。如果未设置,Quarkus 会在标准位置查找角色。参见 Quarkus OIDC Token Claims。 |
| oidc.principalRolesMapper.filter | string | "" | 用于匹配标识(identity)中角色名称的正则表达式。只有匹配该正则的角色才会被包含在 Polaris 特定的角色中。 |
| oidc.principalRolesMapper.mappings | list | [] | 一组正则映射,将应用于标识中的每个角色名称。可用于将标识中的角色名称转换为 Polaris 期望的角色名称。默认的 Authenticator 要求安全标识以 POLARIS_ROLE:<role name> 格式公开角色名称。 |
CORS(跨域资源共享)
| 键 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| cors.enabled | bool | false | 指定是否应启用 CORS 过滤器。详情请参阅 CORS。 |
| cors.allowedOrigins | list | [] | 允许的 CORS 来源,例如 http://polaris.apache.org、http://localhost:8181。如果列表中的某个条目被正斜杠包围,则将其解释为正则表达式。 |
| cors.allowedMethods | list | [] | 允许的 CORS HTTP 方法,例如 GET、PUT、POST。如果未设置或为空,则视为允许所有请求的方法。 |
| cors.allowedHeaders | list | [] | 允许的 CORS HTTP 请求头,例如 X-Custom、Content-Disposition。如果未设置或为空,则视为允许所有请求的请求头。 |
| cors.exposedHeaders | list | [] | 向客户端暴露的 HTTP 请求头,例如 X-Custom、Content-Disposition。默认为空列表。 |
| cors.accessControlMaxAge | string | "" | Access-Control-Max-Age 响应头的值,表示预检请求的结果可以被缓存多久。必须是有效的持续时间。 |
| cors.accessControlAllowCredentials | bool | nil | Access-Control-Allow-Credentials 响应头。如果设置了 allowedOrigins 属性且与精确的 Origin 请求头匹配,则该请求头的值默认为 true。 |
速率限制器
| 键 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| rateLimiter.type | string | "no-op" | 要使用的限流器过滤器类型。支持两种内置类型:default 和 no-op。 |
| rateLimiter.tokenBucket.type | string | "default" | 令牌桶限流器的类型。开箱即用仅支持 default 类型。 |
| rateLimiter.tokenBucket.requestsPerSecond | int | 9999 | 每个 realm 每秒允许的最大请求数(许可数)。 |
任务
| 键 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| tasks.maxConcurrentTasks | int | 0 | 同时可执行的最大并发任务数。若未指定或为零,则默认为可用核心数。 |
| tasks.maxQueuedTasks | int | 0 | 可排队等待执行的最大任务数。若未指定或为零,则默认为 Integer.MAX_VALUE。 |
维护
| 键 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| maintenance | object | 见下方子字段。 | 以 Kubernetes CronJob 形式运行的 Polaris 维护任务配置。维护 Pod 会继承全局的 Pod 级调度和加固设置,但不会继承环境变量和卷设置。后者必须在 maintenance.* 下显式配置,以防止服务器专属的密钥和配置暴露给维护 Pod。 |
| maintenance.annotations | object | {} | 添加到每个维护 CronJob 对象上的注解。 |
| maintenance.podAnnotations | object | {} | 添加到每个维护 Pod 上的注解。不与全局 podAnnotations 合并,因为注解可能授予额外的访问权限,因此维护 Pod 只接收此处配置的内容。 |
| maintenance.podLabels | object | {} | 添加到每个维护 Pod 上的标签(例如 team、cost-center)。不与全局 podLabels 合并。用户提供的标签在 Chart 管理的维护标签之后渲染。 |
| maintenance.extraEnv | list | [] | 添加到每个维护 CronJob 对象上的额外环境变量。不与全局 extraEnv 合并,因为维护 Pod 只接收此处配置的值。 |
| maintenance.envFrom | list | [] | 从 Secret 或 ConfigMap 批量导入环境变量到每个维护 CronJob 对象。不与全局 envFrom 合并,因为维护 Pod 只接收此处配置的值。 |
| maintenance.extraVolumes | list | [] | 添加到每个维护 CronJob 对象上的额外卷。不与全局 extraVolumes 合并——原因参见 maintenance.extraEnv。 |
| maintenance.extraVolumeMounts | list | [] | 添加到每个维护 CronJob 对象上的额外卷挂载。不与全局 extraVolumeMounts 合并,因为维护 Pod 只接收此处配置的值。 |
| maintenance.image | object | {"pullPolicy":"IfNotPresent","repository":"apache/polaris-admin-tool","tag":"1.7.0"} | 每个维护 CronJob 对象使用的容器镜像。 |
| maintenance.image.repository | string | "apache/polaris-admin-tool" | Polaris 管理工具的拉取镜像仓库。 |
| maintenance.image.pullPolicy | string | "IfNotPresent" | 镜像拉取策略。 |
| maintenance.image.tag | string | "1.7.0" | 镜像标签。 |
| maintenance.jobs | object | 见下方子字段。 | 定义维护 CronJob。 |
| maintenance.jobs.nosql-maintenance.enabled | bool | false | 启用此维护任务。 |
| maintenance.jobs.nosql-maintenance.schedule | string | "0 2 * * *" | Cron 格式的调度表达式。 |
| maintenance.jobs.nosql-maintenance.args | list | ["nosql","maintenance-run"] | 传递给管理工具的参数。 |
| maintenance.jobs.nosql-maintenance.concurrencyPolicy | string | "Forbid" | 并发策略。有效值为:Allow、Forbid、Replace。 |
| maintenance.jobs.nosql-maintenance.resources | object | {} | 此任务容器的资源请求和限制。不与全局 resources 合并,因为服务器的资源配置通常不适用于短时运行的维护任务。请在需要时显式配置资源。默认未设置。 |
| maintenance.jobs.nosql-maintenance.restartPolicy | string | "Never" | Pod 的 restartPolicy。 |
| maintenance.jobs.nosql-maintenance.backoffLimit | int | 6 | 将此 Job 标记为失败之前的最大重试次数。 |
| maintenance.jobs.nosql-maintenance.activeDeadlineSeconds | string | nil | 单次任务运行的最大运行秒数。为 null 表示不限制。 |
| maintenance.jobs.nosql-maintenance.successfulJobsHistoryLimit | int | 3 | 历史记录中保留的成功完成的 Job 数量。 |
| maintenance.jobs.nosql-maintenance.failedJobsHistoryLimit | int | 1 | 历史记录中保留的失败完成的 Job 数量。 |
| maintenance.jobs.nosql-maintenance.serviceAccountName | string | "" | 单个任务的 ServiceAccount 覆盖项。留空表示使用全局 ServiceAccount。 |
评论
登录后参与评论
正在加载评论…
KnowForge