使用 Mailroom chart
- Tier: 基础版, 专业版, 旗舰版
- Offering: 私有化部署
Mailroom Chart 处理传入的电子邮件。
配置
yaml1image: 2 repository: registry.gitlab.com/gitlab-org/build/cng/gitlab-mailroom 3 # tag: v0.9.1 4 pullSecrets: [] 5 # pullPolicy: IfNotPresent 6 7enabled: true 8 9init: 10 image: {} 11 # repository: 12 # tag: 13 resources: 14 requests: 15 cpu: 50m 16 17annotations: {} 18 19# Tolerations for pod scheduling 20tolerations: [] 21affinity: {} 22podLabels: {} 23 24hpa: 25 minReplicas: 1 26 maxReplicas: 2 27 cpu: 28 targetAverageUtilization: 75 29 30 # Note that the HPA is limited to autoscaling/v2beta1, autoscaling/v2beta2 and autoscaling/v2 31 customMetrics: [] 32 behavior: {} 33 34networkpolicy: 35 enabled: false 36 egress: 37 enabled: false 38 rules: [] 39 ingress: 40 enabled: false 41 rules: [] 42 annotations: {} 43 44resources: 45 # limits: 46 # cpu: 1 47 # memory: 2G 48 requests: 49 cpu: 50m 50 memory: 150M 51 52## Allow to overwrite under which User and Group we're running. 53securityContext: 54 runAsUser: 1000 55 fsGroup: 1000 56 57## Enable deployment to use a serviceAccount 58serviceAccount: 59 enabled: false 60 create: false 61 annotations: {} 62 ## Name to be used for serviceAccount, otherwise defaults to chart fullname 63 # name:
参数 | 描述 | 默认值 |
---|---|---|
affinity | {} | Pod 分配的亲和性规则 |
annotations | Pod 注解。 | {} |
deployment.strategy | 允许配置部署使用的更新策略 | {} |
enabled | Mailroom 启用标志 | true |
hpa.behavior | 行为包含上升和下降缩放行为的规格(需要 autoscaling/v2beta2 或更高版本) | {scaleDown: {stabilizationWindowSeconds: 300 }} |
hpa.customMetrics | 自定义指标包含用于计算所需副本数的规格(覆盖 targetAverageUtilization 中配置的默认使用的平均 CPU 利用率) | [] |
hpa.cpu.targetType | 设置自动缩放 CPU 目标类型,必须为 Utilization 或 AverageValue | Utilization |
hpa.cpu.targetAverageValue | 设置自动缩放 CPU 目标值 | |
hpa.cpu.targetAverageUtilization | 设置自动缩放 CPU 目标利用率 | 75 |
hpa.memory.targetType | 设置自动缩放内存目标类型,必须为 Utilization 或 AverageValue | |
hpa.memory.targetAverageValue | 设置自动缩放内存目标值 | |
hpa.memory.targetAverageUtilization | 设置自动缩放内存目标利用率 | |
hpa.maxReplicas | 最大副本数量 | 2 |
hpa.minReplicas | 最小副本数量 | 1 |
image.pullPolicy | Mailroom 镜像拉取策略 | IfNotPresent |
extraEnvFrom | 从其他数据源暴露的额外环境变量列表 | |
image.pullSecrets | Mailroom 镜像拉取密钥 | |
image.registry | Mailroom 镜像注册表 | |
image.repository | Mailroom 镜像仓库 | registry.gitlab.com/gitlab-org/build/cng/gitlab-mailroom |
image.tag | Mailroom 镜像标签 | |
init.image.repository | Mailroom 初始化镜像仓库 | |
init.image.tag | Mailroom 初始化镜像标签 | |
init.resources | Mailroom 初始化容器资源需求 | { requests: { cpu: 50m }} |
init.containerSecurityContext | initContainer 容器特定 securityContext | |
keda.enabled | false | 使用 KEDA ScaledObjects 代替 HorizontalPodAutoscalers |
keda.pollingInterval | 30 | 检查每个触发器的间隔 |
keda.cooldownPeriod | 300 | 上次触发器报告活动后的等待时间,然后将资源缩放回 0 |
keda.minReplicaCount | KEDA 将资源缩放到的最小副本数,默认为 hpa.minReplicas | |
keda.maxReplicaCount | KEDA 将资源缩放到的最大副本数,默认为 hpa.maxReplicas | |
keda.fallback | KEDA 回退配置 | |
keda.hpaName | KEDA 将创建的 HPA 资源的名称,默认为 keda-hpa-{scaled-object-name} | |
keda.restoreToOriginalReplicaCount | 指定在删除 ScaledObject 后目标资源是否应缩放回原始副本数 | |
keda.behavior | 上升和下降缩放行为的规格,默认为 hpa.behavior | |
keda.triggers | 激活目标资源缩放的触发器列表,默认为从 hpa.cpu 和 hpa.memory 计算的触发器 | |
podLabels | 运行 Mailroom Pods 的标签 | {} |
common.labels | 应用于此 chart 创建的所有对象的补充标签。 | {} |
resources | Mailroom 资源需求 | { requests: { cpu: 50m, memory: 150M }} |
networkpolicy.annotations | 添加到 NetworkPolicy 的注解 | {} |
networkpolicy.egress.enabled | 启用 NetworkPolicy 的出站规则的标志 | false |
networkpolicy.egress.rules | 为 NetworkPolicy 定义出站规则列表 | [] |
networkpolicy.enabled | 使用 NetworkPolicy 的标志 | false |
networkpolicy.ingress.enabled | 启用 NetworkPolicy 的入站规则的标志 | false |
networkpolicy.ingress.rules | 为 NetworkPolicy 定义入站规则列表 | [] |
securityContext.fsGroup | 启动 pod 的群组 ID | 1000 |
securityContext.runAsUser | 启动 pod 的用户 ID | 1000 |
securityContext.fsGroupChangePolicy | 更改卷的所有权和权限的策略(需要 Kubernetes 1.23) | |
containerSecurityContext | 覆盖容器 securityContext,容器在其下启动 | |
containerSecurityContext.runAsUser | 1000 | 允许覆盖容器启动时的特定安全上下文 |
serviceAccount.annotations | ServiceAccount 注解 | {} |
serviceAccount.automountServiceAccountToken | 指示是否应在 pod 中挂载默认 ServiceAccount 访问令牌 | false |
serviceAccount.enabled | 指示是否使用 ServiceAccount | false |
serviceAccount.create | 指示是否应创建 ServiceAccount | false |
serviceAccount.name | ServiceAccount 的名称。如果未设置,则使用完整 chart 名称 | |
tolerations | 添加到 Mailroom 的容忍 | |
priorityClassName | 分配给 pod 的 优先级类。 |
配置 KEDA
此 keda 部分启用 KEDA ScaledObjects 的安装,而不是常规的 HorizontalPodAutoscalers。此配置是可选的,可以在需要基于自定义或外部指标的自动缩放时使用。
大多数设置默认为在 hpa 部分中设置的值(如适用)。
如果以下条件为真,则根据 hpa 部分中设置的 CPU 和内存阈值自动添加 CPU 和内存触发器:
- 未设置 triggers。
- 相应的 request.cpu.request 或 request.memory.request 设置也设置为非零值。
如果未设置任何触发器,则不会创建 ScaledObject。
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
enabled | Boolean | false | 使用 KEDA ScaledObjects 代替 HorizontalPodAutoscalers |
pollingInterval | Integer | 30 | 检查每个触发器的间隔 |
cooldownPeriod | Integer | 300 | 上次触发器报告活动后的等待时间,然后将资源缩放回 0 |
minReplicaCount | Integer | KEDA 将资源缩放到的最小副本数,默认为 hpa.minReplicas | |
maxReplicaCount | Integer | KEDA 将资源缩放到的最大副本数,默认为 hpa.maxReplicas | |
fallback | Map | KEDA 回退配置,请参阅 文档 | |
hpaName | String | KEDA 将创建的 HPA 资源的名称,默认为 keda-hpa-{scaled-object-name} | |
restoreToOriginalReplicaCount | Boolean | 指定在删除 ScaledObject 后目标资源是否应缩放回原始副本数 | |
behavior | Map | 上升和下降缩放行为的规格,默认为 hpa.behavior | |
triggers | Array | 激活目标资源缩放的触发器列表,默认为从 hpa.cpu 和 hpa.memory 计算的触发器 |
传入电子邮件
默认情况下,传入电子邮件是禁用的。有两种方法可以读取传入的电子邮件:
首先,通过设置通用设置来启用它。然后配置 IMAP 设置 或 Microsoft Graph 设置。
这些方法可以在 values.yaml 中配置。
IMAP
要启用 IMAP 的传入电子邮件,请提供 IMAP 服务器的详细信息和访问凭据,使用 global.appConfig.incomingEmail 设置。
此外,应查看 IMAP 电子邮件帐户的要求,以确保目标 IMAP 帐户可以被极狐GitLab 用于接收电子邮件。 同一页面还记录了几个常见的电子邮件服务,以帮助设置传入电子邮件。
IMAP 密码仍然需要创建为 Kubernetes 密钥,如 密钥指南 中所述。
Microsoft Graph
请参阅 极狐GitLab 创建 Azure Active Directory 应用程序的文档。
提供租户 ID、客户端 ID 和客户端密钥。您可以在 命令行选项 中找到这些设置的详细信息。
创建一个 Kubernetes 密钥,其中包含客户端密钥,如 密钥指南 中所述。
通过电子邮件回复
要使用通过电子邮件回复功能,用户可以通过回复通知电子邮件来评论议题和合并请求,您需要配置 外发电子邮件 和传入电子邮件设置。
服务台电子邮件
默认情况下,服务台电子邮件是禁用的。
与传入电子邮件一样,通过设置 通用设置 来启用它。然后配置 IMAP 设置 或 Microsoft Graph 设置。
这些选项也可以在 values.yaml 中配置。
服务台电子邮件 需要 配置 传入电子邮件。
IMAP
提供您的 IMAP 服务器和访问凭据的详细信息,使用 global.appConfig.serviceDeskEmail 设置。您可以在 命令行选项 中找到这些设置的详细信息。
创建一个包含 IMAP 密码的 Kubernetes 密钥,如 密钥指南 中所述。
Microsoft Graph
请参阅 极狐GitLab 创建 Azure Active Directory 应用程序的文档。
使用 global.appConfig.serviceDeskEmail 设置提供租户 ID、客户端 ID 和客户端密钥。您可以在 命令行选项 中找到这些设置的详细信息。
您还需要创建一个包含客户端密钥的 Kubernetes 密钥,如 密钥指南 中所述。
serviceAccount
此部分控制是否应创建 ServiceAccount,以及是否应在 pod 中挂载默认访问令牌。
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
annotations | Map | {} | ServiceAccount 注解。 |
automountServiceAccountToken | Boolean | false | 控制是否应在 pod 中挂载默认 ServiceAccount 访问令牌。除非某些 sidecar 需要它才能正常工作(例如 Istio),否则不应启用此功能。 |
create | Boolean | false | 指示是否应创建 ServiceAccount。 |
enabled | Boolean | false | 指示是否使用 ServiceAccount。 |
name | String | ServiceAccount 的名称。如果未设置,则使用完整 chart 名称。 |
affinity
有关更多信息,请参阅 affinity。