Create config object with array containing key-value pairs
To add an add more button you'll need to create a callback function that will increase the number of fields necessary and rebuild that part of the form based on that information. You can make a new config variable based on some sort of index as you do a loop through all the necessary fields.

I haven't tested this so the syntax might be off but here's the basic idea in an example I wrote. 

public function buildForm(array $form, FormStateInterface $form_state) {
        if (empty($number_of_member_fields)) {
            $number_of_member_fields = $form_state-&gt;set('number_of_member_fields', 1);
        }
        $forms['members_fieldset'] = [
            '#type' =&gt; 'fieldset',
            '#title' =&gt; t('Member types'),
            '#attributes' =&gt; [
                'id' =&gt; 'names-fieldset-wrapper'
            ],
        ];
        for ($i = 0; $i &lt; $number_of_member_fields; $i++) {
            $form['members_fieldset']['memberType'.$i] = [
                '#type'          =&gt; 'textfield',
                '#title'         =&gt; t('Name'),
                '#default_value' =&gt; $config-&gt;get('memberType'.$i),
            ];
        }
        $form['members_fieldset']['actions']['add_name'] = [
            '#type'     =&gt; 'submit',
            '#value'    =&gt; t('Add one more'),
            '#submit'   =&gt; array('::addOne'),
            '#ajax'     =&gt; [
                'callback' =&gt; '::addmoreCallback',
                'wrapper'  =&gt; 'names-fieldset-wrapper',
            ],
        ];
    }
    public function addmoreCallback(array&amp;$form, FormStateInterface $form_state) {
        return $form['members_fieldset'];
    }
    public function addOne(array&amp;$form, FormStateInterface $form_state) {
        $number_of_member_fields = $form_state-&gt;get('number_of_member_fields');
        $number_of_member_fields++;
        $form_state-&gt;set('number_of_member_fields', $number_of_member_fields);
        $form_state-&gt;setRebuild();
    }