Your IP : 216.73.216.172


Current Path : /lib/python3/dist-packages/sos/report/plugins/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/sos/report/plugins/__pycache__/kubernetes.cpython-38.pyc

U

-�_g�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�eZdZdZdZdZdZddddd	gZd
gZddd
dgZ	dddddddddddddddddd d!gZ
d"d#d$d%gZed&d'd(d)�ed*d'd+d)�ed,d'd-d)�ed.d'd/d)�ed0d1e
d2d3�gZd4Zd5d6�Zd7d8�Zd9d:�Zd;d<�Zd=d>�Zd?d@�ZdAdB�ZdCS)D�
Kubernetesz+Kubernetes container orchestration platformr	)Z	containeri�z/etc/kubernetesz/run/flannelz/var/lib/kubelet/config.yamlz"/var/lib/kubelet/kubeadm-flags.envz /var/lib/kubelet/*_manager_statez/etc/kubernetes/pkiz /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clusterrolesZclusterrolebindingsZlimitrangesZresourcequotasZscZpvZrolesZ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�?/usr/lib/python3/dist-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>usz-Kubernetes.check_is_master.<locals>.<genexpr>)�anyrr$rr$r�check_is_mastersszKubernetes.check_is_mastercs����j����j���d�r.���j���ddddg����sLdSdD]}�j�j	�d|��dd	�qP��d
�r��j�fdd��j
D�dd	�n�j�fd
d��j
D�dd	��j�j	�d�dd	�}|ddk�r4��d��r4|d��dd�D]6}|�
�}|�sq�|d}�j�j	�d|��dd	�q��j�j	�d�gdd	��j�j	�d�dd	���d��r��j�ddg���d�������dS)NrrZKUBERNETES_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-r.r$rrr0�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�lineZwordsZnoderr$r�setupwsn
��
������
��
�
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+r3r4NcSs(g|] }|rt|���r|��d�qS�r)�lenr>)r"�nrrrr0�sz;Kubernetes.collect_per_resource_details.<locals>.<listcomp>z--namespace=rr,r)�
cluster-info/rrr1r2rcSsg|]}|��d�qSrG)r>)r"�krrrr0�sz
 describe �/r)r<rr=r8r@r:�exec_cmd�
_get_pod_logs)rZknsZ	kn_outputZknspsZnspaceZknsp�k_cmdr/�retZk_list�itemrrrrB�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
|dkr�|dd
D]>}|dd	}	|d	}
|j|j�d|�d|	�d|
��|d�q�d|dkr`|ddD]@}|dd	}	|d	}
|j|j�d|�d|	�d|
��|d��qq`dS)Nr,z podsr2rr3r�itemsZmetadata�namerJ�	namespacez	/podlogs/Z
containers�specr)z logs z -c r+ZinitContainers)	rrM�json�loadsr8r�re�matchr:)rrTrOrPrZregZpodZ_subdirZcontZpod_nameZ	cont_namerrrrN�s8�� ��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)r8rr@r:)rrOr/rrrrCs

�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�joinr6�do_file_private_sub�listrZdo_path_regex_sub)rZ
env_regexpZpathexpZregexpZsubstrrr�postprocs
�
zKubernetes.postprocN)�__name__�
__module__�__qualname__Z
short_descZplugin_nameZprofilesZplugin_timeoutr6r7r9r@r;r�strZoption_listrr r'rFrBrNrCr_rrrrr
&s������������
E(!
r
cs4eZdZeZeZeZ�fdd�Z	�fdd�Z
�ZS)�RedHatKubernetescs|�d�rdSt���S)Nzopenshift-hyperkubeF)r?�super�
check_enabledr$��	__class__rrrf/s
zRedHatKubernetes.check_enabledcs|��t���dSr!)r rerFr$rgrrrF5szRedHatKubernetes.setup)r`rarb�
KUBE_PACKAGES�packages�KUBECONFIGSr�	KUBE_SVCSr
rfrF�
__classcell__rrrgrrd's
rdcsHeZdZedZedZedZ�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 kubectlrozk8s kubectlz/root/cdk/kubelet/config.yamlz!/root/cdk/audit/audit-policy.yaml)r r?r�_canonical_kubernetesr6rArerFr$rgrrrFOs

�zUbuntuKubernetes.setupc
sz|jdd�d�d}ddg}|�|�d�|�d�|�d	�|�d
�|�d�|�d�|�d
�g�|��fdd�|D��dS)Nz
snap.k8s.*)Zunitsroz/var/snap/k8s/commonr2rz/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"rD�Zk8s_cmdrrr0ssz:UbuntuKubernetes._canonical_kubernetes.<locals>.<listcomp>)Zadd_journalr5r:)rZ
k8s_commonZk8s_subcmdsrrqrrp^s$��
�z&UbuntuKubernetes._canonical_kubernetescst���|�d�dS)Nz;/var/snap/k8s/common/var/lib/k8sd/state/truststore/k8s.yaml)rer_r]r$rgrrr_ws
�zUbuntuKubernetes.postproc)
r`rarbrirjrkrrlr
rFrpr_rmrrrgrrn:s
rn)ZfnmatchrrXrVrZsos.report.pluginsrrrrrrirlrkr
rdrnrrrr�<module>s