dynamic_settings

in files/gitlab-cookbooks/patroni/libraries/patroni_helper.rb [43:86]


  def dynamic_settings(pg_helper)
    dcs = {
      'postgresql' => {
        'parameters' => {}
      },
      'slots' => {}
    }

    DCS_ATTRIBUTES.each do |key|
      dcs[key] = node['patroni'][key]
    end

    DCS_POSTGRESQL_ATTRIBUTES.each do |key|
      dcs['postgresql'][key] = node['patroni'][key]
    end

    node['patroni']['postgresql'].each do |key, value|
      dcs['postgresql']['parameters'][key] = value
    end

    
    if (pg_helper.database_version || pg_helper.version).major.to_i >= 13
      dcs['postgresql']['parameters'].delete('wal_keep_segments')
    else
      dcs['postgresql']['parameters'].delete('wal_keep_size')
    end

    node['patroni']['replication_slots'].each do |slot_name, options|
      dcs['slots'][slot_name] = parse_replication_slots_options(options)
    end

    if node['patroni']['standby_cluster']['enable']
      dcs['standby_cluster'] = {}

      node['patroni']['standby_cluster'].each do |key, value|
        next if key == 'enable'

        dcs['standby_cluster'][key] = value
      end
    end

    dcs
  end