Bug 1983064

Summary: Not possible to clean unused members on CRD when Endpoints subset is empty
Product: OpenShift Container Platform Reporter: Maysa Macedo <mdemaced>
Component: NetworkingAssignee: Maysa Macedo <mdemaced>
Networking sub component: kuryr QA Contact: Jon Uriarte <juriarte>
Status: CLOSED CURRENTRELEASE Docs Contact:
Severity: medium    
Priority: unspecified    
Version: 4.8   
Target Milestone: ---   
Target Release: 4.8.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 1983102 (view as bug list) Environment:
Last Closed: 2021-07-16 14:34:44 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1983102    

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