Add oslo_cache to default_subnet driver
This patch adds oslo_cache to the default subnet driver to avoid unneed calls to neutron when creating pods (or when getting subnet information) Change-Id: I93b6bed424757e4138ba656251ae5da46b857da1
This commit is contained in:
parent
9709abde08
commit
bcc851aacf
@ -148,6 +148,15 @@ octavia_defaults = [
|
|||||||
default='L3'),
|
default='L3'),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
cache_defaults = [
|
||||||
|
cfg.BoolOpt('enabled',
|
||||||
|
help=_("Enable caching."),
|
||||||
|
default=True),
|
||||||
|
cfg.StrOpt('backend',
|
||||||
|
help=_("Select backend cache option."),
|
||||||
|
default="dogpile.cache.memory"),
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
CONF = cfg.CONF
|
CONF = cfg.CONF
|
||||||
CONF.register_opts(kuryr_k8s_opts)
|
CONF.register_opts(kuryr_k8s_opts)
|
||||||
@ -155,6 +164,7 @@ CONF.register_opts(daemon_opts, group='cni_daemon')
|
|||||||
CONF.register_opts(k8s_opts, group='kubernetes')
|
CONF.register_opts(k8s_opts, group='kubernetes')
|
||||||
CONF.register_opts(neutron_defaults, group='neutron_defaults')
|
CONF.register_opts(neutron_defaults, group='neutron_defaults')
|
||||||
CONF.register_opts(octavia_defaults, group='octavia_defaults')
|
CONF.register_opts(octavia_defaults, group='octavia_defaults')
|
||||||
|
CONF.register_opts(cache_defaults, group='cache_defaults')
|
||||||
|
|
||||||
CONF.register_opts(lib_config.core_opts)
|
CONF.register_opts(lib_config.core_opts)
|
||||||
CONF.register_opts(lib_config.binding_opts, 'binding')
|
CONF.register_opts(lib_config.binding_opts, 'binding')
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
|
from oslo_cache import core as cache
|
||||||
from oslo_config import cfg
|
from oslo_config import cfg
|
||||||
|
|
||||||
from kuryr_kubernetes import clients
|
from kuryr_kubernetes import clients
|
||||||
@ -21,8 +22,25 @@ from kuryr_kubernetes.controller.drivers import base
|
|||||||
from kuryr_kubernetes import os_vif_util
|
from kuryr_kubernetes import os_vif_util
|
||||||
|
|
||||||
|
|
||||||
|
CONF = cfg.CONF
|
||||||
|
|
||||||
|
subnet_caching_opts = [
|
||||||
|
cfg.BoolOpt('caching', default=True),
|
||||||
|
cfg.IntOpt('cache_time', default=3600),
|
||||||
|
]
|
||||||
|
|
||||||
|
CONF.register_opts(subnet_caching_opts, "subnet_caching")
|
||||||
|
|
||||||
|
cache.configure(CONF)
|
||||||
|
subnet_cache_region = cache.create_region()
|
||||||
|
MEMOIZE = cache.get_memoization_decorator(
|
||||||
|
CONF, subnet_cache_region, "subnet_caching")
|
||||||
|
|
||||||
|
cache.configure_cache_region(CONF, subnet_cache_region)
|
||||||
|
|
||||||
|
|
||||||
|
@MEMOIZE
|
||||||
def _get_subnet(subnet_id):
|
def _get_subnet(subnet_id):
|
||||||
# TODO(ivc): add caching (e.g. oslo.cache with dict backend)
|
|
||||||
neutron = clients.get_neutron_client()
|
neutron = clients.get_neutron_client()
|
||||||
|
|
||||||
n_subnet = neutron.show_subnet(subnet_id).get('subnet')
|
n_subnet = neutron.show_subnet(subnet_id).get('subnet')
|
||||||
|
@ -15,6 +15,7 @@ from oslo_log import _options
|
|||||||
|
|
||||||
from kuryr.lib import opts as lib_opts
|
from kuryr.lib import opts as lib_opts
|
||||||
from kuryr_kubernetes import config
|
from kuryr_kubernetes import config
|
||||||
|
from kuryr_kubernetes.controller.drivers import default_subnet
|
||||||
from kuryr_kubernetes.controller.drivers import nested_vif
|
from kuryr_kubernetes.controller.drivers import nested_vif
|
||||||
from kuryr_kubernetes.controller.drivers import vif_pool
|
from kuryr_kubernetes.controller.drivers import vif_pool
|
||||||
from kuryr_kubernetes.controller.managers import pool
|
from kuryr_kubernetes.controller.managers import pool
|
||||||
@ -26,6 +27,8 @@ _kuryr_k8s_opts = [
|
|||||||
('pod_vif_nested', nested_vif.nested_vif_driver_opts),
|
('pod_vif_nested', nested_vif.nested_vif_driver_opts),
|
||||||
('vif_pool', vif_pool.vif_pool_driver_opts),
|
('vif_pool', vif_pool.vif_pool_driver_opts),
|
||||||
('octavia_defaults', config.octavia_defaults),
|
('octavia_defaults', config.octavia_defaults),
|
||||||
|
('cache_defaults', config.cache_defaults),
|
||||||
|
('subnet_caching', default_subnet.subnet_caching_opts),
|
||||||
('pool_manager', pool.pool_manager_opts),
|
('pool_manager', pool.pool_manager_opts),
|
||||||
('cni_daemon', config.daemon_opts),
|
('cni_daemon', config.daemon_opts),
|
||||||
]
|
]
|
||||||
|
22
releasenotes/notes/oslo-caching-b11881cfb9dc306c.yaml
Normal file
22
releasenotes/notes/oslo-caching-b11881cfb9dc306c.yaml
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
oslo.cache support has been added to the default_subnet driver. This
|
||||||
|
allows to skip unnecessary calls to neutron to retrieve network and
|
||||||
|
subnet information that can be cached and retrieved faster. It includes
|
||||||
|
the generic oslo caching options to enable/disable it as well as to
|
||||||
|
specify the backend to use (dogpile.cache.memory by default). In addition
|
||||||
|
it includes the specific options ofr the subnet driver, to enable/disable
|
||||||
|
it just for this driver, as well as to specify the cache time. To change
|
||||||
|
default configurations, the next can be modified at kuryr.conf
|
||||||
|
|
||||||
|
.. code-block:: ini
|
||||||
|
|
||||||
|
[cache]
|
||||||
|
enable=True
|
||||||
|
backend=dogpile.cache.memory
|
||||||
|
|
||||||
|
[subnet_caching]
|
||||||
|
caching=True
|
||||||
|
cache_time=3600
|
||||||
|
|
@ -8,6 +8,7 @@ kuryr-lib>=0.5.0 # Apache-2.0
|
|||||||
pbr!=2.1.0,>=2.0.0 # Apache-2.0
|
pbr!=2.1.0,>=2.0.0 # Apache-2.0
|
||||||
requests>=2.14.2 # Apache-2.0
|
requests>=2.14.2 # Apache-2.0
|
||||||
eventlet!=0.18.3,!=0.20.1,<0.21.0,>=0.18.2 # MIT
|
eventlet!=0.18.3,!=0.20.1,<0.21.0,>=0.18.2 # MIT
|
||||||
|
oslo.cache>=1.26.0 # Apache-2.0
|
||||||
oslo.config>=4.6.0 # Apache-2.0
|
oslo.config>=4.6.0 # Apache-2.0
|
||||||
oslo.log>=3.30.0 # Apache-2.0
|
oslo.log>=3.30.0 # Apache-2.0
|
||||||
oslo.reports>=1.18.0 # Apache-2.0
|
oslo.reports>=1.18.0 # Apache-2.0
|
||||||
|
Loading…
Reference in New Issue
Block a user