Ë
    i©¹d   ã                   óv   — d dl mZmZmZmZ d dlmZ d dlZ G d„ de«      Z G d„ dee«      Z	 G d„ d	ee«      Z
y)
é    )ÚPluginÚRedHatPluginÚUbuntuPluginÚ	PluginOpt)Ú	translateNc            	       ó„   — e Zd ZdZdZdZ eddd¬«       eddd	¬«       ed
dd¬«       edded¬«      gZdZ	d„ Z
d„ Zd„ Zy)Ú
Kubernetesz+Kubernetes container orchestration platformÚ
kubernetes)Ú	containerÚallFz'collect all namespace output separately)ÚdefaultÚdescÚdescribez(collect describe output of all resourcesÚpodlogsz$capture stdout/stderr logs from podsúpodlogs-filterÚ z1only collect logs from pods matching this pattern)r   Úval_typer   Úkubectlc                 óp   — t        | j                  D �cg c]  }| j                  |«      ‘Œ c}«      S c c}w )N)ÚanyÚfilesÚpath_exists)ÚselfÚfs     ú?/usr/lib/python3/dist-packages/sos/report/plugins/kubernetes.pyÚcheck_is_masterzKubernetes.check_is_master%   s*   € Ü°·±Ö<¨A�D×$Ñ$ QÕ'Ò<Ó=Ð=ùÒ<s   ”3c           
      óŽ  — | j                  d«       | j                  d«       | j                  g d¢«       g d¢}|D ]  }| j                  |¬«       Œ | j                  «       sy d}dD ]"  }| j	                  | j
                  ›d|›�«       Œ$ | j                  d	| j
                  z  «      }|d
   j                  «       dd  }|D �cg c]2  }|sŒt        |j                  «       «      sŒ |j                  «       d   ‘Œ4 }}g d¢}	g d¢}
| j	                  |
D �cg c]  }| j
                  ›d|›�‘Œ c}«       | j                  d| j
                  z  «      }|d   dk(  rU|d
   j                  «       dd  D ]<  }|j                  «       }|sŒ|d   }| j	                  | j
                  ›d|›�d¬«       Œ> | j	                  d| j
                  z  «       | j                  d«      r$|	j                  ddg«       | j	                  d«       |D �]ê  }d|z  }| j                  d«      rG| j
                  ›d|›d|›�}| j	                  d|z  «       |	D ]  }| j	                  |›d|›�|¬«       Œ | j                  d«      rž| j
                  ›d|›�}|	D ]ˆ  }| j                  |›d|›�«      }|d   dk(  sŒ"|d
   j                  «       dd  D �cg c]  }|j                  «       d   ‘Œ }}|D ].  }| j
                  ›d|›�}| j	                  |›d|›d|›�|¬«       Œ0 ŒŠ | j                  d«      s�Œ#| j
                  ›d|›�}| j                  d |z  «      }|d   dk(  s�ŒR|d
   j                  «       dd  D �cg c]  }|j                  «       d   ‘Œ }}| j                  d!«      rt        | j                  d!«      «      nd }|D ]3  }|rt        j                   ||«      sŒ| j	                  |›d"|›�d#¬«       Œ5 �Œí | j                  d«      s/d$| j
                  z  }|	D ]  }| j	                  |›d|›�|¬«       Œ y y c c}w c c}w c c}w c c}w )%Nz/etc/kubernetesz/run/flannel)Ú
KUBECONFIGÚKUBERNETES_HTTP_PROXYÚKUBERNETES_HTTPS_PROXYÚKUBERNETES_NO_PROXY)
Úkubeletzkube-apiserverz
kube-proxyzkube-schedulerzkube-controller-managerzsnap.kubelet.daemonzsnap.kube-apiserver.daemonzsnap.kube-proxy.daemonzsnap.kube-scheduler.daemonz#snap.kube-controller-manager.daemon©Úunitszget -o json )Úversionzconfig viewú z%s get namespacesÚoutputé   r   )
ÚdeploymentsÚ	ingressesÚlimitrangesÚpodsÚpoliciesÚpvcÚrcÚresourcequotasÚroutesÚservices)Ú
namespacesÚprojectsÚpvsz get z%s get nodesÚstatusz describe node Únodes)Úsubdirz%s get --raw /metricszkubevirt-virtctlÚvmsÚvmiszvirtctl versionz--namespace=%sr   z	%s eventsr   z
 describe r   z%s get podsr   z logs r,   z%s get --all-namespaces=true)Úadd_copy_specÚadd_env_varÚadd_journalr   Úadd_cmd_outputÚkube_cmdÚcollect_cmd_outputÚ
splitlinesÚlenÚsplitÚis_installedÚextendÚ
get_optionÚexec_cmdr   ÚreÚmatch)r   ÚsvcsÚsvcÚkube_get_cmdÚsubcmdÚknÚ	kn_outputÚnÚknspsÚ	resourcesÚglobal_resourcesÚresr7   ÚlineÚwordsÚnodeÚknspÚk_cmdÚrÚkÚk_listÚpr,   ÚregÚpods                            r   ÚsetupzKubernetes.setup(   sx  € Ø×ÑÐ,Ô-Ø×Ñ˜>Ô*à×Ñò 
ô 	ò
ˆð ò 	(ˆCØ×Ñ 3ÐÕ'ð	(ð ×#Ñ#Ô%Øà%ˆØ0ò 	CˆFØ×Ñ¨4¯=«=¹&Ð AÕBð	Cð ×$Ñ$Ð%8¸4¿=¹=Ñ%HÓIˆà�x‘L×+Ñ+Ó-¨a¨bÐ1ˆ	Ø'0ÖI !²A¼#¸a¿g¹g»i½.�—‘“˜1“ÐIˆÐIò
ˆ	ò
Ðð
 	×ÑØ:Jö
Ø36˜4Ÿ=›=©#Ò.ò
ô 	ð
 ×'Ñ'¨¸¿¹Ñ(FÓGˆØ�‰?˜aÒØ˜h™×2Ñ2Ó4°Q°RÐ8ò 	�àŸ
™
›�ÙØØ˜Q‘x�Ø×#Ñ#Ø-1¯]«]¹DÐAØ"ð $õ ð	ð 	×ÑÐ3°d·m±mÑCÔDð ×ÑÐ/Ô0Ø×Ñ˜e V˜_Ô-Ø×ÑÐ 1Ô2àó &	;ˆAØ# aÑ'ˆDØ�‰˜uÔ%Ø&*§m£m²\Á4ÐH�à×#Ñ# K°%Ñ$7Ô8à$ò L�CØ×'Ñ'²5¹#Ð(>ÀsÐ'ÕKðLð �‰˜zÔ*à#'§=£=±$Ð7�Ø$ò 
�CØŸ™²U¹CÐ&@ÓA�AØ˜‘{ aÓ'à"# H¡+×"8Ñ"8Ó":¸1¸2Ð">ö"@°1 !§'¡'£)¨A£,ð "@˜ð "@à!'ò ˜AØ/3¯}«}¹dÐ$C˜EØ ×/Ñ/Ú7<ºcÁ1Ð EØ'*ð 0õ ñð
ð �‰˜yÖ)Ø#'§=£=±$Ð7�Ø—M‘M -°%Ñ"7Ó8�Ø�X‘; !Ô#à˜h™K×2Ñ2Ó4°Q°RÐ8ö:¨Q˜AŸG™G›I a›Lð :�Dð :ð  Ÿ?™?Ð+;Ô<ô % T§_¡_Ð5EÓ%FÔGØBFð à#ò ;˜Ù¤r§x¡x°°SÔ'9Ø$Ø×+Ñ+ºEÁ3Ð,GØ39ð ,õ ;ò;ðE&	;ðP �‰˜uÔ%Ø2°T·]±]ÑBˆEØ ò H�Ø×#Ñ#ªu±cÐ$:À3Ð#ÕGñHð &ùòo Jùò*
ùòT"@ùò:s$   ÃP3ÃP3Ã'P3ÄP8ËP=Í.Qc                 óP   — d}| j                  d|d«       | j                  d«       y )NzX(?P<var>{\s*"name":\s*[^,]*(pass|pwd|key|token|cred|PASS|PWD|KEY)[^,]*,\s*"value":)[^}]*r   z\g<var> "********")Údo_cmd_output_subÚdo_cmd_private_sub)r   Ú
env_regexps     r   ÚpostproczKubernetes.postproc«   s/   € ð
Mˆ
à×Ñ˜y¨*Ø4ô	6ð
 	×Ñ 	Õ*ó    N)Ú__name__Ú
__module__Ú__qualname__Ú
short_descÚplugin_nameÚprofilesr   ÚstrÚoption_listr?   r   r`   re   © rf   r   r	   r	      su   „ à>€Jà€KØ€Hñ 	�% Ø@ô	Bá�* eØAô	Cá�) UØ=ô	?áÐ"¨B¸ØJô	Lð	€Kð €Hò>òAHóF+rf   r	   c                   ó*   ‡ — e Zd ZdZdZdZˆ fd„Zˆ xZS )ÚRedHatKubernetes)r
   zkubernetes-masterzatomic-openshift-master)ú#/etc/origin/master/admin.kubeconfigz(/etc/origin/node/pods/master-config.yamlr   c                 óZ   •— | j                  d«      rd| _        t        t        | �  «        y )Nrr   Úoc)r   r?   Úsuperrq   r`   )r   Ú	__class__s    €r   r`   zRedHatKubernetes.setupÇ   s)   ø€ ð ×ÑÐAÔBØ ˆDŒMÜÔ Ñ+Õ-rf   )rg   rh   ri   Úpackagesr   r?   r`   Ú__classcell__©rv   s   @r   rq   rq   º   s#   ø„ ð N€Hð€Eð
 €H÷.ð .rf   rq   c                   ó*   ‡ — e Zd ZdZdZdZˆ fd„Zˆ xZS )ÚUbuntuKubernetes)r
   )z#/root/cdk/cdk_addons_kubectl_configz/etc/kubernetes/admin.conf)zcdk.master.auth-webhookc                 óè   •— | j                   D ]-  }| j                  |«      sŒ| xj                  d|z  z  c_         n | j                  D ]  }| j	                  |¬«       Œ t
        t        | �  «        y )Nz --kubeconfig=%sr#   )r   r   r?   r2   r=   ru   r{   r`   )r   Ú_kconfrK   rv   s      €r   r`   zUbuntuKubernetes.setupÝ   sq   ø€ Ø—j‘jò 	ˆFØ×Ñ Õ'Ø—’Ð!3°fÑ!<Ñ<•Ùð	ð
 —=‘=ò 	(ˆCØ×Ñ 3ÐÕ'ð	(ô 	Ô Ñ+Õ-rf   )rg   rh   ri   rw   r   r2   r`   rx   ry   s   @r   r{   r{   Ð   s    ø„ à€Hð€Eð
€H÷
	.ð 	.rf   r{   )Úsos.report.pluginsr   r   r   r   Úfnmatchr   rH   r	   rq   r{   ro   rf   r   ú<module>r€      s?   ð÷ MÓ LÝ Û 	ôf+�ô f+ôR.�z <ô .ô,.�z <õ .rf   