使用 Mailroom chart

  • Tier: 基础版, 专业版, 旗舰版
  • Offering: 私有化部署

Mailroom Chart 处理传入的电子邮件

配置#

yaml
1image: 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 分配的亲和性规则
annotationsPod 注解。{}
deployment.strategy允许配置部署使用的更新策略{}
enabledMailroom 启用标志true
hpa.behavior行为包含上升和下降缩放行为的规格(需要 autoscaling/v2beta2 或更高版本){scaleDown: {stabilizationWindowSeconds: 300 }}
hpa.customMetrics自定义指标包含用于计算所需副本数的规格(覆盖 targetAverageUtilization 中配置的默认使用的平均 CPU 利用率)[]
hpa.cpu.targetType设置自动缩放 CPU 目标类型,必须为 UtilizationAverageValueUtilization
hpa.cpu.targetAverageValue设置自动缩放 CPU 目标值
hpa.cpu.targetAverageUtilization设置自动缩放 CPU 目标利用率75
hpa.memory.targetType设置自动缩放内存目标类型,必须为 UtilizationAverageValue
hpa.memory.targetAverageValue设置自动缩放内存目标值
hpa.memory.targetAverageUtilization设置自动缩放内存目标利用率
hpa.maxReplicas最大副本数量2
hpa.minReplicas最小副本数量1
image.pullPolicyMailroom 镜像拉取策略IfNotPresent
extraEnvFrom从其他数据源暴露的额外环境变量列表
image.pullSecretsMailroom 镜像拉取密钥
image.registryMailroom 镜像注册表
image.repositoryMailroom 镜像仓库registry.gitlab.com/gitlab-org/build/cng/gitlab-mailroom
image.tagMailroom 镜像标签
init.image.repositoryMailroom 初始化镜像仓库
init.image.tagMailroom 初始化镜像标签
init.resourcesMailroom 初始化容器资源需求{ requests: { cpu: 50m }}
init.containerSecurityContextinitContainer 容器特定 securityContext
keda.enabledfalse使用 KEDA ScaledObjects 代替 HorizontalPodAutoscalers
keda.pollingInterval30检查每个触发器的间隔
keda.cooldownPeriod300上次触发器报告活动后的等待时间,然后将资源缩放回 0
keda.minReplicaCountKEDA 将资源缩放到的最小副本数,默认为 hpa.minReplicas
keda.maxReplicaCountKEDA 将资源缩放到的最大副本数,默认为 hpa.maxReplicas
keda.fallbackKEDA 回退配置
keda.hpaNameKEDA 将创建的 HPA 资源的名称,默认为 keda-hpa-{scaled-object-name}
keda.restoreToOriginalReplicaCount指定在删除 ScaledObject 后目标资源是否应缩放回原始副本数
keda.behavior上升和下降缩放行为的规格,默认为 hpa.behavior
keda.triggers激活目标资源缩放的触发器列表,默认为从 hpa.cpuhpa.memory 计算的触发器
podLabels运行 Mailroom Pods 的标签{}
common.labels应用于此 chart 创建的所有对象的补充标签。{}
resourcesMailroom 资源需求{ 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 的群组 ID1000
securityContext.runAsUser启动 pod 的用户 ID1000
securityContext.fsGroupChangePolicy更改卷的所有权和权限的策略(需要 Kubernetes 1.23)
containerSecurityContext覆盖容器 securityContext,容器在其下启动
containerSecurityContext.runAsUser1000允许覆盖容器启动时的特定安全上下文
serviceAccount.annotationsServiceAccount 注解{}
serviceAccount.automountServiceAccountToken指示是否应在 pod 中挂载默认 ServiceAccount 访问令牌false
serviceAccount.enabled指示是否使用 ServiceAccountfalse
serviceAccount.create指示是否应创建 ServiceAccountfalse
serviceAccount.nameServiceAccount 的名称。如果未设置,则使用完整 chart 名称
tolerations添加到 Mailroom 的容忍
priorityClassName分配给 pod 的 优先级类

配置 KEDA#

keda 部分启用 KEDA ScaledObjects 的安装,而不是常规的 HorizontalPodAutoscalers。此配置是可选的,可以在需要基于自定义或外部指标的自动缩放时使用。

大多数设置默认为在 hpa 部分中设置的值(如适用)。

如果以下条件为真,则根据 hpa 部分中设置的 CPU 和内存阈值自动添加 CPU 和内存触发器:

  • 未设置 triggers
  • 相应的 request.cpu.requestrequest.memory.request 设置也设置为非零值。

如果未设置任何触发器,则不会创建 ScaledObject

名称类型默认值描述
enabledBooleanfalse使用 KEDA ScaledObjects 代替 HorizontalPodAutoscalers
pollingIntervalInteger30检查每个触发器的间隔
cooldownPeriodInteger300上次触发器报告活动后的等待时间,然后将资源缩放回 0
minReplicaCountIntegerKEDA 将资源缩放到的最小副本数,默认为 hpa.minReplicas
maxReplicaCountIntegerKEDA 将资源缩放到的最大副本数,默认为 hpa.maxReplicas
fallbackMapKEDA 回退配置,请参阅 文档
hpaNameStringKEDA 将创建的 HPA 资源的名称,默认为 keda-hpa-{scaled-object-name}
restoreToOriginalReplicaCountBoolean指定在删除 ScaledObject 后目标资源是否应缩放回原始副本数
behaviorMap上升和下降缩放行为的规格,默认为 hpa.behavior
triggersArray激活目标资源缩放的触发器列表,默认为从 hpa.cpuhpa.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 中挂载默认访问令牌。

名称类型默认值描述
annotationsMap{}ServiceAccount 注解。
automountServiceAccountTokenBooleanfalse控制是否应在 pod 中挂载默认 ServiceAccount 访问令牌。除非某些 sidecar 需要它才能正常工作(例如 Istio),否则不应启用此功能。
createBooleanfalse指示是否应创建 ServiceAccount。
enabledBooleanfalse指示是否使用 ServiceAccount。
nameStringServiceAccount 的名称。如果未设置,则使用完整 chart 名称。

affinity#

有关更多信息,请参阅 affinity