GitLabで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)インストールの場合は、設定ファイルで指定します。
SendGrid APIキーのシークレットを作成
SendGrid APIキーのシークレットファイルを作成して保存します。
今回はgitlab-sendgrid-apikey.ymlという名前で保存しています。
— |
シークレットを作成します。
kubectl apply -f gitlab-sendgrid-apikey.yml -n gitlab |
検証用の設定です。
Secretの種類にはOpaqueを指定していますが、適時変更してください。
環境に合わせてシークレットを設定するようにします。
values.ymlの設定
values.ymlにメール送信の設定を追記します。
設定内容の詳細は公式サイトのガイドを参照ください。
項目 | 概要 | 設定値(例) |
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からSendGridを使ってメール送信する方法について簡単にまとめてみました。
ネットワークでアクセス制限されている場合は、利用するポートでsmtp.sendgrid.netへのアクセス許可設定します。
引き続き色々試してみたいと思います。
AWXからSendGrid経由でメール送信する方法はこちらで紹介しています。
ZabbixからSendGrid経由でメール送信する方法はこちらで紹介しています。