サービスデスクEメールRakeタスク
GitLab 15.9 で導入されました。
以下はサービスデスクのメール関連のRakeタスクです。
シークレット
GitLabは、ファイルシステムに平文で保存する代わりに、暗号化されたファイルから読み取ったサービスデスクのEメールシークレットを使用することができます。暗号化されたファイルの内容を更新するために、以下のRakeタスクが提供されています。
シークレットを表示
現在のサービスデスクのEメールシークレットの内容を表示します。
sudo gitlab-rake gitlab:service_desk_email:secret:show
Kubernetes シークレットを使用して、Service Desk のメールパスワードを保存します。詳細については、Helm IMAPシークレットをお読みください。
sudo docker exec -t <container name> gitlab:service_desk_email:secret:show
bundle exec rake gitlab:service_desk_email:secret:show RAILS_ENV=production
出力例
password: 'examplepassword'
user: 'service-desk-email@mail.example.com'
シークレットの編集
秘密の内容をエディタで開き、終了時に暗号化された秘密ファイルに結果を書き込みます。
sudo gitlab-rake gitlab:service_desk_email:secret:edit EDITOR=vim
Kubernetes シークレットを使用して、Service Desk のメールパスワードを保存します。詳細については、Helm IMAPシークレットをお読みください。
sudo docker exec -t <container name> gitlab:service_desk_email:secret:edit EDITOR=editor
bundle exec rake gitlab:service_desk_email:secret:edit RAILS_ENV=production EDITOR=vim
生のシークレットを書き込む
新しいシークレットコンテンツをSTDIN
に書き込んでください。
echo -e "password: 'examplepassword'" | sudo gitlab-rake gitlab:service_desk_email:secret:write
Kubernetes シークレットを使用して、Service Desk のメールパスワードを保存します。詳細については、Helm IMAPシークレットをお読みください。
sudo docker exec -t <container name> /bin/bash
echo -e "password: 'examplepassword'" | gitlab-rake gitlab:service_desk_email:secret:write
echo -e "password: 'examplepassword'" | bundle exec rake gitlab:service_desk_email:secret:write RAILS_ENV=production
シークレットの例
エディタの例
writeタスクはeditコマンドがエディタで動作しない場合に使用できます:
# Write the existing secret to a plaintext file
sudo gitlab-rake gitlab:service_desk_email:secret:show > service_desk_email.yaml
# Edit the service_desk_email file in your editor
...
# Re-encrypt the file
cat service_desk_email.yaml | sudo gitlab-rake gitlab:service_desk_email:secret:write
# Remove the plaintext file
rm service_desk_email.yaml
KMSインテグレーション例
KMSで暗号化されたコンテンツの受信アプリケーションとしても使用できます:
gcloud kms decrypt --key my-key --keyring my-test-kms --plaintext-file=- --ciphertext-file=my-file --location=us-west1 | sudo gitlab-rake gitlab:service_desk_email:secret:write
Google Cloud シークレットインテグレーション例
Google Cloudからシークレットを受け取るアプリケーションとしても使用できます:
gcloud secrets versions access latest --secret="my-test-secret" > $1 | sudo gitlab-rake gitlab:service_desk_email:secret:write