+
    il3  c                   s    ^ RI Ht ^ RIt^ RIt^ RIt^ RIHtHtHtH	t	H
t
 R
tRtRt ! R R]4      t ! R R]]4      t ! R R	]]	]4      tR# )i    )	translateN)PluginRedHatPluginDebianPluginUbuntuPlugin	PluginOptc                   s   a  ] tR t^&t o RtRtRtRt. ROtR.t	. ROt
. R Ot. R!Ot]! RRRR7      ]! R	RR
R7      ]! RRRR7      ]! RRRR7      ]! RR]RR7      .tRtR tR tR tR tR tR tR tRtV tR# )"
Kubernetesz+Kubernetes container orchestration platform
kubernetesi  z/etc/kubernetes/pki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-filterZ z1only collect logs from pods matching this pattern)r	   Zval_typer
   Zkubectlc                s    \         P                  P                  R 4      '       d   R# V P                   F9  pV P	                  V4      '       g   K  V ;P
                  RV 2,          un         R# 	  R# )
KUBECONFIGNz --kubeconfig=)osZenvirongetfilespath_existskube_cmd)selfZ_kconfs   & B/usr/lib/python3.14/site-packages/sos/report/plugins/kubernetes.pyset_kubeconfigZKubernetes.set_kubeconfigk   sO    ::>>,''jjF''>&!:: !    c                s   a  \         ;QJ d)    V 3R lS P                   4       F  '       g   K   R# 	  R# ! V 3R lS P                   4       4      # )z!Check if this is the master node c              3   sF   <"   T F  pSP                  V4      x  K  	  R # 5iN)r   )Z.0Zfr   s   & r   Z	<genexpr>Z-Kubernetes.check_is_master.<locals>.<genexpr>u   s     ;
14##A&&
s   !TF)Zanyr   )r   s   fr   check_is_masterZKubernetes.check_is_masters   s4    s;

;ss;s;s;

;;;r   c                s`   V P                  V P                  4       V P                  V P                  4       V P	                  R 4      '       d   V P                  V P
                  4       V P                  . RO4       V P                  4       '       g   R# R F%  pV P                  V P                   RV 2RR7       K'  	  V P	                  R4      '       d>   T P                  V P                   Uu. uF  pV P                   RV 2NK  	  upRR7       M<T P                  V P                   Uu. uF  pV P                   RV 2NK  	  upRR7       V P                  V P                   R2RR7      pVR	,          ^ 8X  d   V P	                  R
4      '       dk   VR,          P                  4       R,           FH  pVP                  4       pV'       g   K  V^ ,          pV P                  V P                   RV 2RR7       KJ  	  V P                  V P                   R2.RR7       V P                  V P                   R2RR7       V P                  R4      '       d/   V P                  P!                  RR.4       V P                  R4       V P#                  4        V P%                  4        R# u upi u upi )r   N cluster-infoZsubdirr    get -o json  get z
 get nodesstatusr   outputi   NNz describe node z get -o json nodesz get --raw /metricszkubevirt-virtctlZvmsZvmiszvirtctl version)r   ZKUBERNETES_HTTP_PROXYZKUBERNETES_HTTPS_PROXYZKUBERNETES_NO_PROXY)Zversionzconfig view)add_copy_specconfig_filesZadd_forbidden_pathforbidden_paths
get_optionkube_system_logsZadd_env_varr   add_cmd_outputr   global_resourcescollect_cmd_output
splitlinessplitis_installed	resourcesextendcollect_per_resource_detailscollect_all_resources)r   subcmdresZnodesZlineZwordsZnodes   &      r   setupZKubernetes.setupw   s   4,,- 4 45??:&&t445 
 	 ##%%0F==/6(+%    1 ??5!!00!0C ==/se40! %   &
 00!0C ==/se,0! %   & ''4==/(D/= ( ??aDOOJ$?$?h224R88

Qx##}}o_TF;) $  9 	}}o/0
  	 	"
 	}}o01! 	 	
 /00NN!!5&/2 12))+""$S!
!s   /J&,J+c           
     s$   V P                  V P                   R2RR7      pVR,          P                  4       R,          pV Uu. uFD  q3'       g   K  \        VP	                  4       4      '       g   K-  VP	                  4       ^ ,          NKF  	  ppV EFp  pRV 2pV P                  R4      '       d@   V P                   RV 2pV P                   F  pV P                  V R	V 2R
V 2R7       K   	  V P                  R4      '       d   V P                   R	V 2pV P                   F  pVR8X  d   K  V P                  V RV 24      p	V	R,          ^ 8X  g   K2  V	R,          P                  4       R,           U
u. uF  qP	                  4       ^ ,          NK  	  pp
V F5  pV P                   R	V 2pV P                  V RV R	V 2R
V RV 2R7       K7  	  K  	  V P                  R4      '       g   EK_  V P                  V4       EKs  	  R# u upi u up
i )z6Collect details about each resource in all namespaces z get namespacesr   r   r!   r"   z--namespace=r   r   r   cluster-info/r   eventsr   r    z
 describe Z/r   N)
r*   r   r+   Zlenr,   r&   r.   r(   exec_cmd_get_pod_logs)r   ZknsZ	kn_outputZnZknspsZnspaceZknspk_cmdr3   retZkZk_listZitems   &            r   r0   Z'Kubernetes.collect_per_resource_details   s    %%&G-; & = M,,.r2	'0Iy!A#aggi.1yIF!&*Du%%==/tf=>>C'' '3%(!.vh7 (  * z**==/4&1>>Ch --5'se(<=C8})"%h-":":"<R"@"B"@ 45'')A,,"@  "B$*D'+}}oQtf$=E //#('C5$ @)6vhau'E 0  %+ * y))""4(;  J*"Bs   	HH2H6Hc                s   V P                    R V 2pV P                  V R24      pVR,          ^ 8X  Ed   \        P                  ! VR,          4      pV P	                  R4      '       d   \        V P	                  R4      4      MRpVR,           EF*  pV'       d-   \        P                  ! WVR,          R,          4      '       g   K8  R	VR,          R
,           RVR,          R,           2pRVR,          9   dY   VR,          R,           FD  pVR,          R,          p	VR,          p
V P                  V P                    RV RV	 RV
 2VR7       KF  	  RVR,          9   g   K  VR,          R,           FD  pVR,          R,          p	VR,          p
V P                  V P                    RV RV	 RV
 2VR7       KF  	  EK-  	  R# R# )r   z podsr    r!   r   NZitemsZmetadataZnamer5   	namespacez	/podlogs/Z
containersZspecr   z logs z -c r   ZinitContainers)	r   r7   jsonZloadsr&   r    reZmatchr(   )r   r;   r9   r:   podsZregZpodZ_subdirZcontZpod_nameZ	cont_names   &&         r   r8   ZKubernetes._get_pod_logs   s   ==/yk:mmugUO,x=A::c(m,D ??#344 T__-=>?:> G}}rxx_V-DEE*!*ok:;9!*of568  3v;. #FL 9 9#&z?6#:$(L	++#}}oQyk'jYK9#* ,  !: $s6{2 #F,< = =#&z?6#:$(L	++#}}oQyk'jYK9#* ,  !>! % r   c                s    V P                  R4      '       g=   V P                   R2pV P                   F  pV P                  V RV 2RR7       K  	  R# R# )z$Collect details about all resources r   z get --all-namespaces=truer   r   r   N)r&   r   r.   r(   )r   r9   r3   s   &  r   r1   Z Kubernetes.collect_all_resources  sY    u%%}}o%?@E~~##gQse$) $  & &r   c                sx   R pV P                  V P                  VR4       V P                  V P                  4       RRP                  V P                  4       R2pV P                  V4       RpRpRRP                  \        V P                  4      V P                  ,           4       R2pV P                  W#V4       R# )zX(?P<var>{\s*"name":\s*[^,]*(pass|pwd|key|token|cred|PASS|PWD|KEY)[^,]*,\s*"value":)[^}]*z\g<var> "********"z^(Z|Z)zLS0tLS1CRUdJ[A-Za-z0-9+/=]+z***** SCRUBBED BASE64 PEM *****N)	Zdo_cmd_output_subr   Zdo_cmd_private_subZjoinr$   do_file_private_subZlistr   Zdo_path_regex_sub)r   Z
env_regexpZpathexpZregexpZsubsts   &    r   postprocZKubernetes.postproc  s    
M
t}}j4	6
 	.!2!234A6  ) 01djj!1$2C2C!CDEQGw6r    N)Z	container)z/etc/kubernetesz/run/flannelz/var/lib/kubelet/config.yamlz"/var/lib/kubelet/kubeadm-flags.envz /var/lib/kubelet/*_manager_state)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-*)r6   ZdeploymentsZ	ingressesr>   ZpvcservicesZ
daemonsetsZreplicasetsZ	endpointsZstatefulsetsZ
configmapsZserviceaccountsZsecretsZjobsZcronjobsZclusterrolesZclusterrolebindingsZlimitrangesZresourcequotas)ZscZpvZrolesZrolebindings)__name__
__module____qualname____firstlineno__Z
short_descZplugin_nameZprofilesZplugin_timeoutr$   r%   r'   r.   r)   r   ZstrZoption_listr   r   r   r4   r0   r8   r1   r@   __static_attributes____classdictcell__)__classdict__s   @r   r   r   &   s     >JKHNL 	OI. 	%@	B*eA	C*eM	O)UK	M"BJ	LK H<C%J&)PB7 7r   r   c                   sJ   a a ] tR tRt o]t]t]t	V 3R lt
V 3R ltRtVtV ;t# )RedHatKubernetesi'  c                sR   < V P                  R 4      '       d   R# \        SV `	  4       # )zopenshift-hyperkubeF)r-   supercheck_enabledr   	__class__   &r   rL   ZRedHatKubernetes.check_enabled/  s&    233w$&&r   c                sD   < V P                  4        \        SV `	  4        R # r   )r   rK   r4   rM   rO   r   r4   ZRedHatKubernetes.setup5  s    r   rA   )rC   rD   rE   rF   KUBE_PACKAGESpackagesKUBECONFIGSr   	KUBE_SVCSrB   rL   r4   rG   rH   __classcell__rN   rI      @@r   rJ   rJ   '  s#     HEH' r   rJ   c                   sz   a a ] tR tRt o]R,           t]R,           t]R,           t	V 3R lt
R tV 3R ltRtVtV ;t# )	UbuntuKubernetesi:  c                s  < V P                  4        V P                  R 4      '       d	   RV n        M.V P                  R4      '       d   RV n        V P                  4        V P                  P                  RR.4       \        SV `  4        R# )Zmicrok8szmicrok8s kubectlk8szk8s kubectlz/root/cdk/kubelet/config.yamlz!/root/cdk/audit/audit-policy.yamlN)r   r-   r   _canonical_kubernetesr$   r/   rK   r4   rM   rO   r   r4   ZUbuntuKubernetes.setupO  su    Z((.DMu%%)DM&&(  +/"
 	 	r   c           
     s    . ROpV P                  VR7       RpRpRR.pV P                  V R2V R2V R2V R	2V R
2V R2V R2.4       T P                  V Uu. uF	  qR RV 2NK  	  up4       R# u upi )snap.k8s.containerd.service)ZunitsrX   z/var/snap/k8s/commonr    r   z/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.yamlr   N)rZ   zsnap.k8s.etcd.servicezsnap.k8s.k8sd.servicezsnap.k8s.kube-apiserver.servicez(snap.k8s.kube-controller-manager.servicezsnap.k8s.kube-proxy.servicezsnap.k8s.kube-scheduler.servicezsnap.k8s.kubelet.service)Zadd_journalr#   r(   )r   Z	k8s_unitsZk8s_cmdZ
k8s_commonZk8s_subcmdsr2   s   &     r   rY   Z&UbuntuKubernetes._canonical_kubernetes^  s    1	 	y)+
 

 	l% l78l:;lABl@AlCDl9:
 	 	0;
0;fiq!
 	 
s   A3c                sF   < \         SV `  4        V P                  R 4       R# )z;/var/snap/k8s/common/var/lib/k8sd/state/truststore/k8s.yamlN)rK   r@   r?   rM   rO   r   r@   ZUbuntuKubernetes.postproc  s       I	Kr   )r   )rX   )z#/root/cdk/cdk_addons_kubectl_configz4/var/snap/microk8s/current/credentials/client.config)zsnap.kubelet.daemonzsnap.kube-apiserver.daemonzsnap.kube-proxy.daemonzsnap.kube-scheduler.daemonz#snap.kube-controller-manager.daemonzcdk.master.auth-webhook)rC   rD   rE   rF   rP   rQ   rR   r   rS   rB   r4   rY   r@   rG   rH   rT   rU   rV   r   rW   rW   :  sM        H   E
   HBK Kr   rW   )kubeletr   )r[   zkube-apiserverz
kube-proxyzkube-schedulerzkube-controller-manager)z/etc/kubernetes/admin.conf)Zfnmatchr    r=   r<   r   Zsos.report.pluginsr   r   r   r   r   rP   rS   rR   r   rJ   rW   rA   r   r   <module>r\      sc     	  	9 9
	
~7 ~7Bz< &IKz< IKr   