parse_alertmanager_config

in files/gitlab-cookbooks/monitoring/libraries/prometheus.rb [174:208]


    def parse_alertmanager_config 
      return unless Services.enabled?('alertmanager')

      user_config = Gitlab['alertmanager']
      rails_config = Gitlab['gitlab_rails']

      global = {}
      if rails_config['smtp_enable']
        global['smtp_from'] = rails_config['gitlab_email_from'] || 'unconfigured'
        global['smtp_smarthost'] = "#{rails_config['smtp_address'] || 'unconfigured'}:#{rails_config['smtp_port'] || '25'}"
        if %w(login plain).include?(rails_config['smtp_authentication'])
          global['smtp_auth_username'] = rails_config['smtp_user_name']
          global['smtp_auth_password'] = rails_config['smtp_password']
        end
      end
      global.merge!(user_config['global']) if user_config.key?('global')

      default_email_receiver = {
        'name' => 'default-receiver',
      }
      default_email_receiver['email_configs'] = ['to' => user_config['admin_email']] unless user_config['admin_email'].nil?

      default_inhibit_rules = [] << Gitlab['alertmanager']['inhibit_rules']
      default_receivers = [] << default_email_receiver << Gitlab['alertmanager']['receivers']
      default_routes = [] << Gitlab['alertmanager']['routes']
      default_templates = [] << Gitlab['alertmanager']['templates']

      Gitlab['alertmanager']['global'] = global
      Gitlab['alertmanager']['inhibit_rules'] = default_inhibit_rules.compact.flatten
      Gitlab['alertmanager']['receivers'] = default_receivers.compact.flatten
      Gitlab['alertmanager']['routes'] = default_routes.compact.flatten
      Gitlab['alertmanager']['templates'] = default_templates.compact.flatten
      Gitlab['alertmanager']['default_receiver'] = user_config['default_receiver'] || 'default-receiver'
    end