a >h@s6ddlZddlZddlmZmZGdddeeZdS)N)Plugin UbuntuPluginc@s4eZdZdZdZdZdZdZdZddZ dd Z d S) Microk8saThe Microk8s plugin collects the current status of the microk8s snap on a Ubuntu machine. It will collect logs from journald related to the snap.microk8s units as well as run microk8s commands to retrieve the configuration, status, version and loaded plugins. zThe lightweight Kubernetesmicrok8s) container)rc sjddgd}ddgfdd|Dd}|d }d |d d}j|d d |d|d|dgd}|d }|d}|d}|d|d|d|d} dddddgdddddg} ztt|dddP} | } td | } | D]&}| d!|d"|dgd#qWdn1sT0YWn<t y}z" d$|d%|WYd}~n d}~00| D]h}| }| d&g}|D]}|d'|}qt | d(}| d)}j|d'|d*|d qdS)+Nzsnap.microk8s.*)Zunits)zaddons repo listZconfigzctr plugins lszctr plugins ls -dstatusversionz!/var/snap/microk8s/current/args/*4/var/snap/microk8s/current/credentials/client.configcsg|]}jd|qS) ) microk8s_cmd).0Zsubcmdself?/usr/lib/python3.9/site-packages/sos/report/plugins/microk8s.py 2sz"Microk8s.setup..z1/var/snap/microk8s/current/var/kubernetes/backendz /cluster.crtzopenssl x509 -in z -noout -datesZls_microk8s_dqlite_dir)Zsuggest_filenamez /info.yamlz /cluster.yamlz/failure-domainz!/snap/microk8s/current/bin/dqlitez /cluster.keyz -c z -k z -s file://z k8sz.cluster)querysuggested_file_suffixz-f jsonz.cluster_-f_json)roptsrz.leaderrzutf-8)encodingz#Address:\s*(\d+\.\d+\.\d+\.\d+:\d+)z .describe z .describe_)rrrzFailed to parse z: rr rrZ microk8s_sql_)Z add_journalZ add_copy_specZadd_cmd_outputZadd_dir_listingopenreadrefindallappend ExceptionZ add_alertgetjsondumps)rZmicrok8s_subcmdsZcrt_dirZ dqlite_crtZdb_pathZ dqlite_binZcertkeyZserversZ dqlite_cmdZqueriesZcluster_definitionZclusterZnodesZnodeeZ query_entryZsql_cmdroptrZ file_suffixrr rsetup"s      0,   zMicrok8s.setupcCs@d}||j|dgd}dd|d}|d|ddS) Nz((certificate-authority-data:|token:)\s.*z\1 "**********")zcertificate-authority-datazclient-certificate-datazclient-key-datatokenz(^\s*(|z )\s*:\s*)(.*)r z \1*********)Zdo_cmd_output_subr joinZdo_path_regex_sub)rZrsubZ protect_keysZ key_regexrrrpostprocszMicrok8s.postprocN) __name__ __module__ __qualname____doc__Z short_descZ plugin_nameZprofilesZpackagesr r#r'rrrrrs]r)rrZsos.report.pluginsrrrrrrr s