Description of problem: For this OOO config: parameter_defaults: NeutronL3AgentExtensions: 'conntrack_helper,port_forwarding' As defined in THT: From openstack-tripleo-heat-templates/deployment/neutron/neutron-l3-container-puppet.yaml NeutronL3AgentExtensions: default: "" description: | Comma-separated list of extensions enabled for the Neutron L3 agent. type: comma_delimited_list Results in this hiera data: # hiera -c /etc/puppet/hiera.yaml neutron::agents::l3::extensions ["conntrack_helper", "port_forwarding"] However, the resulting config via puppet is: [root@overcloud-controller-0 ~]# crudini --get /var/lib/config-data/puppet-generated/neutron/etc/neutron/l3_agent.ini agent extensions conntrack_helper From the puppet module: /etc/puppet/modules/neutron/manifests/agents/l3.pp # [*extensions*] # (optional) L3 agent extensions to enable. # Defaults to $::os_service_default # ... neutron_l3_agent_config { 'DEFAULT/debug': value => $debug; 'DEFAULT/interface_driver': value => $interface_driver; 'DEFAULT/gateway_external_network_id': value => $gateway_external_network_id; 'DEFAULT/handle_internal_only_routers': value => $handle_internal_only_routers; 'DEFAULT/metadata_port': value => $metadata_port; 'DEFAULT/periodic_interval': value => $periodic_interval; 'DEFAULT/periodic_fuzzy_delay': value => $periodic_fuzzy_delay; 'DEFAULT/enable_metadata_proxy': value => $enable_metadata_proxy; 'DEFAULT/agent_mode': value => $agent_mode; 'DEFAULT/radvd_user': value => $radvd_user; 'agent/availability_zone': value => $availability_zone; 'agent/extensions': value => $extensions; } It seems the puppet module need to handle the array and join it before setting the agent/extensions value. Version-Release number of selected component (if applicable): 16.1 current rpm -q puppet-neutron puppet-neutron-15.5.1-1.20201113235652.el8ost.noarch How reproducible: 100% Steps to Reproduce: 1. see above example Actual results: puppet-neutron only sets l3 agent/extensions to first element in list. Expected results: Comma-separated list of extensions enabled for the Neutron L3 agent
Since there is a mismatch between interface in tht and one in puppet-neutron, we can not use the NeutronL3AgentExtensions parameter when we pass multiple extensions, until the fix is merged into puppet-neutron. One workaround is to set the parameter directly using ExtraConfig ~~~ parameter_defaults: ExtraConfig: neutron::agents::l3::extensions: conntrack_helper,port_forwarding ~~~ Then the value is passed as a raw string and handled correctly by puppet-neutron ~~~ [heat-admin@controller-0 ~]$ cat /etc/rhosp-release Red Hat OpenStack Platform release 13.0.14 (Queens) [heat-admin@controller-0 ~]$ sudo crudini --get /var/lib/config-data/puppet-generated/neutron/etc/neutron/l3_agent.ini agent extensions conntrack_helper,port_forwarding ~~~
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (Red Hat OpenStack Platform 16.1.7 (Train) bug fix and enhancement advisory), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2021:3762