HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux ip-172-26-0-120 6.17.0-1009-aws #9~24.04.2-Ubuntu SMP Fri Mar 6 23:50:29 UTC 2026 x86_64
User: ubuntu (1000)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/sos/report/plugins/__pycache__/kubernetes.cpython-312.pyc
�

O6uf�*���ddlmZddlZddlZddlZddlmZmZmZm	Z	m
Z
dZdZdZ
Gd�de�ZGd	�d
ee�ZGd�dee	e�Zy)
�)�	translateN)�Plugin�RedHatPlugin�DebianPlugin�UbuntuPlugin�	PluginOpt)�kubelet�
kubernetes)r	zkube-apiserverz
kube-proxyzkube-schedulerzkube-controller-manager)z/etc/kubernetes/admin.confc	��eZdZdZdZdZdZddgZgd�Zgd�Z	e
d	d
d��e
d
d
d��e
dd
d��e
dded��gZdZ
d�Zd�Zd�Zd�Zd�Zd�Zd�Zy)�
Kubernetesz+Kubernetes container orchestration platformr
)�	containeri�z/etc/kubernetesz/run/flannel)�events�deployments�	ingresses�pods�pvc�services�
daemonsets�replicasets�	endpoints�statefulsets�
configmaps�serviceaccounts�secrets�jobs�cronjobs�clusterroles�clusterrolebindings�limitranges�resourcequotas)�sc�pv�roles�rolebindings�allFz'collect all namespace output separately)�default�desc�describez(collect describe output of all resources�podlogsz$capture stdout/stderr logs from pods�podlogs-filter�z1only collect logs from pods matching this pattern)r&�val_typer'�kubectlc��tjjd�ry|jD]-}|j	|�s�|xj
d|��z
c_yy)N�
KUBECONFIGz --kubeconfig=)�os�environ�get�files�path_exists�kube_cmd)�self�_kconfs  �?/usr/lib/python3/dist-packages/sos/report/plugins/kubernetes.py�set_kubeconfigzKubernetes.set_kubeconfig]sN��
�:�:�>�>�,�'���j�j�	�F�����'��
�
�>�&��!:�:�
��	�c�@��t�fd��jD��S)z" Check if this is the master node c3�@�K�|]}�j|����y�w�N)r4)�.0�fr6s  �r8�	<genexpr>z-Kubernetes.check_is_master.<locals>.<genexpr>gs�����;�1�4�#�#�A�&�;�s�)�anyr3)r6s`r8�check_is_masterzKubernetes.check_is_masteres����;��
�
�;�;�;r:c�P�|j|j�|jgd��|j�sydD]$}|j	|j
�d|��d���&|j
d�r;|j	|jD�cgc]}|j
�d|����c}d��n:|j	|jD�cgc]}|j
�d|����c}d��|j|j
�d	�d��}|d
dk(rf|j
d�rU|d
j�ddD]<}|j�}|s�|d}|j	|j
�d|��d���>|j	|j
�d�gd��|j	|j
�d�d��|jd�r.|jjddg�|j	d�|j�|j�ycc}wcc}w)N)r/�KUBERNETES_HTTP_PROXY�KUBERNETES_HTTPS_PROXY�KUBERNETES_NO_PROXY)�versionzconfig view� �cluster-info��subdirr%�
 get -o json � get z
 get nodes�statusrr(�output�z describe node z get -o json nodesz get --raw /metricszkubevirt-virtctl�vms�vmiszvirtctl version)�
add_copy_spec�config_files�add_env_varrB�add_cmd_outputr5�
get_option�global_resources�collect_cmd_output�
splitlines�split�is_installed�	resources�extend�collect_per_resource_details�collect_all_resources)r6�subcmd�res�nodes�line�words�nodes       r8�setupzKubernetes.setupisV�����4�,�,�-����
�	��#�#�%��0�	�F�����=�=�/��6�(�+�%�
 �
�	��?�?�5�!�����0�0�!���=�=�/��s�e�4�!�%�
 �
&�

����0�0�!���=�=�/��s�e�,�!�%�
 �
&��'�'�4�=�=�/��(D�/=�(�?����?�a��D�O�O�J�$?��h��2�2�4�Q�R�8�	
���
�
������Q�x���#�#��}�}�o�_�T�F�;�)�$��
	
�	
����}�}�o�/�0�
� �	�	"�
	
����}�}�o�0�1�!�	�	
����/�0��N�N�!�!�5�&�/�2���� 1�2��)�)�+��"�"�$��S!��
!s�H�H#c
��|j|j�d�d��}|dj�dd}|D�cgc]2}|s�t|j	��s� |j	�d��4}}|D�]?}d|��}|jd	�r=|j�d
|��}|jD]}|j|�d|��d|�����|jd
�r�|j�d|��}|jD]�}|dk(r�	|j|�d|���}	|	ddk(s�(|	dj�ddD�
cgc]}
|
j	�d��}}
|D]4}|j�d|��}|j|�d|�d|��d|�d|�����6��|jd�s��/|j|���Bycc}wcc}
w)z7 Collect details about each resource in all namespaces z get namespacesrIrJrOrPNrz--namespace=r%rLrH�
cluster-info/r(rrMrNz
 describe �/r))
rYr5rZ�lenr[rWr]rV�exec_cmd�
_get_pod_logs)
r6�kns�	kn_output�n�knsps�nspace�knsp�k_cmdrb�ret�k�k_list�items
             r8r_z'Kubernetes.collect_per_resource_details�s���%�%������&G�-;�&�=����M�,�,�.�q�r�2�	�'0�I�!�A�#�a�g�g�i�.�����1��I��I��	)�F�!�&��*�D����u�%��=�=�/��t�f�=���>�>��C��'�'� �'��3�%�(�!.�v�h�7�(������z�*��=�=�/��4�&�1���>�>��C��h�� ��-�-�5�'��s�e�(<�=�C��8�}��)�"%�h�-�":�":�"<�Q�R�"@�"B�1�!�'�'�)�A�,�"B��"B�$*��D�'+�}�}�o�Q�t�f�$=�E� �/�/�#(�'��C�5��$�� @�)6�v�h�a��u�'E�0�������y�)��"�"�4�(�;	)��J��*"Bs�F:�F:�F:�;F?c��|j�d|��}|j|�d��}|ddk(�rtj|d�}|j	d�rt|j	d��nd}|dD]�}|rt
j||dd	�s�"d
|dd�d|dd	��}d
|dvrB|dd
D]7}|dd	}	|d	}
|j|j�d|�d|	�d|
��|���9d|dvs��|ddD]7}|dd	}	|d	}
|j|j�d|�d|	�d|
��|���9��yy)NrLz podsrNrrOr*�items�metadata�nameri�	namespacez	/podlogs/�
containers�specrHz logs z -c rJ�initContainers)	r5rl�json�loadsrWr�re�matchrV)r6r}rtrur�reg�pod�_subdir�cont�pod_name�	cont_names           r8rmzKubernetes._get_pod_logs�s����=�=�/��y�k�:���m�m�u�g�U�O�,���x�=�A���:�:�c�(�m�,�D��?�?�#3�4��T�_�_�-=�>�?�:>�
��G�}�
���r�x�x��S��_�V�-D�E��*�!�*�o�k�:�;�9�!�*�o�f�5�6�8�� �3�v�;�.� #�F��L� 9���#&�z�?�6�#:��$(��L�	��+�+�#�}�}�o�Q�y�k��'�j��Y�K�9�#*�,���$�s�6�{�2� #�F��,<� =���#&�z�?�6�#:��$(��L�	��+�+�#�}�}�o�Q�y�k��'�j��Y�K�9�#*�,���!
�r:c��|jd�s9|j�d�}|jD]}|j|�d|��d���yy)z% Collect details about all resources r%z get --all-namespaces=truerHrIrJN)rWr5r]rV)r6rtrbs   r8r`z Kubernetes.collect_all_resources�s[�����u�%��}�}�o�%?�@�E��~�~�
���#�#��g�Q�s�e�$�)�$��
�&r:c�p�d}|j|j|d�|j|j�ddj|j��d�}|j|�d}d}ddjt
|j�|jz��d�}|j|||�y)NzX(?P<var>{\s*"name":\s*[^,]*(pass|pwd|key|token|cred|PASS|PWD|KEY)[^,]*,\s*"value":)[^}]*z\g<var> "********"z^(�|�)zLS0tLS1CRUdJ[A-Za-z0-9+/=]+z***** SCRUBBED BASE64 PEM *****)	�do_cmd_output_subr5�do_cmd_private_sub�joinrT�do_file_private_sub�listr3�do_path_regex_sub)r6�
env_regexp�pathexp�regexp�substs     r8�postproczKubernetes.postproc�s���
M�
����t�}�}�j�4�	6�
	
����
�
�.������!2�!2�3�4�A�6��� � ��)�0��1�������d�j�j�!1�$�2C�2C�!C�D�E�Q�G�����w���6r:N)�__name__�
__module__�__qualname__�
short_desc�plugin_name�profiles�plugin_timeoutrTr]rXr�str�option_listr5r9rBrgr_rmr`r��r:r8rr&s���>�J��K��H��N�	���L��I�.��	�%��@�	B��*�e�A�	C��)�U�=�	?��"�B��J�	L�	�K��H��<�>%�@&)�P�B�7r:rc�4��eZdZeZeZeZ�fd�Z	�fd�Z
�xZS)�RedHatKubernetesc�D��|jd�ryt�|�	�S)Nzopenshift-hyperkubeF)r\�super�
check_enabled�r6�	__class__s �r8r�zRedHatKubernetes.check_enableds#������2�3���w�$�&�&r:c�B��|j�t�|�	�yr=)r9r�rgr�s �r8rgzRedHatKubernetes.setup"s�������
��
�r:)r�r�r��
KUBE_PACKAGES�packages�KUBECONFIGSr3�	KUBE_SVCSrr�rg�
__classcell__�r�s@r8r�r�s!����H��E��H�'��r:r�c�6��eZdZeZedzZedzZ�fd�Z	�xZ
S)�UbuntuKubernetes)z#/root/cdk/cdk_addons_kubectl_configz4/var/snap/microk8s/current/credentials/client.config)zsnap.kubelet.daemonzsnap.kube-apiserver.daemonzsnap.kube-proxy.daemonzsnap.kube-scheduler.daemonz#snap.kube-controller-manager.daemonzcdk.master.auth-webhookc���|j�|jd�rd|_|jj	ddg�t
�|��y)N�microk8szmicrok8s kubectlz/root/cdk/kubelet/config.yamlz!/root/cdk/audit/audit-policy.yaml)r9r\r5rTr^r�rgr�s �r8rgzUbuntuKubernetes.setup:sN����������Z�(�.�D�M���� � �+�/�"
�	�	��
�r:)r�r�r�r�r�r�r3r�rrgr�r�s@r8r�r�'s2����H���
�E�
���H�
�
r:r�)�fnmatchrr�r�r0�sos.report.pluginsrrrrrr�r�r�rr�r�r�r:r8�<module>r�s_���	��	�9�9��
�

�	���
k7��k7�\�z�<��&�z�<��r: