使用 Mailroom chart
Mailroom Chart 处理接收电子邮件。
配置
image:
repository: registry.gitlab.cn/cng-images/gitlab-mailroom
# tag: v0.9.1
pullSecrets: []
# pullPolicy: IfNotPresent
enabled: true
init:
image: {}
# repository:
# tag:
resources:
requests:
cpu: 50m
# Tolerations for pod scheduling
tolerations: []
podLabels: {}
hpa:
minReplicas: 1
maxReplicas: 2
cpu:
targetAverageUtilization: 75
# Note that the HPA is limited to autoscaling/v2beta1, autoscaling/v2beta2 and autoscaling/v2
customMetrics: []
behavior: {}
networkpolicy:
enabled: false
egress:
enabled: false
rules: []
ingress:
enabled: false
rules: []
annotations: {}
resources:
# limits:
# cpu: 1
# memory: 2G
requests:
cpu: 50m
memory: 150M
## Allow to overwrite under which User and Group we're running.
securityContext:
runAsUser: 1000
fsGroup: 1000
## Enable deployment to use a serviceAccount
serviceAccount:
enabled: false
create: false
annotations: {}
## Name to be used for serviceAccount, otherwise defaults to chart fullname
# name:
参数 | 说明 | 默认值 |
---|---|---|
deployment.strategy
| 允许配置 deployment 使用的更新策略 | {}
|
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 镜像使用的 secret | |
image.registry
| Mailroom 镜像仓库 | |
image.repository
| Mailroom 镜像仓库 | registry.gitlab.cn/cng-images/gitlab-mailroom
|
image.tag
| Mailroom 镜像标签 | |
init.image.repository
| Mailroom init 镜像仓库 | |
init.image.tag
| Mailroom init 镜像标签 | |
init.resources
| Mailroom init 容器资源需求 | { 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
| 放大和缩小行为的 spec,默认为 hpa.behavior
| |
keda.triggers
| 用于激活目标资源扩展的触发器列表,默认为根据 hpa.cpu 和 hpa.memory 计算的触发器
| |
podLabels
| 运行中的 Mailroom Pods 的标签 | {}
|
common.labels
| 应用于此 chart 创建的所有对象的补充标签。 | {}
|
resources
| Mailroom 资源需求 | { requests: { cpu: 50m, memory: 150M }}
|
networkpolicy.annotations
| 添加到 NetworkPolicy 的 annotation | {}
|
networkpolicy.egress.enabled
| 标记以启用 NetworkPolicy 的 egress 规则 | false
|
networkpolicy.egress.rules
| 定义 NetworkPolicy 的 egress 规则列表 | []
|
networkpolicy.enabled
| 标记以启用 NetworkPolicy | false
|
networkpolicy.ingress.enabled
| 标记以启用 NetworkPolicy 的 ingress 规则 | false
|
networkpolicy.ingress.rules
| 为 NetworkPolicy 定义一个 ingress 规则列表
| []
|
securityContext.fsGroup
| 在其下启动 Pod 的群组 ID | 1000
|
securityContext.runAsUser
| 在其下启动 Pod 的用户 ID | 1000
|
securityContext.fsGroupChangePolicy
| 更改卷的所有权和权限的策略(需要 Kubernetes 1.23) | |
containerSecurityContext
| 覆盖用于启动容器的容器 securityContext | |
containerSecurityContext.runAsUser
| 1000
| 允许覆盖启动容器的特定安全上下文 |
serviceAccount.annotations
| ServiceAccount 的 annotation | {}
|
serviceAccount.enabled
| 标记以启用 ServiceAccount | false
|
serviceAccount.create
| 标记以创建 ServiceAccount | false
|
serviceAccount.name
| 使用的 ServiceAccount 的名称 | |
tolerations
| 分配给 Mailroom 的 toleration 标签 | |
priorityClassName
| 指派给 Pod 的优先级别 |
配置 KEDA
keda
部分允许安装 KEDA ScaledObjects
,而不是常规的 HorizontalPodAutoscalers
。
此配置是可选的,可以在需要根据自定义或外部指标进行自动缩放时使用。
大多数设置默认为 hpa
部分中适用的值。
如果满足以下条件,则会根据 hpa
部分中设置的 CPU 和内存阈值自动添加 CPU 和内存触发器:
- 未设置
triggers
。 - 相应的
request.cpu.request
或request.memory.request
也设置为非零值。
如果未设置触发器,则不会创建 ScaledObject
。
有关这些设置的更多详细信息,请参阅 KEDA 文档。
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
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 | 放大和缩小行为的 spec,默认为 hpa.behavior
| |
triggers
| Array | 用于激活目标资源扩展的触发器列表,默认为根据 hpa.cpu 和 hpa.memory 计算的触发器
|
接收电子邮件
默认情况下,传入电子邮件处于禁用状态。有两种方法可以读取收到的电子邮件:
首先,进行通用设置来启用它。 然后配置 IMAP 设置 或 Microsoft Graph 设置。
这些方法可以在 values.yaml
中配置。 请参阅以下示例:
IMAP
要为 IMAP 启用传入电子邮件,请使用 global.appConfig.incomingEmail
设置提供 IMAP 服务器的详细信息和访问凭据。
另外,应该检查 IMAP 邮箱账号要求 以确保目标 IMAP 账户可以被 GitLab 用于接收电子邮件。 同一页面上还记录了几种常见的电子邮件服务,以帮助设置传入的电子邮件。
IMAP 密码仍需要创建为 Kubernetes Secret,如 secrets 指南中所述。
Microsoft Graph
提供租户 ID、客户端 ID 和客户端 secret。您可以在 命令行选项 中找到这些设置的详细信息。
创建包含客户端 secret 的 Kubernetes secret,如 secret 指南 中所述。
Reply-by-email
要使用通过电子邮件回复功能,用户可以在其中回复通知电子邮件以评论议题和 MR,您需要同时配置外发电子邮件和接受电子邮件设置。
服务台电子邮件
默认情况下,服务台电子邮件处于禁用状态。
与接收电子邮件一样,进行通用设置 来启用它。 然后配置 IMAP 设置 或 Microsoft Graph 设置。
这些选项也可以在 values.yaml
中配置。 请参阅以下示例:
服务台电子邮件要求配置接收电子邮件。
IMAP
使用 global.appConfig.serviceDeskEmail
设置提供您的 IMAP 服务器和访问凭据的详细信息。您可以在 命令行选项 中找到这些设置的详细信息。
如 secrets 指南中所述,创建一个包含 IMAP 密码的 Kubernetes secret。
Microsoft Graph
使用 global.appConfig.serviceDeskEmail
设置提供租户 ID、客户端 ID 和客户端 secret 。您可以在 命令行选项 中找到这些设置的详细信息。
您还必须创建一个包含客户端 secret 的 Kubernetes 机密,如 secret 指南中所述。
serviceAccount
此部分用来控制是否应该创建一个 ServiceAccount 并确定是否应该将默认访问令牌挂载到 pod 中。
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
annotations
| Map | {}
| ServiceAccount 注释。 |
automountServiceAccountToken
| Boolean | false
| 用来控制默认的 ServiceAccount 访问令牌是否应该被挂载到 pod 中。您不应该启用它,除非有特殊的 sidecar 需求(比如在 istio 中)。 |
create
| Boolean | false
| 是否应该创建 ServiceAccount。 |
enabled
| Boolean | false
| 是否应该使用 ServiceAccount。 |
name
| String | ServiceAccount 名称。如未设置,将使用 chart 的完整名称。 |
affinity
详情可查看 affinity
。