メール室チャートの使い方

Mailroom ポッドは GitLab アプリケーションへのメールの取り込みを処理します。

設定

image:
  repository: registry.gitlab.com/gitlab-org/build/cng/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デプロイによって使用されるアップデート戦略を設定できます。{}
enabledメールルーム有効化フラグ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メールルーム・イメージ・プルポリシーIfNotPresent
extraEnvFrom公開する他のデータソースの追加環境変数のリスト 
image.pullSecretsメールルーム画像プルのシークレット 
image.repositoryメールルーム画像リポジトリregistry.gitlab.com/gitlab-org/build/cng/gitlab-mailroom
image.tagメールルーム画像タグmaster
init.image.repositoryメールルームinit画像リポジトリ 
init.image.tagメールルーム init イメージタグ 
init.resourcesMailroom init コンテナリソース要件{ requests: { cpu: 50m }}
init.containerSecurityContext initContainer コンテナ固有のsecurityContext
keda.enabledfalseの代わりにKEDA ScaledObjects を使用します。HorizontalPodAutoscalers
keda.pollingInterval30各トリガーを
keda.cooldownPeriod300リソースを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.cpuhpa.memory
podLabelsメールルーム・ポッドを実行するためのラベル{}
common.labelsこのChartで作成されたすべてのオブジェクトに適用される補助ラベル。{}
resourcesメールルームのリソース要件{ requests: { cpu: 50m, memory: 150M }}
networkpolicy.annotationsNetworkPolicyに追加する注釈{}
networkpolicy.egress.enabledNetworkPolicy のイグレスルールを有効にするフラグ。false
networkpolicy.egress.rulesNetworkPolicy のイグレスルールのリストを定義します。[]
networkpolicy.enabledNetworkPolicyの使用フラグfalse
networkpolicy.ingress.enabledNetworkPolicy のingress ルールを有効にするフラグfalse
networkpolicy.ingress.rulesNetworkPolicy のingress ルールのリストを定義します。[]
securityContext.fsGroupポッドを起動するグループID1000
securityContext.runAsUserポッドを起動するユーザーID1000
securityContext.fsGroupChangePolicyボリュームの所有権と権限を変更するためのポリシー (Kubernetes 1.23 が必要) 
containerSecurityContext コンテナが起動するコンテナsecurityContext をオーバーライドします。
containerSecurityContext.runAsUser1000コンテナが起動される特定のセキュリティコンテキストを上書きできるようにします。
serviceAccount.annotationsServiceAccount のアノテーション{}
serviceAccount.enabledServiceAccountの使用フラグfalse
serviceAccount.createServiceAccountを作成するフラグfalse
serviceAccount.name使用するServiceAccountの名前 
tolerationsメールルームに追加する許容範囲 
priorityClassNameポッドに割り当てられる優先度クラス 

KEDAの設定

このkeda セクションでは、通常のHorizontalPodAutoscalersの代わりにKEDA ScaledObjects をインストールできるようにします。この設定はオプションで、カスタムまたは外部のメトリクスに基づいてオートスケーリングする必要がある場合に使用できます。

ほとんどの設定は、該当する場合はhpa セクションで設定された値にデフォルト設定されます。

以下が真である場合、hpa セクションで設定された CPU とメモリのしきい値に基づいて、CPU とメモリのトリガーが自動的に追加されます:

  • triggers がセットされていません。
  • 対応するrequest.cpu.request またはrequest.memory.request の設定もゼロ以外の値に設定されます。

トリガーが設定されていない場合、ScaledObject は作成されません。

これらの設定の詳細については、KEDAのドキュメントを参照してください。

名前種類デフォルト説明
enabledブール値falseの代わりにKEDA ScaledObjects を使用します。HorizontalPodAutoscalers
pollingInterval整数30各トリガーを
cooldownPeriod整数300リソースを0にスケールバックする前に、最後のトリガがアクティブであると報告された後、待機する期間。
minReplicaCount整数 KEDAがリソースをスケールダウンする最小レプリカ数。hpa.minReplicas
maxReplicaCount整数 KEDAがリソースをスケールアップする際の最大レプリカ数。hpa.maxReplicas
fallbackマップ KEDAフォールバック設定。
hpaName文字列 KEDAが作成するHPAリソースの名前。keda-hpa-{scaled-object-name}
restoreToOriginalReplicaCountブール値  ScaledObject が削除された後、ターゲットリソースを元のレプリカ数にスケールバックするかどうかを指定します。
behaviorマップ アップスケーリングとダウンスケーリングの動作を指定します。hpa.behavior
triggers配列 対象リソースのスケーリングを有効にするトリガーのリスト。デフォルトはhpa.cpuhpa.memory

受信メール

デフォルトでは、受信メールは無効になっています。受信メールを読むには2つの方法があります:

まず、共通設定で有効にします。その後、IMAP設定またはMicrosoft Graph設定を行います。

これらの方法はvalues.yaml で設定できます。以下の例を参照してください:

IMAP

IMAP の受信メールを有効にするには、global.appConfig.incomingEmail 設定を使用して、IMAP サーバーの詳細とアクセス認証情報を提供します。

さらに、IMAPメールアカウントの要件をレビューし、対象となるIMAPアカウントがGitLabでメール受信に使用できることを確認する必要があります。いくつかの一般的な電子メールサービスも同じページに記載されており、受信電子メールの設定に役立ちます。

IMAPパスワードは、シークレットガイドに記載されているように、Kubernetesシークレットとして作成する必要があります。

Microsoft Graph

Azure Active Directoryアプリケーションの作成については、GitLabのドキュメントを参照してください。

テナントID、クライアントID、クライアントシークレットを指定します。これらの設定の詳細は、コマンドラインオプションに記載されています。

シークレットガイドに記載されているように、クライアントシークレットを含むKubernetesシークレットを作成します。

メールによる返信

ユーザーが通知メールに返信して、イシューやMRにコメントできるReply-by-Email機能を使用するには、送信メールと受信メールの両方の設定が必要です。

サービスデスクのメール

デフォルトでは、サービスデスクのEメールは無効になっています。

受信電子メールと同様に、共通設定を設定することで有効にしてください。その後、IMAP設定またはMicrosoft Graph設定を行います。

これらのオプションはvalues.yaml でも設定できます。以下の例を参照してください:

Service Deskの電子メールには、受信電子メールの設定が_必要_です。

IMAP

global.appConfig.serviceDeskEmail 設定を使用して、IMAP サーバーの詳細とアクセス認証情報を提供します。これらの設定の詳細は、コマンドラインオプションに記載されています。

シークレットガイドに記載されているように、IMAPパスワードを含むKubernetesシークレットを作成します。

Microsoft Graph

Azure Active Directoryアプリケーションの作成については、GitLabのドキュメントを参照してください。

global.appConfig.serviceDeskEmail 設定を使用して、テナント ID、クライアント ID、クライアント・シークレットを指定します。これらの設定の詳細は、コマンドラインオプションに記載されています。

また、シークレットガイドに記載されているように、クライアントシークレットを含むKubernetesシークレットを作成する必要があります。