JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr O6uf*ddlmZddlZddlZddlZddlmZmZmZm Z m Z dZ dZ dZ GddeZGd d eeZGd d ee eZy) ) translateN)Plugin RedHatPlugin DebianPlugin UbuntuPlugin PluginOpt)kubelet kubernetes)r zkube-apiserverz kube-proxyzkube-schedulerzkube-controller-manager)z/etc/kubernetes/admin.confc eZdZdZdZdZdZddgZgdZgdZ e d d d e d d d e dd d e dde dgZ dZ dZdZdZdZdZdZdZy) Kubernetesz+Kubernetes container orchestration platformr ) containeriz/etc/kubernetesz /run/flannel)events deployments ingressespodspvcservices daemonsets replicasets endpoints statefulsets configmapsserviceaccountssecretsjobscronjobs clusterrolesclusterrolebindings limitrangesresourcequotas)scpvroles rolebindingsallFz'collect all namespace output separately)defaultdescdescribez(collect describe output of all resourcespodlogsz$capture stdout/stderr logs from podspodlogs-filterz1only collect logs from pods matching this pattern)r&val_typer'kubectlctjjdry|jD]-}|j |s|xj d|z c_yy)N KUBECONFIGz --kubeconfig=)osenvirongetfiles path_existskube_cmd)self_kconfs ?/usr/lib/python3/dist-packages/sos/report/plugins/kubernetes.pyset_kubeconfigzKubernetes.set_kubeconfig]sN ::>>, ' jj F' >&!::  c@tfdjDS)z" Check if this is the master node c3@K|]}j|ywN)r4).0fr6s r8 z-Kubernetes.check_is_master..gs;14##A&;s)anyr3)r6s`r8check_is_masterzKubernetes.check_is_masteres; ;;;r:cP|j|j|jgd|jsydD]$}|j |j d|d&|j dr;|j |jDcgc]}|j d|c}dn:|j |jDcgc]}|j d|c}d|j|j d d}|d d k(rf|j d rU|d jddD]<}|j}|s|d }|j |j d|d>|j |j dgd|j |j dd|jdr.|jjddg|j d|j|jycc}wcc}w)N)r/KUBERNETES_HTTP_PROXYKUBERNETES_HTTPS_PROXYKUBERNETES_NO_PROXY)versionz config view cluster-infosubdirr% get -o json  get z get nodesstatusrr(outputz describe node z get -o json nodesz get --raw /metricszkubevirt-virtctlvmsvmiszvirtctl version) add_copy_spec config_files add_env_varrBadd_cmd_outputr5 get_optionglobal_resourcescollect_cmd_output splitlinessplit is_installed resourcesextendcollect_per_resource_detailscollect_all_resources)r6subcmdresnodeslinewordsnodes r8setupzKubernetes.setupisV 4,,-   ##% 0 F   ==/6(+%    ??5 !   00!==/se4!%  &   00!==/se,!%  & ''4==/(D/=(? ?a DOOJ$?h224QR8  Qx##}}o_TF;)$  }}o/ 0    " }}o0 1!    / 0 NN ! !5&/ 2    1 2 ))+ ""$S! !s HH#c |j|jdd}|djdd}|Dcgc]2}|st|j s |j d4}}|D]?}d|}|j d r=|jd |}|j D]}|j|d |d ||j d r|jd |}|j D]}|dk(r |j|d|} | ddk(s(| djddD cgc]} | j d} } | D]4} |jd |}|j|d|d | d |d|6|j ds/|j|Bycc}wcc} w)z7 Collect details about each resource in all namespaces z get namespacesrIrJrOrPNrz --namespace=r%rLrH cluster-info/r(rrMrNz describe /r)) rYr5rZlenr[rWr]rVexec_cmd _get_pod_logs) r6kns kn_outputnknspsnspaceknspk_cmdrbretkk_listitems r8r_z'Kubernetes.collect_per_resource_detailss%%&G-;&=M,,.qr2 '0I!A#aggi.1II )F!&*Du%==/tf=>>C'' '3%(!.vh7( z*==/4&1>> Ch --5'se(<=C8})"%h-":":"?:> G} rxxS_V-DE*!*ok:;9!*of568 3v;. #F L 9#&z?6#:$(L ++#}}oQyk'jYK9#*,$s6{2 #F ,< =#&z?6#:$(L ++#}}oQyk'jYK9#*,!  r:c|jds9|jd}|jD]}|j|d|dyy)z% Collect details about all resources r%z get --all-namespaces=truerHrIrJN)rWr5r]rV)r6rtrbs r8r`z Kubernetes.collect_all_resourcess[u%}}o%?@E~~ ##gQse$)$ &r:cpd}|j|j|d|j|jddj|jd}|j |d}d}ddjt |j|jzd}|j|||y)NzX(?P{\s*"name":\s*[^,]*(pass|pwd|key|token|cred|PASS|PWD|KEY)[^,]*,\s*"value":)[^}]*z\g "********"z^(|)zLS0tLS1CRUdJ[A-Za-z0-9+/=]+z***** SCRUBBED BASE64 PEM *****) do_cmd_output_subr5do_cmd_private_subjoinrTdo_file_private_sublistr3do_path_regex_sub)r6 env_regexppathexpregexpsubsts r8postproczKubernetes.postprocs M  t}}j4 6  .!2!234A6   )01djj!1$2C2C!CDEQG w6r:N)__name__ __module__ __qualname__ short_desc plugin_nameprofilesplugin_timeoutrTr]rXrstr option_listr5r9rBrgr_rmr`rr:r8r r &s>JKHN LI. %@ B*eA C)U= ?"BJ L KH<>%@&)PB7r:r c4eZdZeZeZeZfdZ fdZ xZ S)RedHatKubernetescD|jdryt| S)Nzopenshift-hyperkubeF)r\super check_enabledr6 __class__s r8rzRedHatKubernetes.check_enableds#   2 3w$&&r:cB|jt| yr=)r9rrgrs r8rgzRedHatKubernetes.setup"s   r:) rrr KUBE_PACKAGESpackages KUBECONFIGSr3 KUBE_SVCSrrrg __classcell__rs@r8rrs!H EH' r:rc6eZdZeZedzZedzZfdZ xZ S)UbuntuKubernetes)z#/root/cdk/cdk_addons_kubectl_configz4/var/snap/microk8s/current/credentials/client.config)zsnap.kubelet.daemonzsnap.kube-apiserver.daemonzsnap.kube-proxy.daemonzsnap.kube-scheduler.daemonz#snap.kube-controller-manager.daemonzcdk.master.auth-webhookc|j|jdrd|_|jj ddgt |y)Nmicrok8szmicrok8s kubectlz/root/cdk/kubelet/config.yamlz!/root/cdk/audit/audit-policy.yaml)r9r\r5rTr^rrgrs r8rgzUbuntuKubernetes.setup:sN    Z (.DM   + /"    r:) rrrrrrr3rrrgrrs@r8rr's2H  E H  r:r)fnmatchrrrr0sos.report.pluginsrrrrrrrrr rrrr:r8rs_ 99    k7k7\z<&z<r: