diff --git a/playbooks/roles/os_swift/defaults/main.yml b/playbooks/roles/os_swift/defaults/main.yml index e10b21a55e..7ebbdd18b6 100644 --- a/playbooks/roles/os_swift/defaults/main.yml +++ b/playbooks/roles/os_swift/defaults/main.yml @@ -257,3 +257,4 @@ swift_container_server_replicator_conf_overrides: {} swift_object_server_conf_overrides: {} swift_object_expirer_conf_overrides: {} swift_object_server_replicator_conf_overrides: {} +swift_memcache_conf_overrides: {} diff --git a/playbooks/roles/os_swift/tasks/swift_post_install.yml b/playbooks/roles/os_swift/tasks/swift_post_install.yml index ab6c389c4d..d00203c7ab 100644 --- a/playbooks/roles/os_swift/tasks/swift_post_install.yml +++ b/playbooks/roles/os_swift/tasks/swift_post_install.yml @@ -31,6 +31,10 @@ dest: "/etc/swift/dispersion.conf" config_overrides: "{{ swift_swift_dispersion_conf_overrides }}" config_type: "ini" + - src: "swift-memcache.conf.j2" + dest: "/etc/swift/memcache.conf" + config_overrides: "{{ swift_memcache_conf_overrides }}" + config_type: "ini" notify: - Restart swift account services - Restart swift container services diff --git a/playbooks/roles/os_swift/templates/proxy-server.conf.j2 b/playbooks/roles/os_swift/templates/proxy-server.conf.j2 index 111fd6c6da..b1d0d197f9 100644 --- a/playbooks/roles/os_swift/templates/proxy-server.conf.j2 +++ b/playbooks/roles/os_swift/templates/proxy-server.conf.j2 @@ -114,8 +114,6 @@ use = egg:swift#healthcheck [filter:cache] use = egg:swift#memcache -memcache_servers = {{ memcached_servers }} -memcache_serialization_support = 2 [filter:ratelimit] use = egg:swift#ratelimit diff --git a/playbooks/roles/os_swift/templates/swift-memcache.conf.j2 b/playbooks/roles/os_swift/templates/swift-memcache.conf.j2 new file mode 100644 index 0000000000..a823791c25 --- /dev/null +++ b/playbooks/roles/os_swift/templates/swift-memcache.conf.j2 @@ -0,0 +1,30 @@ +[memcache] +# You can use this single conf file instead of having memcache_servers set in +# several other conf files under [filter:cache] for example. You can specify +# multiple servers separated with commas, as in: 10.1.2.3:11211,10.1.2.4:11211 +# (IPv6 addresses must follow rfc3986 section-3.2.2, i.e. [::1]:11211) +# memcache_servers = 127.0.0.1:11211 +memcache_servers = {{ memcached_servers }} +# +# Sets how memcache values are serialized and deserialized: +# 0 = older, insecure pickle serialization +# 1 = json serialization but pickles can still be read (still insecure) +# 2 = json serialization only (secure and the default) +# To avoid an instant full cache flush, existing installations should +# upgrade with 0, then set to 1 and reload, then after some time (24 hours) +# set to 2 and reload. +# In the future, the ability to use pickle serialization will be removed. +# memcache_serialization_support = 2 +memcache_serialization_support = 2 +# +# Sets the maximum number of connections to each memcached server per worker +# memcache_max_connections = 2 +# +# Timeout for connection +# connect_timeout = 0.3 +# Timeout for pooled connection +# pool_timeout = 1.0 +# number of servers to retry on failures getting a pooled connection +# tries = 3 +# Timeout for read and writes +# io_timeout = 2.0