3
ܓi @ s6 d dl Z d dlZd dlmZmZ G dd deeZdS ) N)PluginUbuntuPluginc @ s4 e Zd ZdZdZdZd
ZdZdZdd Z dd Z
d S )Microk8sa The 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 containerc s j dd ddddddg} jd d
g j fdd|D d
}| d} jd| d d
} j|dd j| d| d| dg d}| d}| d}| d}| d| d| d| d} dddddgdd d!d!dg}
ybt|d"d#d$J}|j }tjd%|}
x.|
D ]&}|
jd&| d'| dgd( q W W d Q R X W n: t k
r } z j
d)| d*| W Y d d }~X nX xt|
D ]l}| }|jd+g }x|D ]}| d,| }qW tj
|jd-}|jd.} j| d,| d/| d qW d S )0Nzsnap.microk8s.*)Zunitszaddons repo listconfigzctr plugins lszctr plugins ls -dZstatusversionz!/var/snap/microk8s/current/args/*z4/var/snap/microk8s/current/credentials/client.configc s g | ]} j d | qS ) )microk8s_cmd).0Zsubcmd)self /usr/lib/python3.6/microk8s.py
3 s z"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)r optsr z.leaderrzutf-8)encodingz#Address:\s*(\d+\.\d+\.\d+\.\d+:\d+)z
.describe z
.describe_)r r r zFailed to parse z: r r r r Z
microk8s_sql_)Zadd_journalZ
add_copy_specZadd_cmd_outputZadd_dir_listingopenreadrefindallappend ExceptionZ add_alertgetjsondumps)r Zmicrok8s_subcmdsZcrt_dirZ
dqlite_crtZdb_pathZ
dqlite_binZcertkeyZserversZ
dqlite_cmdZqueriesZcluster_definitionZclusterZnodesZnodeeZquery_entryZsql_cmdr optr Zfile_suffixr
)r r setup" st
(
zMicrok8s.setupc C sD d}| j | j|d ddddg}ddj| d }| jd
|d d S )Nz((certificate-authority-data:|token:)\s.*z\1 "**********"zcertificate-authority-datazclient-certificate-datazclient-key-datatokenz(^\s*(|z
)\s*:\s*)(.*)z4/var/snap/microk8s/current/credentials/client.configz\1*********)Zdo_cmd_output_subr
joinZdo_path_regex_sub)r ZrsubZprotect_keysZ key_regexr
r
r postproc s zMicrok8s.postprocN)r )r )__name__
__module____qualname____doc__Z
short_descZplugin_nameZprofilesZpackagesr
r! r% r
r
r
r r s ]r )r r Zsos.report.pluginsr r r r
r
r
r s