🌐

【Looker】GitLab.comに切り替えたらProductionにDeployされなくなった件

2 min read

はじめに

皆さん、Looker使ってますかー?

そろそろ、LookMLのコードレビュー運用(プルリク/Merge Requests)を始めようと思い
これまで利用していたCloud Source RepositoriesからGitLabにGitリポジトリを
切り替えることにしました。

Cloud Source Repositoriesを利用した時の記事はこちらになります。

https://zenn.dev/hssh2_bin/articles/c731f0923a1f8b

切り替えの際にMasterブランチからProductionにDeployされない事象で
ハマってしまったので、その時に調査した内容とその過程で学んだことをまとめました。

実行環境

Product version
Looker 21.10.17
GitLab Enterprise Edition 14.1.0-pre

GitLabへの切り替え

GitLabへの切り替えですが、コストをかけずお手軽にGitLab.comのFreeプランを選択しました。

GitLabの料金ページより

GitLabの接続手順はこちらを参照ください。

https://community.looker.com/general-looker-administration-35/using-gitlab-for-version-control-in-looker-8199

接続するとLookMLの[プロジェクト設定] > [ブランチの管理]でGitLabと表示されます。

Merge Requests(以降、MR)を必須とする場合は
LookMLの[プロジェクト設定] > [プロジェクト構成]でMerge Requests必須とします。

MRを利用する場合、上記接続手順の後半に記載されているGitLabのWebhook設定を忘れずに実施してください。MasterブランチにマージされたことをトリガーにGitLabからLookerへのWebhookでProductionにDeployされるようになっています。

今回の問題とは

上記の設定を実施したにも関わらず、Lookerの開発モードを抜けると変更したLookMLのコードが
反映されていませんでした。(Webhookの設定もちゃんと実施済み)

今回の問題になった処理は以下の赤枠のdeployになります。

これまではLookMLを変更した際、Looker側でDeploy to Productionを実施していました。
これはLooker側からMasterブランチを参照しに行って、Deployをしていたことに今回改めて
気が付きました。(動きはPullですね)

しかし、GitLabのMR機能を挟んだことでDeployはGitLab側のMasterブランチから
WebhookでPushしているので、通信の方向が違うということです。

原因はなんだったのか?

はい、ここまで説明していませんでしたが、Lookerのログイン制御するため
IP AllowlistでIP制御していたことでGitLabからの通信が弾かれてました。

GitLab.comがWebhookで利用しているIPアドレス範囲はこちらに記載されています。

https://docs.gitlab.com/ee/user/gitlab_com/#ip-range

Lookerの[管理] > [IP Allowlist]を開き、以下のルールを追加しました。

Label IP Range UI or API
gitlab.com_ip_01 34.74.90.64/28 Both
gitlab.com_ip_02 34.74.226.0/24 Both

APIだけ許可すれば良いと思ったんですが、Webhookが届かなかったため、Bothにしました。

これで無事ProductionへのDeployもされました。
いやぁ、お恥ずかしい限りです^^;

まとめ

今度のプランとして、LookMLの変更をどのようにレビューするのが良いか
真剣に検討していこうと思います。こちらを参考にします!

https://dev.classmethod.jp/articles/spectacles-looker-validation/

Discussion

ログインするとコメントできます