Python Kubernetes client raises exception when patching/listing nodes if <none>:<none> image is present
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
StarlingX |
Fix Released
|
Medium
|
Angie Wang |
Bug Description
Brief Description
-----------------
If Kubernetes node has images without tag and digest("crictl images" shows <none>:<none>), system operations(
However, the label is created successfully in Kubernetes because of the short-term solution in https:/
Two approaches to work around the issue,
1. implement a replacement function of python Kubernetes client V1ContainerImag
2. implement a similar workaround solution in containerd like CRIO did in https:/
The workaround should be removed if long-term solutions in https:/
Severity
--------
Major
Steps to Reproduce
------------------
system host-label-assign controller-0 test-label=enabled
In sysinv log, the error "Kubernetes exception in kube_get_nodes: Invalid value for `names`, must not be `None`" appears every minute.
Expected Behavior
------------------
No error of label audit in sysinv and "system host-label-assign" works without exception.
Actual Behavior
----------------
Label audit fails every minute and system host-label-assign" fails with exception.
Reproducibility
---------------
yes
System Configuration
-------
Any system types
Timestamp/Logs
---------
[sysadmin@
Invalid value for `names`, must not be `None`
Traceback (most recent call last):
File "/usr/lib64/
**args)
File "/usr/lib64/
result = getattr(proxyobj, method)(ctxt, **kwargs)
File "/usr/lib64/
self._kube.
File "/usr/lib64/
api_response = self._get_
File "/usr/lib/
(data) = self.patch_
File "/usr/lib/
collection_
File "/usr/lib/
_return_
File "/usr/lib/
return_data = self.deserializ
File "/usr/lib/
return self.__
File "/usr/lib/
return self.__
File "/usr/lib/
kwargs[attr] = self.__
File "/usr/lib/
return self.__
File "/usr/lib/
kwargs[attr] = self.__
File "/usr/lib/
for sub_data in data]
File "/usr/lib/
return self.__
File "/usr/lib/
instance = klass(**kwargs)
File "/usr/lib/
self.names = names
File "/usr/lib/
raise ValueError("Invalid value for `names`, must not be `None`")
Test Activity
-------------
Testing
Changed in starlingx: | |
assignee: | nobody → Angie Wang (angiewang) |
Changed in starlingx: | |
importance: | Undecided → Medium |
status: | New → Triaged |
tags: | added: stx.5.0 stx.containers |
stx.5.0 / medium - workaround is to remove the none/none image