+
    Û1jl3  ã                   óš   € ^ 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# )é    )Ú	translateN)ÚPluginÚRedHatPluginÚDebianPluginÚUbuntuPluginÚ	PluginOptc                   óî   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-filterÚ z1only collect logs from pods matching this pattern)r   Úval_typer   Úkubectlc                óæ   € \         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=)ÚosÚenvironÚgetÚfilesÚpath_existsÚkube_cmd)ÚselfÚ_kconfs   & Ú?/usr/lib/python3/dist-packages/sos/report/plugins/kubernetes.pyÚset_kubeconfigÚKubernetes.set_kubeconfigk   sO   € Ü�:‰:�>‰>˜,×'Ò'ÙØ—j”jˆFØ×Ñ ×'Ô'Ø—’ >°&°Ð!:Õ:•Úó !ó    c                ó    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   óF   <"  € T F  pSP                  V4      x € K  	  R # 5i©N)r   )Ú.0Úfr   s   & €r    Ú	<genexpr>Ú-Kubernetes.check_is_master.<locals>.<genexpr>u   s   øé € Ð;±
¨1�4×#Ñ# A×&Ð&³
ùs   ƒ!TF)Úanyr   )r   s   fr    Úcheck_is_masterÚKubernetes.check_is_masters   s4   ø€ ç‹sÔ;°·
²
Ó;�sŒsÐ;ŠsÐ;ˆsÔ;°·
²
Ó;Ó;Ð;r#   c                ó`  € 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©Úsubdirr   ú get -o json ú get z
 get nodesÚstatusr   Úoutputºé   NNz describe node z get -o json nodesz get --raw /metricszkubevirt-virtctlÚvmsÚvmiszvirtctl version)r   ÚKUBERNETES_HTTP_PROXYÚKUBERNETES_HTTPS_PROXYÚKUBERNETES_NO_PROXY)Úversionzconfig view)Úadd_copy_specÚconfig_filesÚadd_forbidden_pathÚforbidden_pathsÚ
get_optionÚkube_system_logsÚ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ÚresÚnodesÚlineÚwordsÚnodes   &      r    ÚsetupÚKubernetes.setupw   sš  € Ø×Ñ˜4×,Ñ,Ô-à×Ñ × 4Ñ 4Ô5à�?‰?˜:×&Ò&Ø×Ñ˜t×4Ñ4Ô5à×Ñò 
ô 	ð ×#Ñ#×%Ò%Ùã0ˆFØ×ÑØ—=‘=�/  6 (Ð+Ø%ð  ö ñ 1ð �?‰?˜5×!Ò!Ø×Ñà×0Ò0ó!á0�Cð —=‘=�/ ¨s¨eÓ4Ù0ñ!ð %ð  õ &ð
 ×Ñà×0Ò0ó!á0�Cð —=‘=�/  s eÓ,Ù0ñ!ð %ð  ô &ð ×'Ñ'¨4¯=©=¨/¸Ð(DØ/=ð (ó ?ˆà��?˜aÔ D§O¡O°J×$?Ò$?Ø˜h�×2Ñ2Ó4°R×8Ð8�àŸ
™
›�ßÙØ˜Q•x�Ø×#Ñ#Ø—}‘}�o _°T°FÐ;Ø)ð $ö ñ 9ð 	×ÑØ�}‰}ˆoÐ/Ð0ð
à ð 	ô 	"ð
 	×ÑØ�}‰}ˆoÐ0Ð1Ø!ð 	ô 	
ð ×ÑÐ/×0Ò0Ø�N‰N×!Ñ! 5¨& /Ô2Ø×ÑÐ 1Ô2à×)Ñ)Ô+Ø×"Ñ"Ö$ùòS!ùò
!s   Ã/J&Ä,J+c           
     ó$  € 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  qªP	                  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 namespacesr0   r1   r6   r7   z--namespace=r   r3   r/   úcluster-info/r   Úeventsr4   r5   z
 describe Ú/r   N)
rH   r   rI   ÚlenrJ   rC   rL   rF   Úexec_cmdÚ_get_pod_logs)r   ÚknsÚ	kn_outputÚnÚknspsÚnspaceÚknspÚk_cmdrQ   ÚretÚkÚk_listÚitems   &            r    rN   Ú'Kubernetes.collect_per_resource_details¼   s  € ð ×%Ñ%¨¯©¨°Ð&GØ-;ð &ó =ˆð ˜•M×,Ñ,Ó.¨rÕ2ˆ	Ù'0ÓI¡y !³A”¼#¸a¿g¹g»i¿.”�—‘“˜1—�¡yˆÐIäˆFØ! & Ð*ˆDØ�‰˜u×%Ò%ØŸ=™=˜/¨°t°fÐ=�àŸ>œ>�CØ×'Ñ'Ø ˜'  3 %Ð(Ø!.¨v¨hÐ7ð (ö ñ *ð �‰˜z×*Ò*àŸ=™=˜/¨¨4¨&Ð1�ØŸ>œ>�CØ˜h”Ù ØŸ-™-¨5¨'°°s°eÐ(<Ó=�CØ˜8•}¨Ö)à"% h¥-×":Ñ":Ó"<¸RÖ"@ó"BÙ"@ð 45§'¡'£)¨A§, ,Ù"@ð ð "Bã$*˜DØ'+§}¡} o°Q°t°fÐ$=˜EØ ×/Ñ/Ø#( '¨°C°5¸¸$¸Ð @Ø)6°v°h¸aÀ¸uÐ'Eð 0ö ó %+ñ *ð �‰˜y×)Õ)Ø×"Ñ" 4×(ó; ùò Jùò*"Bs   Á	HÁHÁ2HÅ6Hc                ó‚  € 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# )r3   z podsr5   r6   r   NÚitemsÚmetadataÚnamerY   Ú	namespacez	/podlogs/Ú
containersÚspecr/   z logs z -c r1   ÚinitContainers)	r   r]   ÚjsonÚloadsrC   r   ÚreÚmatchrF   )r   ro   re   rf   ÚpodsÚregÚpodÚ_subdirÚcontÚpod_nameÚ	cont_names   &&         r    r^   ÚKubernetes._get_pod_logsä   s·  € Ø—=‘=�/ ¨y¨kÐ:ˆØ�m‰m˜u˜g U˜OÓ,ˆØˆx�=˜AÕÜ—:’:˜c (�mÓ,ˆDð —?‘?Ð#3×4Ò4ô ˜TŸ_™_Ð-=Ó>Ô?Ø:>ð à˜G—}‘}�ßœrŸxšx¨°­_¸VÕ-D×EÒEÙØ*Ø! *�o¨kÕ:Ð;¸9Ø! *�o¨fÕ5Ð6ð8�ð   3 v¥;Ô.Ø # F¥¨L× 9Ð 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                ó¬   € 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/   r0   r1   N)rC   r   rL   rF   )r   re   rQ   s   &  r    rO   Ú Kubernetes.collect_all_resources  sY   € à�‰˜u×%Ò%Ø—}‘}�oÐ%?Ð@ˆEØ—~”~�Ø×#Ñ#Ø�g˜Q˜s˜eÐ$Ø)ð $ö ó &ñ &r#   c                óx  € 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LS0tLS1CRUdJ[A-Za-z0-9+/=]+z***** SCRUBBED BASE64 PEM *****N)	Údo_cmd_output_subr   Údo_cmd_private_subÚjoinr@   Údo_file_private_subÚlistr   Údo_path_regex_sub)r   Ú
env_regexpÚpathexpÚregexpÚsubsts   &    r    ÚpostprocÚKubernetes.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)Ú	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-*)rZ   ÚdeploymentsÚ	ingressesrw   ÚpvcÚservicesÚ
daemonsetsÚreplicasetsÚ	endpointsÚstatefulsetsÚ
configmapsÚserviceaccountsÚsecretsÚjobsÚcronjobsÚclusterrolesÚclusterrolebindingsÚlimitrangesÚresourcequotas)ÚscÚpvÚrolesÚrolebindings)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú
short_descÚplugin_nameÚprofilesÚplugin_timeoutr@   rB   rD   rL   rG   r   ÚstrÚoption_listr   r!   r,   rV   rN   r^   rO   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                   óJ   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                óR   <€ V P                  R 4      '       d   R# \        SV `	  4       # )zopenshift-hyperkubeF)rK   ÚsuperÚcheck_enabled©r   Ú	__class__s   &€r    r¸   ÚRedHatKubernetes.check_enabled/  s&   ø€ à×ÑÐ2×3Ò3ÙÜ‰wÑ$Ó&Ð&r#   c                óD   <€ V P                  4        \        SV `	  4        R # r&   )r!   r·   rV   r¹   s   &€r    rV   ÚRedHatKubernetes.setup5  s   ø€ Ø×ÑÔÜ‰‰Žr#   r�   )r§   r¨   r©   rª   ÚKUBE_PACKAGESÚpackagesÚKUBECONFIGSr   Ú	KUBE_SVCSr•   r¸   rV   r±   r²   Ú__classcell__©rº   r³   s   @@r    rµ   rµ   '  s#   ù‡ € à€Hà€Eà€Hõ'÷õ r#   rµ   c                   óz   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                ó  <€ 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# )Úmicrok8szmicrok8s kubectlÚk8szk8s kubectlz/root/cdk/kubelet/config.yamlz!/root/cdk/audit/audit-policy.yamlN)r!   rK   r   Ú_canonical_kubernetesr@   rM   r·   rV   r¹   s   &€r    rV   ÚUbuntuKubernetes.setupO  su   ø€ Ø×ÑÔà×Ñ˜Z×(Ò(Ø.ˆD�MØ×Ñ˜u×%Ò%Ø)ˆDŒMØ×&Ñ&Ô(à×Ñ× Ñ Ø+Ø/ð"
ô 	ô 	‰‰Žr#   c           
     óð   € . 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)ÚunitsrÈ   z/var/snap/k8s/commonr5   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)rÌ   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)Úadd_journalr?   rF   )r   Ú	k8s_unitsÚk8s_cmdÚ
k8s_commonÚk8s_subcmdsrP   s   &     r    rÉ   Ú&UbuntuKubernetes._canonical_kubernetes^  sË   € ò1ˆ	ð 	×Ñ˜yÐÔ)àˆØ+ˆ
ð Øð
ˆð
 	×ÑØˆl˜%Ð ØˆlÐ7Ð8ØˆlÐ:Ð;ØˆlÐAÐBØˆlÐ@ÐAØˆlÐCÐDØˆlÐ9Ð:ð
ô 	ð 	×ÑÙ0;ó
Ù0; fˆi�q˜˜Ó!±ñ
ö 	ùò 
s   ÁA3c                óF   <€ \         SV `  4        V P                  R 4       R# )z;/var/snap/k8s/common/var/lib/k8sd/state/truststore/k8s.yamlN)r·   rŽ   r‡   r¹   s   &€r    rŽ   ÚUbuntuKubernetes.postproc  s    ø€ Ü‰ÑÔà× Ñ ØIö	Kr#   )r   )rÈ   )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)r§   r¨   r©   rª   r¾   r¿   rÀ   r   rÁ   r•   rV   rÉ   rŽ   r±   r²   rÂ   rÃ   s   @@r    rÅ   rÅ   :  sM   ù‡ € àð  õ €Hð ð õ €Eð
 ð õ €Hõò÷BKõ Kr#   rÅ   )Úkubeletr   )rÖ   zkube-apiserverz
kube-proxyzkube-schedulerzkube-controller-manager)z/etc/kubernetes/admin.conf)Úfnmatchr   ru   rs   r   Úsos.report.pluginsr   r   r   r   r   r¾   rÁ   rÀ   r
   rµ   rÅ   r�   r#   r    Ú<module>rÙ      sc   ðõ Û 	Û Û 	÷9õ 9ð€ð
€	ð€ô
~7�ô ~7ôB�z <ô ô&IK�z <°ö IKr#   