GitLab 11.0でMattermost関連の設定項目が削除されている
先日、GitLab Omnibus packageを 10.7 から 11.1 にバージョンアップを行ったところ、gitlab-ctl reconfigure
でコケてしまいました。その時は訳がわからず、とりあえず 10.7 に戻して事なきを得たんですが、後日よくよくログを確認するとしっかり理由が書いてありました。。。ログはちゃんと読もうね>自分
原因
gitlab-ctl reconfigure
がコケた原因は、11.0 で廃止されたMattermost系の設定が残っていた為でした。そうです、私はOmnibusにバンドルされているMattermostを使っているのです。これらの設定は docker-compose.yml
内でGitLabに環境変数として渡していたのですが、これらを削除することで無事バージョンアップできましたとさ。
Mattermostの設定の廃止について
廃止の理由等々については公式サイト上で説明されていますので読むといいと思います。
Upgrading GitLab Mattermost from versions prior to 11.0 | GitLab Mattermost | GitLab
・・・これだけだと乱暴なので軽く解説したいと思います。
Mattermostの設定というのは、本来であれば管理コンソール画面で変更することができ、その設定は config.json
というファイルに保存されます。しかしGitLab Omnibus packageでは、gitlab.rb
の設定内容を元に config.json
を自動生成するということをしていたため、管理コンソールで設定を変更したとしても、gitlab.rb
の内容で上書きされ設定が元に戻ってしまう1という問題がありました。
このため GitLab 10.x までは、Mattermostの設定を変更する際はまず gitlab.rb
を編集し、そして gitlab-ctl reconfigure
を実行する、ということをやっていました。本当なら管理コンソールでちゃちゃっと変更できるはずなのに。めんどくさ・・・。
で、11.0ではこの問題に対処するために、gitlab.rb
から config.json
を生成することをやめ、必要な設定だけを環境変数でMattermostに渡すように変更したそうです。config.json
は晴れて管理コンソールの下に帰ってきたのです。
では、 gitlab.rb
でMattermostの設定をすることが出来なくなったかというとそうではなく、書き方を変えることでこれまで通り設定することが可能です。前述の通りMattermostには環境変数で渡すようになったため、mattermost[env]
という設定項目にMattermostのお作法に則った環境変数名2で記述します。
一方で廃止されていない設定項目もあります。おそらくこれらの設定はGitLabとしても情報を取得する必要があるのでしょう。
継続してサポートされるgitlab.rb項目
|
|
docker-compose.yml
に書くとしたら、10.xと11.xの違いはこんな感じ。抜粋です。
GitLab 10.x
|
|
GitLab 11.x
|
|
廃止された設定は削除するだけでいいの?
イイんです! gitlab.rb
での設定方法を書きましたが、実際にはこんなことやらなくてイイんです!
config.json
はコンテナ上では /var/opt/gitlab/mattermost/config.json
に配置されています。あなたが公式のマニュアルに従っているとすれば、/var/opt/gitlab
配下のファイルは永続化されているはずです。config.json
も10.xのものが残っていることになりますので、改めて環境変数で設定を渡してやる必要はありません。ですので廃止された設定は gitlab.rb
から削除するだけでイイんです!(たぶん)
さいごに
ちなみにログはこんな感じで出てました。みんなもログはちゃんと確認しようね。
https://gist.github.com/taikii/37d8955a55f7124717e7a38d0673cb6f
-
gitlab.rb
からconfig.json
が生成されるタイミングはgitlab-ctl reconfigure
するときです。gitlab-ctl reconfigure
は、バージョンアップやコンテナの再作成、gitlab.rb
を変更して適用する際に実行します(されます)。 ↩︎ -
大文字で
MM_<CATEGORY>SETTINGS_<ATTRIBUTE>
といった感じ。 – Configuration Settings — Mattermost 5.1 documentation ↩︎