HEX
Server: Apache
System: Linux 185.122.168.184.host.secureserver.net 5.14.0-570.60.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Nov 5 05:00:59 EST 2025 x86_64
User: barbeatleanalyti (1024)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //lib/python3.9/site-packages/sos/report/plugins/__pycache__/kubernetes.cpython-39.pyc
a

\��h�1�@s�ddlmZddlZddlZddlZddlmZmZmZm	Z	m
Z
dZdZdZ
Gdd�de�ZGd	d
�d
ee�ZGdd�dee	e�ZdS)
�)�	translateN)�Plugin�RedHatPlugin�DebianPlugin�UbuntuPlugin�	PluginOpt)�kubelet�
kubernetes)rzkube-apiserverz
kube-proxyzkube-schedulerzkube-controller-manager)z/etc/kubernetes/admin.confc
@s�eZdZdZdZdZdZgd�ZdgZgd�Z	gd�Z
gd	�Zed
ddd
�edddd
�edddd
�edddd
�edde
dd�gZdZdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'S)(�
Kubernetesz+Kubernetes container orchestration platformr	)�	containeri�)z/etc/kubernetesz/run/flannelz/var/lib/kubelet/config.yamlz"/var/lib/kubelet/kubeadm-flags.envz /var/lib/kubelet/*_manager_statez/etc/kubernetes/pki)z /var/log/pods/kube-system_etcd-*z*/var/log/pods/kube-system_kube-apiserver-*z3/var/log/pods/kube-system_kube-controller-manager-*z*/var/log/pods/kube-system_kube-scheduler-*)�eventsZdeploymentsZ	ingresses�podsZpvc�servicesZ
daemonsetsZreplicasetsZ	endpointsZstatefulsetsZ
configmapsZserviceaccountsZsecretsZjobsZcronjobsZclusterrolesZclusterrolebindingsZlimitrangesZresourcequotas)ZscZpvZrolesZrolebindings�allFz'collect all namespace output separately)�default�desc�describez(collect describe output of all resources�kubelogsz4copy some kube-system pod logs without using the API�podlogsz2capture stdout/stderr logs from pods using the API�podlogs-filter�z1only collect logs from pods matching this pattern)rZval_typerZkubectlcCsBtj�d�rdS|jD]&}|�|�r|jd|��7_q>qdS)N�
KUBECONFIGz --kubeconfig=)�os�environ�get�files�path_exists�kube_cmd)�selfZ_kconf�r�A/usr/lib/python3.9/site-packages/sos/report/plugins/kubernetes.py�set_kubeconfigks

zKubernetes.set_kubeconfigcst�fdd��jD��S)z" Check if this is the master node c3s|]}��|�VqdS�N)r)�.0�f�rrr �	<genexpr>u�z-Kubernetes.check_is_master.<locals>.<genexpr>)�anyrr%rr%r �check_is_mastersszKubernetes.check_is_mastercs����j����j���d�r.���j���gd�����sHdSdD]}�j�j	�d|��dd�qL��d�r��j�fdd	��j
D�dd�n�j�fd
d	��j
D�dd��j�j	�d�dd�}|dd
k�r0��d��r0|d��dd�D]6}|�
�}|�sq�|d
}�j�j	�d|��dd�q��j�j	�d�gdd��j�j	�d�dd���d��r��j�ddg���d�������dS)Nr)rZKUBERNETES_HTTP_PROXYZKUBERNETES_HTTPS_PROXYZKUBERNETES_NO_PROXY)�versionzconfig view� �cluster-info�Zsubdirrcsg|]}�j�d|���qS)�
 get -o json �r�r#�resr%rr �
<listcomp>�s�z$Kubernetes.setup.<locals>.<listcomp>csg|]}�j�d|���qS)� get r/r0r%rr r2�s�z
 get nodes�statusrr�output�z describe node z get -o json nodesz get --raw /metricszkubevirt-virtctlZvmsZvmiszvirtctl version)�
add_copy_spec�config_filesZadd_forbidden_path�forbidden_paths�
get_option�kube_system_logsZadd_env_varr)�add_cmd_outputr�global_resources�collect_cmd_output�
splitlines�split�is_installed�	resources�extend�collect_per_resource_details�collect_all_resources)r�subcmdZnodes�line�wordsZnoderr%r �setupwsd
�
������
��
�
zKubernetes.setupc	Cs`|j|j�d�dd�}|d��dd�}dd�|D�}|D�]}d	|��}|�d
�r�|j�d|��}|jD]"}|j|�d|��d
|��d�ql|�d��rF|j�d|��}|jD]�}|dkr�q�|�|�d|���}|ddkr�dd�|d��dd�D�}	|	D]@}
|j�d|��}|j|�d|�d|
��d
|�d|��d��qq�|�d�r<|�|�q<dS)z7 Collect details about each resource in all namespaces z get namespacesr,r-r5r6NcSs(g|] }|rt|���r|��d�qS�r)�lenr@)r#�nrrr r2�r'z;Kubernetes.collect_per_resource_details.<locals>.<listcomp>z--namespace=rr.r+�
cluster-info/rrr3r4rcSsg|]}|��d�qSrJ)r@)r#�krrr r2�r'z
 describe �/r)r>rr?r:rBr<�exec_cmd�
_get_pod_logs)rZknsZ	kn_outputZknspsZnspaceZknsp�k_cmdr1�retZk_list�itemrrr rD�s@�



�
��
z'Kubernetes.collect_per_resource_detailsc
CsV|j�d|��}|�|�d��}|ddk�rRt�|d�}|�d�rTt|�d��nd}|dD]�}|r~t�||dd	�s~q`d
|dd�d|dd	��}d
|dvr�|dd
D]>}|dd	}	|d	}
|j|j�d|�d|	�d|
��|d�q�d|dvr`|ddD]@}|dd	}	|d	}
|j|j�d|�d|	�d|
��|d��qq`dS)Nr.z podsr4rr5r�items�metadata�namerM�	namespacez	/podlogs/Z
containers�specr+z logs z -c r-ZinitContainers)	rrP�json�loadsr:r�re�matchr<)rrXrRrSr
ZregZpodZ_subdirZcontZpod_nameZ	cont_namerrr rQ�sP��
�
�������zKubernetes._get_pod_logscCs>|�d�s:|j�d�}|jD]}|j|�d|��dd�qdS)z% Collect details about all resources rz get --all-namespaces=truer+r,r-N)r:rrBr<)rrRr1rrr rEs

�z Kubernetes.collect_all_resourcescCsvd}|�|j|d�|�|j�dd�|j��d�}|�|�d}d}dd�t|j�|j��d�}|�|||�dS)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 *****)	Zdo_cmd_output_subrZdo_cmd_private_sub�joinr8�do_file_private_sub�listrZdo_path_regex_sub)rZ
env_regexpZpathexpZregexp�substrrr �postprocs
�
zKubernetes.postprocN)�__name__�
__module__�__qualname__Z
short_descZplugin_nameZprofilesZplugin_timeoutr8r9r;rBr=r�strZoption_listrr!r)rIrDrQrErdrrrr r
&sD�������
E(!
r
cs4eZdZeZeZeZ�fdd�Z	�fdd�Z
�ZS)�RedHatKubernetescs|�d�rdSt���S)Nzopenshift-hyperkubeF)rA�super�
check_enabledr%��	__class__rr rk/s
zRedHatKubernetes.check_enabledcs|��t���dSr")r!rjrIr%rlrr rI5szRedHatKubernetes.setup)rerfrg�
KUBE_PACKAGES�packages�KUBECONFIGSr�	KUBE_SVCSrrkrI�
__classcell__rrrlr ri's
ricsHeZdZedZedZedZ�fdd�Z	dd�Z
�fdd	�Z�ZS)
�UbuntuKubernetes)�k8s)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-webhookcsP|��|�d�rd|_n|�d�r2d|_|��|j�ddg�t���dS)NZmicrok8szmicrok8s kubectlrtzk8s kubectlz/root/cdk/kubelet/config.yamlz!/root/cdk/audit/audit-policy.yaml)r!rAr�_canonical_kubernetesr8rCrjrIr%rlrr rIOs

�zUbuntuKubernetes.setupc
sz|jdd�d�d}ddg}|�|�d�|�d�|�d	�|�d
�|�d�|�d�|�d
�g�|��fdd�|D��dS)Nz
snap.k8s.*)Zunitsrtz/var/snap/k8s/commonr4rz/argsz/var/lib/k8s-dqlite/info.yamlz /var/lib/k8s-dqlite/cluster.yamlz'/var/lib/k8sd/state/truststore/k8s.yamlz&/var/lib/k8sd/state/database/info.yamlz)/var/lib/k8sd/state/database/cluster.yamlz/var/lib/k8sd/state/daemon.yamlcsg|]}��d|���qS)r+r)r#rF�Zk8s_cmdrr r2ssz:UbuntuKubernetes._canonical_kubernetes.<locals>.<listcomp>)Zadd_journalr7r<)rZ
k8s_commonZk8s_subcmdsrrvr ru^s$��
�z&UbuntuKubernetes._canonical_kubernetescst���|�d�dS)Nz;/var/snap/k8s/common/var/lib/k8sd/state/truststore/k8s.yaml)rjrdrar%rlrr rdws
�zUbuntuKubernetes.postproc)
rerfrgrnrorprrqrrIrurdrrrrrlr rs:s
rs)�fnmatchrr\rZrZsos.report.pluginsrrrrrrnrqrpr
rirsrrrr �<module>s