+
    G%@i1                         ^ 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    ::>>,''jjF''>&!:: !    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     ;
14##A&&
s   !TF)anyr   )r   s   fr    check_is_masterKubernetes.check_is_masters   s4    s;

;ss;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 
 	 ##%%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           
     $   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 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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                   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   ==/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                    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~~##gQse$) $  & &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4A6  ) 01djj!1$2C2C!CDEQ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((.DMu%%)DM&&(  +/"
 	 	r#   c           
         V P                  R 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	  qA RV 2NK  	  up4       R# u upi )z
snap.k8s.*)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)add_journalr?   rF   )r   k8s_cmd
k8s_commonk8s_subcmdsrP   s   &    r    r   &UbuntuKubernetes._canonical_kubernetes^  s    |,+
 

 	l% l78l:;lABl@AlCDl9:
 	 	0;
0;fiq!
 	 
s   A/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.postprocw  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   :  sL        H   E
   H2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 ~7Bz< &AKz< AKr#   