메일룸 차트 사용하기

Tier: Free, Premium, Ultimate
Offering: Self-managed

메일룸 차트는 수신 이메일을 처리합니다.

구성

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: []
affinity: {}
podLabels: {}

hpa:
  minReplicas: 1
  maxReplicas: 2
  cpu:
    targetAverageUtilization: 75

  # HPA는 autoscaling/v2beta1, autoscaling/v2beta2 및 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

## 사용자 및 그룹에서 실행되는 환경을 덮어쓰도록 허용합니다.
securityContext:
  runAsUser: 1000
  fsGroup: 1000

## 서비스 계정을 사용하기 위해 배포 활성화
serviceAccount:
  enabled: false
  create: false
  annotations: {}
  ## 서비스 계정에 사용할 이름, 기본적으로 차트 전체 이름을 사용합니다.
  # name:
매개변수 설명 기본값
affinity {} Affinity rules for pod assignment
deployment.strategy 배포에 사용되는 업데이트 전략을 구성할 수 있습니다. {}
enabled 메일룸 활성화 플래그 true
hpa.behavior 동적 스케일링 동작에 대한 사양을 포함합니다. (requires autoscaling/v2beta2 or higher) {scaleDown: {stabilizationWindowSeconds: 300 }}
hpa.customMetrics 원하는 복제 수를 계산하는 데 사용할 사양이 포함된 사용자 지정 메트릭. (기본 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.registry 메일룸 이미지 레지스트리  
image.repository 메일룸 이미지 저장소 registry.gitlab.com/gitlab-org/build/cng/gitlab-mailroom
image.tag 메일룸 이미지 태그  
init.image.repository 메일룸 초기 이미지 저장소  
init.image.tag 메일룸 초기 이미지 태그  
init.resources 메일룸 초기 컨테이너 리소스 요구 사항 { requests: { cpu: 50m }}
init.containerSecurityContext   initContainer container specific securityContext
keda.enabled false KEDA ScaledObjects 대신 사용할 것인지 여부
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.cpuhpa.memory에서 계산된 트리거
podLabels 메일룸 포드를 실행하기 위한 레이블 {}
common.labels 이 차트에 의해 생성된 모든 객체에 적용되는 보충 레이블. {}
resources 메일룸 리소스 요구 사항 { requests: { cpu: 50m, memory: 150M }}
networkpolicy.annotations NetworkPolicy에 추가할 주석 {}
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 포드가 시작되어야 하는 그룹 ID 1000
securityContext.runAsUser 포드가 시작되어야 하는 사용자 ID 1000
securityContext.fsGroupChangePolicy 볼륨의 소유권 및 권한을 변경하기 위한 정책 (requires Kubernetes 1.23)  
containerSecurityContext   컨테이너가 시작되는 특정 securityContext를 덮어쓰는 것
containerSecurityContext.runAsUser 1000 컨테이너가 시작되는 특정 보안 컨텍스트를 덮어쓸 수 있게 허용합니다.
serviceAccount.annotations 서비스 계정에 대한 주석 {}
serviceAccount.automountServiceAccountToken 기본 서비스 계정 액세스 토큰을 포드에 마운트해야 하는지 여부를 나타냅니다. false
serviceAccount.enabled 서비스 계정을 사용할지 여부를 나타냅니다. false
serviceAccount.create 서비스 계정을 생성해야 하는지 여부를 나타냅니다. false
serviceAccount.name 서비스 계정의 이름. 설정하지 않으면 전체 차트 이름이 사용됩니다.  
tolerations 메일룸에 추가할 공차성  
priorityClassName 포드에 할당된 우선 순위 클래스입니다.  

KEDA 구성

keda 섹션은 일반 HorizontalPodAutoscalers 대신에 KEDA ScaledObjects의 설치를 활성화합니다.

이 구성은 선택 사항이며, 사용자 정의 또는 외부 메트릭에 기반한 자동 확장이 필요할 때 사용될 수 있습니다.

대부분의 설정은 해당하는 경우 hpa 섹션에서 설정된 값으로 기본 설정됩니다.

다음 조건이 모두 참일 경우, CPU 및 메모리 임계값에 따라 CPU 및 메모리 트리거가 자동으로 추가됩니다:

  • triggers가 설정되지 않음.
  • 해당하는 request.cpu.request 또는 request.memory.request 설정이 0이 아닌 값으로 설정됨.

트리거가 설정되지 않으면 ScaledObject가 생성되지 않습니다.

자세한 설정에 대한 내용은 KEDA 문서를 참조하세요.

Name Type Default Description
enabled Boolean false KEDA ScaledObjectsHorizontalPodAutoscalers 대신 사용합니다.
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.cpuhpa.memory에서 계산된 트리거입니다.

수신 이메일

기본적으로 수신 이메일은 비활성화되어 있습니다. 수신 이메일을 읽는 두 가지 방법이 있습니다:

먼저, 공통 설정을 설정하여 활성화합니다.

그 다음 IMAP 설정 또는 Microsoft Graph 설정을 구성합니다.

이러한 방법은 values.yaml에서 구성할 수 있습니다. 다음 예를 참조하세요:

IMAP

IMAP을 위한 수신 이메일을 활성화하려면, global.appConfig.incomingEmail 설정을 사용하여 IMAP 서버의 세부 사항과 접근 자격 증명을 제공해야 합니다.

또한, IMAP 이메일 계정의 요구 사항을 검토해야 하며, 이는 GitLab이 이메일을 수신하기 위해 대상 IMAP 계정을 사용할 수 있는지 확인합니다. 여러 일반 이메일 서비스도 이메일 수신 설정을 돕기 위해 같은 페이지에 문서화되어 있습니다.

IMAP 비밀번호는 여전히 비밀 가이드에서 설명된 대로 Kubernetes Secret으로 생성해야 합니다.

Microsoft Graph

Azure Active Directory 애플리케이션을 생성하는 GitLab 문서를 참조하세요.

테넌트 ID, 클라이언트 ID 및 클라이언트 비밀을 제공하세요. 이러한 설정에 대한 세부 정보는 명령줄 옵션에서 확인할 수 있습니다.

Kubernetes 비밀을 생성하여 클라이언트 비밀을 포함해야 하며, 이는 비밀 가이드에서 설명되어 있습니다.

Reply-by-email

사용자가 알림 이메일에 댓글을 달기 위해 문제 및 MR에 답변할 수 있는 reply-by-email 기능을 사용하려면, 발신 이메일 및 수신 이메일 설정을 구성해야 합니다.

Service Desk 이메일

기본적으로 Service Desk 이메일은 비활성화되어 있습니다.

수신 이메일과 마찬가지로, 공통 설정을 설정하여 이를 활성화하세요. 그런 다음 IMAP 설정 또는 Microsoft Graph 설정을 구성하세요.

이러한 옵션은 values.yaml에서도 구성할 수 있습니다. 다음 예제를 참조하세요:

Service Desk 이메일은 수신 이메일이 구성되어야 _필수_입니다.

IMAP

global.appConfig.serviceDeskEmail 설정을 사용하여 IMAP 서버의 세부 사항과 접근 자격 증명을 제공하세요. 이러한 설정에 대한 세부 정보는 명령줄 옵션에서 확인할 수 있습니다.

Service Desk 이메일을 위한 IMAP 비밀번호를 포함하는 Kubernetes 비밀을 생성해야 하며, 이는 비밀 가이드에서 설명되어 있습니다.

Microsoft Graph

Azure Active Directory 애플리케이션을 생성하는 GitLab 문서를 참조하세요.

global.appConfig.serviceDeskEmail 설정을 사용하여 테넌트 ID, 클라이언트 ID 및 클라이언트 비밀을 제공하세요. 이러한 설정에 대한 세부 정보는 명령줄 옵션에서 확인할 수 있습니다.

Kubernetes 비밀을 생성하여 클라이언트 비밀을 포함해야 하며, 이는 비밀 가이드에서 설명되어 있습니다.

serviceAccount

이 섹션은 ServiceAccount를 생성해야 하는지와 기본 액세스 토큰을 포드에 장착해야 하는지를 제어합니다.

이름 유형 기본값 설명
annotations {} ServiceAccount 주석.
automountServiceAccountToken 불리언 false 기본 ServiceAccount 액세스 토큰이 포드에 장착되어야 하는지를 제어합니다. 특정 사이드카가 제대로 작동하는 데 필요하지 않는 한 이를 활성화하면 안 됩니다 (예: Istio).
create 불리언 false ServiceAccount를 생성해야 하는지 여부를 나타냅니다.
enabled 불리언 false ServiceAccount를 사용해야 하는지 여부를 나타냅니다.
name 문자열   ServiceAccount의 이름. 설정하지 않은 경우 전체 차트 이름이 사용됩니다.

친화성

자세한 내용은 affinity를 참조하세요.