一緒に働くpublic_attributes.json
Chefは再設定終了時にノードの属性のコピーを/opt/gitlab/embedded/nodes/$NODE_NAME.json に保存します。いくつかの属性は機密性が高いため、rootユーザーしか読めません。これを回避するために、非 root サービスが使用できるようにホワイトリスト化した属性のセットを含むファイル(デフォルトは/var/opt/gitlab/public_attributes.json)を作成しました。このファイルはgitlab-ctl reconfigureを実行するたびに再作成されます。
にエントリを追加します。public_attributes.json
public_attributes.json ファイルは、ヘルパークラスのpublic_attributes メソッドを呼び出した結果をマージすることで生成されます。たとえば
class TestHelper < BaseHelper
  attr_accessor :node
  def public_attributes
    {
      'gitlab' => {
        'test' => node['gitlab']['test']
      }
    }
  end
end
このファイルはGitLabHandlerの一部として生成されます。
gitlab-ctl コマンドからのpublic_attributes.json からのエントリーの読み込み
公開ノードにアクセスするには、提供されているGitlabCtl::Util.get_public_node_attributes メソッドを使用する必要があります。
attributes = GitlabCtl::Util.get_public_node_attributes
puts attributes['gitlab']['test']
