[doc] tell to prefix ipv6 hosts with inet6

Some environments with ipv6 used to connect with memcached servers
faced issues by omitting to prefix the host with the address family to
use.

Indeed libraries like python-memcached waiting for a prefix to
initialize the socket with the right address family. If the prefix
isn't given and that the host refer or bind an ipv6 then the socket
is initialized with an address family which correspond to an IPv4
and the connection doesn't work properly.

Openstack's puppet libraries already fixed that by introducing new
feature to automatically prefix the address if needed [1][2].

Anyway it could be worth to add more documentation on oslo.cache
to give more information to customers and avoid similar issues. These
changes aim to provide this documentation.

[1] https://review.opendev.org/#/q/status:merged+branch:master+topic:memcached-inet6-prefix
[2] https://review.opendev.org/#/c/661136/

Change-Id: I5e0b4818300348efe4625500792d9161281ed45a
This commit is contained in:
Hervé Beraud 2020-04-16 19:29:09 +02:00
parent 70be98f190
commit 0e1c6f5612

View File

@ -74,9 +74,18 @@ FILE_OPTIONS = {
'keys/values. Typically this should be left set ' 'keys/values. Typically this should be left set '
'to false.'), 'to false.'),
cfg.ListOpt('memcache_servers', default=['localhost:11211'], cfg.ListOpt('memcache_servers', default=['localhost:11211'],
help='Memcache servers in the format of "host:port".' help='Memcache servers in the format of "host:port". '
' (dogpile.cache.memcached and oslo_cache.memcache_pool' '(dogpile.cache.memcached and '
' backends only).'), 'oslo_cache.memcache_pool backends only). '
'If a given host refer to an IPv6 or a given domain '
'refer to IPv6 then you should prefix the given '
'address with the address family (``inet6``) '
'(e.g ``inet6[::1]:11211``, '
'``inet6:[fd12:3456:789a:1::1]:11211``, '
'``inet6:[controller-0.internalapi]:11211``). '
'If the address family is not given then default '
'address family used will be ``inet`` which '
'correspond to IPv4'),
cfg.IntOpt('memcache_dead_retry', cfg.IntOpt('memcache_dead_retry',
default=5 * 60, default=5 * 60,
help='Number of seconds memcached server is considered dead' help='Number of seconds memcached server is considered dead'