In case when port_forwarding service plugin is enabled and vlan or flat network (provider network types) is configured as one of the tenant_network_types in the ML2 config there is an issue with centralized and distributed traffic. FIP port forwarding in ovn backend are implemented as OVN Load balancers thus are always centralized but if "enable_distributed_floating_ip" is set to True, FIPs are distributed. And in such case it won't work as expected as either it tries to send FIP PF's traffic as distributed when "reside-on-redirect-chassis" for LRP is set to "false" or tries to centralized everything (even FIP which should be distributed) when "reside-on-redirect-chassis" is set to "true". It's not really easy to avoid that issue from the code so this patch adds warning in the upgrade checks and also log warning about it during start of the neutron server process to at least warn cloud admin that such potential issue may happen in the cloud. Related-Bug: #2028846 Change-Id: I398f3f676c59dc794cf03320fa45efc7b22fc003
47 lines
1.8 KiB
Python
47 lines
1.8 KiB
Python
# Copyright 2019 Red Hat, Inc.
|
|
# All Rights Reserved.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
from neutron_lib import exceptions as n_exc
|
|
|
|
from neutron._i18n import _
|
|
|
|
|
|
class RevisionConflict(n_exc.NeutronException):
|
|
message = _('OVN revision number for %(resource_id)s (type: '
|
|
'%(resource_type)s) is higher than the given '
|
|
'resource. Skipping update')
|
|
|
|
|
|
class UnknownResourceType(n_exc.NeutronException):
|
|
message = _('Unknown resource type: %(resource_type)s')
|
|
|
|
|
|
class StandardAttributeIDNotFound(n_exc.NeutronException):
|
|
message = _('Standard attribute ID not found for %(resource_uuid)s')
|
|
|
|
|
|
class HashRingIsEmpty(n_exc.NeutronException):
|
|
message = _('Hash Ring returned empty when hashing "%(key)s". All '
|
|
'%(node_count)d nodes were found offline. This should never '
|
|
'happen in a normal situation, please check the status '
|
|
'of your cluster')
|
|
|
|
|
|
class InvalidPortForwardingConfiguration(n_exc.NeutronException):
|
|
message = _('Neutron configuration is invalid. Port forwardings '
|
|
'can not be used with ML2/OVN backend, distributed '
|
|
'floating IPs and provider network type(s) used as '
|
|
'tenant networks.')
|