Bug 1983064 - Not possible to clean unused members on CRD when Endpoints subset is empty
Summary: Not possible to clean unused members on CRD when Endpoints subset is empty
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: OpenShift Container Platform
Classification: Red Hat
Component: Networking
Version: 4.8
Hardware: Unspecified
OS: Unspecified
unspecified
medium
Target Milestone: ---
: 4.8.0
Assignee: Maysa Macedo
QA Contact: Jon Uriarte
URL:
Whiteboard:
Depends On:
Blocks: 1983102
TreeView+ depends on / blocked
 
Reported: 2021-07-16 11:50 UTC by Maysa Macedo
Modified: 2021-07-16 19:41 UTC (History)
0 users

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
: 1983102 (view as bug list)
Environment:
Last Closed: 2021-07-16 14:34:44 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description Maysa Macedo 2021-07-16 11:50:50 UTC
Description of problem:

If the CR contains data on the status field and all the endpoints subsets are cleaned up we should allow the removal of unused members.

2021-07-16 11:20:12.804 1 ERROR kuryr_kubernetes.handlers.logging [-] Failed to handle event {'type': 'ADDED', 'object': {'apiVersion': 'openstack.org/v1', 'kind': 'KuryrLoadBalancer', 'metadata': {'creationTimestamp': '2021-07-16T11:20:10Z', 'finalizers': ['kuryr.openstack.org/kuryrloadbalancer-finalizers'], 'generation': 1, 'managedFields': [{'apiVersion': 'openstack.org/v1', 'fieldsType': 'FieldsV1', 'fieldsV1': {'f:metadata': {'f:finalizers': {'.': {}, 'v:"kuryr.openstack.org/kuryrloadbalancer-finalizers"': {}}}, 'f:spec': {'.': {}, 'f:ip': {}, 'f:ports': {}, 'f:project_id': {}, 'f:provider': {}, 'f:security_groups_ids': {}, 'f:subnet_id': {}, 'f:type': {}}, 'f:status': {'.': {}, 'f:listeners': {}, 'f:loadbalancer': {'.': {}, 'f:id': {}, 'f:ip': {}, 'f:name': {}, 'f:port_id': {}, 'f:project_id': {}, 'f:provider': {}, 'f:security_groups': {}, 'f:subnet_id': {}}, 'f:members': {}, 'f:pools': {}}}, 'manager': 'python-requests', 'operation': 'Update', 'time': '2021-07-16T11:20:10Z'}], 'name': 'apiserver', 'namespace': 'openshift-kube-apiserver', 'resourceVersion': '626013', 'selfLink': '/apis/openstack.org/v1/namespaces/openshift-kube-apiserver/kuryrloadbalancers/apiserver', 'uid': 'df9fe40c-4838-4bd1-b422-ca923228c4e1'}, 'spec': {'ip': '172.30.91.185', 'ports': [{'name': 'https', 'port': 443, 'protocol': 'TCP', 'targetPort': '6443'}], 'project_id': '3583506d9c92457b9971b468f85fa720', 'provider': 'ovn', 'security_groups_ids': [], 'subnet_id': 'ae4e6d1d-b935-46c9-988b-ffd39df6d2db', 'type': 'ClusterIP'}, 'status': {'listeners': [{'id': 'e4b05fe0-914d-4939-9498-70b5bf8540c7', 'loadbalancer_id': '91458d9a-8069-43b4-b757-b86d29af3d53', 'name': 'openshift-kube-apiserver/apiserver:TCP:443', 'port': 443, 'project_id': '3583506d9c92457b9971b468f85fa720', 'protocol': 'TCP'}], 'loadbalancer': {'id': '91458d9a-8069-43b4-b757-b86d29af3d53', 'ip': '172.30.91.185', 'name': 'openshift-kube-apiserver/apiserver', 'port_id': 'bd979921-e388-44da-a313-ec57cb423490', 'project_id': '3583506d9c92457b9971b468f85fa720', 'provider': 'ovn', 'security_groups': [], 'subnet_id': 'ae4e6d1d-b935-46c9-988b-ffd39df6d2db'}, 'members': [{'id': 'ed5c0e42-17cc-45f7-b870-6cdffe7f1d62', 'ip': '10.196.1.231', 'name': 'openshift-kube-apiserver/kube-apiserver-ostest-f57bt-master-1:6443', 'pool_id': '506d9889-2915-455b-ae35-ca9b4cd6415d', 'port': 6443, 'project_id': '3583506d9c92457b9971b468f85fa720', 'subnet_id': '680f1c22-33ee-4240-a9d4-2d26d9e61008'}, {'id': 'd232b251-d2f3-405c-a991-63a30fddbc23', 'ip': '10.196.2.151', 'name': 'openshift-kube-apiserver/kube-apiserver-ostest-f57bt-master-0:6443', 'pool_id': '506d9889-2915-455b-ae35-ca9b4cd6415d', 'port': 6443, 'project_id': '3583506d9c92457b9971b468f85fa720', 'subnet_id': '680f1c22-33ee-4240-a9d4-2d26d9e61008'}, {'id': 'ba8ac4b1-7e64-442f-b007-323f06346cdb', 'ip': '10.196.2.208', 'name': 'openshift-kube-apiserver/kube-apiserver-ostest-f57bt-master-2:6443', 'pool_id': '506d9889-2915-455b-ae35-ca9b4cd6415d', 'port': 6443, 'project_id': '3583506d9c92457b9971b468f85fa720', 'subnet_id': '680f1c22-33ee-4240-a9d4-2d26d9e61008'}], 'pools': [{'id': '506d9889-2915-455b-ae35-ca9b4cd6415d', 'listener_id': 'e4b05fe0-914d-4939-9498-70b5bf8540c7', 'loadbalancer_id': '91458d9a-8069-43b4-b757-b86d29af3d53', 'name': 'openshift-kube-apiserver/apiserver:TCP:443', 'project_id': '3583506d9c92457b9971b468f85fa720', 'protocol': 'TCP'}]}}}: TypeError: 'NoneType' object is not iterable
2021-07-16 11:20:12.804 1 ERROR kuryr_kubernetes.handlers.logging Traceback (most recent call last):
2021-07-16 11:20:12.804 1 ERROR kuryr_kubernetes.handlers.logging   File "/usr/lib/python3.6/site-packages/kuryr_kubernetes/handlers/logging.py", line 37, in __call__
2021-07-16 11:20:12.804 1 ERROR kuryr_kubernetes.handlers.logging     self._handler(event, *args, **kwargs)
2021-07-16 11:20:12.804 1 ERROR kuryr_kubernetes.handlers.logging   File "/usr/lib/python3.6/site-packages/kuryr_kubernetes/handlers/retry.py", line 81, in __call__
2021-07-16 11:20:12.804 1 ERROR kuryr_kubernetes.handlers.logging     self._handler(event, *args, **kwargs)
2021-07-16 11:20:12.804 1 ERROR kuryr_kubernetes.handlers.logging   File "/usr/lib/python3.6/site-packages/kuryr_kubernetes/handlers/k8s_base.py", line 90, in __call__
2021-07-16 11:20:12.804 1 ERROR kuryr_kubernetes.handlers.logging     self.on_present(obj)
2021-07-16 11:20:12.804 1 ERROR kuryr_kubernetes.handlers.logging   File "/usr/lib/python3.6/site-packages/kuryr_kubernetes/controller/handlers/loadbalancer.py", line 79, in on_present
2021-07-16 11:20:12.804 1 ERROR kuryr_kubernetes.handlers.logging     if self._sync_lbaas_members(loadbalancer_crd):
2021-07-16 11:20:12.804 1 ERROR kuryr_kubernetes.handlers.logging   File "/usr/lib/python3.6/site-packages/kuryr_kubernetes/controller/handlers/loadbalancer.py", line 175, in _sync_lbaas_members
2021-07-16 11:20:12.804 1 ERROR kuryr_kubernetes.handlers.logging     if (self._remove_unused_members(loadbalancer_crd)):
2021-07-16 11:20:12.804 1 ERROR kuryr_kubernetes.handlers.logging   File "/usr/lib/python3.6/site-packages/kuryr_kubernetes/controller/handlers/loadbalancer.py", line 389, in _remove_unused_members
2021-07-16 11:20:12.804 1 ERROR kuryr_kubernetes.handlers.logging     for ep_slice in ep_slices
2021-07-16 11:20:12.804 1 ERROR kuryr_kubernetes.handlers.logging TypeError: 'NoneType' object is not iterable
2021-07-16 11:20:12.804 1 ERROR kuryr_kubernetes.handlers.logging 
2021-07-16 11:20:12.809 1 ERROR kuryr_kubernetes.handlers.retry [-] Report handler unhealthy KuryrLoadBalancerHandler: TypeError: 'NoneType' object is not iterable
2021-07-16 11:20:12.809 1 ERROR kuryr_kubernetes.handlers.retry Traceback (most recent call last):
2021-07-16 11:20:12.809 1 ERROR kuryr_kubernetes.handlers.retry   File "/usr/lib/python3.6/site-packages/kuryr_kubernetes/handlers/retry.py", line 81, in __call__
2021-07-16 11:20:12.809 1 ERROR kuryr_kubernetes.handlers.retry     self._handler(event, *args, **kwargs)
2021-07-16 11:20:12.809 1 ERROR kuryr_kubernetes.handlers.retry   File "/usr/lib/python3.6/site-packages/kuryr_kubernetes/handlers/k8s_base.py", line 90, in __call__
2021-07-16 11:20:12.809 1 ERROR kuryr_kubernetes.handlers.retry     self.on_present(obj)
2021-07-16 11:20:12.809 1 ERROR kuryr_kubernetes.handlers.retry   File "/usr/lib/python3.6/site-packages/kuryr_kubernetes/controller/handlers/loadbalancer.py", line 79, in on_present
2021-07-16 11:20:12.809 1 ERROR kuryr_kubernetes.handlers.retry     if self._sync_lbaas_members(loadbalancer_crd):
2021-07-16 11:20:12.809 1 ERROR kuryr_kubernetes.handlers.retry   File "/usr/lib/python3.6/site-packages/kuryr_kubernetes/controller/handlers/loadbalancer.py", line 175, in _sync_lbaas_members
2021-07-16 11:20:12.809 1 ERROR kuryr_kubernetes.handlers.retry     if (self._remove_unused_members(loadbalancer_crd)):
2021-07-16 11:20:12.809 1 ERROR kuryr_kubernetes.handlers.retry   File "/usr/lib/python3.6/site-packages/kuryr_kubernetes/controller/handlers/loadbalancer.py", line 389, in _remove_unused_members
2021-07-16 11:20:12.809 1 ERROR kuryr_kubernetes.handlers.retry     for ep_slice in ep_slices
2021-07-16 11:20:12.809 1 ERROR kuryr_kubernetes.handlers.retry TypeError: 'NoneType' object is not iterable
2021-07-16 11:20:12.809 1 ERROR kuryr_kubernetes.handlers.retry 

Version-Release number of selected component (if applicable):

ocp 4.6.31

How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

Comment 2 Maysa Macedo 2021-07-16 14:34:44 UTC
The issue is already fixed on 4.8 release, so I'm closing this bug.

https://github.com/openshift/kuryr-kubernetes/blob/release-4.8/kuryr_kubernetes/controller/handlers/loadbalancer.py#L426


Note You need to log in before you can comment on or make changes to this bug.