GitLabでSendGridを使った通知メール送信設定

GitLab,Others,SendGrid

GitLabからSendGrid経由でメール送信行う方法についての紹介です。
GitLab Helmチャートを使って構築した場合の手順について紹介しています。

※Azure Kubernetes Serviceに構築したGitLab環境を利用しています。
※GitLab Enterprise Edition v17.3.1-ee(Free版)を利用しています。

スポンサーリンク

GitLabからSendGrid経由でメール送信

SendGridのアカウントやAPI Keyを発行

事前にSendGridのアカウント登録やメール送信用のAPI Key発行が必要です。
こちらで紹介しています。

GUI画面には設定が無い

GUI画面にはメールサーバーなどのメール送信に関する設定はありません。
設定ファイルで設定します。

Helmチャートを使ってインストールした場合は、Globalのパラメーター内で指定します。

Outgoing Email configuration
Outgoing email 

Linuxパッケージ(Omnibus)インストールの場合は、設定ファイルで指定します。

SMTP settings

SendGrid APIキーのシークレットを作成

SendGrid APIキーのシークレットファイルを作成して保存します。
今回はgitlab-sendgrid-apikey.ymlという名前で保存しています。


apiVersion: v1
kind: Secret
metadata:
name: gitlab-sendgrid-apikey
namespace: gitlab
stringData:
apikey: SendGridで発行したAPI Key指定
type: Opaque

シークレットを作成します。

kubectl apply -f gitlab-sendgrid-apikey.yml -n gitlab

検証用の設定です。
Secretの種類にはOpaqueを指定していますが、適時変更してください。
環境に合わせてシークレットを設定するようにします。

Secretの種類

values.ymlの設定

values.ymlにメール送信の設定を追記します。
設定内容の詳細は公式サイトのガイドを参照ください。

Outgoing Email configuration

項目 概要 設定値(例)
email
display_name 送信者名 gitlab-admin(任意)
from Fromメールアドレス from@example.com(任意)
smtp
address メールサーバーのホスト名またはIPアドレス smtp.sendgrid.net
authentication SMTP 認証の種類 login
enabled メール送信の有効化 true
openssl_verify_mode TLS 検証モード peer
password SMTPパスワードのシークレット secret: gitlab-sendgrid-apikey
key: apikey
port SMTP のポート番号 587
starttls_auto STARTTLS有効化 true
user_name SMTP認証のユーザー名 apikey

values.ymlの抜粋です。

global:
  email:
    display_name: gitlab-admin
    from: from@example.com
  smtp:
    address: smtp.sendgrid.net
    authentication: login
    enabled: true
    openssl_verify_mode : peer
    password:
      secret: gitlab-sendgrid-apikey
      key: apikey
    port: 587
    starttls_auto: true
    user_name: apikey

※from(送信メールアドレス)には、SendGridで認証されたドメインのメールアドレス、もしくは認証したメールアドレスを設定します。

設定変更内容を適用

設定変更内容を適用します。

helm upgrade gitlab gitlab/gitlab -f values.yml -n gitlab

※gitlab-webservice-defaultのPodの/etc/gitlab/smtp/smtp-passwordでAPI Keyの設定値を確認できます。

ユーザーを作成してメール通知確認

GitLabにはテストメール送信の機能が無いため、ユーザー作成してメール通知を確認します。
メールを受信できれば設定が完了しています。

ユーザーを作成してメール送信を確認
Admin areaのUsersで新規ユーザーを作成します。 GitLabでユーザーを作成する画面
設定したメールアドレスで、ユーザー作成メールを受信できれば設定が完了しています。 GitLabの新規ユーザー作成時の承認画面

—広告—

最後に

GitLabからSendGridを使ってメール送信する方法について簡単にまとめてみました。
ネットワークでアクセス制限されている場合は、利用するポートでsmtp.sendgrid.netへのアクセス許可設定します。

引き続き色々試してみたいと思います。

AWXからSendGrid経由でメール送信する方法はこちらで紹介しています。

ZabbixからSendGrid経由でメール送信する方法はこちらで紹介しています。

スポンサーリンク