o id @sdddlmZmZmZmZddlmZddlZGdddeZGdddeeZ Gdd d eeZ dS) )Plugin RedHatPlugin UbuntuPlugin PluginOpt) translateNc @sjeZdZdZdZdZeddddeddd ded dd ded d eddgZdZ ddZ ddZ ddZ dS) Kubernetesz+Kubernetes container orchestration platform kubernetes) containerallFz'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 kubectlcstfddjDS)Ncsg|]}|qS) path_exists).0fselfr?/usr/lib/python3/dist-packages/sos/report/plugins/kubernetes.py &sz.Kubernetes.check_is_master..)anyfilesrrrrcheck_is_master%szKubernetes.check_is_mastercs8ddgdgd}|D]}j|dqs&dSd}dD] }dj|fq*d j}|d d d}d d |D}gd}gd} fdd | Ddj} | ddkr| d d dD]} | } | sq|| d} jdj| fddq|dj dr| ddgd|D]}d|} drdj||f}d||D] }jd||f|dq͈ d r%dj|f}|D]:} d!||f}|ddkr$d"d |d d dD}|D]}dj|f}jd#|||f|dq q d$r{dj|f} d%|}|ddkr{d&d |d d dD} d'r\t d'nd}|D]}|rnt||snq`jd(||fd)dq`q dsd*j}|D]}jd||f|dqdSdS)+Nz/etc/kubernetesz /run/flannel) KUBECONFIGKUBERNETES_HTTP_PROXYKUBERNETES_HTTPS_PROXYKUBERNETES_NO_PROXY) kubeletzkube-apiserverz kube-proxyzkube-schedulerzkube-controller-managerzsnap.kubelet.daemonzsnap.kube-apiserver.daemonzsnap.kube-proxy.daemonzsnap.kube-scheduler.daemonz#snap.kube-controller-manager.daemonunitsz get -o json )versionz config viewz%s %sz%s get namespacesoutputcSs(g|]}|rt|r|dqSr)lensplit)rnrrrrOs(z$Kubernetes.setup..) deployments ingresses limitrangespodspoliciespvcrcresourcequotasroutesservices) namespacesprojectspvscsg|] }dj|fqS) %s get %s)kube_cmd)rresrrrrdsz %s get nodesstatusrz%s describe node %snodes)subdirz%s get --raw /metricszkubevirt-virtctlvmsvmiszvirtctl versionz--namespace=%sr z%s %s %sz %s eventsr r9cSg|]}|dqSr(r*)rkrrrrz%s describe %s %srz %s get podscSrAr(rB)rprrrrrDrz %s logs %sr/z%s get --all-namespaces=true) add_copy_spec add_env_var add_journalradd_cmd_outputr:collect_cmd_output splitlinesr* is_installedextend get_optionexec_cmdrrematch)rsvcssvc kube_get_cmdsubcmdkn kn_outputknsps resourcesglobal_resourcesr=linewordsnoder+knspk_cmdr;rk_listrCr/regpodrrrsetup(s               zKubernetes.setupcCs d}|d|d|ddS)NzX(?P{\s*"name":\s*[^,]*(pass|pwd|key|token|cred|PASS|PWD|KEY)[^,]*,\s*"value":)[^}]*rz\g "********")do_cmd_output_subdo_cmd_private_sub)r env_regexprrrpostprocs zKubernetes.postprocN) __name__ __module__ __qualname__ short_desc plugin_nameprofilesrstr option_listr:rrdrhrrrrrs,  rc(eZdZdZdZdZfddZZS)RedHatKubernetes)rzkubernetes-masterzatomic-openshift-master)#/etc/origin/master/admin.kubeconfigz(/etc/origin/node/pods/master-config.yamlrcs"|drd|_tt|dS)Nrsoc)rr:superrrrdr __class__rrrds zRedHatKubernetes.setup)rirjrkpackagesrr:rd __classcell__rrrvrrrs rrcrq)UbuntuKubernetes)r)z#/root/cdk/cdk_addons_kubectl_configz/etc/kubernetes/admin.conf)zcdk.master.auth-webhookcsV|jD]}||r|jd|7_nq|jD]}|j|dqtt|dS)Nz --kubeconfig=%sr#)rrr:r5rHrurzrd)r_kconfrSrvrrrds   zUbuntuKubernetes.setup)rirjrkrxrr5rdryrrrvrrzs rz) sos.report.pluginsrrrrfnmatchrrPrrrrzrrrrs *