I see. I was going to ask if you could check the folder /var/lib/neutron/ipsec/752aa2d2-1172-48ab-8f37-a45411c01fc4/var/run/pluto/. The .ctl file and .pid file should appear there and not in /run. But only if the bind-mount works.
From the logs you posted the "mount --bind" commands didn't return error codes, so I assumed that the bind-mount worked. If it didn't because /var/lib/neutron/ipsec/752aa2d2-1172-48ab-8f37-a45411c01fc4/var/run doesn't exist, it explains, why the real /run directory is used instead.
The bind-mount uses {config_dir}/var/run though, so I guess it should be
I see. I was going to ask if you could check the folder /var/lib/ neutron/ ipsec/752aa2d2- 1172-48ab- 8f37-a45411c01f c4/var/ run/pluto/ . The .ctl file and .pid file should appear there and not in /run. But only if the bind-mount works.
From the logs you posted the "mount --bind" commands didn't return error codes, so I assumed that the bind-mount worked. If it didn't because /var/lib/ neutron/ ipsec/752aa2d2- 1172-48ab- 8f37-a45411c01f c4/var/ run doesn't exist, it explains, why the real /run directory is used instead.
The bind-mount uses {config_ dir}/var/ run though, so I guess it should be
os.makedirs( '%s/var/ run/pluto' % self.config_dir, exists_ok=True)
I will check, if that's what was missing.