Improve way of cache backend selection
At the moment we don't provide any option rather then use memcached backend. With that we also hardocde list of packages that should be installed inside virtualenv for selected backend. Adding bmemcached requirement to oslo_cache.memcache_pool [1] gives us opportunity to refactor this bit of deployment and allow to be more flexible in backend selection and requirements installation for it. [1] https://review.opendev.org/c/openstack/oslo.cache/+/854628 Change-Id: I48e193ef29e56aa8639511c5b5dcddc70f5e1198
This commit is contained in:
parent
f8840ece3b
commit
242ebe2b54
@ -25,7 +25,10 @@ nova_ceilometer_enabled: "{{ (groups['ceilometer_all'] is defined) and (groups['
|
||||
# Enable/Disable nova versioned notification
|
||||
nova_versioned_notification_enabled: False
|
||||
|
||||
nova_memcached_servers: "{{ memcached_servers }}"
|
||||
# Caching
|
||||
nova_cache_servers: "{{ nova_memcached_servers | default(memcached_servers) }}"
|
||||
nova_cache_backend: "{{ openstack_cache_backend | default('oslo_cache.memcache_pool') }}"
|
||||
nova_cache_backend_map: "{{ openstack_cache_backend_map | default(_nova_cache_backend_map) }}"
|
||||
|
||||
## Verbosity Options
|
||||
debug: False
|
||||
@ -496,8 +499,7 @@ nova_pip_packages:
|
||||
- "git+{{ nova_git_repo }}@{{ nova_git_install_branch }}#egg=nova"
|
||||
- osprofiler
|
||||
- PyMySQL
|
||||
- pymemcache
|
||||
- python-memcached
|
||||
- "{{ _nova_cache_backend_package }}"
|
||||
- systemd-python
|
||||
|
||||
# Specific pip packages provided by the user
|
||||
|
@ -0,0 +1,7 @@
|
||||
---
|
||||
deprecations:
|
||||
- |
|
||||
Variable ``nova_memcached_servers`` has been deprecated and replaced with
|
||||
``nova_cache_servers`` that defaults to ``memcached_servers``. For
|
||||
backpwards compatability ``nova_memcached_servers`` is still respected
|
||||
but will be removed in future releases.
|
@ -68,8 +68,10 @@ manager_interval = {{ nova_image_cache_manager_interval }}
|
||||
# Cache
|
||||
[cache]
|
||||
enabled = true
|
||||
backend = oslo_cache.memcache_pool
|
||||
memcache_servers = {{ nova_memcached_servers }}
|
||||
backend = {{ nova_cache_backend }}
|
||||
{% if nova_cache_backend in nova_cache_backend_map['dogpile'] %}
|
||||
memcache_servers = {{ nova_cache_servers }}
|
||||
{% endif %}
|
||||
|
||||
|
||||
# Cinder
|
||||
@ -194,13 +196,15 @@ service_token_roles_required = {{ nova_service_token_roles_required | bool }}
|
||||
service_token_roles = {{ nova_service_token_roles | join(',') }}
|
||||
service_type = {{ nova_service_type }}
|
||||
|
||||
memcached_servers = {{ memcached_servers }}
|
||||
{% if nova_cache_backend in nova_cache_backend_map['dogpile'] %}
|
||||
memcached_servers = {{ nova_cache_servers }}
|
||||
|
||||
token_cache_time = 300
|
||||
|
||||
# if your memcached server is shared, use these settings to avoid cache poisoning
|
||||
memcache_security_strategy = ENCRYPT
|
||||
memcache_secret_key = {{ memcached_encryption_key }}
|
||||
{% endif %}
|
||||
|
||||
{% if group_names | intersect(nova_services.keys() | difference('nova-compute') | map('extract', nova_services, 'group') | list) | count > 0 %}
|
||||
[database]
|
||||
|
@ -116,3 +116,23 @@ _qemu_default_conf_dict: |-
|
||||
_nova_qemu_conf: "{{ _qemu_default_conf_dict | combine(qemu_conf_dict) }}"
|
||||
|
||||
_nova_oslomsg_heartbeat_in_pthread: "{{ (nova_services['nova-compute']['group'] in group_names) | ternary(False, True) }}"
|
||||
|
||||
_nova_cache_backend_map:
|
||||
dogpile:
|
||||
- oslo_cache.memcache_pool
|
||||
- dogpile.cache.pymemcache
|
||||
- dogpile.cache.memcached
|
||||
- dogpile.cache.bmemcached
|
||||
mongo:
|
||||
- oslo_cache.mongo
|
||||
etcd3gw:
|
||||
- oslo_cache.etcd3gw
|
||||
|
||||
_nova_cache_backend_package: |-
|
||||
{% set oslo = namespace(backend='dogpile') %}
|
||||
{% for key, value in _nova_cache_backend_map.items() %}
|
||||
{% if nova_cache_backend in value %}
|
||||
{% set oslo.backend = key %}
|
||||
{%- endif %}
|
||||
{%- endfor %}
|
||||
oslo.cache[{{ oslo.backend }}]
|
||||
|
Loading…
x
Reference in New Issue
Block a user